Географические веб-службы

Владимир Андрианов, DATA+

Начнем издалека

Персональные компьютеры совершили настоящий переворот в области вычислительной техники и нашли массу новых применений, не доступных большим машинам (mainframes). Сами ПК за прошедшие 20 лет также сильно изменились, достигнув мощностей, пригодных не только для персональных, но и для серверных решений. В качестве персональных устройств, на смену им пришли карманные компьютеры (КПК) и смартфоны, совершающие новую революцию в «персональной» области. И теперь мы имеем целый спектр устройств, способных обеспечивать доступ к самой разной информации, в том числе и географической. Существенной особенностью нынешнего этапа развития являются стандартизованные цифровые сети связи – кабельные, оптические, беспроводные. Благодаря возможностям взаимодействия через сеть, даже самые маленькие и маломощные компьютеры могут приносить пользователям ощутимую пользу за счет обращения к сетевым ресурсам, предоставляемым мощными серверами.

Программное обеспечение также значительно изменилось, пройдя путь от одиночных настольных программ до распределенных разнородных систем. Последним словом в этом деле явились веб-службы – сетевые компоненты с открытым стандартизованным интерфейсом. Варианты организации среды информационных систем (ИС) и служб показаны на рис. 1. Первый – локальная система, в которой пользовательский интерфейс, функции обработки, отображения и анализа, функции управления данными и доступа к ним собраны в единое приложение. Даже если данные хранятся на файл-сервере, сути это не меняет: доступ к данным на сетевом диске для программы таков же, как и доступ к данным на локальном диске.

     
Рис. 1.
Варианты организации информационной среды для работы с данными.

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

Но в масштабах страны или не жестко связанной компании типа холдинга этот вариант плох по целому ряду причин. Во-первых, территориально и административно распределенным дочерним предприятиям холдинга или множеству компаний и организаций в стране или регионе невозможно навязать одну информационную систему. Ими часто уже вложены средства в свои системы и более оправдана их интеграция, а не замена. Во-вторых, распределенная система в целом более надежна. Если отдельные сегменты не работают и нет жесткой зависимости между ними, это не приводит к неработоспособности инфраструктуры в целом. В-третьих, возможно совмещение работы и развития инфраструктуры путем замены отдельных компонент, взаимодействие которых стандартизовано. Наконец, еще одно существенное отличие такой инфраструктуры от других вариантов организации информационной среды – наличие средств поиска данных, источники которых первоначально могут быть не известны пользователю. В статье о метаданных в данном номере ArcReview эта функция ИПД описана подробнее, а здесь мы рассмотрим веб-службы.

Что такое веб-службы

С самого начала нам нужно различать услуги в области геоинформатики, географические веб-службы и веб-сайты с картами. Проблема в том, что для описания всех этих сущностей часто используется одно и то же слово service (англ. Служба, услуга, сервис), но смысл его различен.

Что такое услуга? Услуги – это различные работы, такие как оцифровка карт, их обновление, дополнение и редактирование. Обычно такие услуги оказываются на договорной основе. Сам факт того, что на некотором сервере хранятся пространственные данные, и пользователи могут их просматривать или скачивать, не является услугой в данном смысле. Это всего лишь предоставление доступа к своим материалам через Интернет.

Что такое сайт? Сайты обычно возвращают пользователю готовую HTML-страницу для непосредственного отображения в браузере. При этом пользователь не может отделить содержание от оформления и использовать его как-либо иначе. Примеры сайтов – Яндекс–карты (http://maps.yandex.ru), Rambler–на карте (http://nakarte.ru) и Google Maps (http://maps.google.com). Яндекс называет это службой; службами названы также электронная почта, поиск в WWW, словари и т.д. Однако это не веб-службы, как это понимается в информационной технологии. Признаком веб-службы можно считать наличие интерфейса прикладных программ (API), через который клиентское приложение может взаимодействовать с веб-службой.

Что такое веб-служба? Веб-служба не является законченным веб-сайтом или приложением. Она не имеет пользовательского интерфейса, его должны реализовывать клиентские приложения. Веб-служба имеет только программный интерфейс (API). На всякий запрос клиентского приложения веб-служба возвращает XML-документ. Если это был запрос на генерацию картографического изображения, в документе передается ссылка на файл, содержащий это изображение.

Особенность сайта Google Maps в том, что он построен на основе веб-службы. Когда вы открываете сайт в браузере, на ваш компьютер загружается небольшой программный модуль, который является посредником между вами и веб-службой, он отображает карту в окне браузера и транслирует ваши команды в запросы веб-службе. Аналогичная технология используется при работе с веб-службами ArcIMS. Наличие программного интерфейса открывает широкие возможности модификации клиентских приложений и интеграции различных служб. Например, можно объединять службу Google Maps со службами ArcIMS, получая карту со слоями из нескольких источников, которые в момент отображения этой карты могут находиться даже на разных континентах.

С точки зрения программирования, веб-службы являются компонентами программного обеспечения, интерфейс которых стандартизован и открыт в сеть для доступа клиентским приложениям. Можно также сказать, что веб-службы выступают в роли динамически подключаемых подпрограмм, выполняемых на удаленном компьютере. В отличие от известных методов удаленного вызова RPC и DCOM, действующих в сетевой среде и используемых для построения клиент-серверных программных систем, веб-службы используют более простой интерфейс, не зависящий от программных и аппаратных платформ сервера и клиента. А географические веб-службы, во многом благодаря стараниям OGC (Open Geospatial Consortium), изначально развиваются по правильному пути, определенному в спецификациях этого консорциума.

Иными словами, веб-службы – это стандартизованные кубики конструктора, из которых можно собрать нужную по функциональности и составу данных конструкцию. Но если для использования подпрограмм нужно обладать квалификацией программиста, то использование веб-служб намного проще и доступно всем. Чтобы подключиться к службе и использовать ее, достаточно иметь стандартное клиентское приложение. Создание самих географических веб-служб теперь также сильно упрощено благодаря средствам публикации ArcIMS, не требующим программирования.

Веб-службы могут использоваться многими клиентскими приложениями, причем эти приложения могут решать разные задачи. Например, на основе одной и той же базовой карты можно решать геологические, экономические, кадастровые, экологические и другие задачи. Если формирование базовой карты выделить в отдельную веб-службу, то простым подключением к ней эту карту можно встроить в любые приложения.

Устройство и функционирование веб-служб

Для понимания устройства и функционирования веб-служб можно рассмотреть их сходства и различия с обычными веб-страницами. Публикация веб-страниц осуществляется с помощью веб-сервера (Tomcat, Apache и т.д.) – программы, которая выполняется на сервере и которая выдает указанные страницы гипертекста на запросы, поступающие от браузера пользователя. Гипертекст записывается на языке HTML, позволяющем объединять обычный текст и графику. Расширения языка и подключаемые модули браузера (plug-in) позволяют дополнить текст и графику другими видами содержимого – анимацией, видео, интерактивными возможностями. Передача всего этого содержимого между браузером (клиентом) и сервером (сайтом) осуществляется посредством Протокола передачи гипертекста (HTTP).

Подобно этому, веб-службы открывают простым клиентским приложениям доступ к данным и функциям. Клиентское приложение может быть очень простым, это та же веб-страница с интерактивными возможностями, реализованными на JavaScript или Java. Но на стороне сервера работает не только программа-веб-сервер, но и программа публикации геоданных и карт. Веб-сервер здесь действует как промежуточное звено между клиентом и этой программой публикации, передавая ей запросы от клиента и возвращая клиенту результаты выполнения запросов от веб-службы. Веб-служба формируется программой публикации (например, ArcIMS), которая выполняет функции, аналогичные функциям настольной ГИС типа ArcView, но при этом действует в многопользовательском режиме и не выводит изображение на экран, а передает его веб-серверу для отсылки в клиентское приложение пользователя.

По запросу клиента программа публикации формирует картографические изображения в виде обычных картинок, которые можно встраивать в веб-страницу. Запросы и ответы, передаваемые между клиентом и веб-службой, кодируются на стандартном языке XML и передаются по протоколу HTTP. Этот протокол – один из самых популярных в Интернете. Он пропускается и контролируется всеми средствами защиты локальных сетей, в то время как клиент-серверные требуют специальной настройки сетевых экранов (брандмауэров) и, вообще говоря, не ориентированы на работу через Интернет. Благодаря HTTP, к веб-службам могут обращаться любые пользователи корпоративных сетей, а приложения на их основе легко реализуются в условиях жесткой политики безопасности.

Упомянув безопасность, можно добавить, что данные, передаваемые протоколом HTTP, могут автоматически шифроваться средствами всех современных веб-серверов и веб-браузеров. Шифрованная модификация называется HTTPS и считается достаточно защищенной, чтобы использоваться, например, для управления банковскими счетами. Применительно к веб-службам это означает возможность публикации конфиденциальной геоинформации для ограниченного круга пользователей, которым, тем не менее, нужен удаленный доступ к ней через Интернет.

Географические веб-службы могут выдавать карты не только в вид картинок, но и в виде выборок объектов в векторном представлении на языке GML. В этом случае прорисовка векторов на экране пользовательского компьютера уже ложится на плечи клиентского приложения, которое теперь может выполнять наложение слоев из нескольких веб-служб в общую карту.

Клиентское приложение может быть реализовано не только в среде веб-браузера, но и быть полностью самостоятельным приложением (в ArcIMS для этого предусмотрены специальные коннекторы). Примером такого самостоятельного приложения является клиент ArcGIS Desktop, способный объединять в общую карту собственные данные и данные веб-служб. В среде же браузера проще реализовать простые приложения в виде интерактивных веб-страниц. Пример такого приложения – ArcExplorer Web (http://www.geographynetwork.com/arcexplorer/arcexplorer.html).

Клиентские приложения – необходимая составляющая технологии веб-служб, так как именно они дают пользователю визуальный интерфейс для отображения данных веб-служб или используют эти данные в анализе. Клиентские приложения могут быть и простыми, и довольно сложными, как универсальными (ArcGIS Desktop), так и специализированными. Второй случай характерен для корпоративных ИПД, где они заменяют настольные ГИС-приложения. То есть, на основе веб-служб можно строить веб-приложения, реализующие гораздо больше функций, чем просто просмотр карт.

Веб-приложения

Веб-приложения являются продуктом для конечного пользователя и разрабатываются для решения конкретных прикладных задач. Преимущество такого подхода в том, что различные подразделения компании могут публиковать свои веб-службы для информационного обеспечения компании в целом. А программисты, комбинируя эти веб-службы, могут собирать АРМы любой направленности, формировать рабочую среду для любого специалиста. При этом конечным пользователям не нужно устанавливать ПО ГИС на свой компьютер, «тонкий» клиент передается в браузер в виде обычной HTML-страницы. Еще одно отличие от обычного настольного ГИС-приложения состоит в том, что ГИС-функционал выполняется на удаленном компьютере (ГИС-сервере) и лицензируется только на этом сервере.

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

Веб-приложения являются распределенными как в том смысле, что они берут данные из разных источников, разбросанных по сети, так и в том смысле, что они сочетают реализацию своих функций одновременно на сервере и на клиентском компьютере. Причем пользователю не нужно даже знать об этом, он видит только страницы в веб-браузере.

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

Поиск и использование веб-служб

Порядок предоставления веб-служб и взаимодействия с ними достаточно прост и интуитивно понятен (рис. 2). Он может быть представлен следующей последовательностью действий:

  1. Публикатор веб-службы регистрирует ее в каталоге.
  2. Пользователь обращается к каталогу с запросом.
  3. Каталог возвращает пользователю список веб-служб и наборов геоданных, соответствующих запросу.
  4. Пользователь выбирает веб-службу и передает ее адрес (URL) в клиентское приложение для просмотра карт.
  5. Клиентское приложение посылает запрос на отображение карты.
  6. Веб-служба возвращает картографическое изображение.


Рис. 2.
Схема поиска и доступа к веб-службе (цифры соответствуют номерам этапов, описанных в последнем разделе статьи).

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