Интеграция

Решения

 

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

 

Первая - преобладающая - располагает собственной, встроенной средой разработки, имеет свой оригинальный язык программирования. Это ArcView, MapInfo, Sinteks. Такие ГИС живут каждая "внутри себя", то есть и речи не идет о том, чтобы быстро и эффективно перенести приложение с одной ГИС на другую - слишком уж разные языки и идеология построения. Однако сам подход обладает тем несомненным достоинством, что обеспечивает 99-процентную межплатформенную переносимость. Попробуйте перенести приложение ArcView или MapInfo с PC на Macintosh - почти 99 процентов кода останется работоспособным ! Хотя, с другой стороны, достоинства платформенно-независимого кода можно и оспорить: в угоду переносимости мы существенно теряем в производительности.

 

Поэтому другая (меньшая) часть ГИС только помогает разработчику создать геоинформационное приложение, а сами среды разработки не несут в себе. GIS Component (Геоконструктор) GeoGraph - это библиотека для Visual-сред программирования (Visual C, Delphi); WinGIS вообще работает в режиме DDE-сервера, обслуживая запросы внешних программ, поэтому тут уже вообще сложно говорить о собственных средствах разработки ГИС-приложений. В этой, второй, группе очень сложно также говорить о будущем перенесении Ваших приложений на другие платформы, однако относительно просто достигнуть высокой производительности - за программу целиком отвечаете Вы сами, программа ориентирована на конкретную архитектуру системы, оптимизация целиком в Ваших руках.

 

В обеих перечисленных группах в последние годы наметились следующие тенденции: переход к объектно-ориентированному методу, ориентация на непрофессионала даже в плане создания приложений, объединение максимума потенциальных возможностей (а именно - обмена с GPS, доступа к "большим" БД, средств импорта из форматов множества других систем) в рамках единой, интегрированной среды.

Схема DDE-взаимодействия.

 

 

Остановимся более подробно на вышеупомянутых средствах интеграции - DDE и OLE. DDE (Dynamic Data Exchange) - принятый де-факто в Windows стандарт динамического обмена данными. Это значит, что несколько программ в системе в реальном масштабе времени обмениваются информацией и вызывают функции друг друга. DDE - незаменимое средство интеграции различных технологий: ГИС и GPS, например. В идеологии DDE основными считаются следующие понятия: DDE-клиент, DDE-сервер и сеанс связи (conversation). Взаимодействие происходит слудующим образом: два процесса через интерфейс DDE открывают сеанс связи; при этом один из них выполняет запросы другого, и, соответственно, является сервером. Термин процесс здесь выбран не случайно - он означает программу, выполняющуюся в системе изолированно от других; общепринятый в рамках многозадачных операционных систем, он лишний раз подчеркивает, что наш динамический обмен проходит абсолютно "прозрачно", незаметно для пользователя.

 

OLE - Object Link & Embedding - технология внедрения и связи объектов. Заключается она в том, что в один документ (скажем, в текст) внедряется другой (например, географическая карта). Внешне это выглядит как небольшое изображение, вставленное в текст, но "нажатие" мышью на карту может активизировать вызов другого приложения (скажем, ГИС) для обработки карты. У технологии есть две вариации - Link, когда внедренный документ физически хранится отдельно, и Embedding, когда внедрение происходит реально, "файл в файл". В рамках OLE тоже есть понятия клиента и сервера, но они очень условны: клиентом будет документ, в который внедрена наша карта; сервером - приложение, вызываемое для ее обработки.