Веб-сервисы и облачные вычисления. Web Services and cloud computing

RSS, Twitter, Vkontakte, Facebook

Новости

Веб-сервисы и облачные вычисления

Автор: Владимир Ткаченко

Источник: Обучение в интернет

Веб-сервисы и SOA

Что такое web services или веб-сервисы? Что такое SOA? Что такое сервисы или услуги в сети Internet? Что такое сервисные модели представления облачных вычислений? Какие различия между SaaS и веб-сервисами? В чем суть интеграции SaaS сервисов? Возникает вопрос: "Так что же такое сервис, веб-сервис или web service на самом деле?".

Термины "сервис", "веб-сервис" или "web service", которые используются в SOA, Cloud computing или для оказания услуг в сети Internet имеет различный смысл. Так, в системах с сервис-ориентированной архитектурой (SOA) применяются "веб-сервисы" (программы-сервисы), которые предоставляют услуги через программные интерфейсы  (SOAP и REST) другим веб-сервисам или приложениям (программам-клиентам), запросившим этот сервис. Что касается моделей представления облачных вычислениях: IaaS, PaaS, SaaS, то они предоставляются пользователям как сервисы через пользовательские интерфейсы.

Но следует отметить, что облачные приложения по модели SaaS с открытыми API-интерфейсами  (SOAP и REST) могут быть использованы как веб-сервисы для систем с архитектурой SOA. Что касается сетевых сервисов или услуг в сети Internet, например, приложений: VoIP, Telnet, мессенджеров и др., то они предоставляются как сервисы пользователям, которые активизировали эти приложения и используют их.

Итак, веб-сервис или веб-служба, или web service — это особый вид приложения или программный модуль с четко определенной функциональностью, который имеет свой URL (веб-адрес), публичный программный интерфейс, и который предоставляет свою функциональность другим модулям или приложениям посредством сообщений. SOA или сервис-ориентированная архитектура — это концепция создания распределенных приложений на основе интеграции удаленных и слабосвязанных веб-сервисов.

SOA рассматривается как совокупность веб-сервисов, которые, как правило, разделены большими расстояниями и работают на разных платформах. Веб-сервисы используются как модули при создании распределенных информационных систем или приложений с сервис-ориентированной архитектурой. Веб-сервисы могут взаимодействовать как друг с другом, так и с приложениями, созданными на основе SOA, посредством сообщений. Эти сообщения передаются стандартными протоколами, которые получили наибольшее распространение: SOAP и REST, а формат (язык разметки) данных в теле сообщений: XML и JSON.

В качестве транспорта для сообщений используют протокол HTTP. В SOAP используется специальный язык описания веб-сервисов и доступа к ним - WSDL в формате XML. В REST нет такого описания типа WSDL, так как используются заранее известные четыре метода доступа к веб-сервисам (GET, POST, PUT, DELETE). В SOA используется реестр/репозиторий сервисов или каталог веб-служб и сведений о компаниях, предоставляющих веб-службы для всеобщего пользования - это UDDI. Веб-сервисы основаны на открытых стандартах, и эти стандарты широко поддерживаются на всех платформах Unix и Windows.

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

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

SaaS и SOA

Следует отметить, что облачные приложения как сервис (SaaS) являются перспективным направлением стимулирующим развитие архитектуры SOA. Если облачные приложения SaaS имеют открытые API  (SOAP и REST), то эти приложения можно использовать в качестве веб-сервисов (модулей) для интеграции систем управление бизнес-процессами (BPM) на основе архитектуры SOA, т.е. построения IT-инфраструктуры для управления бизнес-процессами.

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

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

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

Наиболее перспективными средствами интеграции приложений SaaS в системы с архитектурой SOA являются специализированные средства интеграции приложений, так называемые, платформы интеграции SaaS на базе PaaS. В PaaS для взаимодействия сервисов используется Middleware (ПО среднего слоя) или связующее ПО, или сервисная шина ESB. Для программирования средств взаимодействия веб-сервисов по протоколам SOAP и REST в платформах интеграции SaaS применяются языки: Java, .NET и BPEL.

Итак, платформа PaaS, на базе которой функционируют приложения SaaS, может обеспечить средства для интегрирования веб-сервисов, может предоставить сервер приложений или Web server для размещения интегрированной веб-службы (SaaS mashup) и может организовать систему управления SOA для совместного использования ресурсов SaaS.

На скриншоте (Рис. 1) представлена сервис-ориентированная архитектура (SOA) интегрированного веб-сервиса или SaaS mashup, который использует в качестве источников информации сторонние веб-сервисы (SaaS-1...SaaS-3) и собственные сервисы (SaaS-4, SaaS-5).

Сервис-ориентированная архитектура SOA интегрированного SaaS-сервиса

Рис. 1. Сервис-ориентированная архитектура (SOA) интегрированного SaaS-сервиса или SaaS mashup

Веб-сервисы (SaaS-1...SaaS-5) взаимодействуют с интегрированным веб-сервис (SaaS mashup) через Middleware. SaaS mashup или связанное распределенное приложение размещается на сервере приложений (App server) платформы PaaS, и доступ к этому сервису осуществляется через пользовательский интерфейс (user interface). Таким образом, сервис-ориентированное распределенное приложение SaaS mashup представляет собой результат интегрирования веб-служб (SaaS-1...SaaS-5) в одно, логически завершенное, связанное приложение.

Следует отметить, что интегрировать можно как отдельные облачные SaaS-сервисы, так и облачные SaaS-сервисы с локальными приложениями заказчика. Развитие облачных SaaS и потребность в их интеграции, как между собой, так и с локальными приложениями привела к созданию инновационных облачных платформ iPaaS (интеграционная платформа как услуга) в качестве сервиса. Dell Boomi AtomSphere является ведущим поставщиком интеграционных платформ как услуга iPaaS, которые позволяют заказчикам интегрировать любую комбинацию облаков и локальных приложений.

CloudHub является ведущим поставщиком iPaaS, как интеграционной платформы следующего поколения для интеграции облачных приложений друг с другом и с унаследованными приложениями корпоративных сетей. Microsoft Azure BizTalk Services предоставляет инновационную облачную интеграционную платформу iPaaS для облачных и гибридных интеграционных решений.

К основным средствам интеграции SaaS относятся следующие решения:

  • Informatica Cloud Integration for Salesforce - платформа для интеграции приложений SaaS ведущего SaaS вендора Salesforce;
  • IBM WebSphere Cast Iron Cloud Integration - продукты для интеграции облачных приложений и локальных приложений, установленных на площадке заказчика;
  • IBM OmniConnect - платформа обеспечивает интеграцию облачных приложений и приложений, развернутых локально на площадке заказчика (визуальный SaaS конструктор);
  • Dell Boomi AtomSphere является независимой платформой интеграции, связывающей SaaS-приложения от различных провайдеров. Платформа обеспечивает интеграцию SaaS-приложений и локальных приложений, установленных на площадке заказчика;
  • Oracle Cloud Integration - средство интеграции Oracle использует услуги Oracle Cloud, а также компоненты от SOA Oracle, BPM и технологии интеграции данных;
  • Microsoft Azure BizTalk Services - службы BizTalk предоставляют гибкую платформу интеграции для предприятий и системных интеграторов, позволяющую создавать приложения для интеграции локальных и облачных служб, а также служб SaaS с использованием простых в использовании интерфейсов;
  • AnyPoint/MuleSoft - это полноценная платформа для интеграции SaaS в распределенное приложение SOA, состоящая из нескольких компонентов, одним из которых является платформа CloudHub;
  • Fiorano SOA Platform - Fiorano SOA представляет собой REST-платформу для интеграции приложений SaaS.