xmlhack.ru logo
>> статьи на xmlhack.ru

Архитектуры, ориентированные на сервисы

Автор: Павел Шелякин
Опубликовано на xmlhack.ru (02.08.2004, рус.): http://xmlhack.ru/texts/04/SOAvsWebservices/SOAvsWebservices.html
В закладки:   Del.icio.us   reddit

По мнению ведущих IT-компаний и аналитиков (наиболее известными из них являются IBM, Microsoft, Sun Microsystems, BEA, SAP, Oracle, Gartner Group, , Stencil Group, International Data Corp.), важными и перспективными направлениями в развитии информационных систем и ПО являются архитектуры, ориентированные на сервисы (Service Oriented Architecture - SOA) [1, 2]. При этом основной акцент делается на SOA, которая ориентирована на Internet и intranet, т.е. на архитектуру веб-сервисов (Web Services Architecture - WSA).

Архитектура, ориентированная на сервисы (SOA), имеет следующие характерные особенности:

  1. Архитектура является распределенной. Функциональные модули приложение (системы) могут быть распределены по множеству вычислительных систем и способны к взаимодействию с использованием локальных или глобальных сетей.
  2. Интерфейс функциональных модулей таков, что использование модулей не зависит от технологии или платформы, в рамках которой они реализованы.
  3. Возможен динамический поиск и подключение нужных функциональных модулей.
  4. Архитектура базируется на общепринятых отраслевых стандартах.

Основу архитектуры, ориентированной на сервисы, составляет взаимодействие трех участников:

Это взаимодействие представлено на рисунке 1.

Компоненты архитектуры SOA

Рисунок 1. Компоненты архитектуры SOA

Взаимоотношение участников включает следующие основные аспекты:

Для реализации SOA необходимы три типа соглашения:

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

Архитектура веб-сервисов является одной из реализаций SOA. Понятие архитектуры, ориетированной на сервисы, сложилось в ходе развития концепции веб-сервисов. Однако, существуют и другие походы к реализации SOA: Java RMI (от Sun Microsystems), CORBA (от консорциума OMG), DCOM (от Microsoft), DCE (предложенный ассоциацией Open Group).

Концепция веб-сервисов возникла в конце 90-х годов XX века. Однако, к настоящему моменту эта концепция успела устояться и архитектура, которую она предлагает, стала отраслевым стандартом в сфере IT.

Стандартизацией архитектуры веб-сервисов занимаются рабочие группы комитета W3C [5]. Они предлагают следующее определение понятия "веб-сервис": "веб-сервис - это реализуемая программными средствами система для поддержки межмашинного взаимодействия через сеть. Интерфейс сервиса описывается на языке, читаемом машиной, например, WSDL. Другие системы взаимодействуют с веб-сервисом способом, указанным в его описании, используя сообщения в стандарте SOAP, передаваемые с использованием HTTP и XML и в сочетании с другими стандартами, относящимися к Web".

Физически Web-сервис представляет собой фрагмент программного обеспечения, называемый "агентом". Агент способен передавать и принимать сообщения, он реализует функциональность сервиса. Существует различие между агентом и сервисом - один и тот же сервис может быть обеспечен разными агентами.

Механизм обмена сообщениями определяется в описании сервисов (Web Services Description), которое представляет собой спецификацию интерфейса сервиса и охватывает форматы сообщений, типы данных, транспортные протоколы, способы сериализации, используемые при обмене между агентами заказчика и поставщика услуг. Кроме того, описание сервиса содержит указание на одну или несколько точек в сети (endpoint), откуда доступен поставщик.

Технология Universal Description, Discovery and Integration (UDDI) предполагает ведение реестра веб-сервисов. Подключившись к этому реестру, потребитель сможет найти веб-сервисы, которые удовлетворяют его потребностям. Технология UDDI дает возможность поиска и публикации нужного сервиса, как человеком, так и программой-клиентом.

Стек технологий, реализующий архитектуру веб-сервисов, представлен на рисунке 2.

Стек технологий архитектуры веб-сервисов

Рисунок 2. Стек технологий архитектуры веб-сервисов

Концепция веб-сервисов подразумевает, что отдельные веб-сервисы обладают определенной ограниченной функциональностью. А для решения более-менее сложных задач требуется использовать функциональность нескольких сервисов. Поэтому в ходе развития архитектуры веб-сервисов возникли понятия "композиция Web-сервисов" (Web-services composition) и "поток Web-сервисов" (Web-services flow), в последнее время взамен этих понятий используют соответственно "оркестровка" (Web Service Choreography) и "хореография" (Web Service Choreography) веб-сервисов. Эти понятия отражают взаимодействие сервисов и последовательность их выполнения. Другими словами, приложения, построенные с использованием веб-сервисов, рассматривают как приложения, основанные на потоках работ (Workflow-based applications).

При рассмотрении приложений, основанных на потоках работ, выделяют три уровня как это показано на рисунке 3 [4].

Приложение, основанное на потоках работ

Рисунок 3. Приложение, основанное на потоках работ

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

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

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

Для описания систем и приложений, построенных по архитектуре веб-сервисов, на уровне модели бизнес-процесса ведущими IT-компаниями предлагались различные проекты стандартов: Wf-XML (от Workflow Management Coalition), WSFL (IBM Web Services Flow Language), XLANG (Microsoft's XLANG: Business modeling language for BizTalk), PIPs (RosettaNet's Partner Interface Process), а также некоторые другие.

К настоящему моменту наибольший вес имеют BPEL4WS (Business Process Execution Language for Web Services), подготовленный IBM, Microsoft и BEA Systems, и WSCI (Web Service Choreography Interface) корпорации Sun Microsystems. Оба этих проекта были приняты в организации, стандартизирующие технологии архитектуры веб-сервисов:

WSCI отражает концепцию хореографии сервисов. BPEL4WS предназначен для реализации оркестровки сервисов.

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

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

Литература

  1. Jonathan Sapir, Will Web services and SOA change the development world? www.TechRepublic.com, August 2003.
  2. Michael Pallos, Service-oriented architecture: A Primer. EAI Journal, December 2001.
  3. Web Services Glossary, http://www.w3.org/TR/2003/WD-ws-gloss-20030808
  4. F. Leymann, D. Roller, "Workflow-based applications" // IBM Systems Journal. 1997, vol.36
  5. Web Services Architecture. http://www.w3.org/TR/ws-arch/
  6. OASIS Web Services Business Process Execution Language TC - http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel
  7. Web Services Choreography Working Group. - http://www.w3.org/2002/ws/chor/

Шелякин Павел, декабрь 2003г.
(отредактировано в мае 2004г.)

P.S. На моем сайте http://pavelsha.pp.ru опубликовано еще несколько вводных статей по веб-сервисам и архитектуре, ориентированной на сервисы.

Сокращенный вариант этой статьи:
Шелякин П.Ю. Архитектура, ориентированная на сервисы // Обработка информации: методы и системы: сб. научных статей / Под. ред. С.С. Садыкова, Д.Е. Андрианова - М.: Горячая линия - Телеком, 2003. - c. 205-209