PDF-версия статьи |
Веб-сервисы на основе REST представляют собой коллекцию веб-ресурсов, при этом каждый процесс смоделирован как веб-ресурс с уникальным идентификатором – URI [1]. Этими веб-ресурсами можно управлять с помощью действий, указанных в заголовке протокола HTTP, а данные передаются в теле HTTP-сообщений. Стандарты SOAP, WSDL и WS-* не используются [2], а обмен сообщениями может осуществляться в одном из форматов XML, JSON, HTML, AtomPub. Важно, что во многих случаях клиентом может служить веб-браузер.
Стиль REST создает предпосылки для его успешного использования при построении систем удаленного доступа к разнообразным ресурсам для научно-инженерных и технологических исследований. Благодаря унифицированному интерфейсу, использованию открытых стандартов (HTTP, URI) и наличию множества проверенных временем реализаций (Web-серверы, библиотеки для работы с HTTP для всех современных языков программирования), REST обеспечивает максимальную свободу для независимой разработки Web-сервисов и соответствующих клиентских приложений.
Предлагаемый подход согласуется с современным направлением развития сервис-ориентированных научных сред. В частности, для реализации доступа к сервисам для научных исследований предлагается использовать новые модели приложений и технологии, лежащие в основе феномена Web 2.0. Ориентация на удобство конечного пользователя и простоту разработки сервисов привели к отказу от тяжеловесных технологий и стандартов (таких, например, как SOAP, WSDL и UDDI) в пользу лежащего в основе Web архитектурного стиля REST, простых форматов данных (JSON, RSS, Atom), неформального описания и регистрации сервисов на таких порталах, как programmableweb.com.
Система имеет распределенную клиент-серверную архитектуру. Клиентская часть системы включает редактор сценариев, а серверная - сервис управления сценариями и среду выполнения сценариев.
Редактор сценариев реализует графический интерфейс, предназначенный для взаимодействия с системой пользователей. Редактор является клиентом сервиса управления сценариями и может функционировать на любой машине в сети. Основными функциями редактора являются просмотр и редактирование сценариев. Созданный с помощью редактора сценарий может быть сохранен и запущен на выполнение на серверной стороне. При этом в редакторе отображается состояние выполнения сценария.
Сервис управления сценариями реализует удаленный программный интерфейс для хранения сценариев, созданных с помощью редактора. В соответствии с сервис-ориентированным подходом, сервис управления сценариями также обеспечивает развертывание каждого сохраненного пользователем сценария в виде нового сервиса.
Среда выполнения сценариев осуществляет обработку запросов к сервисам-сценариям. Каждый подобный запрос приводит к запуску нового экземпляра соответствующего сценария. Среде выполнения сценариев передается описание сценария и значения его входных параметров. Среда осуществляет интерпретацию описания сценария, производит указанные в сценарии действия (в том числе вызовы внешних сервисов), отслеживает состояние выполнения сценария и возвращает результаты его выполнения. Основой среды выполнения является разработанная библиотека WorkflowRuntime на языке Java, поддерживающая выполнение произвольных workflow-сценариев, заданных в виде ориентированных ациклических графов.
Работа выполняется в рамках ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы» при финансовой поддержке Минобрнауки.
1 Michael R. Bussieck, M.C. Ferris and A. Meeraus. Grid Enabled Optimization with GAMS. // INFORMS Journal on Computing, Vol. 21, No. 3, 2009, pp. 349-362.
2 Сухорослов О.В. Унифицированный интерфейс доступа к алгоритмическим сервисам в Web. // Проблемы вычислений в распределенной среде / Под ред. С.В. Емельянова, А.П. Афанасьева. Труды ИСА РАН, Т. 46. - М.: КРАСАНД, 2009. - 304 с. (с. 60-82)
3 Демичев А., Крюков А., Шамардин Л. Принципы построения грид с использованием restful-веб-сервисов // Программные продукты и системы. 2009. № 4.
ОПУБЛИКОВАНО
Афанасьев А.П., Беневоленский С.Б., Волошинов В.В., Кириллов Ю.И., Лисов А.А. ОСОБЕННОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ПОСТРОЕНИЯ СЕРВИС-ОРИЕНТИРОВАННЫХ РАСПРЕДЕЛЕННЫХ СРЕД. // Современные проблемы науки и образования - 2011.-№6. (приложение "Технические науки"). - C. 32