4.1.3. Разработка методов и технологий работы с распределенными архивами данных наблюдений. В том числе построение методов и технологий построения активных архивов для решения научных и прикладных задач.
Одним из ключевых вопросов, связанных с построением и использованием систем дистанционного мониторинга, является организация эффективной работы пользователей с предоставляемой им информацией. Для достижения данной цели необходимо построение специализированных интерфейсов, которые позволяли бы решать основные задачи, возникающие в различных системах дистанционного мониторинга. Конечно, в каждой специализированной системе мониторинга есть свои особые задачи, однако можно выделить общую специфику, которая сегодня возникает практически во всех подобных системах. Так, например, большинство современных информационных систем дистанционного мониторинга должны:
- позволять осуществлять наблюдение значительных территорий и оперативно предоставлять информацию о контролируемых объектах и явлениях территориально распределенным пользователям;
- обеспечивать возможность постоянного наблюдения контролируемых объектов и явлений, т.е. быть рассчитаны на работу с постоянно обновляющейся информацией;
- позволять получать различные характеристики контролируемых объектов и явлений и поэтому быть ориентированными на использование информации, полученной на основе различных средств наблюдений (различные спутники, самолетные наблюдения, наземные наблюдения и т.д.);
- вести архивы данных за достаточно продолжительные сроки наблюдения, поскольку во многих случаях в системах мониторинга стоит задача выявления отклонений от «нормального» поведения контролируемых объектов и явлений;
- получать, обрабатывать и хранить достаточно большие объемы данных (в современных системах объемы архивов обычно исчисляются десятками и сотнями терабайт, а во многих случаях приближаются или уже превышают петабайтные рубежи);
- обеспечивать возможность работы с распределенными архивами и базами данных, поскольку сбор, анализ, обработка и хранение информации может осуществляться в различных территориально распределенных центрах;
- в силу необходимости работы с достаточно большими потоками и объемами информации должны быть в основном ориентированы на полностью автоматизированные технологии сбора, обработки, распространения и представления данных;
- предоставлять пользователям информацию, прошедшую достаточно глубокую обработку, а также удобный инструментарий (интерфейсы для ее анализа), при этом во многих случаях должна быть обеспечена возможность динамического формирования тех или иных видов продуктов в момент запроса их пользователем;
- предоставлять пользователям возможность получения и анализа различной пространственной информации;
- обеспечивать простое получение и интеграцию данных из различных сторонних систем мониторинга, а также обеспечивать легкий импорт различных информационных продуктов, предоставляемых системой, в том числе и предоставление онлайн-сервисов.
Для решения всех этих задач системы дистанционного мониторинга должны обладать достаточно развитыми интерфейсами работы с данными и различными информационными продуктами. Такие интерфейсы должны обеспечивать:
- работу с многомерными архивами данных (т.е. по каждой наблюдаемой точке (объекту) в системе могут иметься временные ряды наблюдения различных характеристик);
- достаточно простое и легко понимаемое управление данными (выбор, поиск, включение для отображения нужных характеристик и т.д.);
- быстрый выбор и отображение различных информационных продуктов из достаточно емких архивов, обеспечивающих хранение многомерных данных;
- одновременное отображение различных видов информации, и проведение их совместного анализа;
- работу как с пространственной информацией, так и временными рядами различных информационных продуктов;
- формирование комплексных продуктов на основе базовых по запросу пользователей (связано это в первую очередь с тем, что при расширении задач и возможностей систем мониторинга, простое увеличение типов хранимых информационных продуктов приводит к неконтролируемому росту объемов архивов, поэтому часть продуктов приходится формировать только по запросам);
- доступ к распределенным информационным ресурсам;
- онлайн-импорт информации из различных сторонних информационных систем, а также сервисы экспорта данных в такие системы;
- расширяемость функциональности, а также удобные и гибкие настройки для решения задач конкретных проектов;
- гибкую систему авторизации пользователей для доступа к различным функциям и информационным продуктам, используемым в системе;
- поддержку и развитие большим числом разработчиков.
Для решения перечисленных выше задач в ИКИ РАН создана технология, предназначенная для разработки картографических web-интерфейсов работы с данными в различных системах дистанционного мониторинга, которые удовлетворяют всем перечисленным выше требованиям.
Архитектура построения GEOSMIS. Для того чтобы web-интерфейс мог работать с картографическими данными, он должен обеспечивать, как минимум, следующие базовые функции:
- отображение данных на карте;
- базовые функции работы с картой;
- поиск данных в каталогах и их отображение;
- экспорт данных.
При реализации этих функций в web-интерфейсах, которые работают в системе GEOSMIS, были использованы следующие принципы построения:
- модульная структура;
- объектная модель;
- гибкость конфигурации;
- простота расширения.
Систему GEOSMIS можно условно разделить на несколько уровней, взаимодействие которых представлено на рис. 4.1.3.1:
- Уровень представления, включающий в себя web и ГИС интерфейсы;
- Прикладной уровень, в который входят:
- Web-сервисы (в том числе, картографические сервисы, сервисы метаданных и сервисы управления данными);
- Системный API, обеспечивающий доступ к данным и справочникам, а также контроль доступа к различным ресурсам и интерфейсам.
Рис. 4.1.3.1 GEOSMIS, уровни архитектуры и их взаимодействие.
Уровень представления – это уровень, на котором идет взаимодействие с пользователем. Данный уровень позволяет пользователю работать с системой посредствам web-интерфейсов или специально созданных приложений, таких как ГИС. Поскольку ГИС системы имеют уже все базовые инструменты для работы с картографическими данными, то их взаимодействие с системой GEOSMIS осуществляется на уровне работы с сервисами данных.
GEOSMIS ориентирована на построение систем интерфейсов доступа к данным. Характерная архитектура интерфейса представлена на рис 4.1.3.2.
Рис.4.1.3.2 Характерная архитектура web-интерфейса, основные элементы.
Работу таких интерфейсов обеспечивает ядро, основой которого являются два следующих модуля:
- модуль работы с картографическими данными – smismap;
- модуль работы с метаданными – smismeta.
Модуль работы с картографическими данными представляет собой объект javascript, который обеспечивает отображение картографический информации, полученной от сервисов данных и манипуляции с ней. Кроме того, модуль позволяет делать пространственные запросы и делать экспорт отображаемых данных на печать или в другие системы.
Модуль работы с метаданными представляет собой объект javascript, который отвечает за поиск данных в каталогах, с помощью сервисов метаданных и извлечение из них данных, необходимых для отображения информации на сервисе «отрисовки».
Поскольку модули построены по объектной модели, то их можно тиражировать для работы с разными типами данных, например для поиска разного типа данных. Взаимодействие модулей между собой осуществляется через вызов функций и обработку событий, что обеспечивает гибкость и прозрачность работы интерфейса. Базовые модули были написаны с таким расчетом, чтобы максимально абстрагироваться от сущности данных. Для этого были созданы гибкие конфигурационные файлы, которые позволяют быстро и просто перенастраивать интерфейс на работу с новыми типами данных.
Таким образом, для построения конкретной системы интерфейсов для специализированной системы требуется:
- прописать необходимые объекты;
- настроить взаимодействие между ними с помощью обработки событий;
- написать файлы конфигураций и сделать необходимые элементы управления, которые позволяют задавать различные режимы отображения данных, их поиска в каталогах, их комбинацию, а также получать различную информацию.
Готовый интерфейс представляет собой базовые объекты, элементы управления и файлы конфигураций, а также дополнительные CGI модули. Все данные, которыми оперирует web-интерфейс, поступают с серверов либо от сервисов данных, либо через CGI модули. Таким образом, вся работа с данным в конкретном интерфейсе строится через прикладной уровень.
Прикладной уровень – это уровень, который обеспечивает взаимодействие между интерфейсами и непосредственно данными. Условно его можно разбить на Web-сервисы и системный API.
Web-сервисы позволяют получить доступ к данным на основе протоколов HTTP. В системе GEOSMIS используются 3 типа web-сервисов:
- картографические;
- метаданных;
- управление данными.
Картографические web-сервисы позволяют получить картографическую информацию в виде растровых изображений. Данный тип сервисов работает на основе стандарта WMS с дополнительным его расширением. Это позволяет использовать данные не только в web-интерфейсах, но и напрямую в ГИС.
Сервисы метаданных позволяют получить информацию о наличии конкретных продуктов по определенной территории или заданному промежутку времени, а так же любым дополнительным критериям. Данные сервисы работают с форматами JSON или XML. Сервисы метаданных позволяют делать запросы, в том числе и к распределенным архивам. Информация, которую возвращает сервис, содержит как описательные данные, так и данные, необходимые для получения этой информации с помощью картографических сервисов.
Сервисы управления данными позволяют манипулировать данными в БД путем осуществления web-запросов. Таких как добавление информации, например контуров и их атрибутов, или изменение и удаление. Взаимодействие с такими сервисами ведется в формате JSON.
В системе GEOSMIS все 3 типа web-сервисов реализованы в рамках одной общей стратегии в едином сервисе, который получил название smiswms. Данный сервис позволяет делать запросы на получение картографических данных (запрос типа GetMap, который генерируется в интерфейсе модулем smismap), запросы на получение метаданных (запрос типа GetMetadata, который генерируется в интерфейсе модулем smismeta), а так же делать запросы на добавление и изменение данных, например добавление полигонов или информации по ним. Таким образом, ядро web-интерфейсов взаимодействует напрямую с сервисами smiswms для получения метаданных и отображения картографической информации. Причем, взаимодействие может осуществляется как с одним сервисом smiswms, так и с произвольным их количеством, причем территориально распределенным.
Отдельной частью прикладного уровня является системный API. Это модули, написанные преимущественно на языке Perl, которые находятся на серверах и позволяют получать доступ к данным и работать с ними на стороне сервера. Все web-сервисы, которые были перечислены выше, работают с данными именно через них. Каждый модуль отвечает за какой-то определенный тип данных или часть системы. Это позволяет гибко настраивать систему, искать ошибки и удобно осуществлять разработку.
Одной из частей системы, которая пронизывает собой все уровни, является система авторизации. Система авторизации позволяет не только ограничивать доступ к определенным типам данных, но и по различным параметрам. Система авторизации работает как на уровне системного API, который используется при реализации web-сервисов и других API модулей, так и на уровне web-интерфейсов, позволяя видоизменять количественно и качественно состав интерфейса, в зависимости от уровня доступа. Система авторизации состоит из API модулей для работы с учетными записями пользователей и web-интерфейса их управления, а так же модуля для веб-сервера, который обеспечивает проверку доступа ко всем web-ресурсам. Система GEOSMIS использует систему авторизации, которая разработана в ИКИ РАН.
Работа с картографическими данными. Одной из основных задач GEOSMIS является унификация доступа к геопространственным данным. Под этим понимается типизация предоставляемых сервисов и стандартизация форматов предоставления данных. Основными типами сервисов, необходимых для GEOSMIS, являются сервис растровых карт, сервис описаний карт (метаданных) и сервис управления данными. Эта функциональность была реализована в web-сервисе smiswms, обеспечивающем работу с картографическими данными в GEOSMIS.
При создании сервиса за основу был взят стандарт OGC WMS (http://www.opengeospatial.org/standards/wms), расширенный и дополненный для того, чтобы удовлетворять запросам существующих web-интерфейсов и специфики формирования карт. В то же время, полностью поддержан базовый формат запроса карт WMS getMap для обеспечения совместимости со сторонними приложениями. Запросы на получение метаданных и управления данными так же были созданы с учетом структурных особенностей стандартов OGC (http://www.opengeospatial.org/standards), с ориентировкой на прикладные варианты использования. В частности, запрос метаданных может предоставлять результаты в формате JSON, поддерживает управление размерами порций выдаваемой информации и работу со специфичными для различных данных фильтрами.
Таким образом, стандарты интерфейсов предоставления данных smiswms не зависят от форматов хранения и предоставления самих данных. В настоящее время сервис smiswms обеспечивает доступ пользователей к информации, хранящейся в большом количестве архивов и баз данных различных форматов. Гибкая поддержка таких источников данных и быстрое добавление новых обеспечивается особенностями внутренней структуры сервиса. Одним из показательных примеров реализации плагина сервиса smiswms является плагин, обеспечивающий работу с распределенным каталогом данных высокого пространственного разрешения. Доступ к этой информации организован таким образом, что и карты, и метаданные из независимых каталогов территориально разнесенных центров агрегируются «на лету» незаметно для пользователей сервиса.
Smiswms имеет модульную структуру. Модули сгруппированы таким образом, чтобы полностью разделить частные алгоритмы и функции реализации доступа к данным, и общую функциональность, обеспечивающую работу сервиса в целом. Таким образом, структура сервиса имеет стандартизированные группы модулей работы с частными данными – плагины, и модули ядра сервиса для работы с плагинами и обслуживания внешних интерфейсов. Структурно-функциональная схема сервиса приведена на рис 4.1.3.3.
Рис.4.1.3.3 Структурно-функциональная схема веб сервиса smiswms
В отдельную группу выделены программные модули, необходимые для поддержки автоматического тестирования сервисов и источников данных. Ключевыми особенностями реализации smiswms являются: изоляция процессов плагинов и ядра, обеспечения параллельности обработки запросов плагинами и наличие единого механизма обработки исключительных ситуаций.
Ядро сервиса smiswms осуществляет работу с плагинами и взаимодействие c web-сервером посредством CGI интерфейсов, а так же необходимую для обеспечения работы сервиса функциональность. Модули каждого из плагинов обеспечивают данными интерфейсные сервисы ядра smiswms. Плагины создаются на основе базовых модулей-классов и имеют стандартные интерфейсные функции для взаимодействия с ядром. Такой подход обеспечил простоту добавления, конфигурирования наборов плагинов и удобство совместной разработки функциональности сервиса в целом.
Отдельными группами модулей в smiswms выделены плагины тестов. Такое решение определено, в первую очередь, уникальностью алгоритмов тестирования функциональности каждого плагина и, зачастую, необходимостью дополнительно конфигурировать параметры алгоритмов для различных проектов. Плагины тестов так же унифицированы по интерфейсам взаимодействия с ядром.
Большое внимание при создании сервиса smiswms было уделено оптимизации быстродействия. Оптимизация сервисов предоставления данных, метаданных и карт производилась в трех основных направлениях – оптимизация алгоритмов и функций работы с данными в каждом из плагинов, возможность параллельной работы плагинов и применение средств кеширования запросов. Хотя, во многом, быстродействие сервиса обеспечивается частными решениями, принятыми при построении специализированных систем хранения данных, которые должны обеспечить быструю выборку данных для формирования карт и обеспечения метаданными, в том числе, из распределенных источников. Один из успешных подходов к реализации оптимизированной системы хранения, доступ к данным которой обеспечен плагинами сервиса smiswms .
Сервис smiswms реализован c использованием интерпретатора perl и модулей с открытым исходным кодом. Такое решение позволило использовать различные операционные среды для работы сервиса без существенных изменений.
Построение картографических интерфейсов на основе GEOSMIS Особое внимание при разработке системы GEOSMIS уделялось вопросу организации структуры интерфейсов работы с данными. Учитывая, что необходимо организовать достаточно понимаемые и удобные интерфейсы, обеспечивающие работу с разнотипными, быстро обновляющимися пространственными данными, необходимо было выработать некоторые общие подходы, которые позволили бы пользователям достаточно легко ориентироваться в интерфейсе. Поэтому был разработан некоторый базовый тип web-интерфейса, структура которого представлена на рис. 4.1.3.4.
Рис. 4.1.3.4 Пример базового интерфейса для работы с данными в GEOSMIS.
На рисунке отмечены ключевые функциональные области интерфейса.
Для того, чтобы обеспечить работу с разными типами данных, управление интерфейсом имеет блочную структуру. Каждому типу данных и характерным функциям управления соответствуют свои модули в интерфейсе. На уровне пользователя для каждого модуля и типа данных в интерфейсе созданы соответствующие вкладки работы с данными. Такая структура позволяет группировать различные однотипные данные, и различные операции с данными, для удобной и понятной работы пользователя. Модульная структура позволяет также сделать интерфейс масштабируемым, при этом добавление в интерфейс новых данных или их групп или дополнительных операций не представляет заметных трудностей. Структура позволяет конфигурировать интерфейс для работы с нужными типами данных. Следует также отметить, что в различных специализированных системах, которые используют интерфейсы, построенные по данному принципу, управление работой с однотипными данными может осуществляться однотипными базовыми вкладками. Это облегчает как разработку специализированных интерфейсов, так и обмен данными между различными системами.
Для удобной работы пользователей с разновременными данными в интерфейсе реализованы достаточно однотипные блоки, которые позволяют управлять различными по типам спутниковыми данными и результатами их обработки. Например, работать с:
- данными высокого пространственного разрешения, представление которых осуществляется достаточно локализованными сценами;
- данными низкого и среднего разрешения, характерной единицей представления которых являются «сеансы», охватывающие значительные территории;
- сериями временных и пространственных композитов различных продуктов обработки спутниковых данных.
В интерфейсе предусмотрена также специальная возможность выборки различных типов слоев для проведения их совместного детального анализа. Выбранные слои (сцены, сеансы и т.д.) собираются в отдельной вкладке, в которой в зависимости от задач конкретной реализации интерфейса, с ними можно осуществлять те или иные операции.
Особое внимает при построении интерфейсов уделено также вопросу обеспечения для пользователей прозрачных схем получения информации, хранящейся в распределенных архивах данных или даже в разных системах мониторинга. Интерфейсы рассчитаны на прозрачное для пользователя получение данных из различных источников, т.е. пользователь во многих случаях даже не замечает из каких именно систем хранения или, например, центров предоставления информации он получает конкретные данные. Как уже отмечалось, интерфейс интегрирован с системой авторизации, что позволяет пользователю, проведя авторизацию на входе в конкретный интерфейс, получить возможность работы с различными распределенными информационными ресурсами в соответствии с политикой конкретной системы.
Интерфейсы также позволяют включать в себя различные функции, связанные с управлением данными. Например, заказ данных из архивов или назначение их в специализированные обработки, реализованные в конкретных системах, а также управление экспортом данных в различные сторонние системы.
В интерфейсе поддерживается достаточно богатый набор управления отображением пространственных данных, который является практически стандартным для различных ГИС систем.
Особое внимание при разработке системы GEOSMIS уделялось вопросам, связанным с оптимизацией работ по созданию, развитию и поддержке интерфейсов, создаваемых для конкретных систем дистанционного мониторинга. Поэтому в системе предусмотрены различные конфигурационные модули, которые позволяют легко управлять базовыми настройками интерфейса. Модули конфигурации позволяют производить гибкую настройку интерфейса. В модуле конфигурации доступа к данным задаются сервера доступа к данным, параметры wms-запросов для получения данных, а также дополнительные параметры, такие как формат данных. В модулях конфигурации метаданных задаются параметры получения метаданных, а также параметры формирования списка метаданных. Конфигурация модуля smismap позволяет управлять как основными, так и дополнительными элементами управления картой. Общая конфигурация проекта производится в главном файле проекта, в этом файле прописываются все модули конфигурации.
Описанная система позволяет легко создавать различные специализированные интерфейсы на основе базового интерфейса. Для создания таких специализированных интерфейсов фактически требуется:
- Установка базовых модулей. Для этого на серверах, которые должны будут обеспечивать работу интерфейсов, устанавливаются базовые модули, используемые в любых интерфейсах этого типа. К примеру, к таким модулям относятся библиотеки smismap и smismeta. При этом также создается базовая структура директорий, и в ней разворачиваются общие модули, соответствующие тем типам данных, которые будут использоваться в интерфейсе. К примеру, если в интерфейсе используются данные высокого разрешения, на серверах создаются соответствующие директории, в которые помещаются модули, ответственные за работу с этими типами данных. Также разворачиваются модули управления, например, модуль управления корзиной и модуль выдачи информации по точке.
- Базовая конфигурация интерфейса. Основные параметры, необходимые для работы интерфейса, задаются в специальных конфигурационных файлах. В них, например, задаются адреса и wms-запросы тех слоёв, которые будут отображаться, адреса и параметры запроса к используемым метаданным. Также прописывается состав стандартных вкладок, из которых состоит интерфейс, и некоторые начальные его параметры (к примеру, такие как начальные координаты входа в интерфейс). В процессе конфигурации также должны быть настроены связи с архивами используемых данных.
- Создание специализированных модулей. Естественно, что при создании интерфейсов для конкретной специализированной системы обычно нельзя ограничиться функциональностью, которую обеспечивают базовые блоки (вкладки, стандартные реакции на события и т.д.). Использующаяся в GEOSMIS схема организации интерфейсов позволяет легко расширять функциональность интерфейса и включать в него дополнительные модули, что может быть необходимо для обеспечения доступа к специализированным видам информации. Разработка нового модуля включает в себя создание серверного и клиентского компонентов. Серверный компонент обеспечивает доступ к данным в соответствии со стандартом WMS. Клиентский компонент представляет собой вкладку интерфейса, содержащую элементы управления, предназначенные для формирования WMS-запросов на получение данных. Также при необходимости в модуль добавляются функции взаимодействия с другими модулями системы, и функции работы и анализа данных. Конфигурация интерфейса, включающая перечень используемых модулей и источников данных, необходимых для их работы, указывается в файлах настройки
- Сборка интерфейса. Интерфейс собирается из набора вкладок, соответствующих javascript-модулей и конфигурационных файлов. Адреса вкладок, каждая из которых представляет отдельный html-файл, прописываются в главном html-файле интерфейса. Там же прописываются файлы конфигураций, и включаемые в интерфейс модули. После этого собранный интерфейс готов к работе.
Подобная схема действий позволяет достаточно однотипно осуществлять создание сложных интерфейсов, необходимых для работы различных систем мониторинга. Конечно, следует учитывать, что для работы интерфейса, необходимо во многих случаях также осуществлять доработки функций доступа к специфическим данным, использующимся в системах мониторинга, для того чтобы они могли взаимодействовать с интерфейсом. Однако такие функции взаимодействия интерфейса с архивами данных достаточно унифицированы, что позволяет использовать предлагаемые подходы для работы с достаточно широким классом архивов данных.
Отметим, что описанная технология GEOSMIS сегодня является одной из первых технологий, ориентированных на построение сложных специализированных интерфейсов для обеспечения работы с пространственными данным в различных системах дистанционного мониторинга. GEOSMIS ориентирована на создание систем, удовлетворяющих требованиям, которые обсуждались во введении к настоящей работе, в том числе такие системы должны позволять:
- работать с большими объемами разнородной информации, покрывающей большие территории;
- работать с данными разновременных, долговременных наблюдений;
- работать с распределенными информационными ресурсами;
- работать как с оперативно обновляющейся информацией, так и долговременными архивами данных;
- осуществлять не только поиск и визуальный просмотр данных, но и проводить их качественный и количественный анализ (фактически обеспечивать создание активных архивов данных);
- обеспечивать возможность управления обработкой информации.
Опыт использования GEOSMIS при создании интерфейсов работы с данными в различных система дистанционного мониторинга показал, что система является устойчивой, легко масштабируемой, удобной в поддержке и позволяющей создавать достаточно прозрачные и удобные в работе системы. В настоящее время в ИКИ РАН активно ведутся работы по расширению функциональных возможностей системы и построения на ее основе блоков работы с данными в различных прикладных и научных проектах.