Дмитрий Калмыков, Старший эксперт DATA+
Предыдущие Интернет решения ESRI в основном предназначались для распространения и публикации картографической информации. Серверное приложение ArcIMS делает доступными через Интернет ГИС- технологии в целом (картографическую информацию + ГИС функционал)
Как любой Интернет — продукт, ArcIMS имеет сложную архитектуру и может рассматриваться как совокупность нескольких блоков: Демонстрационный (клиентские приложения); Функциональный (сервер-приложение); Хранения данных (все используемые источники данных); Управления. (см. Рис. 1 — “Структура ArcIMS”).
Рис.1.
Демонстрационный блок
Демонстрационный блок включает в себя различные клиентские приложения, обеспечивающие доступ, визуализацию и анализ географических данных.
В качестве клиентских приложений ArcIMS могут выступать самые простые, обрабатывающиеся стандартным браузером динамические HTML- страницы, JAVA-апплеты, JAVA-приложение (ArcExplorer 3.1, требующий предварительной инсталляции на компьютере пользователя), а также вся новая линейка Desktop-продуктов ArcGIS 8.1 (ArcView, ArcEditor, ArcInfo), для которых ArcIMS выступает только как поставщик данных через Интернет (см. Рис. 2 — “Клиенты ArcIMS”.)
Рис.2.
В зависимости от «толщины» клиентского приложения, непосредственно на компьютере пользователя выполняется различный набор функций: от минимального (инициирование запросов и визуализация растровой картинки) для динамических HTML, до полного набора ГИС функций в случае использования Desktop-продуктов.
HTML-клиенты могут работать только с растровой картинкой. Все остальные клиенты ArcIMS помимо растровой информации могут получать с сервера потоки векторов и формировать карту непосредственно на компьютере пользователя. Это позволяет создавать карту на основе данных, полученных из различных источников — в том числе и расположенных непосредственно на локальном компьютере пользователя (см. Рис. 3. — “Интеграция данных”).
Рис.3.
Функциональный блок
Функциональный блок состоит из трех компонентов: Application Server Connectors (Коннекторы сервера приложений), ArcIMS Application Server (Сервер приложений) и ArcIMS Spatial Server (Сервер обработки пространственных данных).
Первые два компонента размещаются на том же компьютере, на котором находится Web-Server, ArcIMS Spatial Server может размещаться на отдельном компьютере. Более того, по мере необходимости ArcIMS Spatial Server можно инсталлировать на нескольких компьютерах и, тем самым, многократно увеличивать производительность картографического сервера, т.к. именно на ArcIMS Spatial Server ложится основная функциональная нагрузка, особенно при выполнении запросов, приходящих от тонких клиентов (см. Рис. 4. -”Структура пространственного сервера”).
Рис.4.
Структурно ArcIMS Spatial Server можно представить как совокупность компонентов, реализующих конкретные функции. В настоящее время в состав ArcIMS Spatial Server входят Image Server, Feature Server, Query Server, Geocode Server и Extract Server.
Текущая версия не позволяет создавать и подключать дополнительные процедуры, но в будущем предполагается выпустить продукт ArcIMS SDK.
- Image Server — генерирует растровое изображение карты и отсылает его клиентскому приложению в формате JPEG, PNG или GIF.
- Feature Server — формирует потоки векторов, выбранных из источников картографических данных, и отсылает их клиентам.
- Query Server — функция выборки используется для получения атрибутивных данных по пространственному или табличному запросу. Выборка осуществляется как из источника картографических данных (шейп-файлов или слоев ArcSDE), так и из присоединенных внешних таблиц (пока только формата dbf).
- Geocode Server используется для определения местонахождения точки по заданному адресу. Местонахождение вычисляется по адресной информации в источнике картографических данных.
- Extract Server — по запросу формирует zip-архив из шейп-файлов и отсылает его клиенту.
Кроме того, в состав ArcIMS Spatial Server входят компоненты, необходимые для обработки каждого запроса:
- Weblink — отвечает за связь между ArcIMS Spatial Server и ArcIMS Application Server;
- Data Access Manager — связывает ArcIMS Spatial Server с источниками картографических данных;
- XML Parser — предназначен для разбора приходящих запросов. По названию компоненты видно, что в качестве системного обменного стандарта выбран протокол XML, точнее специальная версия протокола ArcXML. Через данный протокол осуществляется соединение между клиентами и сервером и между отдельными частями сервера (см. Рис. 5. — “Структура функциональной части”).
Рис.5.
ArcIMS Spatial Server — многозадачное приложение, причем количество подпроцессов может регулироваться администратором ArcIMS. Совокупность подпроцессов, отвечающих за генерацию ответов клиенту по конкретной публикуемой карте, образует картографическую службу MapService. Количество MapServices строго соответствует количеству публикуемых в данный момент карт.
Наполнение, источники данных, раскраска публикуемой карты определяются конфигурационным проектом, составленным на ArcXML. Конфигурационный проект хранится в специальном файле, представляющем собой некоторый аналог проекта ArcView.
Существует два типа MapServices:
Image MapServices — практически при каждом запросе формирует растровые изображения, задействуя при этом Image Server. По мере необходимости обращается к Query Server, Geocode Server и Extract Server.
Feature MapServices — использует Feature Server. Клиенту отсылаются потоки векторов, причем только те, которые находятся в видимом экстенте. HTML клиенты не могут работать с картами, публикуемыми в режиме Feature MapService.
Компоненты ArcIMS, работающие непосредственно под управлением Web сервера, выполняют коммутационные и диспетчерские функции.
ArcIMS Application Server представляет собой фоновый процесс (сервис Windows NT или демон-процесс Unix) и отвечает за распределение приходящих от клиентов запросов между службами MapServices, выполняющимися на ArcIMS Spatial Server. Он также формирует каталог всех задействованных MapServices.
ArcIMS Application Server распознает только запросы в формате ArcXML. В то же время ArcIMS предусматривает возможность взаимодействия с клиентами и Web серверами, использующими другие протоколы, такие как WMS, ColdFusion, ASP или JSP. Для этого разработано четыре Application Server Connectors, в задачу которых входит перевод запросов и ответов с одного протокола на другой.
ArcIMS Servlet Connector — используется заданный по умолчанию. Предполагается, что на Web сервере установлено расширение, поддерживающее XML протокол — Servlet Engine или JRUN. В этом случае запросы от клиента не претерпевают никаких изменений и напрямую передаются на ArcIMS Application Server.
Web Map Server (WMS) Connector входит в состав ArcIMS Servlet Connector для обработки другого XML- расширения, соответствующего стандартам OpenGIS.
ArcIMS Servlet Connector совместим со всеми допустимыми операционными системами.
ArcIMS ColdFusion Connector преобразует запросы, идущие от сервера ColdFusion, в ArcXML запросы.
ArcIMS Application Server Link — предназначен для всех, использующих технологию JSP (Java Server Page).
Все вышеперечисленные компоненты работают и под Windows, и под UNIX.
ArcIMS ActiveX Connector — это библиотека COM dll, которая может быть использована в COM приложениях типа ASP. Работает только под Windows.