Вы здесь: Главная Статьи и публикации о ГИС Статьи и публикации о ГИС Сервис-ориентированная архитектура программного обеспечения корпоративных геоинформационных систем
^ВВЕРХ
С. В. Павлов, Т. М. Усов, Р. А. Шкундина
Сервис-ориентированная архитектура программного обеспечения корпоративных геоинформационных систем
В настоящее время геоинформационные системы (ГИС) широко используются для решения задач корпоративных пользователей, например, в таких областях, как кадастровый учет, градостроительная деятельность, природопользование и многих других, предоставляя пользователям возможности управления пространственными данными, решения задач пространственного анализа, планирования и прогнозирования. При этом ГИС нередко выступают как инструмент интеграции разнородных информационных систем предприятия, поэтому программное обеспечение (ПО) геоинформационных систем должно быть интегрированной частью корпоративной информационной среды.
Большая часть геоинформационных систем реализована в рамках клиент-серверной архитектуры с «толстым» клиентом: на рабочие места пользователей (настольные компьютеры) устанавливается специальное ресурсоемкое программное обеспечение ГИС, реализующее интерфейс пользователя, включая задачи визуализации векторных и растровых пространственных данных (карт) и логику приложения, в том числе операции обработки данных. Такая архитектура программного обеспечения имеет ряд ограничений: с точки зрения пользователей из- за требования, предъявляемых к рабочим местам, организационно-технически усложняется доступ к ГИС. С точки зрения разработчиков усложняются процессы развертывания (внедрения) и сопровождения (обновления) программного обеспечения ГИС. Также труднореализуемой является задача интеграции ПО ГИС с другими информационными системами предприятия, что является актуальной задачей для современных корпоративных информационных систем.
Стремление преодолеть названные ограничения привело к развитию архитектур и технологий создания программного обеспечения, связанных с размещением логики приложений (компонентов ПО) и всех данных на серверных вычислительных комплексах, что особенно важно для геоинформационных систем ввиду большого объема пространственных данных и ресурсоемкости операций их обработки. В то время как позволяющие размещать пространственные данные на серверах системы управления базами данных (СУБД) повсеместно используются в рамках геоинформационных систем на основе клиент-серверных архитектур с «толстым» клиентом, задача размещения на серверах логики приложений ГИС долгое время оставалась нерешенной и является актуальной сегодня. Наиболее перспективной архитектурой программного обеспечения, в рамках которой возможно эффективное решение этой задачи (с позиций сложности реализации, сопровождения, интеграции с другими информационными системами, программного обеспечения многопроцессорных вычислительных комплексов), является сервис-ориентированная архитектура (СОА). Однако при внедрении новых типов архитектур ПО корпоративных информационных систем требуется сохранять функциональные возможности существующего программного обеспечения, поэтому представляется актуальной задача преобразования компонентов существующего ПО ГИС при переходе от клиент- серверной архитектуры к сервис-ориентированной с «тонким» клиентом.
В статье приводится анализ особенностей сервис-ориентированной архитектуры программного обеспечения корпоративных геоинформационных систем, рассматриваются возможности создания программного обеспечения для многопроцессорных вычислительных комплексов, предлагается метод решения названной задачи преобразования ПО ГИС при переходе к сервис-ориентированной архитектуре.
Проанализируем различия клиент-серверной и сервис-ориентированной архитектур программного обеспечения ГИС, рассмотрев их в контексте развития архитектур программного обеспечения корпоративных информационных систем [3, 5].
Рис. 1. Размещение компонентов ПО ГИС системы моделирования распространения нефти по суше и речной сети в рамках двухъярусной клиент-серверной архитектуры
Программное обеспечение первых корпоративных информационных систем представляло собой монолитные модули, включающие в себя все компоненты программного обеспечения (СУБД, логику приложения, логику взаимодействия с пользователем), размещаемые на мейнфреймах. Доступ к таким системам осуществлялся посредством «тонких» клиентов, например, текстовых терминалов. В силу концентрации всего ПО на сервере (мейнфрейме), такой тип архитектуры называют одноярусной клиент- серверной архитектурой (с «тонким» клиентом).
С начала 90-х годов начинает преобладать двухъярусная клиент-серверная архитектура (с «толстым» клиентом), в рамках которой на серверах размещаются данные и СУБД, а остальные компоненты программного обеспечения (логика приложений и графический интерфейс пользователя) размещаются на настольных компьютерах («толстые» клиенты). Для многих типов ресурсоемких приложений, например, приложений обработки видео, графики, систем автоматизированного проектирования - САПР, а также геоинформационных систем этот тип архитектуры остается распространенным и сегодня. В некоторых случаях сервер данных может отсутствовать, но это не меняет архитектуры клиентского программного обеспечения.
Рассмотрим типовое распределение компонентов программного обеспечения геоинформационных систем между вычислительными узлами в рамках двухъярусной клиент-серверной архитектуры на примере системы моделирования распространения нефти и нефтепродуктов по суше и речной сети в рамках геоинформационной системы Федерального агентства водных ресурсов (рис. 1). На сервере данных размещается программное обеспечение системы управления базами данных и базами пространственных данных. Обозначим множество фрагментов исходного кода серверного ПО, реализующих модели данных, как MD, а множество фрагментов исходного кода серверного ПО, реализующих систему безопасности, как KD (верхним индексом D будем обозначать множества фрагментов исходного кода, размещаемых на серверах данных). На компьютерах клиентов размещается программное обеспечение геоинформационной системы, реализующее логику приложения и графический интерфейс пользователя, представленное, как правило, тремя компонентами (физическими модулями): модуль базового ПО ГИС, модуль геообработки и модуль специального ПО ГИС.
Модуль базового ПО ГИС (например, Arc- Map) решает общие для различных геоинформационных систем задачи, а именно: отрисовка изображений карт (множество фрагментов исходного кода ПО, реализующих эту задачу, обозначено как GB), графический интерфейс пользователя (UB).
Модули геообработки (например, ArcTool- box) реализуют тематическую обработку пространственных данных (множество соответствующих фрагментов исходного кода ПО обозначено как {PBi}) в виде совокупности базовых операций (например: пересечение, объединение и другие множественно-ориентированные операции над пространственными объектами) и специфических операций (например: интерполяция точечных значений, построение топологических отношений объектов базы пространственных данных). В качестве примера такого модуля геообработки системы моделирования можно привести PZ3 - модуль построения цифровой модели рельефа (растра высот рельефа) на основе векторных данных (изогипс, отметок высот, речной сети).
Третий типовой компонент клиентского ПО ГИС - модули специального программного обеспечения, решающие предметно-ориентированные задачи, свойственные конкретной геоинформационной системе. В рассматриваемом примере это модуль моделирования распространения нефти, состоящий из пяти логических модулей: создание отчетов (P^); моделирование распространения нефти по речной сети (P^); моделирование распространения нефти по суше (PZ3); построение цифровой модели рельефа (PZi); графический интерфейс пользователя, в состав которого входят собственно графический интерфейс (UZ) и модуль управления всем приложением (CZ). Помимо программных компонент модуль моделирования содержит три набора данных: параметры алгоритмов геообработки {APj}, временные данные {DTt} и документы карт {Е^. Основные недостатки использования двухъярусной клиент-серверной архитектуры в рассматриваемом примере заключаются в следующем.
Для использования системы конечному пользователю (клиенту) необходим производительный компьютер с установленным на нем специальным программным обеспечением. Для обновления этого программного обеспечения требуется выполнение процедуры обновления модулей ПО у всех клиентов, что приводит к большим затратам времени.
Несмотря на то, что задача моделирования распространения нефти по суше и речной сети является востребованной для многих государственных ведомств и коммерческих организаций, ее решение в виде системы с «толстым» клиентом не позволяет предоставлять доступ к функциональным возможностям системы удаленным пользователям либо другим информационным системам.
Названные недостатки частично преодолеваются в рамках многоярусных клиент-серверных архитектур традиционных интернет-приложений, позволяющих удаленным пользователям получать доступ к функциональным возможностям ГИС без установки специального ПО на компьютеры клиентов. При этом программное обеспечение «толстых» клиентов разбивается на физические компоненты, которые распределяются между несколькими архитектурными уровнями - ярусами: ярусом данных (файлы данных и СУБД, размещаемые на серверах данных), ярусом приложений (компоненты программного обеспечения, реализующие логику приложения, размещаемые на серверах приложений) и ярусом графического пользовательского интерфейса (соответствующие компоненты ПО распределяются между серверами и клиентскими компьютерами либо размещаются целиком на клиентских компьютерах). Для системы моделирования распространения нефти такое размещение компонентов «толстых» клиентов представлено на рис. 2.Сервер данных (ярус данных)
Рис. 2. Размещение компонентов ПО ГИС системы моделирования распространения нефти по суше и речной сети в рамках многоярусной клиент-серверной архитектуры
Однако в многоярусной клиент-серверной архитектуре отсутствуют единые подходы к разбиению логики приложения на компоненты и единые способы реализации взаимодействия компонентов, что существенно осложняет масштабирование системы, организацию и управление параллельным доступом пользователей и других информационных систем к отдельным подсистемам ГИС. Так, серверное приложение ГИС в рамках многоярусной архитектуры (рис. 2), как правило, представляет собой монолитный программный модуль, поэтому реализация взаимодействия внешних информационных систем с отдельными логическими компонентами этого приложения является трудоемкой либо невозможной без разбиения серверного ПО на физические модули.
Эти ограничения преодолеваются в рамках сервис-ориентированной архитектуры. Единые межплатформенные механизмы взаимодействия отдельных частей программного обеспечения, отсутствующие в двухъярусной и многоярусной клиент-серверных архитектурах, и декомпозиция ПО ГИС на набор сервисов - слабосвязанных исполняемых и готовых к использованию модулей - позволяют эффективно решать задачи интеграции ГИС с другими информационными системами предприятия путем предоставления межплатформенного сетевого доступа к функциональным возможностям сервисов ГИС конечным пользователям и другим информационным системам. На рис. 3 представлено размещение компонентов ПО системы моделирования распространения нефти по суше и речной сети, соответствующее требованиям сервис- ориентированной архитектуры: в отличие от клиент-серверных архитектур (рис. 1, 2) компоненты ПО ГИС сгруппированы в набор сервисов, взаимодействующих между собой и с другими ИС посредством межплатформенных протоколов (HTTP, SOAP и других).
Рис. 3. Размещение компонентов ПО ГИС системы моделирования распространения нефти по суше и речной сети в рамках сервис-ориентированной архитектуры
В следующем разделе приводится метод преобразования ПО ГИС при переходе от клиент-серверной архитектуры с «толстым» клиентом к сервис-ориентированной архитектуре с «тонким» клиентом, позволяющий сохранить большую часть исходного программного кода, реализующего основные расчетные функции (логику приложения). Преобразование программного обеспечения геоинформационных систем при переходе от двухъярусной клиент-серверной к сервис- ориентированной архитектуре. Предлагаемый метод преобразования ПО ГИС при переходе от двухъярусной клиент- серверной к сервис-ориентированной архитектуре включает в себя решение двух основных задач: преобразование модулей настольного ПО ГИС для обеспечения возможности их выполнения на стороне серверов; реализация серверного ПО ГИС в виде набора сервисов. Исходное ПО ГИС реализовано множеством фрагментов исходного кода R = {MD, KD, GB, UB, {PBi}, {PZi}, UZ, CZ, {Ek}, {DTt}, {APj}} (рис. 1). Решение двух названных задач позволяет выполнить преобразование g:R^Rs, где Rs - реализация исходной системы R в рамках сервис-ориентированной архитектуры. Выделим следующие этапы решения первой задачи - преобразования модулей ПО ГИС, размещенных на стороне клиента в рамках двухъярусной клиент-серверной архитектуры, для их размещения на серверах - на примере преобразования модуля моделирования распространения нефти по суше и речной сети (рис. 1, 2). Из модуля моделирования удаляются фрагменты исходного кода, реализующие графический интерфейс пользователя ({UZ, CZ}), и определяются фрагменты исходного кода, осуществляющие связь логики приложения с графическим интерфейсом пользователя (Is). Создаются картографические сервисы {Gsk, KGk}, выполняющие отрисовку карт. Отрисовка изображений карт является ресурсоемкой задачей, так как включает в себя запрос векторных данных из базы пространственных данных, их проецирование в используемую для отображения систему координат и собственно отрисовку изображений. Поэтому для снижения нагрузки на серверы создаются графические кэши карт {Hk} — заранее отрисованные и хранимые на серверах изображения карт. Создание картографических сервисов и ограничение доступа к ним удаленных пользователей (реализация системы безопасности {KGk}), как правило, выполняется средствами базового серверного ПО ГИС (например, ArcGIS Server), то есть не требует разработки дополнительного ПО. Создается серверное приложение ГИС, в рамках которого преобразованный (п. 1) модуль моделирования размещается на сервере. Проектируется (на основе форм исходного графического интерфейса) и создается (без использования программного кода исходного приложения) модуль графического интерфейса пользователя {Us, Cs}, размещаемый на компьютере клиента. После выполнения перечисленных этапов возможен ввод системы моделирования распространения нефти в промышленную эксплуатацию, однако архитектура ПО системы в целом остается клиент-серверной - многоярусной (рис. 2). Поэтому необходимо решить вторую задачу рассматриваемого метода - реализация серверного ПО ГИС в виде набора сервисов. Рассмотрим этапы решения этой задачи. Анализ и проектирование сервисов: каждый проектируемый сервис должен решать отдельную прикладную задачу, например, моделирование распространения нефти по речной сети, по суше, формирование отчетов. Во время проектирования выполняется иерархическое упорядочивание сервисов и проектирование каталога сервисов C'. При иерархическом упорядочении часть сервисов может быть скрыта от пользователей и других информационных систем (сервисы геообработки и построения цифровой модели рельефа), а часть сервисов, непосредственно используемых пользователями и другими ИС (моделирование распространения по речной сети, по суше, построение отчетов), должны иметь неизменяемый со временем программный интерфейс. Информация о них (метаданные) должна быть размещена в каталоге сервисов для их поиска, например, по таким запросам: «Найти сервис, позволяющий выполнять моделирование распространения нефти по речной сети на основе векторных данных (изогипс, отметок высот, речной сети) масштаба 1:50 000». Выполнение декомпозиции серверного ПО. Модуль моделирования разбивается на пять сервисов si (рис. 3) по количеству исходных логических модулей, при этом каждый исходный логический модуль PZi дополняется системой безопасности KBi (ограничения доступа удаленных пользователей) и исходным кодом Qsi, реализующим возможности программного взаимодействия с другими сервисами и информационными системами посредством межплатформенных интерфейсов. То есть § = {PZi, KZi, QZi}. Аналогично выполняется преобразование модулей геообработки P^ сервисы SP;. Таким образом завершается преобразование g:R ^ Rs, при этом Rs = {{Us, Cs}, {§}, {5ч}, {Gi}, {MD, KD}}. Рассмотренный метод преобразования ПО ГИС учитывает специфику геоинформационных систем (например, ресурсоемкость задач обработки пространственных данных, необходимость визуализации результатов работы системы в виде карт) и позволяет управляемо, в несколько итераций, решить задачу преобразования клиент-серверного программного обеспечения ГИС с «толстым» клиентом при переходе к сервис-ориентированной архитектуре с «тонким» клиентом с сохранением исходных функциональных возможностей и основной части кода исходного программного обеспечения.
В статье предложено решение актуальной задачи преобразования программных модулей существующего двухъярусного клиент- серверного программного обеспечения геоинформационных систем с «толстым» клиентом в сервис-ориентированное ПО ГИС с «тонким» клиентом. Предложен метод поэтапного, управляемого решения этой задачи с учетом специфики ГИС, который позволяет выполнить преобразование компонентов исходного ПО ГИС с сохранением большей части исходного кода, реализующего логику приложения, понизить общую сложность системы, воспользоваться преимуществами сервис-ориентированной архитектуры, разместив программное обеспечение ГИС на серверных вычислительных комплексах и обеспечив к нему доступ посредством «тонких» клиентов. Предложенный метод применен [1, 2] для преобразования задач моделирования природных и техногенных процессов - аварийных разливов нефти по суше и речной сети, построения водосборных бассейнов, моделирования зон затопления при паводковых ситуациях - в геоинформационной системе Федерального агентства водных ресурсов России.
Список литературы
На сайте есть все что нужно знать о ГИС
Все о ГИС специального назначения
Сайт для тех кто хочет все знать о ГИС
Сайт для тех кто изучает ГИС
Сайт для тех кто участвует в развитии ГИС