Хореография сервисов в бизнес-вычислениях — это форма композиции сервисов , в которой протокол взаимодействия между несколькими партнерскими сервисами [ необходимо разъяснение ] определяется с глобальной точки зрения. [1] Идею, лежащую в основе понятия хореографии сервисов, можно резюмировать следующим образом:
«Танцоры танцуют, следуя глобальному сценарию без единой точки контроля»
То есть, во время выполнения каждый участник хореографии сервиса выполняет свою часть в соответствии с поведением других участников. [2] Роль хореографии определяет ожидаемое поведение обмена сообщениями участников, которые будут ее исполнять, с точки зрения последовательности и времени сообщений, которые они могут потреблять и производить. [3]
Хореография описывает последовательность и условия, в которых происходит обмен данными между двумя или более участниками для достижения какой-либо полезной цели. [4]
Хореография сервиса лучше понимается через сравнение с другой парадигмой композиции сервиса: оркестровкой сервиса . С одной стороны, в хореографиях сервиса логика взаимодействия между участниками на основе сообщений задается с глобальной точки зрения. С другой стороны, в оркестровке сервиса логика задается с локальной точки зрения одного контролирующего участника, называемого оркестратором . Например, в языке оркестровки сервиса BPEL спецификация оркестровки сервиса (например, файл процесса BPEL) представляет собой рабочий процесс, который может быть развернут в инфраструктуре сервиса (например, механизм выполнения BPEL, такой как Apache ODE ). Развертывание спецификации оркестровки сервиса преобразует рабочий процесс в составную службу. [5]
В некотором смысле, хореография услуг и оркестровки являются двумя сторонами одной медали. С одной стороны, роли хореографии услуг могут быть извлечены как оркестровки услуг с помощью процесса, называемого проекцией . [6] С помощью проекции можно реализовать скелеты , т.е. неполные оркестровки услуг, которые могут быть использованы в качестве базовых линий для реализации веб-сервисов, которые участвуют в хореографии услуг. С другой стороны, уже существующие оркестровки услуг могут быть составлены в хореографии услуг.
Хореографии услуг не выполняются: они разыгрываются . Хореография услуг разыгрывается, когда ее участники исполняют свои роли. [7] То есть, в отличие от оркестровки услуг, хореографии услуг не запускаются каким-либо движком в инфраструктуре услуг, но они «происходят», когда исполняются их роли. Это происходит потому, что логика хореографии услуг задается с глобальной точки зрения, и, таким образом, она не реализуется одной-единственной службой, как в оркестровке услуг.
Ключевой вопрос, на который пытается ответить большая часть исследований хореографии, заключается в следующем: предположим, что построена глобальная хореография, описывающая возможные взаимодействия между участниками в сотрудничестве. Каким условиям должна подчиняться хореография, чтобы гарантировать, что сотрудничество будет успешным ? Здесь « успешно» означает, что возникающее поведение, возникающее при реализации сотрудничества, когда каждый участник действует независимо в соответствии со своим собственным скелетом , в точности следует хореографии, из которой скелеты были изначально спроецированы. В этом случае говорят, что хореография реализуема . [ 8] В целом, определение реализуемости хореографии является нетривиальным вопросом, особенно когда сотрудничество использует асинхронный обмен сообщениями и разные участники могут отправлять сообщения одновременно.
В рамках спецификаций, касающихся веб-сервисов , следующие спецификации были сосредоточены на определении языков для моделирования хореографии сервисов:
Более того, спецификация OMG BPMN версии 2.0 включает диаграммы для моделирования хореографии услуг. [9]
Академические предложения по языкам хореографии включают:
Более того, был предложен ряд формализмов хореографии услуг, основанных на:
Хореография веб-сервисов ( WS-Choreography ) — это спецификация W3C , определяющая язык моделирования бизнес-процессов на основе XML , который описывает протоколы совместной работы участников веб-сервисов , в которых сервисы действуют как равноправные участники, а взаимодействия могут быть долгосрочными и сохраняющими состояние. ( Оркестровка — еще один термин с очень похожим, но все же другим значением.)
Основная работа по созданию хореографии, проводимая рабочей группой W3C Web Services Choreography Working Group, была прекращена 10 июля 2009 г. [24], в результате чего WS-CDL остался кандидатом на рекомендацию.
«Во многих докладах на семинаре W3C по веб-сервисам 11–12 апреля 2001 г. указывалось на необходимость общего интерфейса и языка композиции для решения проблемы хореографии. Рабочий проект требований к архитектуре веб-сервисов, созданный рабочей группой по архитектуре веб-сервисов, также перечисляет идею возможностей хореографии веб-сервисов как критический фактор успеха в поддержку нескольких различных целей верхнего уровня для зарождающейся архитектуры веб-сервисов»[1].
Проблема хореографии представляла большой интерес для отрасли в то время; такие усилия, как WSCL (Web Service Conversation Language) и WSCI (Web Service Choreography Interface) были представлены в W3C и опубликованы в качестве технических заметок. Более того, были запущены дополнительные усилия: [25]
«В июне 2002 года Intalio, Sun, BEA и SAP выпустили совместную спецификацию под названием Web Services Choreography Interface (WSCI). Эта спецификация была также представлена в W3C в качестве заметки в августе 2002 года. С тех пор W3C сформировал новую рабочую группу под названием Web Services Choreography Working Group в рамках Web services Activity. Спецификация WSCI является одним из основных вкладов в рабочую группу Web Services Choreography Working Group, которая опубликовала Candidate Recommendation по WS-CDL версии 1.0 9 ноября 2005 года»[3]. «XLang, WSFL и WSCI больше не поддерживаются ни одной стандартизирующей организацией или компаниями. BPEL заменил Xlang, а WSFL WSCI был заменен на WS-CDL »[4].
В будущей версии Business Process Modeling Notation 2.0 будут представлены диаграммы для указания хореографии услуг. [9]
В академической сфере появились другие языки хореографии, например, Let's Dance, [10] BPEL4Chor [11] и MAP. [19]
Хореографии услуг определяют основанные на сообщениях взаимодействия между участниками с глобальной точки зрения. Так же, как языки программирования могут быть сгруппированы в парадигмы программирования , языки хореографии услуг могут быть сгруппированы в стили : [26]
Существует несколько активных исследовательских проектов по теме хореографии обслуживания.