Сервисно-ориентированная модель W3C

Наиболее подробное описание SOA проводится двумя организациями: W3C
(World Wide Web Consortium) и OASIS (Organization for the Advancement
of Structured Information Standards) в рамках составления спецификаций
для веб-сервисов и их использования в электронной коммерции.
Сервисно-ориентированная модель описывает сервисы, действия, задания
и связанные с ними сущности. Основная задача модели – объяснить
логическую взаимосвязь между программными агентами и сервисами, которые
они предоставляют или запрашивают.
Модель показана на следующей схеме:

Сервис – это абстрактный ресурс, обладающий способностью выполнять
задания (предоставляющий некую функциональность). Сервис реализуется
одним или несколькими программными агентами (provider agent),
действующими от имени организации-провайдера.
Описание сервиса – это набор документов, описывающих интерфейс и
семантику сервиса. Также описание может содержать указания на категорию
сервиса или другую мета-информацию для поиска и использования сервисов.
Полное описание может быть в виде нескольких XML-документов.
Интерфейс сервиса определяет типы сообщений и шаблоны обмена сообщениями при взаимодействии с сервисом.
Семантика сервиса отражает его поведение при взаимодействии.
Семантика сервиса отражается в контракте между клиентом и провайдером.
Задание (service task) – это действие или комбинация действий, позволяющих достигнуть желаемого состояния.
Хореография определяет последовательность и условия для обработки
сообщений от нескольких независимых агентов для достижения желаемого
состояния.
Роль сервиса – это абстрактное множество заданий, выбираемых как
связанные между собой организацией-провайдером. Обычно роль сервиса
указывается как одно из свойств передаваемых сообщений.
На практике, взаимодействие двух компонентов в SOA происходит через
провайдера услуг (сервис-провайдера), роль которого заключается в
проверке корректности запроса и, возможно, в предоставлении информации
для билинга:

Поиск сервиса может осуществляться через реестр, содержащий описания
сервисов и их интерфейсов. Эти описания предварительно публикуются в
реестр.

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