Первым картографическим веб-приложением считают созданную в 1993 году программу Map Viewer Исследовательского центра Пало-Альто компании Xerox (PARC), которая позволяла пользователям в интерактивном режиме отправлять запросы из браузера к серверу и получать фрагменты карт в графическом формате GIF. Именно это приложение и его функциональная концепция стало родоначальником большинства более поздних версий картографических веб-систем. Где-то с 1998 года в процесс создания систем указанного класса включились крупные компании – производители программного обеспечения ГИС: ESRI, Intergraph, MapInfo и другие берутся за разработку приложений для веб-картографии. С этого же момента времени начинает свою историю наиболее успешный из некоммерческих проектов с открытым исходным кодом – MapServer, разработка которого стартовала в Университете штата Миннесота. В последующие годы идет интенсивное формирование рынка программного обеспечения веб-картографии; темпы его развития не снижаются и в настоящее время. Возникают многочисленные разработки – от простых интерактивных средств визуализации заранее подготовленных карт в веб-браузере до сложных распределенных систем обработки корпоративной геопространственной информации [7, 8].
В контексте отмеченных выше тенденций в ИВМ СО РАН на протяжении нескольких последних лет ведутся исследования, посвященные проектированию и разработке математического и информационно-вычислительного обеспечения для распределенных геоинформационных аналитических систем на основе веб-технологий. Результатом этих работ стал комплекс программно-технологических решений для построения прикладных геоинформационных веб-систем (геопорталов) – система управления пространственными данными (СУПД) и связанный с ней программный инструментарий [2, 4].
В настоящей статье рассмотрим структуру и функции библиотеки интеграции веб-приложений в геопортал СУПД, некоторые особенности ее реализации.
Библиотека интеграции веб-приложений
Центральным звеном СУПД с точки зрения доступа пользователей к ее функциональным модулям является геопортал, представляющий собой веб-сайт (Интернет-портал). Функциональными модулями в данном случае являются различные веб-сервисы и веб-приложения, предоставляющие средства для работы с пространственными данными, зарегистрированными в каталоге ресурсов системы. Поскольку архитектура СУПД была разработана с расчетом на гибкое расширение функциональных возможностей, в состав системы могут быть внедрены совершенно различные функциональные модули, которые могут быть разработаны с применением самых разнообразных систем и средств [1, 3].
Для упрощения процесса внедрения веб-приложений (созданных на языке PHP) в геопортал СУПД была разработана библиотека интеграции веб-приложений, предоставляющая разработчикам набор средств для объединения логики разработанных приложений с предоставляемыми системой функциями аутентификации, авторизации, работы с каталогом ресурсов и т.д. Кроме того, библиотека предоставляет средства визуального оформления некоторых элементов пользовательского интерфейса [5].
Описание логического уровня библиотеки
Логическая структура библиотеки представляет собой совокупность следующих функциональных блоков.
● Общие настройки компонентов системы
Наличие общих настроек, которые используются во всех подключаемых к системе веб-приложениях, исключает дублирование одинакового типа и облегчает смену параметров, а также перенос и развёртывание всего программного комплекса на другом сервере.
● Библиотеки клиентского API каталога ресурсов
Хранение актуальной версии клиентской библиотеки доступа к каталогу ресурсов посредством SOAP для веб-приложений в одном месте также позволяет осуществлять своевременные обновления функционала и облегчает перенос и развёртывание системы на другом веб-сервере.
● Средства аутентификации и авторизации пользователей
Реализация сквозной аутентификации и авторизации во всех компонентах системы являлась одним из основных требований при разработке библиотеки, поскольку отсутствие подобного функционала затрудняет работу пользователей, вынуждая их вводить учётные данные при переходе от одного веб-приложения к другому. Созданные средства на данный момент позволяют осуществлять аутентификацию и авторизацию пользователей на основе пользовательских сессий PHP и на основе Cookie-файлов. При выборе методики разработчики должны опираться на архитектуру размещения веб-приложений, входящих в состав системы. Если все веб-приложения располагаются на одном веб-сервере, то использование Cookie-файлов является необязательным. При расположении на разных веб-серверах применение Cookie является необходимостью.
● Общие компоненты пользовательского интерфейса
Поддержка визуальной целостности пользовательских интерфейсов веб-приложений, интегрируемых в систему, и обеспечение пользователей средствами навигации по компонентам системы также являлись важными задачами при разработке библиотеки. Для этой цели был создан класс GPTemplate, содержащий основные функции и методы формирования общих компонентов пользовательского интерфейса, а также их интеграции в веб-приложение.
Описание состава и функций библиотеки
● Общие настройки компонентов системы
В число общих настроек входят: корневой URL системы, заголовок (название) системы, данные гостевой учётной записи, адрес страницы входа в систему, адрес доступа к сервису каталога ресурсов.
● Компоненты пользовательского интерфейса
Библиотека обеспечивает пользователей средствами базовой навигации по основным разделам геопортала. В текущей версии подобные компоненты интерфейса представляют собой набор из двух горизонтальных блоков, расположенных в верхней («шапка») и нижней части («подвал») веб-страницы приложения.
Верхний блок содержит следующие компоненты: логотип (заголовок) текущей реализации системы, являющийся ссылкой на главную страницу, многоуровневое главное меню по основным разделам системы, область для частных элементов интерфейса, которую могут использовать разработчики веб-приложений, кнопка входа в систему или имя пользователя, под которым осуществлён вход, и кнопку выхода.
Блок, расположенный в нижней части страницы, традиционно содержит полное название системы, информацию об авторских правах, ссылки на сайты разработчиков, описание проекта и т.д.
● Средства аутентификации и авторизации пользователей
Для осуществления аутентификации и авторизации пользователей был создан набор средств, включающих в себя:
○ Класс GPAuth, предоставляющий основные функции входа в систему, проверки прав доступа и т.д.;
○ Класс GPCookie, предназначенный для осуществления работы с файлами Cookie;
○ Страница входа в систему, на которую перенаправляются пользователи, желающие осуществить первичный вход в систему в текущем сеансе.
Постоянная информация, которую содержат Cookie-файлы, включает помимо всего прочего данные о текущей версии структуры Cookie. Данное решение принято для поддержки дальнейших возможных изменений формата хранимых данных.
Для осуществления безопасной работы и пресечения попыток взлома системы все данные, хранимые в Cookie-файлах, подвергаются шифрованию. В текущей версии библиотеки используется криптографический алгоритм blowfish, реализующий блочное симметричное шифрование. При желании данный метод можно изменить на любой другой, поддерживаемый расширением PHP mcrypt.
Страница входа в систему состоит из одного раздела, содержащего форму из двух текстовых полей для ввода логина и пароля пользователя и кнопки «Войти», осуществляющей отправку данных. В случае неудачного ввода данных страница выдает сообщения об ошибке.
Основные бизнес-процессы библиотеки интеграции веб-приложений
Основными бизнес-процессами, которые автоматизирует библиотека интеграции веб-приложений, являются процессы сквозной аутентификации пользователей. Существует два типа подобных процессов: при первоначальном входе пользователя в систему и после первоначального входа.
Рис. 1. Последовательность запросов при первоначальной аутентификации
На рис. 1 изображена логическая схема, соответствующая первому типу процесса аутентификации. При входе в систему пользователь должен пройти следующие этапы:
1. Пользователь, используя веб-браузер, отправляет запрос веб-приложению.
2. Сценарий веб-приложения, используя библиотеку интеграции, обнаруживает, что пользователь не аутентифицирован и не авторизован (у пользователя либо отсутствует достоверный Cookie-файл, либо отсутствует необходимый набор данных в PHP-сессии). Посредством функций библиотеки сценарий веб-приложения перенаправляет пользователя на страницу входа в систему, расположенную на сервере каталога пространственных данных, указывая в данном запросе зашифрованный адрес страницы, на которую пытался зайти пользователь (для осуществления автоматической переадресации на данную страницу в случае успешной аутентификации).
3. Веб-браузер пользователя запрашивает страницу входа в систему, расположенную на сервере каталога пространственных данных.
4. В веб-браузере отображается страница, содержащая форму ввода логина и пароля.
5. Пользователь вводит необходимые данные своей учётной записи, которые отправляются на сервер каталога пространственных данных.
6. Сервер аутентификации обрабатывает запрос и в случае успеха создаёт сеанс работы пользователя с сервисом каталога ресурсов, после чего перенаправляет пользователя на страницу, на которую изначально осуществлялся вход. В случае использования Cookie-файлов, сервер также отправляет в веб-браузер пользователя зашифрованный файл Cookie с идентификатором сеанса каталога ресурсов и необходимой аутентификационной информацией. Если Cookie-файлы не используются, то информация заносится в PHP-сессию пользователя.
7. Веб-браузер пользователя осуществляет повторный запрос первоначальной страницы веб-приложения.
8. Сценарий веб-приложения проверяет достоверность информации в Cookie-файле или сеансе пользователя и допускает пользователя к работе с приложением.
Рис. 2. Последовательность запросов после первоначальной аутентификации
При последующей работе пользователя с веб-приложением используется более короткая схема работы, изображённая на рис. 2.
1. Пользователь, используя веб-браузер, отправляет запрос веб-приложению.
2. Сценарий веб-приложения, используя библиотеку интеграции, определяет идентификатор пользовательской сессии в сервисе каталога пространственных данных.
3. Посредством прикладного программного интерфейса веб-сервиса каталога пространственных данных сценарий веб-приложения обращается к сервису с попыткой возобновить сеанс пользователя.
4. Если сеанс существует, то сервер каталога отправляет ответ веб-приложению с отметкой о существовании. Если сеанс устарел, то производится попытка автоматической аутентификации с использованием данных в Cookie-файле или PHP-сессии и создания нового сеанса пользователя. Если аутентификационная информация неверна, и создать сеанс не получается, включается алгоритм первоначального входа, начиная с пункта 2.
Заключение
Разработанное программно-технологическое обеспечение для интеграции веб-приложений в геопортал системы управления пространственными данными стало одним из системообразующих компонентов для ряда разработанных и внедренных прикладных систем, в том числе –
● Геопортал ИВМ СО РАН.
● «Банк пространственных данных Красноярского края» – информационно-аналитическая система межведомственного взаимодействия, поддержку которой осуществляет Министерство информатизации и связи Красноярского края.
● «Геоинформационная система мониторинга состояния окружающей природной среды в зоне действия предприятий нефтегазовой отрасли Красноярского края» [6].
В каждой из упомянутых разработок стояла задача обеспечения сквозной авторизации пользователей, интеграции отдельных подсистем и специализированных сервисов –
● Веб-приложение для визуализации каталога пространственных данных.
● Подсистема администрирования данными каталога ресурсов, предназначенная для регистрации информационных ресурсов, управления их метаданными и классификацией.
● Подсистема картографической визуализации посредством веб-интерфейса.
● Средства информационного взаимодействия пользователей геопортала.
● Служебные, прикладные и картографические веб-сервисы.
Внедрение рассматриваемой технологии интеграции компонентов многозвенных систем обеспечивает существенное сокращение сроков их разработки.
Рецензенты:Садовский М.Г., д.ф.-м.н., ведущий научный сотрудник ИВМ СО РАН, г. Красноярск;
Заворуев В.В., д.б.н., профессор Сибирского федерального университета, г. Красноярск.
Работа поступила в редакцию 05.12.2013.