Satin:general
From
(→Серверы доступа к данным и медиа-информации) |
(→Инфраструктура разработчика) |
||
Line 78: | Line 78: | ||
Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса. Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку пакета и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации. | Отдельный интерес представляет сервер непрерывной интеграции TeamCity, настроенный таким образом, что при каждом обновлении исходного кода проекта в репозитории (команда push) производит выполнение приемочных тестов и выкладку на тестовый сервер. Выкладка на публичный сервер производится путем запуска команды через веб-интерфейс сервиса. Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку пакета и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации. | ||
- | [[File: | + | |
+ | [[File:ContinuousIntegration.png]] | ||
+ | |||
Используемый в работе трекер YouTrack совместим с сервером непрерывной интеграции таким образом, что позволяет связать коммиты с записями трекера. Используя определенную семантику, статус записей обновляется соответственно команде в комментариях коммита. Также одним из функциональных достоинств трекера является поддержка гибкой методологии разработки, что позволяет работать в режиме спринтов – набора задач на короткий промежуток времени. | Используемый в работе трекер YouTrack совместим с сервером непрерывной интеграции таким образом, что позволяет связать коммиты с записями трекера. Используя определенную семантику, статус записей обновляется соответственно команде в комментариях коммита. Также одним из функциональных достоинств трекера является поддержка гибкой методологии разработки, что позволяет работать в режиме спринтов – набора задач на короткий промежуток времени. | ||
[[File:Example.jpg]] | [[File:Example.jpg]] | ||
+ | |||
==Пользовательский интерфейс== | ==Пользовательский интерфейс== | ||
===Каталог=== | ===Каталог=== |
Revision as of 11:22, 25 December 2012
Contents |
Функциональные требования
Проект SATIN представляет собой веб-портал для каталогизации, поиска и визуализации спутниковых данных. На сегодняшний день существует большое количество ресурсов, предоставляющих доступ к таким данным, будь то открытый или закрытый. Тем не менее, большинство из них не приспособлено для широкой аудитории и требует определенных навыков в использовании. Так, одни проекты предоставляют доступ к исходным файлам без предварительной визуализации их содержимого, другие включают некоторое подобие каталога, но недостаточно гибки в поиске. SATIN призван устранить эти ограничения, неся в себе следующие возможности.
- Каталог с предварительными изображениями данных. Помимо мета-информации и описания спутникового продукта, становится возможным предварительная визуализация отдельных спутниковых измерений;
- Гибкий и интуитивный семантический поиск;
- Загрузка отфильтрованной выборки или отдельного файла спутниковых данных через ряд различных протоколов доступа к данным;
- Персонализация, включая создание наборов фильтров, ведения истории поиска;
- Помимо всего, будет присутствовать социальная составляющая: комментарии пользователей, тэги, избранные и популярные спутниковые снимки.
На сайте заложен функционал мультиязычности. В настоящий момент поддерживаются одновременно русская и английская версии.
Серверная инфраструктура
На основе закупленного лабораторией оборудования был сформированы вычислительный кластер на основе высокопроизводительного шасси 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.
Верстка страниц 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. Обработка происходит в два этапа:
- Индексация гранулы в системе Naiad b извлечение мета-информации;
- Генерация предварительного изображения (несколько размеров) и палитры.
В дальнейшем, извлеченные мета-данные и предварительные изображения данной гранулы визуализируются в каталоге 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.