Відповіді:
Основні технології, такі як (XML, SOAP, WSDL), забезпечують можливість опису, пошуку та виклику служб як сутності самостійно. Однак ці технології не дають багатою поведінковою деталізацією щодо ролі служби в більш складній співпраці. Ця співпраця включає послідовність дій та відносини між діяльністю, які будують бізнес-процес. Існує два способи побудови цього процесу: службова оркестрація та сервісна хореографія.
Організація послуг являє собою єдиний централізований виконуваний бізнес-процес (оркестратор), який координує взаємодію між різними службами. Організатор відповідає за виклик та комбінування послуг.
Взаємозв'язок між усіма службами-учасниками описується єдиною кінцевою точкою (тобто складеною послугою). Оркестрація включає управління транзакціями між окремими службами. Оркестрація використовує централізований підхід до складу служб.
Службова хореографія - це глобальний опис служб-учасників, який визначається обміном повідомленнями, правилами взаємодії та угодами між двома або більше кінцевими точками. У хореографії використовується децентралізований підхід до складу службового складу.
Хореографія описує взаємодію між декількома службами, де оркестрація являє собою контроль з точки зору однієї сторони. Це означає, що хореографія відрізняється від оркестрації щодо того, де повинна знаходитися логіка, яка контролює взаємодію між залученими службами.
Оркестровка послуг : ви збираєте кілька сервісів за фіксованою логікою. Ця логіка описана в одному місці. Ви можете уявити команду людей з менеджером, який займається мікроменеджментом. Менеджер точно розповідає, що, коли і хто повинен робити. Учасники команди не дбають про всю мету завдання, менеджер поєднує результати в єдиний результат. Практичний приклад - процес BPEL. Процес BPEL містить логіку, може викликати декілька сервісів і об'єднати їх відповіді в єдину відповідь служби.
Службова хореографія : логіка рішення розподіляється без централізованої точки. Ви можете уявити собі дім, де всі прагнуть до загального блага і працюють проактивно без мікроуправління. Або ви можете уявити людське тіло, де різні члени взаємозалежні і працюють на спільну мету. Практичним прикладом є обробка, керована подіями, де агент активується подією та виконує свою роботу. Всі агенти складають систему разом. Централізованої логіки немає. Можливості хореографії можуть вийти за рамки оркестрації, оскільки вона більше узгоджується з реальним світом.
На мою думку , нам не потрібно сильно розмежовувати між цими двома, так як нам потрібно зосередитися на логіці бізнесу. Там, де працює єдиний момент логіки, ми робимо оркестрацію. Якщо проблема не може бути охоплена централізованою логікою, ми все одно змушені хореографії. Ось чому ми часто стикаємося з оркестром в ІТ, тоді як хореографія залишається більш академічною концепцією та предметом дослідження. І дуже часто ми робимо хореографію, не знаючи цього, як у реальному світі.
Послуги можна розрізнити між атомними послугами та послугами, що складаються з інших служб. Такі композиції називають "оркестрацією". Іноді робочий процес, іноді бізнес-процес. Наприклад, BPEL є мовою оркестрації, але називає себе "мовою виконання бізнес-процесів".
Немає вимоги, що служби потрібно складати ієрархічно. Це означає, що дві служби можуть спілкуватися між собою. Протокол, що працює між ними, називається "хореографія". Це можуть бути дві служби, але зазвичай тут задіяно більше двох служб. Кожна послуга в хореографії може вважатися оркестром партнерів. Кожна служба, яка бере участь у хореографії, може бути реалізована як оркестрація / робочий процес / процес.
Оркестрація показує повну поведінку кожної служби, тоді як хореографія поєднує описи поведінки інтерфейсу кожної служби.
Хороша наукова стаття, що відрізняє хореографію, поведінку інтерфейсу, поведінку постачальника та оркестрацію, є наступною: Дійкман, Р. і Дюма, М. Сервісно-орієнтоване проектування: Багатосторонній підхід Міжнародний журнал спільних інформаційних систем, 2004, 13, 337-368
Оскільки нитка стара, але все ще пишуться на ній для тих, хто натрапив сюди в пошуках цього питання, як я. Це багато дискусійне питання в сервісно-орієнтованій архітектурі (SOA), яке потребує набагато більш чіткого пояснення для початківців.
Оркестрація: Виконаний процес
Хореографія: багатостороннє співробітництво
Хореографія, навпаки, не покладається на центрального координатора. Скоріше, кожен веб-сервіс, який бере участь у хореографії, точно знає, коли слід виконувати свої операції та з ким взаємодіяти. Хореографія - це спільна робота, орієнтована на обмін повідомленнями в публічних бізнес-процесах.
Усі учасники хореографії повинні бути обізнані про бізнес-процес, операції по виконанню, обмін повідомленнями та терміни обміну повідомленнями.
Хореографія проти оркестрації
З точки зору створення веб-служб для виконання бізнес-процесів, оркестровка є більш гнучкою парадигмою і має такі переваги перед хореографією:
Координацію процесів компонентів здійснює централізовано відомий координатор.
Веб-сервіси можна включати, не усвідомлюючи, що вони беруть участь у більшій бізнес-процесі.
Андрій та інші добре зробили пояснення, що таке оркестрація, а що таке хореографія. Для архітектора програмного забезпечення, що вибирає між цими двома альтернативами, також важливо порівняти їх за різними якостями.
Оркестрація плюсує над хореографією
Хореографія плюсує над оркестрацією
Продуктивність: Оркестрація вимагає накладних витрат за рахунок інтерпретації сценарію робочого процесу та додаткового рівня самої платформи оркестрації.
Вартість: Хореографія не вимагає додаткового середнього програмного забезпечення або мови, які пов'язані з кривими навчання та тягарем управління.
Рішення для оркестрації може ввести SPOF, якщо елемент оркестрування не використовує механізм високої доступності. Дякуємо @Deepak por, що вказав це у коментарі.
Я б сказав, що хореографія добре підходить для внутрішніх організацій з високою децентралізацією. Вам не знадобиться центральний виконавець бізнес-процесів. Це сприяє незалежному зростанню та розвитку кожного підрозділу організації.
(Я підписуюся на таке питання інтерпретації оркестрації та хореографії: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )
Оркестрація корисна, коли ви маєте контроль над усіма учасниками процесу - коли вони всі в одній області контролю, і ви можете диктувати потік діяльності. Це, звичайно, найчастіше, коли ви вказуєте бізнес-процес, який буде застосовуватися в одній організації, над якою ви маєте контроль.
Хореографія - це спосіб визначити, як дві або більше сторін - жодна з яких не має ніякого контролю над процесами інших сторін чи, можливо, будь-якою видимістю цих процесів - можуть координувати свою діяльність та процеси для обміну інформацією та цінністю. Використовуйте хореографію, коли потрібна координація між областями контролю / видимості. Ви можете думати про хореографію за простим сценарієм, як про мережевий протокол. Він диктує прийнятні зразки запитів та відповідей між сторонами.
Ще один спосіб подивитися на Оркестрацію служб та хореографію:
- Оркестровка послуг: навколо домену бізнесу.
- Службова хореографія: серед безлічі доменів бізнесу.
В оркестрації є диригент і є інструменти. Гравці грають відповідно до того, як диригує диригент. Якщо диригент замінить, вираз гармоніки буде іншим, тобто це все одно та сама гра (служба), але з іншим результатом. Наприклад, щоб надати пропозицію щодо фінансових домовленостей, служба оркестрування проводитиме, запитуючи (звертаючись) до кожного гравця (суб'єкта господарювання або комунальної служби, наприклад, перевірка кредиту), щоб грати (повертати результати або коригувати / оновити свою гру) відповідно до шаблону диригента (бізнес правила). У хореографії є хореограф і є групи танцюристів. Хореографія - це напрям, але кожна група танцюристів автономна в тому, як реалізувати цей напрям.
Оркестрація, як правило, пов'язує послуги нижчого рівня. Це як посередник . Хореографія допомагає ще більше зменшити зв'язок. Я пояснив це детальніше тут .