Satin:general

From

(Difference between revisions)
Jump to: navigation, search
m
Line 20: Line 20:
   
   
Как видно из схемы, серверы условно разделены на две подгруппы, одна из которых имеет доступ во всемирную сеть, а другая доступна только из внутренней сети лаборатории. Также инфраструктура гетерогенна по составу операционных систем: здесь включены как Unix, так и Windows-системы.   
Как видно из схемы, серверы условно разделены на две подгруппы, одна из которых имеет доступ во всемирную сеть, а другая доступна только из внутренней сети лаборатории. Также инфраструктура гетерогенна по составу операционных систем: здесь включены как Unix, так и Windows-системы.   
-
3. Архитектура программно-математического обеспечения
+
==Архитектура программно-математического обеспечения==
  Схема отображает инфраструктуру и потоки данных, относящиеся к функционированию приложения SATIN. Ниже раскрывается значение каждой из компонент схемы.
  Схема отображает инфраструктуру и потоки данных, относящиеся к функционированию приложения SATIN. Ниже раскрывается значение каждой из компонент схемы.
-
1) Веб-сервер
+
===Веб-сервер===
SATIN представляет собой приложение для доступа к спутниковым данным, размещенное на веб-сервере IIS7 под управлением операционной системы Microsoft Web Server 2008 R2.
SATIN представляет собой приложение для доступа к спутниковым данным, размещенное на веб-сервере IIS7 под управлением операционной системы Microsoft Web Server 2008 R2.
Line 29: Line 29:
   
   
Верстка страниц SATIN выполнена с использованием последней версии языка разметки HTML5 и каскадных таблиц стилей CSS3. В качестве javascript-фреймворка используется jQuery. В качестве программного интерфейса для отображения карт используется библиотека OpenLayers.
Верстка страниц SATIN выполнена с использованием последней версии языка разметки HTML5 и каскадных таблиц стилей CSS3. В качестве javascript-фреймворка используется jQuery. В качестве программного интерфейса для отображения карт используется библиотека OpenLayers.
-
2) Серверы доступа к данным и медиа-информации
+
===Серверы доступа к данным и медиа-информации===
В то время как веб-интерфейс SATIN предназначен для оперирования с данными посредством фильтрации и просмотра каталога, сами данные физически доступны для конечного пользователя через группу [2] серверов.  
В то время как веб-интерфейс SATIN предназначен для оперирования с данными посредством фильтрации и просмотра каталога, сами данные физически доступны для конечного пользователя через группу [2] серверов.  
Line 38: Line 38:
   
   
• Tile-сервер – доступ к картографическим тайлам и предварительным спутниковым изображениям. SATIN использует этот сервер для отображения всей визуальной информации, относящейся к спутниковым данным.
• Tile-сервер – доступ к картографическим тайлам и предварительным спутниковым изображениям. SATIN использует этот сервер для отображения всей визуальной информации, относящейся к спутниковым данным.
-
3) Сервер загрузки данных
+
===Сервер загрузки данных===
Каталог спутниковых данных лаборатории собран из различных источников: роллинг-архивов NASA, ESA, открытых данных различных проектов и университетов. Как правило, недостаточно разово скачать данные интересующего продукта: регулярно продуцируемые данные должны в автоматическом режиме поступать в архив лаборатории.  
Каталог спутниковых данных лаборатории собран из различных источников: роллинг-архивов NASA, ESA, открытых данных различных проектов и университетов. Как правило, недостаточно разово скачать данные интересующего продукта: регулярно продуцируемые данные должны в автоматическом режиме поступать в архив лаборатории.  
Для этой цели, а также для распараллеливания загрузки в инфраструктуру включен сервер закачек. Здесь расположены скрипты, по расписанию загружающие данные из удаленных источников. Сервер работает под управлением Debian OS. Загрузка, как правило, выполняется с помощью инструмента lftp и расписания планировщика cron.
Для этой цели, а также для распараллеливания загрузки в инфраструктуру включен сервер закачек. Здесь расположены скрипты, по расписанию загружающие данные из удаленных источников. Сервер работает под управлением Debian OS. Загрузка, как правило, выполняется с помощью инструмента lftp и расписания планировщика cron.
-
4) Сервер БД
+
===Сервер БД===
В качестве хранилища данных SATIN использует MS SQL Server 2012 с поддержкой пространственных типов данных.  
В качестве хранилища данных SATIN использует MS SQL Server 2012 с поддержкой пространственных типов данных.  
-
5) Файловое хранилище
+
===Файловое хранилище===
Для хранения всей спутниковой информации используется NFS-сервер под управлением Debian OS. В настоящее время объем дискового пространства составляет около 60 Тб, заполненный более чем наполовину. Зеркальный RAID-массив обеспечивает сохранность данных от дисковых сбоев.
Для хранения всей спутниковой информации используется NFS-сервер под управлением Debian OS. В настоящее время объем дискового пространства составляет около 60 Тб, заполненный более чем наполовину. Зеркальный RAID-массив обеспечивает сохранность данных от дисковых сбоев.
-
6) Сервис индексации
+
===Сервис индексации===
Спутниковые данные регулярно поступают в файловое хранилище лаборатории с помощью сервера загрузок, описанного выше. Для их индексации и дальнейшей обработки используется специально разработанный Windows-сервис. В его задачи входит сверка индекса базы данных со списком файлов на диске в фоновом режиме, а также передача проиндексированных файлов на обработку в систему Naiad. На изображении ниже приведена иллюстрация, как сервис и относящиеся к нему объекты видны в среде разработки.
Спутниковые данные регулярно поступают в файловое хранилище лаборатории с помощью сервера загрузок, описанного выше. Для их индексации и дальнейшей обработки используется специально разработанный Windows-сервис. В его задачи входит сверка индекса базы данных со списком файлов на диске в фоновом режиме, а также передача проиндексированных файлов на обработку в систему Naiad. На изображении ниже приведена иллюстрация, как сервис и относящиеся к нему объекты видны в среде разработки.
   
   
-
7) Кластер серверов Naiad
+
===Кластер серверов Naiad===
Naiad – комплекс программно-математического обеспечения для поиска и экстракции спутниковых данных. Система Naiad, разрабатывавшаяся более 10 лет французской компанией Diateam для института Ifremer, является очень мощным инструментом в работе со спутниковой информацией. Система была приобретена лабораторией и развернута на ряде виртуальных серверов, обозначенных на схеме единым кластером. Следует отметить, что она может самостоятельно использоваться для работы, тогда как SATIN, с точки зрения этой системы, является визуальным расширением, восполняющим функцию каталога (Naiad поддерживает только динамическую генерацию предварительных изображений по запросу пользователя).
Naiad – комплекс программно-математического обеспечения для поиска и экстракции спутниковых данных. Система Naiad, разрабатывавшаяся более 10 лет французской компанией Diateam для института Ifremer, является очень мощным инструментом в работе со спутниковой информацией. Система была приобретена лабораторией и развернута на ряде виртуальных серверов, обозначенных на схеме единым кластером. Следует отметить, что она может самостоятельно использоваться для работы, тогда как SATIN, с точки зрения этой системы, является визуальным расширением, восполняющим функцию каталога (Naiad поддерживает только динамическую генерацию предварительных изображений по запросу пользователя).
В описываемой инфраструктуре гранула, проиндексированная сервисом, посредством HTTP-запроса  передается на обработку в систему Naiad. Обработка происходит в два этапа:  
В описываемой инфраструктуре гранула, проиндексированная сервисом, посредством HTTP-запроса  передается на обработку в систему Naiad. Обработка происходит в два этапа:  
-
1) Индексация гранулы в системе Naiad b извлечение мета-информации;
+
# Индексация гранулы в системе Naiad b извлечение мета-информации;
-
2) Генерация предварительного изображения (несколько размеров) и палитры.
+
# Генерация предварительного изображения (несколько размеров) и палитры.
В дальнейшем, извлеченные мета-данные и предварительные изображения данной гранулы визуализируются в каталоге SATIN, а сама она становится также доступной в системе Naiad.
В дальнейшем, извлеченные мета-данные и предварительные изображения данной гранулы визуализируются в каталоге SATIN, а сама она становится также доступной в системе Naiad.
-
Инфраструктура разработчика
+
===Инфраструктура разработчика===
Проект разрабатывается с использованием следующего инструментария:
Проект разрабатывается с использованием следующего инструментария:
-
o Среда разработки Microsoft Visual Studio 2012
+
* Среда разработки Microsoft Visual Studio 2012
-
o Система контроля версий Mercurial
+
* Система контроля версий Mercurial
-
o Облачный трекер YouTrack
+
* Облачный трекер YouTrack
-
o Тестовый сервер проекта
+
* Тестовый сервер проекта
-
o Сервер непрерывной интеграции под управлением TeamCity
+
* Сервер непрерывной интеграции под управлением TeamCity
Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса.
Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса.
Line 76: Line 76:
   
   
==Пользовательский интерфейс==
==Пользовательский интерфейс==
-
Каталог
+
===Каталог===
По своему логическому устройству каталог SATIN может быть описан следующей схемой:
По своему логическому устройству каталог SATIN может быть описан следующей схемой:
-
Режим продуктов
+
* Режим продуктов
-
o Списочное представление
+
** Списочное представление
-
o Блочное представление
+
** Блочное представление
-
Режим гранул
+
* Режим гранул
-
o Списочное представление
+
** Списочное представление
-
o Блочное представление
+
** Блочное представление
-
o Представление на карте
+
** Представление на карте
-
o Представление в виде презентации
+
** Представление в виде презентации
В каждом из представлений к набору данных применим фильтр, отображаемый в левой части экрана.
В каждом из представлений к набору данных применим фильтр, отображаемый в левой части экрана.
Line 107: Line 107:
   
   
-
Страница гранулы
+
===Страница гранулы===
Данная страница представляет сводку информации по отдельной грануле. Здесь данные визуализированы на карте, дана палитра. Так же, как и в каталоге, даются ссылки на скачивание (FTP, OPeNDAP), обеспечивается возможность загрузки изображения в высоком разрешении, а также XML-описания для программы Google Earth (кнопки «Избражение» и «KML» соответственно).
Данная страница представляет сводку информации по отдельной грануле. Здесь данные визуализированы на карте, дана палитра. Так же, как и в каталоге, даются ссылки на скачивание (FTP, OPeNDAP), обеспечивается возможность загрузки изображения в высоком разрешении, а также XML-описания для программы Google Earth (кнопки «Избражение» и «KML» соответственно).
   
   
-
Текстовые страницы
+
===Текстовые страницы===
Для удобства пользователя, в SATIN заложена функциональная возможность предоставлять справочную информацию по каждому из продуктов, а также по большинству сущностей, к нему относящихся (имеются ввиду платформы, сенсоры, геофизические параметры, форматы данных и т.д.).  
Для удобства пользователя, в SATIN заложена функциональная возможность предоставлять справочную информацию по каждому из продуктов, а также по большинству сущностей, к нему относящихся (имеются ввиду платформы, сенсоры, геофизические параметры, форматы данных и т.д.).  
   
   
-
Для агрегирования информации по наиболее актуальным вопросам создан иллюстрированный раздел FAQ.
+
Для агрегирования информации по наиболее актуальным вопросам создан иллюстрированный раздел FAQ.

Revision as of 09:59, 25 December 2012

Contents

Функциональные требования

Проект SATIN представляет собой веб-портал для каталогизации, поиска и визуализации спутниковых данных. На сегодняшний день существует большое количество ресурсов, предоставляющих доступ к таким данным, будь то открытый или закрытый. Тем не менее, большинство из них не приспособлено для широкой аудитории и требует определенных навыков в использовании. Так, одни проекты предоставляют доступ к исходным файлам без предварительной визуализации их содержимого, другие включают некоторое подобие каталога, но недостаточно гибки в поиске. SATIN призван устранить эти ограничения, неся в себе следующие возможности.

  1. Каталог с предварительными изображениями данных. Помимо мета-информации и описания спутникового продукта, становится возможным предварительная визуализация отдельных спутниковых измерений;
  2. Гибкий и интуитивный семантический поиск;
  3. Загрузка отфильтрованной выборки или отдельного файла спутниковых данных через ряд различных протоколов доступа к данным;
  4. Персонализация, включая создание наборов фильтров, ведения истории поиска;
  5. Помимо всего, будет присутствовать социальная составляющая: комментарии пользователей, тэги, избранные и популярные спутниковые снимки.

На сайте заложен функционал мультиязычности. В настоящий момент поддерживаются одновременно русская и английская версии.  

Серверная инфраструктура

На основе закупленного лабораторией оборудования был сформированы вычислительный кластер на основе высокопроизводительного шасси IBM BladeCenterH. Шасси позволяет установить до 14 blade-серверов HS22, каждое со следующими характеристиками: 2 CPU Xeon 6 Core X5690, RAM 48Gb, 2х146Gb 10K SAS HDD. Система хранения данных построена на основе IBM System Storage DS3524 Express Dual Controller Storage System. С помощью технологии виртуализации развернуто порядка десяти серверов, среди которых серверы, предназначенные для хранения спутниковых данных, объемом хранилища более 60 терабайт, обслуживания систем управления базами данных (2 сервера, обслуживающих MSSQL, MySQL и Postgres), несколько веб-серверов и тестовых серверов. Настроенные на серверах службы FTP и OpenDAP дают возможность загрузки спутниковых данных из архива лаборатории.



Изображение ниже иллюстрирует развернутую с применением технологии виртуализации серверную архитектуру.

Как видно из схемы, серверы условно разделены на две подгруппы, одна из которых имеет доступ во всемирную сеть, а другая доступна только из внутренней сети лаборатории. Также инфраструктура гетерогенна по составу операционных систем: здесь включены как Unix, так и Windows-системы. 

Архитектура программно-математического обеспечения

Схема отображает инфраструктуру и потоки данных, относящиеся к функционированию приложения SATIN. Ниже раскрывается значение каждой из компонент схемы.

Веб-сервер

SATIN представляет собой приложение для доступа к спутниковым данным, размещенное на веб-сервере IIS7 под управлением операционной системы Microsoft Web Server 2008 R2. Приложение разработано с использованием фреймворка ASP.NET MVC4. Приложение выполнено в многослойной архитектуре, где используется выделение в отдельные слои кода доступа к данным, бизнес-логики и кода представления данных. Для объектно-реляционного отображения используется Entity Framework 5.0 с поддержкой пространственных типов данных. Генерация страниц производится с помощью Razor Engine. В качестве средства логирования выбран компонент log4net 2.0. Рисунок ниже иллюстрирует представление архитектуры всего проекта, как она видится в среде разработки Visual Studio 2012:

Верстка страниц SATIN выполнена с использованием последней версии языка разметки HTML5 и каскадных таблиц стилей CSS3. В качестве javascript-фреймворка используется jQuery. В качестве программного интерфейса для отображения карт используется библиотека OpenLayers.

Серверы доступа к данным и медиа-информации

В то время как веб-интерфейс SATIN предназначен для оперирования с данными посредством фильтрации и просмотра каталога, сами данные физически доступны для конечного пользователя через группу [2] серверов. В эту группу входят: • FTP-сервер – классический и широко распространённый способ предоставления доступа к данным. Через веб-интерфейс SATIN пользователь может получить прямую FTP-ссылку на файл данных, и в то же время не ограничивается простой просмотр FTP-каталога (только для открытых данных).

• OPeNDAP-сервер. Это архитектура и протокол передачи данных, широко используемый при работе с геоданными. Включает в себя стандарты хранения структурированных данных, их аннотирования с помощью атрибутов и добавления семантики для описания данных. Главное преимущество данного продокола доступа – это возможность извлечения подмножества данных из одного или нескольких файлов с помощью единого запроса.

• Tile-сервер – доступ к картографическим тайлам и предварительным спутниковым изображениям. SATIN использует этот сервер для отображения всей визуальной информации, относящейся к спутниковым данным.

Сервер загрузки данных

Каталог спутниковых данных лаборатории собран из различных источников: роллинг-архивов NASA, ESA, открытых данных различных проектов и университетов. Как правило, недостаточно разово скачать данные интересующего продукта: регулярно продуцируемые данные должны в автоматическом режиме поступать в архив лаборатории. Для этой цели, а также для распараллеливания загрузки в инфраструктуру включен сервер закачек. Здесь расположены скрипты, по расписанию загружающие данные из удаленных источников. Сервер работает под управлением Debian OS. Загрузка, как правило, выполняется с помощью инструмента lftp и расписания планировщика cron.

Сервер БД

В качестве хранилища данных SATIN использует MS SQL Server 2012 с поддержкой пространственных типов данных.

Файловое хранилище

Для хранения всей спутниковой информации используется NFS-сервер под управлением Debian OS. В настоящее время объем дискового пространства составляет около 60 Тб, заполненный более чем наполовину. Зеркальный RAID-массив обеспечивает сохранность данных от дисковых сбоев.

Сервис индексации

Спутниковые данные регулярно поступают в файловое хранилище лаборатории с помощью сервера загрузок, описанного выше. Для их индексации и дальнейшей обработки используется специально разработанный Windows-сервис. В его задачи входит сверка индекса базы данных со списком файлов на диске в фоновом режиме, а также передача проиндексированных файлов на обработку в систему Naiad. На изображении ниже приведена иллюстрация, как сервис и относящиеся к нему объекты видны в среде разработки.

Кластер серверов Naiad

Naiad – комплекс программно-математического обеспечения для поиска и экстракции спутниковых данных. Система Naiad, разрабатывавшаяся более 10 лет французской компанией Diateam для института Ifremer, является очень мощным инструментом в работе со спутниковой информацией. Система была приобретена лабораторией и развернута на ряде виртуальных серверов, обозначенных на схеме единым кластером. Следует отметить, что она может самостоятельно использоваться для работы, тогда как SATIN, с точки зрения этой системы, является визуальным расширением, восполняющим функцию каталога (Naiad поддерживает только динамическую генерацию предварительных изображений по запросу пользователя). В описываемой инфраструктуре гранула, проиндексированная сервисом, посредством HTTP-запроса передается на обработку в систему Naiad. Обработка происходит в два этапа:

  1. Индексация гранулы в системе Naiad b извлечение мета-информации;
  2. Генерация предварительного изображения (несколько размеров) и палитры.

В дальнейшем, извлеченные мета-данные и предварительные изображения данной гранулы визуализируются в каталоге SATIN, а сама она становится также доступной в системе Naiad.

Инфраструктура разработчика

Проект разрабатывается с использованием следующего инструментария:

  • Среда разработки Microsoft Visual Studio 2012
  • Система контроля версий Mercurial
  • Облачный трекер YouTrack
  • Тестовый сервер проекта
  • Сервер непрерывной интеграции под управлением TeamCity

Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса.

Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку пакета и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации. Используемый в работе трекер YouTrack совместим с сервером непрерывной интеграции таким образом, что позволяет связать коммиты с записями трекера. Используя определенную семантику, статус записей обновляется соответственно команде в комментариях коммита. Также одним из функциональных достоинств трекера является поддержка гибкой методологии разработки, что позволяет работать в режиме спринтов – набора задач на короткий промежуток времени.

Пользовательский интерфейс

Каталог

По своему логическому устройству каталог SATIN может быть описан следующей схемой:

  • Режим продуктов
    • Списочное представление
    • Блочное представление
  • Режим гранул
    • Списочное представление
    • Блочное представление
    • Представление на карте
    • Представление в виде презентации

В каждом из представлений к набору данных применим фильтр, отображаемый в левой части экрана. Стартовой страницей веб-сайта является каталог спутниковых данных в блочном режиме представления (списковый режим представлен далее). Каждый блок представляет собой отдельный продукт – выпущенный производителем набор данных, обладающий строго определенными характеристиками, как, например, пространственное разрешение или уровень обработки. Здесь [1] – геофизические параметры, представляющие данный продукт, [2] – название продукта, [3] – общее (здесь же отфильтрованное) количество гранул (файлов данных), [4,5,6] – пиктограммы, отображающие соответственно актуальность данных (архивные или близкие к реальному времени), покрытие (глобальные или региональные данные) и уровень доступа (требующие авторизации для скачивания). Изображение для продукта призвано дать быстрое наглядное представление о характере данных.

  По умолчанию свернутый фильтр развернут на снимке ниже. С помощью него исходный набор продуктов фильтруется по требуемым параметрам, времени и/или региону.


Снимок ниже иллюстрирует альтернативный списковый режим отображения.

При выборе определенного продукта происходит переход в режим гранул: здесь отображаются все данные по этому продукту. При условии фильтрации по времени или региону, будут отображены только релевантные данные.

  Здесь также доступен блочный режим представления, однако изображения в данном режиме в точности представляют данные по каждой грануле.

Изображение ниже иллюстрирует представление данных на карте. Такой режим применим только к региональным продуктам или к swath-данным. Отмечая гранулы из списка справа, можно наглядно увидеть пространственное покрытие для каждой из них.

Режим презентации, напротив, в основном применим к данным глобального покрытия и призван визуализировать те или иные динамические процессы. Запустив презентацию, система в соответствии с заданными настройками пролистает визуальный ряд данных. Следует отметить, что данная имплементация почти не уступает по скорости воспроизведения и качеству видеороликам, и подходит для создания хорошего визуального эффекта на широкую аудиторию.

Страница гранулы

Данная страница представляет сводку информации по отдельной грануле. Здесь данные визуализированы на карте, дана палитра. Так же, как и в каталоге, даются ссылки на скачивание (FTP, OPeNDAP), обеспечивается возможность загрузки изображения в высоком разрешении, а также XML-описания для программы Google Earth (кнопки «Избражение» и «KML» соответственно).

Текстовые страницы

Для удобства пользователя, в SATIN заложена функциональная возможность предоставлять справочную информацию по каждому из продуктов, а также по большинству сущностей, к нему относящихся (имеются ввиду платформы, сенсоры, геофизические параметры, форматы данных и т.д.).

Для агрегирования информации по наиболее актуальным вопросам создан иллюстрированный раздел FAQ.

Personal tools
MediaWiki Appliance - Powered by TurnKey Linux