Создание и публикация WPS-сервисов на основе облачной структуры

Бесплатный доступ

Статья рассказывает о проектировании и реализации инфраструктуры виртуальных машин для разработки и публикации WPS-сервисов. Создание виртуальных серверов доступно пользователям специализированного Геопортала ИДСТУ СО РАН, на котором производится дальнейшая публикация создаваемых сервисов.

Виртуализация, облачные вычисления, виртуальная инфраструктура, оркестрация сервисов, распределенные вычисления, веб-сервисы

Короткий адрес: https://sciup.org/14835155

IDR: 14835155

Текст научной статьи Создание и публикация WPS-сервисов на основе облачной структуры

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

В силу развития интернет-технологий все чаще приложения и вычислительные сервисы становятся доступными или полностью мигрируют в веб-среду, то есть становятся доступными через сеть интернет на основе определенных протоколов. Одним из часто используемых протоколов, используемых для публикации вычислительных сервисов, является протокол Web Processing Service, специализирующемся на работе с геодан- ными. На основе данного протокола производится работа с распределёнными WPS-сервисами на Геопортале ИДСТУ СО РАН – веб-приложении, предоставляющим набор инструментов для работы с геоинформацией.

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

Данная работа предлагает развертку инфраструктуры с настроенным окружением и тесной интеграцией с Геопорталом для упрощения, удешевления и ускорения разработки и публикации веб-сервисов на основе WPS протокола.

  • 1.    Стандарт WPS

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

Стандарт WPS (Web Processing Service)[1] разработан консорциумом OGC[2] и предназначен для организации доступа к сервисам посредством протокола HTTP и основан на стандарте XML. Данный стандарт используется для описания служб сервисов (программных средств, предоставляющих централизованный доступ к набору WPS-сервисов), описания самих сервисов, а также осуществления запросов на выполнение сервисов.

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

В данный момент существует несколько программных реализаций WPS-служб

  • •    deegree WPS [3]. Проект позволяет публикацию алгоритма на Java по определенным стандартам с использованием deegree классов и модулей, созданных разработчиками.

  • •    ZOO Project WPS [4]. Проект позволяет пользователям публиковать алгоритмы, написанные на разных языках (Java, C/C++, Python и Perl), и связывать алгоритмы в цепочки анализа данных с использованием JavaScript.

  • •    GeoServer WPS [5]. В данном проекте не предусмотрена возможность публикации собственного процесса в виде исходного кода, но проект GeoServer объединяет в себе реализацию нескольких стандартов OGC, включая WMS, WFS и WCS, и ориентирован на публикацию данных.

  • •    pyWPS [6]. Проект поддерживает публикацию алгоритмов на языке Python.

  • •    52° North WPS [7]. В проекте поддерживаются алгоритмы из геоин-формационных систем: GRASS GIS, Sextante, ArcGIS. 52°

  • 2.    Выбор программного обеспечения

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

Программное обеспечение, необходимое для создания среды разработки и публикации WPS-сервисов, было разделено на следующие группы:

  • 1.    WPS службы – как было упомянуто выше, ZOO Project был выбран в качестве WPS-службы в силу поддержки большого количества вариантов программной реализации сервисов;

  • 2.    Средства разработки – для языков C/C++ был выбран пакет Microsoft Visual Studio / компилятор gcc, для скриптовых языков (PHP, Python, JavaScript и т.д.) был выбран текстовый редактор с подсветкой синтаксиса;

  • 3.    Веб-сервер – для работы ZOO Project был выбран веб-сервер Apache2 в силу своей конфигурируемости и стабильности;

  • 4.    Примеры WPS-сервисов – исходный код либо готовые для компиляции проекты стандартных сервисов, которые дают представление о необходимом для публикации программном интерфейсе разрабатываемых сервисов.

  • 3.    Архитектура инфраструктуры

В процессе проектирования инфраструктуры разработки и публикации сервисов было выделено два варианта её реализации:

  • 1.    Многопользовательская среда с необходимым набором программ – конфигурация среды происходит единовременно, при обновлении какого-либо программного пакета обновление становится доступно сразу всем пользователям. Однако, пользователи системы не полновластны, существует определенные ограничения на установку программных пакетов, и управление веб-сервером.

  • 2.    Создание заранее cконфигурированных виртуальных машин и их предоставление пользователям – пользователи полностью контролируют выделенную виртуальную машины, а также пользователь может выбрать операционную систему для своей машины. Однако, доставка обновлений программных средств затруднена.

  • 4.    Реализация инфраструктуры

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

Виртуальная инфраструктура среды разработки и публикации WPS-сервисов располагается на одном физическом сервере, находящемся под управлением системы VMware ESXi. Данная система предоставляет низкоуровневый API для управлениями объектами виртуальной инфраструктуры. На данном физическом сервере, помимо создаваемых клиентских виртуальных машин, находятся следующие сервисные виртуальные машины:

  • 1.    VMware vCenter [8] – виртуальная машина на основе Windows Server 2008 R2, которая предоставляет API для управления физическим сервером VMware. vCenter имеет более широкий набор возможностей по управлению инфраструктурой, нежели низкоуровневая подсистема VMware ESXi;

  • 2.    Openstack Controller – виртуальная машина на основе Ubuntu Linux 14.04 LTS, занимающаяся управлением и координацией окружения Openstack [9]. Openstack – открытая технология, упрощающая и стандартизирующая доступ и управление различными средствами виртуализации;

  • 3.    Openstack Compute – виртуальная машина на основе Ubuntu Linux 14.04 LTS, занимающаяся управлением определенного виртуального кластера, в данном случае – кластера под управлением VMware vCenter.

Процесс создания виртуальной машины по запросу клиента Геопортала состоит из следующих шагов:

  • 1.    Клиент заполняет специальную форму на Геопортале и определяет необходимые настройки виртуальной машины – тип операционной системы, параметры виртуального аппаратного обеспечения. Далее определенные клиентом настройки отправляются на виртуальную машину Openstack Controller посредством специального Openstack API;

  • 2.    Openstack Controller на основе сообщенных параметров определяет соответствующий узел Openstack Compute, который должен будет создать виртуальную машину. Так как в данный момент в системе присутствует только один узел Compute, связанный с VMware vCenter, задача по созданию виртуальной машины направляется ему;

  • 3.    Openstack Compute на основе сообщенных параметров инициирует создание виртуальной машины, используя API VMware vCenter;

  • 4.    VMware vCenter создает виртуальную машину, обращаясь напрямую к подсистеме ESXi. Далее он возвращает всю необходимую информацию касательно новой виртуальной машины вверх по цепочке для предоставления клиенту таких параметров, как IP-адрес машины и статус её готовности к работе.

  • 5.    Апробация

Стоит заметить, что в целях безопасности сервисные виртуальные машины доступны только из внутренней подсети, в то время как создаваемым клиентским виртуальным машинам присваиваются внешние статические IP-адреса, таким образом, WPS-сервисы, развернутые на клиентских виртуальных машинах, доступны из любой точки Интернет.

Виртуальные машины создаются на основе шаблонов (в терминологии VMware это "template", в Openstack это "image"), где заранее установлены и сконфигурированы Zoo Project и 52° North WPS, которые реализуют стандарт WPS. Сервер ZOO Project позволяет пользователям публиковать алгоритмы, написанные на разных языках (Java, C/C++, Python и Perl). В 52° North WPS поддерживаются алгоритмы из геоинформационных систем: GRASS GIS, Sextante, ArcGIS.

WPS-служба ZOO Project, описанная ранее, была модифицирована — добавлена реализация запуска консольных приложений. Подключение в ZOO Project различных библиотек осуществляется с помощью конфигурационных файлов. В конфигурационном файле можно указать шаблон запуска консольного приложения. Шаблон включает директивы для передачи параметров. Передачу значений параметров и файловых данных осуществляет Zoo Project. Консольное приложение работает с передаваемыми данными в обычном режиме — с файлами в локальной файловой системе.

Пользователь может установить собственное программное обеспечение, настроить доступ к нему через WPS, используя расширение ZOO Project.

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

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

Для создания и публикации сервиса разработчик предпринял следующие шаги:

  • 1.    Разработчик самостоятельно создал виртуальную машину под управлением операционной системы Windows Server 2008 посредством специальной веб-страницы Геопортала;

  • 2.    Разработчик с помощью среды Microsoft Visual Studio, а также библиотек для работы с геоданными GDAL и OGR [10] написал консольное приложение и протестировал его;

  • 3.    Разработчик написал специальный конфигурационный файл для WPS-службы ZOO Project, в котором описал свой сервис, а также указал входные и выходные параметры своего сервиса.

  • 4.    Консольное приложение стало доступно в виде WPS-сервиса, доступного по неизменному IP адресу из любой точки мира.

Заключение

Результатом данной работы является реализация инфраструктуры виртуальных машин, предназначенных для разработки и публикации WPS-сервисов. Пользователи Геопортала ИДСТУ СО РАН могут создавать виртуальные машины в зависимости от поставленной задачи – доступен как выбор операционной системы, так и выбор аппаратных характеристик создаваемых машин. Благодаря предустановленному набору специализированного программного обеспечения и наглядным примерам исходных кодов имеющихся сервисов пользователи могут незамедлительно приступать к разработке и публикации собственных WPS-сервисов.

Список литературы Создание и публикация WPS-сервисов на основе облачной структуры

  • OpenGIS Web Processing Service (WPS) Implementation Specification, vl.0.0. Release date: June 08, 2007. -URL: http://www.opengeospatial.org/standards/wps .
  • OGC 05-007r7, OpenGIS® Web Processing Service/редактор: Peter Schut . -URL: http://www.opengeospatial.org/standards/wps (дата обращения: 21.10.2014).
  • Deegree : Deegree open source software for spatial data infrastructures and the geospatial web. -Режим доступа: http://www.deegree.org (дата обращения: 10.08.2014).
  • ZOO Project Documentation /редактор: Nicolas Bozon (ZOO Community). -Режим доступа: http://zoo-project.org/docs/ZOOProject.pdf (дата обращения: 22.07.2014).
  • GeoServer : Open source software server. -Режим доступа: http://geoserver.org (дата обращения: 22.07.2014).
  • Python Web Processing Service . -Режим доступа: http://pywps.wald.intevation.org (дата обращения: 22.07.2013).
  • 52°North . -Режим доступа: http://52north.org (дата обращения: 22.07.2014).
  • VMware . -Режим доступа: http://www.vmware.com/(дата обращения: 21.01.2015).
  • Openstack . -Режим доступа: https://www.openstack.org/(дата обращения: 22.07.2014).
  • GDAL : GDAL -Geospatial Data Abstraction Library. -Режим доступа: http://www.gdal.org/(дата обращения: 22.01.2014).
Еще
Статья научная