Пчельников Д.В.   Макарова Ю.Е.  

Организация доступа к wms-ресурсам

Докладчик: Пчельников Д.В.

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

Для решения этих двух задач было рассмотрено несколько вариантов. Один из вариантов ― использование MapServer'а для перенаправления данных. При использовании этого варианта создается пользовательский map-файл, который содержит в качестве источников данных слоев ― wms-ресурсы различных серверов. MapServer в этом случае выполняет роль промежуточного звена, передавая отображения слоя созданного первичным wms-сервером по запросу GetMap конечному пользователю. Однако при этом существуют сложности с передачей информации об объектах по запросу GetFeatureInfo. Решить проблему предлагается непосредственно пользователю при помощи одной из функций встроенного языка MapScript.

Другое решение проблемы создания карт-наборов предлагает продукт GeoServer ― создание групп слоев (LayerGroup), однако при создании такого набора имеется возможность использование только собственных слоев текущего сервера, а также не во всех ГИС корректно обрабатывается FeatureInfo группы слоев, созданной при помощи продукта GeoServer.

Для решения поставленных задач ― создание фронтенда (оболочки для непосредственного взаимодействия с пользователем) для группы wms-серверов, часть из которых может находится в приватной локальной сети и создания пользовательских карт-наборов, нами предложено собственное решение ― небольшой wms-proxy сервис с возможностью формирования пользовательских виртуальных ресурсов . Приложение написано на языке Python и имеет web-интерфейс для формирования авторских карт-наборов на основе слоев из разных источников.

  Авторский набор в QGIS фактически является виртуальным wms-сервером. Для конечного потребителя набора слоев такой ресурс выглядит как реально существующий.

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

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


К списку докладов