УДК 004.75
ОР.К. Федоров, А.С. Шумилов
СОЗДАНИЕ И ПУБЛИКАЦИЯ WPS-CEPBHCOB НА ОСНОВЕ ОБЛАЧНОЙ ИНФРАСТРУКТУРЫ1
Статья рассказывает о проектировании и реализации инфраструктуры виртуальных машин для разработки и публикации WPS-сервисов. Создание виртуальных серверов доступно пользователям специализированного Геопортала ИДСТУ СО РАН, на котором производится дальнейшая публикация создаваемых сервисов.
Ключевые слова: виртуализация, облачные вычисления, виртуальная инфраструктура, веб-сервисы, оркестрация сервисов, WPS, распределенные вычисления
( R.K. Fedorov, A.S. Shumilov
DEVELOPMENT AND PUBLICATION OF WPS-SERVICES USING THE CLOUD INFRASTRUCTURE
Article tells about modeling and development of the virtual machines infrastructure for the development and publication of WPS-services. Creation of virtual servers is available for users of the Geoportal of ISDCT SB RAS, the Geoportal is used for actual publication of created services.
Keywords: virtualization, cloud computing, virtual infrastructure, webservices, service orchestration, WPS, distributed computations
Введение
С развитием компьютерных технологий все чаще возникает ситуация, когда решение какой-либо сложной научной вычислительной задачи требует совместного использования множества программных систем. Но в силу того, что разные программные системы реализованы на отличающихся платформах, написаны на разных языках программирования и имеют отличные друг от друга интерфейсы, возникает проблема их совместного использования.
В силу развития интернет-технологий все чаще приложения и вычислительные сервисы становятся доступными или полностью мигрируют в веб-среду, то есть становятся доступными через сеть интернет на основе определенных протоколов. Одним из часто используемых протоколов, используемых для публикации вычислительных сервисов, является протокол Web Processing Service, специализирующемся на работе с геодан-
1 Работа поддержана РФФИ, грант 14-07-00166-а, программой Президиума РАН «Фундаментальные проблемы математического моделирования»
29
ными. На основе данного протокола производится работа с распределёнными WPS-сервисами на Геопортале ИДСТУ СО РАН - веб-приложении, предоставляющим набор инструментов для работы с геоинформацией.
Однако, наряду с проблемой взаимной интеграции уже существующих сервисов и программных систем существует проблема развертывания стандартизированных окружений для разработки сервисов, так как нередко возникает ситуация, когда для написания одного сервиса требуется установить набор из нескольких средств разработки, хранения данных и компиляции кода, а также средств для публикации сервиса в сети интернет. Таким образом, возникает проблема предоставления стандартизированного окружения, которое бы содержало наиболее часто используемые инструменты для разработки и публикации веб-сервисов.
Данная работа предлагает развертку инфраструктуры с настроенным окружением и тесной интеграцией с Геопорталом для упрощения, удешевления и ускорения разработки и публикации веб-сервисов на основе WPS протокола.
1. Стандарт WPS
Для определения параметров разрабатываемой среды разработки необходимо определить специфику протокола WPS, а также сервисов, разрабатываемых в соответствии с этим стандартом.
Стандарт WPS (Web Processing Service)[l] разработан консорциумом 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°
В силу того, что предполагаемая WPS-служба, публикующая сервисы в создаваемом окружении должна охватывать как можно больший набор реализаций сервисов, ZOO Project был выбран в качестве используемой службы.
2. Выбор программного обеспечения
Программное обеспечение, необходимое для создания среды разработки и публикации 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. Создание заранее сконфигурированных виртуальных машин и их предоставление пользователям - пользователи полностью контролируют выделенную виртуальную машины, а также пользователь может выбрать операционную систему для своей машины. Однако, доставка обновлений программных средств затруднена.
Соотнеся все преимущества и недостатки всех перечисленных выше вариантов реализации, было принято решении о реализации среды в виде инфраструктуры виртуальных машин, решающим фактором была изоляция и свобода действий пользователя в случае предоставления отдельной виртуальной машины.
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-адрес машины и статус её готовности к работе.
Стоит заметить, что в целях безопасности сервисные виртуальные машины доступны только из внутренней подсети, в то время как создаваемым клиентским виртуальным машинам присваиваются внешние статические 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-сервис из любой точки мира.
5. Апробация
Рассматриваемая в работе инфраструктура была протестирована в рамках задачи создания и публикации сервиса сложения двух растровых файлов формата GeoTIFF. Сервис сложения растров выполнен в виде консольного приложения, которое принимает на вход два файла и возвращает путь до сгенерированного файла.
Для создания и публикации сервиса разработчик предпринял следующие шаги:
1. Разработчик самостоятельно создал виртуальную машину под управлением операционной системы Windows Server 2008 посредством специальной веб-страницы Геопортала;
2. Разработчик с помощью среды Microsoft Visual Studio, а также библиотек для работы с геоданными GDAL и OGR [10] написал консольное приложение и протестировал его;
3. Разработчик написал специальный конфигурационный файл для WPS-службы ZOO Project, в котором описал свой сервис, а также указал входные и выходные параметры своего сервиса.
4. Консольное приложение стало доступно в виде WPS-сервиса, доступного по неизменному IP адресу из любой точки мира.
Заключение
Результатом данной работы является реализация инфраструктуры виртуальных машин, предназначенных для разработки и публикации WPS-сервисов. Пользователи Геопортала ИДСТУ СО РАН могут создавать виртуальные машины в зависимости от поставленной задачи - доступен как выбор операционной системы, так и выбор аппаратных характеристик создаваемых машин. Благодаря предустановленному набору специализированного программного обеспечения и наглядным примерам исходных кодов имеющихся сервисов пользователи могут незамедлительно приступать к разработке и публикации собственных WPS-сервисов.
Литература
1. OpenGIS Web Processing Service (WPS) Implementation Specification, vi.0.0. Release date: June 08, 2007. - URL: http://www.opengeospatial.org/standards/wps [15 февраля 2012].
2. OGC 05-007r7, OpenGIS® Web Processing Service / редактор: Peter Schut [Open Geospatial Consortium, Inc., 2007]. - URL: http://www.opengeospatial.org/standards/wps (дата обращения: 21.10.2014).
3. Deegree [Электронный ресурс]: Deegree open source software for spatial data infrastructures and the geospatial web. - Режим доступа: http://www.deegree.org (дата обращения: 10.08.2014).
4. ZOO Project Documentation [Электронный ресурс] / редактор: Nicolas Bozon (ZOO Community). - Режим доступа: http://zoo-project.org/docs/ZOOProject.pdf (дата обращения: 22.07.2014).
5. GeoServer [Электронный ресурс]: Open source software server. -Режим доступа: http://geoserver.org (дата обращения: 22.07.2014).
6. Python Web Processing Service [Электронный ресурс]. - Режим доступа: http://pywps.wald.intevation.org (дата обращения: 22.07.2013).
7. 52°North [Электронный ресурс]. - Режим доступа: http://52north.org (дата обращения: 22.07.2014).
8. VMware [Электронный ресурс]. - Режим доступа: http://www.vmware.com/ (дата обращения: 21.01.2015).
9. Openstack [Электронный ресурс]. - Режим доступа: https://www.openstack.org/ (дата обращения: 22.07.2014).
10. GDAL [Электронный ресурс]: GDAL - Geospatial Data Abstraction Library. - Режим доступа: http://www.gdal.org/ (дата обращения: 22.01.2014).
References
1. OpenGIS Web Processing Service (WPS) Implementation Specification, vi.0.0. Release date: June 08, 2007. - URL: http://www.opengeospatial.org/standards/wps [15 fevralja 2012].
2. OGC 05-007r7, OpenGIS® Web Processing Service / redaktor: Peter Schut [Open Geospatial Consortium, Inc., 2007]. - URL: http://www.opengeospatial.org/standards/wps (data obrashhenija: 21.10.2014).
3. Deegree [Jelektronnyj resurs]: Deegree open source software for spatial data infrastructures and the geospatial web. - Rezhim dostupa: http://www.deegree.org (data obrashhenija: 10.08.2014).
4. ZOO Project Documentation [Jelektronnyj resurs] / redaktor: Nicolas Bozon (ZOO Community). - Rezhim dostupa: http://zoo-project.org/docs/ZOOProject.pdf (data obrashhenija: 22.07.2014).
5. GeoServer [Jelektronnyj resurs]: Open source software server. - Rezhim dostupa: http://geoserver.org (data obrashhenija: 22.07.2014).
6. Python Web Processing Service [Jelektronnyj resurs]. - Rezhim dostupa: http://pywps.wald.intevation.org (data obrashhenija: 22.07.2013).
7. 52°North [Jelektronnyj resurs]. - Rezhim dostupa: http://52north.org (data obrashhenija: 22.07.2014).
8. VMware [Jelektronnyj resurs]. - Rezhim dostupa: http://www.vmware.com/ (data obrashhenija: 21.01.2015).
9. Openstack [Jelektronnyj resurs]. - Rezhim dostupa: https://www.openstack.org/ (data obrashhenija: 22.07.2014).
10. GDAL [Jelektronnyj resurs]: GDAL - Geospatial Data Abstraction Library. - Rezhim dostupa: http://www.gdal.org/ (data obrashhenija: 22.01.2014).
Федоров Роман Константинович, кандидат технических наук, ведущий научный сотрудник, Институт динамики систем и теории управления имени В.М. Матросова СО РАН, e-mail: fedorov@icc.ru.
Шумилов Александр Сергеевич, аспирант, Институт динамики систем и теории управления имени В.М. Матросова СО РАН, e-mail: alexshumilov@yahoo. com.
Fedorov Roman Konstantinovich, PhD, leading researcher, Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences(ISDCT SB RAS), e-mail: fedorov@icc.ru.
Shumilov Alexander Sergeevich, Postgraduate, Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences (ISDCT SB RAS), e-mail: alexshumilov@yahoo.com.