Оркестровка против Хореографии

182

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

PetrosB
источник

Ответы:

334

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

Сервисная оркестровка

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

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

оркестровка

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

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

Хореография

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

Андрей
источник
7
Фантастические изображения, чтобы показать два! Где ты достал их?
Дэвид Манн
6
@DavidMann Большое спасибо за ваш комментарий, и, пожалуйста, добавьте комментарий, если считаете, что он был вам полезен. Я сделал эти диаграммы в Visio, и в качестве вдохновения я использовал литературу по составлению сервисов. Однако я понял, что этот ответ был 2 года назад, когда я только начал читать о составе услуг. Я обновлю этот ответ ссылками и
Андрей
@ Андрей: Не могло быть проще, чем это.
Аншул Нигам
Разумно ли смешивать оркестровку и хореографию? например, иметь оркестровку для основного синхронного рабочего процесса, но затем некоторую хореографию для потоковой передачи асинхронных событий обратно в возможности источника (микросервисы). В моем сценарии такой подход может избавить меня от необходимости выполнять логику саги / конечного автомата и компенсацию.
Ryan.Bartsch
1
Некоторые читатели могут из вашей диаграммы оркестровки сделать вывод, что оркестрация означает синхронные вызовы контролирующей службы для предоставления услуг. Я хотел бы уточнить, что связь Invoke-Reply также может осуществляться с использованием асинхронных методов, в т.ч. через брокера сообщений.
Кристоф
34

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

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

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

KarelHusa
источник
21

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

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

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

Хорошая научная статья, отличающая хореографию, поведение интерфейса, поведение провайдера и оркестровку, является следующей: Дейкман Р. и Дюма, М. Сервис-ориентированный дизайн: подход с несколькими точками зрения Международный журнал кооперативных информационных систем, 2004, 13, 337-368

koppor
источник
19

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

Оркестровка: исполняемый процесс

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

введите описание изображения здесь

Хореография: Многопартийное Сотрудничество

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

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

введите описание изображения здесь

Хореография против оркестровки

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

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

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

  • Альтернативные сценарии могут быть созданы в случае возникновения неисправностей.
Cyclotron3x3
источник
1
На самом деле, хореография обычно полагается на центрального координатора - и обычно этот координатор представляет собой некую форму распределенного брокера сообщений. Если вы не используете что-то вроде брокера сообщений, ваши сервисы будут очень негибкими, что приведет к хрупкости и снижению повторного использования.
Родни П.
8

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

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

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

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

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

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

РЕДАКТИРОВАТЬ

Решение оркестровки может ввести SPOF, если элемент оркестратора не использует механизм высокой доступности. Спасибо @Deepak за указание на это в комментарии.

Пауло Мерсон
источник
3
Кроме хореографии требуется дополнительное промежуточное программное обеспечение. Требования (задачи) должны соответствовать различным узлам. После этого хореография разворачивается, принимается, контролируется и адаптируется. Все это управление требует инструментов, которые обычно предоставляются промежуточным программным обеспечением.
Андрей
1
Разве оркестровка не приносит недостаток единственной точки отказа, которая не имеет место с хореографией?
Дипак
6

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

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

Даниэль Арсеновски
источник
6

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

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

Питер Пайпер
источник
5

Еще один способ взглянуть на Сервисный Оркестр против Хореографии:

- Сервисная оркестровка: вокруг бизнес-сферы.
- Сервисная хореография: среди множества бизнес-доменов.

Майкл Цинь
источник
1

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

Отруби
источник
-1

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

ottodidakt
источник