Satin:general

From

(Difference between revisions)
Jump to: navigation, search
(Серверы доступа к данным и медиа-информации)
(Инфраструктура разработчика)
Line 78: Line 78:
Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса. Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку пакета и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации.
Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса. Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку пакета и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации.
-
[[File:Example.jpg]]
+
 
 +
[[File:ContinuousIntegration.png]]
 +
 
Используемый в работе трекер YouTrack совместим с сервером непрерывной интеграции таким образом, что позволяет связать коммиты  с записями трекера. Используя определенную семантику, статус записей обновляется соответственно команде в комментариях коммита. Также одним из функциональных достоинств трекера является поддержка гибкой методологии разработки, что позволяет работать в режиме спринтов – набора задач на короткий промежуток времени.  
Используемый в работе трекер YouTrack совместим с сервером непрерывной интеграции таким образом, что позволяет связать коммиты  с записями трекера. Используя определенную семантику, статус записей обновляется соответственно команде в комментариях коммита. Также одним из функциональных достоинств трекера является поддержка гибкой методологии разработки, что позволяет работать в режиме спринтов – набора задач на короткий промежуток времени.  
[[File:Example.jpg]]
[[File:Example.jpg]]
   
   
 +
==Пользовательский интерфейс==
==Пользовательский интерфейс==
===Каталог===
===Каталог===

Revision as of 11:22, 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 дают возможность загрузки спутниковых данных из архива лаборатории.

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

File:Satin for annual report software.jpg

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

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

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

File:Satin workflow.jpg

Веб-сервер

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

Верстка страниц 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) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса. Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку пакета и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации.

File:ContinuousIntegration.png

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

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

Каталог

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

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

В каждом из представлений к набору данных применим фильтр, отображаемый в левой части экрана. Стартовой страницей веб-сайта является каталог спутниковых данных в блочном режиме представления (списковый режим представлен далее). File:Example.jpg

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

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

File:Example.jpg

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

File:Example.jpg

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

File:Example.jpg

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

File:Example.jpg

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

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

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

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

Personal tools
MediaWiki Appliance - Powered by TurnKey Linux