Оркестровка и хореография

каковы различия между сервисной оркестровкой и сервисной хореографией с внутриорганизационной точки зрения.

10 ответов


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

взаимодействие служб

Service orchestration представляет собой единый централизованный исполняемый бизнес-процесс (orchestrator), который координирует взаимодействие между различными службами. Orchestrator отвечает за вызов и объединение служб.

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

Orchestration

Сервис Хореографии

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

Choreography

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


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

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

оркестровка показывает полное поведение каждой службы, тогда как хореография объединяет описания поведения интерфейса каждой службы.

хорошая научная статья отличительных хореография, поведение интерфейса, поведение поставщика и оркестровка-это следующее: Dijkman, R. & Dumas, M. сервис-ориентированный дизайн: многопозиционный подход международный журнал кооперативных информационных систем, 2004, 13, 337-368


взаимодействие служб: вы собрали несколько сервисов с помощью фиксированной логики. Эта логика описана в одном месте. Вы можете представить себе команду людей с менеджером, выполняющим микроменеджмент. Менеджер четко говорит, что, когда и кто должен делать. Члены команды не заботятся о всей цели задания, менеджер объединяет результаты в один результат. Практическим примером является процесс BPEL. Процесс BPEL содержит логику, может вызывать несколько служб и объедините их ответы в единый служебный ответ.

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

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


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

Аранжировка: Исполняемый Процесс

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

enter image description here

хореография: многопартийное сотрудничество

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

  • все участники хореографии должны быть в курсе дела процесс, операции для выполнения, сообщения для обмена и сроки обмена сообщениями.

enter image description here

хореографии и оркестровки

  • с точки зрения создания веб-сервисов для выполнения бизнес процессы, оркестровка является более гибкой парадигмой и имеет этот следующие преимущества перед хореографией:

  • координация компонентных процессов централизованно управляется a известный координатор.

  • веб-сервисы могут быть включены без их ведома, что они принимают участие в более крупном бизнес-процессе.

  • альтернативные сценарии можно поставить на место в случае неисправности.

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

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


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

(Я подписываюсь на эту интерпретацию вопроса оркестровки против хореографии: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html)


Андрей и другие проделали хорошую работу, объясняя, что такое оркестровка и что такое хореография. Для архитектора программного обеспечения, выбирающего между этими двумя альтернативами, также важно сравнить их с различными качествами.

плюсы оркестровки над хореографией

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

хореография плюсы над оркестровкой

  • производительность: оркестровка обеспечивает производительность накладные расходы из-за интерпретации сценария рабочего процесса и дополнительного уровня самой платформы оркестровки.

  • стоимость: хореография не требует дополнительного промежуточного программного обеспечения или языка, которые имеют связанные кривые обучения и бремя управления.


оркестровка обычно связывает службы более низкого уровня. Это как посредник. Хореография помогает еще больше уменьшить совокупление. Я объяснил это более подробно здесь.


в оркестровке есть дирижер и есть музыканты. Игроки играют в соответствии с тем, как дирижер проводит. Если проводник заменен, гармоническое выражение будет другим, т. е. это все та же игра (услуга), но с другим результатом. Например, чтобы предоставить предложение о финансовой договоренности, служба оркестровки будет проводить, запрашивая (вызывая) каждого игрока (объект или коммунальную услугу, например, проверку кредита), чтобы играть (возвращать результаты или корректировать / обновлять его игра) в соответствии с шаблоном дирижера (бизнес-правила). В хореографии есть хореограф и есть группы танцоров. Хореография-это направление, но каждая группа танцоров автономна в том, как реализовать это направление.


еще один способ взглянуть на взаимодействие служб и хореография:

- Service Orchestration: вокруг бизнес-домена.
- Хореография услуг: среди нескольких бизнес-доменов.