Владимир Андрианов, DATA+
У Инфраструктуры пространственных данных (ИПД) и распределенных корпоративных ГИС имеется много потенциальных пользователей пространственной информации. И большинству из них прежде всего требуется просмотр готовых карт, например, в окне обычного веб-браузера. Поэтому необходимым элементом ИПД является инструмент, осуществляющий веб-публикацию пространственных данных. В линейке программного обеспечения ESRI есть два серверных продукта, реализующих эту функцию, – ArcIMS и ArcGIS Server. Их сравнение приведено в отдельной статье этого номера. Здесь же скажем, что именно ArcIMS является ключевым в обеспечении функционирования ИПД, он позволяет участникам публиковать картографические веб-службы и метаданные. На его основе построен и GIS Portal Toolkit – еще один продукт ESRI, облегчающий создание геоинформационного портала – общей точки входа в инфраструктуру.
ArcIMS – средство для публикации карт и пространственных данных в среде Интернет/интранет. За этой стандартной формулировкой скрывается целый комплекс программных компонентов, решающих множество задач, встающих перед разработчиком веб-карт и каталогов. Конечно, подобное средство публикации может быть устроено и гораздо проще, но если мы хотим иметь возможности расширения как в плане функциональности, так и в плане производительности, необходимы именно те архитектурные решения, которые приняты в ArcIMS.
Техническая сторона ArcIMS была подробно описана в статьях Дмитрия Калмыкова в ArcReview (№ 4 (19) за 2001 г., с. 12 и № 3 (30) за 2004 г., с. 6). Здесь же мы рассмотрим этот продукт функционально, с точки зрения встраивания его в ИПД и взаимодействия с пользователями.
В самом первом приближении, с точки зрения пользователя опубликованных карт и данных, ArcIMS превращает подключенный к сети компьютер в набор веб-служб, каждая из которых позволяет интерактивно просматривать пространственную информацию. Поскольку любая публикация обычно ориентирована на широкий круг пользователей, в ArcIMS предусмотрена возможность доступа к службам посредством разнотипных клиентских приложений. Кроме того, поскольку природа запрашиваемых клиентами данных тоже бывает разной, предусмотрено подключение нескольких серверных компонент, каждая из которых ориентирована на определенную задачу. Наконец, для большей гибкости в масштабировании системы, взаимодействие между компонентами ArcIMS организовано по протоколу TCP/IP. Все эти черты и возможности представлены на структурной схеме ArcIMS (см. рисунок).
Структурная схема системы на ArcIMS.
В левом столбце показаны клиентские приложения различной природы. Задача клиентского приложения – обеспечить взаимодействие пользователя с ArcIMS с целью получения с сервера нужной информации. Это взаимодействие строится на основе протокола прикладного уровня, поддерживаемого одним из коннекторов ArcIMS. Большинство коннекторов для передачи своих данных используют протокол HTTP – основной во Всемирной паутине. Эти коннекторы работают в среде веб-сервера. Другой поддерживаемый протокол – Z39.50, который, в отличие от HTTP, используется не для передачи текста и графики, образующих веб-страницы, а для доступа к базам данных и выборки из них информации. В NSDI (Национальной инфраструктуре пространственных данных) этот протокол является основным для обмена между каталогами метаданных и порталами. Его преемником является протокол сбора метаданных PMH (Protocol for Metadata Harvesting), который также использует HTTP для транспорта данных.
В сущности, задача любого коннектора – преобразование запросов клиентского приложения в стандартные запросы на языке ArcXML. ArcXML – это разработанный ESRI профиль другого, более общего стандарта, – расширяемого языка разметки XML. Использование ArcXML позволяет привести все клиенты к общему знаменателю: какой бы ни была среда разработки клиентского приложения (ASP, .Net, Java, HTML и др.) – соответствующие коннекторы преобразуют его запросы в запросы на ArcXML. Какую бы спецификацию доступа ни использовало клиентское приложение (WMS, WFS, CS-W, Z39.50 и др.) – коннекторы преобразуют запросы этой спецификации в запросы на ArcXML. Таким образом, ArcXML является универсальным языком, надмножеством для всех возможных запросов к ArcIMS. Понятно, что добавление нового типа клиентов или новой спецификации сводится к созданию соответствующего коннектора, а все остальные компоненты ArcIMS остаются незатронутыми. За счет этого обеспечивается легкая расширяемость ArcIMS в плане методов доступа к его службам.
После того как запрос клиентского приложения преобразован в запрос на ArcXML, он поступает к серверу приложений ArcIMS Application Server. Задача Application Server – вести очередь запросов, учитывать их приоритеты и распределять их между исполнительными компонентами – ArcIMS Spatial Servers.
Собственно исполнение запросов реализуют ArcIMS Spatial Servers. Хотя на рисунке показан только один Spatial Server, на практике этих процессов на серверной машине может запускаться несколько. Более того, применение протокола TCP/IP для взаимодействия Application Server и Spatial Server позволяет запускать Spatial Servers также и на других машинах, давая возможность распределять нагрузку и повышать общую производительность системы.
Spatial Server – это приложение, исполняющееся как обычный процесс операционной системы, однако внутри этого процесса может скрываться любая начинка. Задача Spatial Server – ответить на запрос клиентского приложения, пришедшего в форме запроса на ArcXML. В зависимости от того, какого типа этот запрос, он обрабатывается разными составляющими Spatial Server, называемыми виртуальными серверами. Виртуальными они называются потому, что сами они не образуют самостоятельных процессов операционной системы, а выполняются внутри Spatial Server.
В ArcIMS 9 реализованы следующие типы виртуальных серверов: Image, Feature, Query, Metadata, Extract, Geocode, ArcMap Image, Route. Каждый виртуальный сервер может обслуживать тысячи клиентов и не хранит историю запросов. Поэтому каждый запрос от любого клиента должен содержать всю необходимую для его выполнения информацию. Так, например, если пользователь просто перемещает карту в окне браузера, соответствующий запрос должен включать не только новый экстент, но и список всех слоев карты с параметрами их отображения, параметры проекции и т.д. Это, конечно, немного усложняет создание клиентских приложений, но зато позволяет простыми средствами построить высокопроизводительную систему веб-картографирования, что чрезвычайно важно в условиях использования веб-карт большим количеством пользователей. Объем статьи не позволяет описать виртуальные сервера даже кратко, поэтому здесь только названы их наиболее общие функции. Каждому из них можно посвятить отдельную статью. В отдельной статье в данном номере подробно описан только Сервер метаданных (Metadata Server), существенно важный для поддержки функций публикации и поиска геоданных в ИПД.
Image Server, Feature Server и ArcMap Image Server – три виртуальных сервера, формирующих изображения карт. Однако делают они это по-разному, и им соответствуют три типа одноименных картографических веб-служб. Image Server – наиболее универсальный, на выходе он выдает картографическое изображение в виде растровой картинки стандартного формата (GIF, JPEG), которая может быть встроена в веб-страницу, отображаемую браузером. Такой вариант предусмотрен спецификацией OGC Web Image Services (WMS), и это наиболее широко используемый тип веб-карт.
Feature Server, в отличие от Image Server, выдает не растровое, а векторное изображение. Для его использования нужен более сложный клиент, способный отрисовывать векторные данные. При наложении растровой картинки лежащие ниже слои ею просто закрываются, а векторные данные отрисовываются поверх других слоев. То есть, существенным преимуществом передачи данных в векторной форме является возможность объединять в одном окне клиента данные из нескольких веб-служб, накладывая векторные слои поверх других – так, как это делается в обычных настольных ГИС-приложениях. Недостаток этого вида веб-служб в том, что при сложной форме векторных объектов и большом их числе объем векторных данных становится заметно больше объема эквивалентного растрового изображения. Поэтому Image Services чаще всего используют для публикации базовых карт или законченных картографических произведений, а Feature Services – для небольших объемов информации, предназначенных для отображения поверх таких растровых слоев веб-карт. Векторные картографические веб-службы также стандартизованы соответствующей спецификацией OGC – Web Feature Services (WFS).
Службы на основе Image Server и Feature Server используют достаточно простые средства визуализации, встроенные в ArcIMS. Они конфигурируются специальной утилитой в составе ArcIMS, с помощью которой можно задать слои веб-карты и способы их отображения. Поскольку ArcIMS имеет собственную программную архитектуру, не связанную с компонентами ArcObjects, публикуемым им веб-картам не доступны все возможности настольных приложений ArcGIS, а созданный в ArcMap проект не может напрямую публиковаться этими стандартными веб-службами. Чтобы всё-таки не терять возможности ArcGIS Desktop при веб-публикации, создан третий тип картографических веб-служб ArcIMS – ArcMap Image Services – особый тип служб, присущий только продуктам ESRI. По сути, ArcMap Image Server превращает браузер пользователя службы в упрощенное окно ArcMap. При этом пользователь такой веб-службы получает ту же карту, что была сформирована в проекте ArcMap, сохраненном в файле *.mxd. Естественно, богатые возможности ArcMap не даются “бесплатно”, и ArcMap Image Services требуют достаточно больших вычислительных ресурсов на сервере. Поскольку виртуальные сервера (заключенные в приложение ArcIMS Spatial Server) могут запускаться на отдельных машинах, задача достижения необходимой производительности решается либо наращиванием мощности сервера (кол-во процессоров, память, быстродействие), либо разнесением процессов ArcIMS на несколько машин и запуском в параллель нескольких виртуальных серверов, обеспечивающих одну и ту же службу. Это, кстати, относится ко всем видам виртуальных серверов, а не только к ArcMap Image Servers.
Query Server обеспечивает выполнение поисковых запросов клиентов в таблицах атрибутов пространственных данных. Это стандартная функция геоинформационных систем, которая должна, конечно, присутствовать и на веб-картах.
Metadata Server обеспечивает каталогизацию и публикацию метаданных, поиск по ним. Поскольку метаданные – главный способ обмена информацией о геоданных и службах в ИПД, этому виртуальному серверу посвящена отдельная статья в этом номере.
Extract Server осуществляет выборку пространственных объектов, которые могут потом посылаться клиенту в виде упакованного в архив шейп-файла. Data Delivery Extension дополняет Extract Server функцией конвертации выбранных геоданных в заданный пользователем формат.
Geocode Server реализует функцию геокодирования, то есть поиск объекта по его адресу.
Route Server строит оптимальные маршруты между задаваемыми пользователем точками. Очень часто одна из этих точек – объект, ранее найденный по запросу к Query Server (например, ресторан или больница). Данная функция очень широко используется на сайтах с веб-картами. Route Server– единственный виртуальный сервер, лицензируемый как отдельный модуль ArcIMS.
Таким образом, виртуальные сервера ArcIMS реализуют основные функции наиболее востребованных веб-служб. А соответствующие коннекторы обеспечивают к ним доступ посредством простых стандартных протоколов OGC или же расширенный доступ для ArcGIS и пользовательских веб-приложений. Модульная архитектура ArcIMS позволяет этому продукту успешно развиваться и наращивать возможности на протяжении ряда лет.
В конце приведем несколько интересных ссылок, связанных с ArcIMS:
Mapdex (от «map index») – глобальный каталог веб-служб на ArcIMS: http://www.mapdex.org
Пример интеграции веб-служб ArcIMS и Google Maps в одном клиентском приложении: http://geoportal.kgs.ku.edu/googlemaps/gm_arcims_ex.html
Сайт инвестора Санкт-Петербурга – пример реализации веб-сайта с картографической компонентой на ArcIMS: http://map.investinfo.spb.ru
Схема кадастрового деления Южного федерального округа на сайте Кадастрового информационно-аналитического центра ЮФО: http://www.kiac.ru/?id=61