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