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


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

10 89

10 ответов:

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

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

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

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

Orchestration

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

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

Choreography

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

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

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

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

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

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

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

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

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

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

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

enter image description here

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

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

enter image description here

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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