РАЗРАБОТКА РАСПРЕДЕЛЕННОЙ ГИС
ИНЦ СО РАН

Бычков И.В., Кухаренко Е.Л.

ИДСТУ СО РАН
Иркутск, Россия

bychkov@icc.ru

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

В институтах Иркутского научного центра (ИНЦ) накоплена уникальная информация о природных ресурсах, экологической обстановке, экономике и т.п., которая систематизирована и хранится в разнородных локальных базах данных с использованием различных СУБД, аппаратных платформ и прикладного программного обеспечения.

Для проведения комплексных, междисциплинарных исследований возникает необходимость интеграции разнотипной и разноформатной информации, требующей усилий специалистов различного профиля, в единую систему, обеспечивающую картографическую форму представления и доступ как через корпоративную сеть, так и удаленный посредством броузеров Интернет. Таким образом, создание интегрированной ГИС предполагает применение архитектуры распределенных систем обработки информации. Данная архитектура позволяет оптимально использовать дорогостоящее аппаратное (сервер ГИС, сканер, плоттер) и программное (MapInfo, ARC/INFO и т.д.) обеспечение. Для реализации предлагаемого подхода разрабатываются связующие программные компоненты на Delphi v.3.0. В ГИС-центре ИНЦ СО РАН имеющееся чисто лицензионное программное обеспечение базируется на платформе операционных систем Windows, поэтому при разработке архитектуры построения системы удаленного доступа к указанным ресурсам рассматривались только решения фирмы Microsoft. Развитие технологий обмена функциональными возможностями и данными между сетевыми приложениями, предлагаемые фирмой Microsoft, можно представить следующим образом:

- DDE (dynamic data exchange) - динамический обмен данных;
- OLE (object linking and embedding) - связывание и внедрение объектов;
- COM(Common Object Model) - общая объектная модель или иначе модель компонентных объектов;
- DCOM(Distributed COM) - общая модель распределенных объектов, по определению "удаляющая" реализацию интерфейса от точки исполнения.
- ActiveX - специализированный набор средств, построенных на базе COM и предназначенных для решения задач, связанных с World Wide Web и корпоративными сетями(интрасетями).

В настоящее время технология DCOM является основой для построения системы обеспечивающей объединение информационных ресурсов, оборудования, программных систем, взаимодействие между СУБД, ГИС, других приложений и возможность доступа к ним через World Wide Web.

Рассмотрим более подробно технологии, используемые при разработке распределенной ГИС ИНЦ СО РАН.

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

COM(модель компонентных объектов) - она определяет, как создавать динамически взаимосвязанные компоненты и клиенты, чтобы гарантировать возможность совместной работы и устанавливает стандарт для конкретной архитектуры построения объектных приложений.

С возрастанием производительности и общего значения сетей увеличивается потребность в приложениях, состоящих из размещенных в сети компонентов. Компонентная архитектура помогает упростить процесс разработки подобных распределенных приложений. Использование данной архитектуры позволяет разработчику либо создавать приложения с учетом конфигурации сети, например, в ГИС-центре ИНЦ выделен сервер и определены клиенты, либо без учета размещения компонентов. Для реализации компонентной архитектуры в рамках сети (как локальной, так и глобальной) предложена технология распределенной COM - DCOM (Distributed COM).

Существуют различные варианты коммутации компонент с использованием интерфейса. Используя интерфейс COM/DCOM обеспечивается коммутация компонентов напрямую. Данный интерфейс, включает в себя набор функций, которые реализуются компонентами, и используются клиентами, т.е. это определенная структура в памяти, содержащая массив указателей на функции. Другой подход, обеспечивающий большую гибкость связывания компонентов, называется "Автоматизация". "Автоматизация" облегчает интерпретируемым языкам и макроязыкам доступ к компонентам COM, а также облегчает написание таких компонентов на этих языках. Особенностью "Автоматизации" является упор на проверку типов во время выполнения. Этот способ коммутации компонент используют многие фирменные приложения Microsoft. Средства "Автоматизации" позволяют организовать иерархическую структуру объектов - методы и свойства могут возвращать указатели на интерфейсы других компонентов. "Автоматизацию" можно рассматривать как стандартный механизм, при помощи которого объект может задать свои свойства, методы и типы, и предоставить к ним доступ как через методы стандартного интерфейса IDispatch, так и методами обычных интерфейсов. "Автоматизация" является надстройкой над COM, компонент COM, реализующий интерфейс IDispatch, называется "Сервер Автоматизации". Клиент COM, взаимодействующий с "сервером Автоматизации" через интерфейс IDispatch, называется "Контроллером Автоматизации". Клиенты не вызывают функции сервера напрямую, вместо этого они используют функции-члены интерфейса IDispatch для неявного вызова функций "сервера Автоматизации". Интерфейс IDispatch предоставляет клиентам и компонентам новый способ общения между собой. Вместо предоставления нескольких собственных специфичных интерфейсов для доступа к своим сервисам, компонент может обеспечить доступ к этим сервисам через один стандартный интерфейс IDspatch.

Спецификация COM(DCOM) является основой таких технологий, как OLE и ActiveX, которые есть всего лишь две разновидности реализаций указанных выше сервисов, построенных на их базе, замечательно "склеивающие" не зависящие от расположения объекты, переносимые между различными платформами и не ограничивающиеся в выборе используемых языков программирования. OLE (object linking and embedding) - связывание и внедрение объектов. Связывание - компонент связывается с объектом, которому указывается только ссылка на него; внедрение - компонент внедряется в объект, где выделяется место для его хранения и т.д. Спецификация была распространена среди разработчиков в конце 1993 - начале 1994 года. Позднее, в 1996 году, название изменилось на ActiveX и реализация была внедрена в Microsoft Internet Explorer. Центральной технологией при разработке распределенной ГИС ИНЦ СО РАН является DCOM, реализованный на основе интерфейса IDispath и метода CreateRemoteComObject для организации выполнения объекта на одном компьютере под выполнением другого компьютера.

Базовым ПО настольных географических информационных систем в ГИС-центре ИНЦ СО РАН являются Mapinfo v4.1 и ARC/INFO v7.1.2. ГИС-сервер представляет собой компьютер с базовой операционной системой MS Windows NT и набором программного обеспечения для создания, отображения, редактирования карт, библиотек для организации доступа клиентов в виде ActiveX компонентов, топооснова региона в форматах 1:200,000, 1:1000000. Клиентское место - броузер стандартных HTML-страниц. При обработке броузером главной страницы сервера ГИС запускается программа, поддерживающая интерактивный интерфейс к программному обеспечению сервера.

Инструментальные ГИС предоставляют следующие возможности:

- MapInfo (версия 4.5 и выше) обеспечивает как работу в локальной сети по технологии "клиент-сервер" так и использование ее в качестве сервера OLE/COM/DCOM объектов ("Интегрированная Картография")с интерфейсами к языкам MS Visual Basic, MS Visual C++, Delphi 3;
- ARC/INFO (версия 7.1.2 и выше) - Open Development Environment (ODE)("открытая среда разработчика") которая позволяет разработчикам обращаться к функциональным возможностям ARC/INFO из других прикладных программ через специально созданные интерфейсы.

"Интегрированная Картография" - это механизм, когда элементы MapInfo(окно Карты, Отчета, Легенды и т.п.) интегрируются в пользовательское приложение, обеспечивая разработчиков простыми методами доступа к возможностям MapInfo из пользовательских приложений(связывание компонентов).

"Открытая Среда Разработчика" (ODE) представляет собой набор библиотек с одной библиотекой для каждого стандартного модуля. ODE предоставляет доступ к функциональным возможностям ARC/INFO в виде набора подпрограмм и функций. ODE поддерживает те же команды и функции, которые доступны в традиционных модулях ARCEDIT, ARCPLOT, ARC GRID, а также через командную строку ARC/INFO. Версия ODE для Windows/NT включает OLE-оболочку для каждой динамически связанной библиотеки (DLL). В результате мы имеем три управляющих элемента ActiveX (ActiveX Controls) и два сервера объектов COM. ActiveX Controls включают в себя средства работы с картами ARCEDIT (Arcedit.ocx), ARCPLOT (Arcplot.ocx) и ARC GRID (Grid.ocx). Сервера объектов COM включают библиотеку функционального уровня ARC (Arc.dll) и уровня строкового массива (Strings.dll), которые возвращают информацию для среды разработки. ActiveX Controls помещаются в прикладную программу для получения доступа к функциональным возможностям ARCEDIT, ARCPLOT и ARC GRID.

Кратко опишем реализацию на примере MapInfo. Инициализация серверного объекта происходит следующим образом:

const IID_IMalloc: TGUID ='{4A348528-2236-11D2-8990-004095D10D51}';
Определяется значение "глобально-уникального идентификатора" (GUID - global unique identificator), причем "глобальность" следует понимать буквально. Основной принцип заключается в том, что GUID однозначно определяет объект и интерфейс, и представляет собой 16-ти байтовое число, которое всегда должно рассматриваться в целостности. GUID обычно записывается в виде последовательности из 32 шестнадцатеричных цифр, не обладающих самостоятельным значением, в системном реестре Windows, для использования как через COM, так и другими программами клиента.
Var MapInfo : Variant;
MapInfo := CreateRemoteComObject('62.76.23.145',IID_IMalloc) as IDispatch;
На указанной по IP-адресу машине происходит поиск и активизация объекта(MapInfo) в соответствии с указанным GUID.

Результатом выполнения является указатель MapInfo на интерфейс IDispath, используемый далее для взаимодействия и вызова удаленных методов ГИС MapInfo, например:

  1. MapInfo.RunMenuCommand(id_command);
    где id_command - идентификатор команды. Позволяет вызвать стандартную команду ГИС MapInfo так, как если бы мы указали ее имя списке меню (заметим, что клиент запрашивает выполнение команды в режиме on-line и удален от ее реализации)
  2. MsgString := 'Set Application Window ' + sWinHand;
    MapInfo.Do(MsgString);

    Выполняет командную строку языка MapBasic так, как если бы мы вводили ее с клавиатуры.
  3. MsgString := MapInfo.Eval("SystemInfo(0)");
    Вычисляет значение MapBasic-выражения и возвращает результат.

Заметим, что соответствующие функциональные возможности компонента MapInfo запрашиваются во время выполнения(технология позднего или динамического связывания). Позднее связывание является наиболее мощным и гибким, но медленным, в отличие от раннего и ID-связывания, технологическим методом динамического взаимодействия программных модулей для обмена функциональными возможностями.

Таким образом, показана возможность реализации удаленного доступа к картографическим ресурсам на основе описанных технологий (рис. 1).

Рис. 1.

К достоинствам предложенного подхода следует отнести то, что используемый уровень интеграции применяемых компонентов обладает возможностью масштабирования, т.е. увеличение количества пользователей не влияет на функциональные возможности программного продукта, при использовании технологии OLE нет необходимости в написании специального программного обеспечения для взаимодействия между СУБД и ГИС. Основной проблемой при реализации данной системы является обеспечение необходимого быстродействия, а также некоторая ограниченность, связанная с использованием в качестве серверной платформы операционной системы Windows NT, из-за чего возникает необходимость значительного расширения ресурсов ГИС-сервера, а в качестве клиентского места операционной системы Windows95/NT с броузером Internet Explorer.

Все выше изложенное позволяет говорить о перспективности используемых подходов в настоящем, а в будущем планируется дальнейшее расширение использования компонентов "черных ящиков", позволяющих одной программе управлять выполнением другой посредством установки/чтения свойств объектов и вызова их методов, пока рынок указанных систем не перенасыщен подобными решениями и стандартами.



 

|ГИС в СО РАН| |Новости| |Информационный бюллетень| |Проекты| |Отчеты| |Ресурсы| |Документы| |Поиск|


Ваши коментарии
Обратная связь
[SBRAS]
SBRAS Home Page
Головная страница
СО РАН


© 1998 - 1999, Сибирское отделение Российской академии наук, Новосибирск
    Дата последней модификации: Tuesday, 12-Oct-1999 14:15:22 NOVST