Хореография службы - это форма композиции службы, в которой протокол взаимодействия между несколькими партнерскими службами определяется с глобальной точки зрения. Идею, лежащую в основе понятия хореографии обслуживания, можно резюмировать следующим образом:
«Танцоры танцуют по глобальному сценарию без единой точки контроля»
То есть во время выполнения каждый участник хореографии обслуживания выполняет свою часть по поведению других участников. Роль хореографии определяет ожидаемое поведение участников при обмене сообщениями, которые будут ее воспроизводить, с точки зрения последовательности и времени сообщений, которые они могут потреблять и создавать.
Хореография описывает последовательность и условия, в которых происходит обмен данными между двумя или более участниками для достижения какой-либо полезной цели.
Хореография обслуживания более понятна через сравнение с другой парадигмой композиции службы: оркестровка службы. С одной стороны, в хореографии обслуживания логика взаимодействий между участниками на основе сообщений определяется с глобальной точки зрения. С другой стороны, в оркестровке сервисов логика определяется с локальной точки зрения одного участника, называемого оркестратором. Например, на языке оркестрации служб BPEL спецификация оркестровки служб (например, файл процесса BPEL) представляет собой рабочий процесс, который может быть развернут в инфраструктуре службы (например, механизм выполнения BPEL, например Apache ODE ). Развертывание спецификации оркестровки сервисов преобразует рабочий процесс в составной сервис.
В некотором смысле хореография сервиса и оркестровка - это две стороны одной монеты. С одной стороны, роли хореографии сервисов могут быть извлечены как оркестровки сервисов посредством процесса, называемого проекцией. Через проекцию можно реализовать скелеты, то есть неполные оркестровки сервисов, которые можно использовать в качестве базовых для реализации веб-сервисов, участвующих в хореографии сервисов. С другой стороны, уже существующие оркестровки служб могут быть составлены в хореографиях служб.
Хореографии обслуживания не выполняются: они вводятся в действие. Хореография службы разыгрывается, когда ее участники исполняют свои роли. То есть, в отличие от оркестровки сервисов, хореографии сервисов не выполняются каким-либо механизмом в сервисной инфраструктуре, но они «происходят», когда выполняются их роли. Это связано с тем, что логика хореографии сервисов определяется с глобальной точки зрения, и таким образом, это не реализуется с помощью одной единственной службы, как в оркестровке служб.
Ключевой вопрос, на который большая часть исследований в области хореографии пытается ответить, заключается в следующем: предположим, что построена глобальная хореография, которая описывает возможные взаимодействия между участниками в сотрудничестве. Каким условиям должна подчиняться хореография, чтобы гарантировать успех сотрудничества? Здесь «успех» означает, что возникающее поведение, возникающее в результате разыгрывания сотрудничества, когда каждый участник действует независимо в соответствии со своим собственным скелетом, точно следует хореографии, из которой изначально были спроектированы скелеты. В этом случае хореография называется реализацией. бл. В общем, определение реализуемости хореографии - нетривиальный вопрос, особенно если в совместной работе используется асинхронный обмен сообщениями, и разные участники могут отправлять сообщения одновременно.
В рамках спецификаций, касающихся веб-сервисов, следующие спецификации сосредоточены на определении языков для моделирования хореографии сервисов:
Более того, OMG спецификация BPMN версия 2.0 включает диаграммы для моделирования хореографии сервисов.
Академические предложения по языкам служебной хореографии включают:
Кроме того, был разработан ряд формализмов служебной хореографии. предложено на основе:
Хореография веб-сервисов (WS-Choreography ) - это спецификация W3C, определяющая основанное на XML моделирование бизнес-процессов язык, описывающий протоколы сотрудничества взаимодействующих участников веб-служб, в которых службы действуют как одноранговые узлы, а взаимодействия могут быть долгоживущими и иметь состояние. (Оркестровка - это еще один термин с очень похожим, но все же другим значением.)
Основная попытка получить хореографию, Рабочая группа W3C Web Services Choreography, был закрыт 10 июля 2009 года, в результате чего WS-CDL был признан кандидатом в рекомендации.
«Многие презентации на семинаре W3C по веб-службам 11–12 апреля 2001 г. указывали на необходимость общего интерфейса и языка композиции для решения проблем хореографии. Рабочий проект требований к архитектуре веб-служб, созданный веб-службами Рабочая группа по архитектуре также перечисляет идею возможностей хореографии веб-сервисов как критический фактор успеха для поддержки нескольких различных целей верхнего уровня для зарождающейся архитектуры веб-сервисов »[1].
проблема хореографии вызвала большой интерес в индустрии в то время; такие проекты, как WSCL (язык общения веб-служб) и WSCI (интерфейс хореографии веб-служб), были представлены в W3C и опубликованы в виде технических заметок. Кроме того, были предприняты дополнительные усилия:
«В июне 2002 года Sun, BEA и SAP выпустили совместную спецификацию под названием Web Services Choreography Interface (WSCI). Эта спецификация также была представлена в W3C в виде примечания в августе 2002 года. С тех пор W3C сформировал новую рабочую группу под названием «Рабочая группа по хореографии веб-сервисов» в рамках деятельности по веб-сервисам. Спецификация WSCI является одним из основных входов в рабочую группу по хореографии веб-сервисов который опубликовал кандидат в рекомендации по WS-CDL версии 1.0 9 ноября 2005 г. "[3]. «XLang, WSFL и WSCI больше не поддерживаются ни одной стандартной организацией или компаниями. BPEL заменил Xlang, а WSFL. WSCI был заменен на WS-CDL » [4].
Предстоящие Нотация моделирования бизнес-процессов версии 2.0 представит диаграммы для определения хореографии сервисов.
Академическая область выдвинула другие языки хореографии сервисов, например Let's Dance, BPEL4Chor и MAP.
Хореографии обслуживания определяют основанные на сообщениях взаимодействия между участниками с глобальной точки зрения. Точно так же, как языки программирования могут быть сгруппированы в парадигмы программирования, языки хореографии сервисов могут быть сгруппированы по стилям:
Существует несколько активных исследовательских проектов по теме хореографии сервисов.