Оркестровка против Хореографии
Каковы различия между сервисной оркестровкой и сервисной хореографией с точки зрения организации?
12 ответов
Базовые технологии, такие как (XML, SOAP, WSDL), предоставляют средства для описания, определения местоположения и вызова служб как отдельного объекта. Однако эти технологии не дают подробных сведений о роли службы в более сложном сотрудничестве. Это сотрудничество включает в себя последовательность действий и отношений между действиями, которые формируют бизнес-процесс. Есть два способа построить этот процесс: сервисная оркестровка и сервисная хореография.
Сервисная оркестровка
Оркестровка сервисов представляет собой единый централизованный исполняемый бизнес-процесс (оркестратор), который координирует взаимодействие между различными сервисами. Оркестр отвечает за вызов и объединение сервисов.
Отношения между всеми участвующими услугами описываются одной конечной точкой (то есть, составной услугой). Оркестровка включает управление транзакциями между отдельными службами. Оркестровка использует централизованный подход к составу услуг.
Сервис Хореография
Хореография сервисов - это глобальное описание участвующих сервисов, которое определяется обменом сообщениями, правилами взаимодействия и соглашениями между двумя или более конечными точками. Хореография использует децентрализованный подход к составу услуг.
Хореография описывает взаимодействие между несколькими службами, где оркестровка представляет контроль с точки зрения одной стороны. Это означает, что хореография отличается от оркестровки тем, где должна находиться логика, управляющая взаимодействиями между задействованными сервисами.
Оркестровка сервисов: вы объединяете несколько сервисов по фиксированной логике. Эта логика описана в одном месте. Вы можете представить команду людей с менеджером, занимающимся микроуправлением. Менеджер точно говорит, что, когда и кто должен делать. Члены команды не заботятся о цели всей работы, менеджер объединяет результаты в один результат. Практическим примером является процесс BPEL. Процесс BPEL содержит логику, может вызывать несколько сервисов и объединять их ответы в один сервисный ответ.
Сервисная хореография: логика принятия решений распределена, без централизованной точки. Вы можете представить себе дом, где все стремятся к общему благу и активно работают без микроуправления. Или вы можете представить себе человеческое тело, в котором разные члены взаимозависимы и работают ради общей цели. Практическим примером является управляемая событиями обработка, когда агент активируется событием и выполняет свою работу. Все агенты составляют систему вместе. Здесь нет централизованной логики. Возможности хореографии могут выходить за рамки оркестровки, поскольку они больше соответствуют реальному миру.
Мое мнение таково, что нам не нужно сильно различать эти два, поскольку нам нужно сосредоточиться на бизнес-логике. Там, где единственная логическая точка выполняет свою работу, мы делаем оркестровку. Там, где проблема не может быть покрыта централизованной логикой, мы все равно вынуждены заниматься хореографией. Вот почему мы часто сталкиваемся с оркестровкой в области ИТ, в то время как хореография остается в большей степени академической концепцией и предметом исследований. И очень часто мы делаем хореографию, фактически не зная об этом, как в реальном мире.
Поскольку ветка старая, но она все еще пишется для тех, кто, как и я, наткнулся здесь на поиски этого вопроса. Это очень обсуждаемый вопрос в сервис-ориентированной архитектуре (SOA), который требует более четкого объяснения для начинающих.
Оркестровка: исполняемый процесс
- Используется в частных бизнес-процессах
- Центральный процесс (который может быть другим веб-сервисом) берет на себя управление вовлеченными веб-сервисами и координирует выполнение различных операций над веб-сервисами, вовлеченными в операцию.
- Вовлеченные веб-службы не "знают" (и не должны знать), что они вовлечены в процесс компоновки и что они принимают участие в бизнес-процессе более высокого уровня.
- Только центральный координатор оркестровки знает об этой цели, поэтому оркестровка централизована с явными определениями операций и порядком вызова веб-сервисов.
Хореография: Многопартийное Сотрудничество
Хореография, напротив, не зависит от центрального координатора. Скорее, каждый веб-сервис, участвующий в хореографии, точно знает, когда выполнять свои операции и с кем взаимодействовать. Хореография - это совместная работа, направленная на обмен сообщениями в общественных бизнес-процессах.
Все участники хореографии должны знать о бизнес-процессах, операциях, которые нужно выполнить, сообщениях для обмена и времени обмена сообщениями.
Хореография против оркестровки
С точки зрения составления веб-сервисов для выполнения бизнес-процессов оркестровка является более гибкой парадигмой и имеет следующие преимущества по сравнению с хореографией:
Координация компонентов процессов централизованно управляется известным координатором.
Веб-сервисы могут быть включены, не зная, что они принимают участие в более широком бизнес-процессе.
- Альтернативные сценарии могут быть созданы в случае возникновения ошибок.
Службы можно различать между атомарными службами и службами, состоящими из других служб. Такие композиции называются "оркестровка". Иногда рабочий процесс, иногда бизнес-процесс. Например, BPEL является языком оркестровки, но называет себя "языком выполнения бизнес-процессов".
Не требуется, чтобы услуги были иерархически составлены. Это означает, что две службы могут общаться друг с другом. Протокол между ними называется "хореография". Это может быть две службы, но обычно задействовано более двух служб. Каждый сервис в хореографии может рассматриваться как организатор партнерских сервисов. Каждый сервис, участвующий в хореографии, может быть реализован как оркестровка / рабочий процесс / процесс.
Оркестровка показывает полное поведение каждого сервиса, тогда как хореография объединяет описания поведения интерфейса каждого сервиса.
Хорошая научная статья, отличающая хореографию, поведение интерфейса, поведение провайдера и оркестровку, является следующей: Дейкман Р. и Дюма, М. Сервис-ориентированный дизайн: подход с несколькими точками зрения Международный журнал кооперативных информационных систем, 2004, 13, 337-368
Андрей и другие хорошо поработали, объяснив, что такое оркестровка и что такое хореография. Для архитектора программного обеспечения, выбирающего между этими двумя альтернативами, также важно сравнить их в отношении различных качеств.
Оркестровые плюсы над хореографией
- Надежность. Платформы Orchestration имеют встроенную поддержку обработки ошибок и управления транзакциями (компенсация транзакций). В хореографии специально разработанный рабочий процесс и обработка ошибок, как правило, более подвержены ошибкам.
- Модифицируемость. Создание и изменение рабочих процессов процессов и сложных композиций услуг проще с помощью визуальных инструментов BPM, которые можно найти на платформах оркестровки.
Хореография плюсы над оркестровкой
Производительность. Orchestration влечет за собой снижение производительности из-за интерпретации сценария рабочего процесса и дополнительного уровня самой платформы оркестровки.
Стоимость: Хореография не требует дополнительного промежуточного программного обеспечения или языка, которые связаны с кривыми обучения и бременем управления.
Оркестровка полезна, когда у вас есть контроль над всеми участниками процесса - когда все они находятся в одной области контроля, и вы можете диктовать поток действий. Это, конечно, чаще всего, когда вы указываете бизнес-процесс, который будет выполняться внутри одной организации, которую вы контролируете.
Хореография - это способ указать, как две или более стороны, ни одна из которых не имеет никакого контроля над процессами других сторон, или, возможно, какой-либо видимости этих процессов, могут координировать свои действия и процессы для обмена информацией и ценностями. Используйте хореографию, когда требуется координация между областями контроля / видимости. Вы можете рассматривать хореографию в простом сценарии как сетевой протокол. Это диктует приемлемые образцы запросов и ответов между сторонами.
Еще один способ взглянуть на Сервисный Оркестр против Хореографии:
- Сервисная оркестровка: вокруг бизнес-сферы.
- Сервисная хореография: среди множества бизнес-доменов.
Я бы сказал, что хореография хорошо подходит для высоко децентрализованных организаций. Вам не понадобится центральный исполнитель бизнес-процессов. Это способствует независимому росту и развитию каждого из подразделений организации.
(Я согласен с этой интерпретацией вопроса о оркестровке и хореографии: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html)
Можно использовать и хореографию, и оркестровку — та же система, что и в нашем продукте. Различные участники, выполняющие различные порученные им задачи, управляются системой публикации/подписки событий посредством событий, которые они генерируют. Например, когда грузчик с контейнером прибывает на склад, это событие, на которое подписывается приложение менеджера склада, предлагает менеджеру склада активировать ресурсы для выгрузки груза. Но когда случаются исключения, например, вилочный погрузчик для перевозки груза выходит из строя, это событие запускает механизм оркестрации (процессор рабочего процесса), чтобы организовать задачу для различных участников в соответствии с рабочим процессом обработки исключений для обработки исключения.
В оркестровке есть проводник и инструментальные игроки. Игроки играют в соответствии с тем, как проводит дирижер. Если проводник заменен, гармоническое выражение будет другим, т. Е. Это будет та же самая игра (услуга), но с другим результатом. Например, чтобы предоставить предложение о финансовой договоренности, служба оркестровки будет проводить, запрашивая (вызывая) каждого игрока (организацию или коммунальную службу, например, проверку кредита), чтобы он играл (возвращал результаты или корректировал / обновлял свою игру) в соответствии с шаблоном проводника (бизнес правила). В хореографии есть хореограф и есть группы танцоров. Хореография - это направление, но каждая группа танцоров автономна в том, как реализовать это направление.
И оркестровка, и хореография - две философии формализма процесса в большом масштабе, то есть пространства для сотрудничества. Пространство для совместной работы - это формальное представление отрасли, например, отрасли здравоохранения, пищевой промышленности, автомобильной промышленности или... Поэтому у вас должны быть небольшие поставщики услуг, способные говорить на каком-то языке общения, прежде чем вы решите организовать их или использовать хореографию для удовлетворения некоторого спроса, значимого для конечного потребителя.
Оркестровка обычно следует за так называемым промежуточным программным обеспечением в распределенных системах. Некоторыми хорошими примерами инструментов в ИТ-индустрии могут быть Juju, Zapier IFTTT. У вас есть централизованный контроль, слух, модификация и устранение неисправностей в отношении потребляемых вами услуг.
Хореография более децентрализована, чем оркестровка, в том смысле, что она принимает больше автономных сотрудников. Например, сеть биткойнов - это совокупность поставщиков услуг, называемых узлами, которые вместе предоставляют услугу Defi, а именно функциональность распределенного реестра для своих конечных потребителей услуг. Но у него нет централизованных полномочий, и нет полного обзора всей сети. Существует консенсус в отношении того, что если уважаемый поставщик услуг-кандидатов присоединится к сети и будет участвовать в предоставлении услуг конечным потребителям. Везде, где вам нужно атаковать надежную третью сторону и ее побочные эффекты, такие как коррупция, оркестровки будет недостаточно.
Опять же, любое сотрудничество между участниками в любой отрасли может быть подвергнуто оркестровке или хореографии, поэтому я надеюсь, что ограничение примеров только ИТ-отраслью не вводит в заблуждение.
Также могу добавить, что название предполагает аналогию между этими двумя и сценическим исполнением. В оркестре каждый музыкант гармонирует с другими членами команды, если он следует за одним дирижером. С другой стороны, аналогично сценическому танцу в хореографии нет дирижера, каждый сценический танцор только гармонизирует себя со своим партнером (лучше, если говорит как равный), без единой точки лидерства по гармонизации. Но все же оба представляют для зрителей гармонию.