logo
Разработка геоинформационного программного обеспечения на базе открытых продуктов для целей кадастра

1.2 Технологии разработки ГИС

Один из основных вопросов при выборе платформы проектируемого ГИС приложения, особенно при проектировании корпоративных систем, - как долго выбранная платформа будет удовлетворять растущим потребностям организации. Как правило, выбирая геоинформационную систему, планируется с ее помощью решать определенные задачи. Но позже может оказаться, что выбранная технология не во всем обеспечивает решение расширяющегося круга задач. Следствием этого является необходимость выбора: либо нужно отказаться от решения ряда задач, либо переходить на некую новую технологическую платформу. Таким образом затраты организации на приобретение программного продукта, его адаптацию, обучение персонала оказываются в определенном смысле потерянными. Кроме того, при переходе на новую платформу требуются определенные дополнительные ресурсы на преобразование данных, которые уже введены в используемую систему.

Описанный выше сценарий сегодня не безальтернативен. Использование для создания корпоративных ГИС приложений компонентного подхода, базирующегося на Component Object Model (COM), позволяет избежать многих трудностей на пути внедрения ГИС технологий.

Прежде чем определяться с необходимыми компонентами, следует определить тип приложения, покрывающего потребности организации. Все возможные геоинформационные системы можно разделить на три типа: персональные ГИС, приложения в архитектуре клиент-сервер, Internet приложения.

Персональная ГИС используется при небольших объемах данных и небольшом количестве пользователей. Выбор определяется сложностью запросов и размерами баз данных. Как правило, данные необходимо использовать не на одном компьютере. Обычно с ними работает группа пользователей. В этом случае система должна обеспечивать работу с данными с помощью монопольного или разделенного доступа к данным, опций блокировки, буферизации таблиц и записей, а также поддержки транзакций. База данных может располагаться на файл-сервере. Функции файл-сервера заключаются в основном в хранении базы данных и обеспечения доступа к ним пользователей, работающих на различных компьютерах.

Если при небольших объемах данных и небольшом количестве пользователей персональная ГИС еще как-то может обеспечить работу с корпоративной БД, то с увеличением числа компьютеров в сети, ростом объемов информации или при наличии территориально удаленных пользователей, начинают возникать проблемы, связанные с резким падением производительности. Это связано с увеличением объемов данных, передаваемых по сети, так как вся обработка производится на компьютере пользователя. Технология клиент-сервер разделяет приложение на две части, используя лучшие качества обеих сторон. Клиентская часть обеспечивает интерактивный, легкий в использовании, графический интерфейс - находится на компьютере пользователя. Сервер обеспечивает управление данными, разделение информации, администрирование и безопасность - находится на специально выделенных компьютерах. По технологии клиент-сервер клиентское приложение формирует запрос к серверу базы данных, на котором выполняются все команды. Результаты команд посылаются затем клиенту для использования и просмотра. Технологию клиент-сервер следует закладывать в основу корпоративной геоинформационной системы если в ней планируется использовать базы данных с большим объемом информации, с которыми одновременно может работать большое число пользователей.

Реализация клиент/сервер размещает презентационную и коммерческую логику на клиенте, а логику и массивы данных на сервере. Однако такая расстановка приводит к некоторым ограничениям:

- сложность клиента, автоматическое обслуживание которого сложно и дорого;

- коммерческая логика не может быть распределена между многими клиентами;

- нет общей абстрактной логики, которая могла бы приспосабливаться к неоднородным средам хранения данных;

- технология клиент-сервер в стандартном своем варианте не поддерживает сеть интернет.

Применение Web технологии снимает эти ограничение. При этом суть архитектуры клиент-сервер сохраняется, так как остаются клиентские и серверные процессы, но коммерческая и общая абстрактная логика находится на среднем уровне. Средний уровень работает как сервер, обычно называемый сервером приложения. Под Intranet понимается корпоративная сеть, в которой доступ к информации реализован средствами Internet. Эта частная сеть, доступная только сотрудникам данной организации. Интрасети быстро завоевывают признание как недорогой и высокоэффективный способ совместного использования информации в рамках автономной сети. Рекомендуется переходить к данному варианту при пространственно распределенной структуре предприятия для обеспечения распределенного ввода, хранения и доступа к информации.

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

GIS компонент - модуль, в котором должна быть сосредоточена вся алгебра графических объектов. GIS компонент не отвечает за хранение информации, но имеет ряд методов сохранения и восстановления объектов в бинарных массивах. Этот модуль включается во все модули, где необходимы операции с графическими объектами.

Internet приложение представляет собой HTML страницы, которые работают как механизм распределения остальной презентационной логики. Можно обобщить наиболее общие элементы презентационной логики ГИС компонента в отдельный модуль для многократного использования в различных приложениях. Это, например, интерфейс навигации по карте, интерфейс задания легенд и формирования картографических запросов.

Вся работа с картографической информацией должна быть реализована в виде картографического контроллера который инкапсулируется приложением. Картографический контроллер включает интерфейсы управления окном карты, манипуляции списком картографических слоев и агрегирует интерфейсы GIS компонента. Разумно иметь возможность расширения картографического контроллера до ГИС сервера. В этом случае клиент может обладать только интерфейсом управления графическим окном и задания запросов, а карта формируется на сервере и передается в виде изображения (GIF, JPG или внутренний формат). Размеры кода клиента в данном случае минимальны, что очень важно для Internet приложений.

Для полномасштабного использования ГИС-технологий в рамках отрасли необходима линейка решений, обеспечивающая возможность построения корпоративных геоинформационных систем. При этом предполагается, что в рамках системы требуется хранить и обрабатывать большие объемы информации и обеспечить одновременную работу многих территориально удаленных пользователей. Следовательно, требуемая технология должна обеспечивать возможность разработки Internet приложений, работающих с базами данных в архитектуре клиент-сервер. Это в свою очередь означает, что требуемая технологическая платформа должна поддерживать возможность использования всех перечисленных выше компонентов [8].

Среди средств полной или частичной разработки ГИС можно выделить несколько.

Avenue - включенный в состав пакета ArcView объектно-ориентированный язык программирования и среда разработчика. С его помощью можно приспособить пользовательский интерфейс под свои задачи, создать, убрать или скрыть кнопки меню. Под каждой кнопкой можно задать выполнение имеющихся или новых, в том числе и написанных вами на Avenue, макрокоманд (скриптов). Используя Avenue, можно создать и собственные приложения. По сути, ArcView также является приложением, разработанным средствами Avenue [3].

MapBasic - язык программирования для ГИС MapInfo Professional. MapBasic позволяет адаптировать MapInfo для решения самого широкого спектра задач и разрабатывать приложения для специалистов различного профиля. MapBasic содержит около 400 операторов и функций. Поддерживает стандарт ODBC для связи с внешними базами данных. Используя OLE Automation и DDE, можно легко обмениваться информацией с другими Windows-приложениями. Например, несколько строчек кода на Visual Basic позволяют вставить окно карты MapInfo в другое приложение [34].

MapObjects - продукт для разработок на платформе Windows представляет собой набор инструментальных средств картографирования и ГИС. Он включает управляющие элементы ActiveX (технология программирования компонентных объектных приложений на основе модели COM) и набор программируемых ActiveX-объектов, предоставляющие разработчикам возможность добавлять в свои приложения многие возможности картографирования и средства ГИС. MapObjects состоит из управляющих элементов ActiveX (ActiveX control), включает более 50 программируемых автоматизированных объектов ActiveX (ActiveX automation objects). MapObjects можно применять в разнообразных средах разработчика, которые поддерживаются ActiveX. MapObjects предлагает широкий спектр описываемых далее возможностей для размещения динамических карт в ваших приложениях [36].

ГеоКонструктор представляет собой набор ActiveX-объектов, которые можно многократно использовать в своих программах. ГеоКонструктор предоставляет разработчикам мощный и надежный инструмент для создания прикладных геоинформационных систем самого различного профиля. Можно использовать при работе с Microsoft Visual Basic, Visual C++ или Delphi [3].

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