Оркестрація проти хореографії


182

Які відмінності між службовою оркестрованістю та службовою хореографією з внутрішньоорганізаційної точки зору.

Відповіді:


334

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

Організація послуг

Організація послуг являє собою єдиний централізований виконуваний бізнес-процес (оркестратор), який координує взаємодію між різними службами. Організатор відповідає за виклик та комбінування послуг.

Взаємозв'язок між усіма службами-учасниками описується єдиною кінцевою точкою (тобто складеною послугою). Оркестрація включає управління транзакціями між окремими службами. Оркестрація використовує централізований підхід до складу служб.

Оркестрація

Службова хореографія

Службова хореографія - це глобальний опис служб-учасників, який визначається обміном повідомленнями, правилами взаємодії та угодами між двома або більше кінцевими точками. У хореографії використовується децентралізований підхід до складу службового складу.

Хореографія

Хореографія описує взаємодію між декількома службами, де оркестрація являє собою контроль з точки зору однієї сторони. Це означає, що хореографія відрізняється від оркестрації щодо того, де повинна знаходитися логіка, яка контролює взаємодію між залученими службами.


7
Фантастичні образи для показу двох! Де ти їх взяв?
Девід Манн

6
@DavidMann Дякую за ваш коментар, і будь ласка, підкажіть, якщо ви вважаєте, що це було вам корисно. Я робив ці діаграми у Visio, і як натхнення я використав деяку літературу в складі служб. Однак я зрозумів, що ця відповідь була 2 роки тому, коли я тільки почав читати про склад служби. Я оновлю цю відповідь посиланнями та розширюватиму про власність обох
Андрій

@Andrei: Не міг бути простішим за це.
Аншул Нігам

Чи розумно поєднувати оркестрацію та хореографію? наприклад, оркестровка для основного синхронного робочого процесу, але потім деяка хореографія для передачі подій асинхронізації назад до можливостей джерела (мікросервіси). За моїм сценарієм, такий підхід може врятувати мене від необхідності виконувати саги / стан-машина та компенсацію логіки.
Ryan.Bartsch

1
Деякі читачі можуть зробити висновок із вашої схеми оркестрації, що оркестрація означає синхронні виклики від служби контролю до надання послуг. Хочеться уточнити, що зв’язок Invoke-Response також може бути здійснений за допомогою асинхронних методів, в т.ч. через брокера повідомлень.
Крістоф

34

Оркестровка послуг : ви збираєте кілька сервісів за фіксованою логікою. Ця логіка описана в одному місці. Ви можете уявити команду людей з менеджером, який займається мікроменеджментом. Менеджер точно розповідає, що, коли і хто повинен робити. Учасники команди не дбають про всю мету завдання, менеджер поєднує результати в єдиний результат. Практичний приклад - процес BPEL. Процес BPEL містить логіку, може викликати декілька сервісів і об'єднати їх відповіді в єдину відповідь служби.

Службова хореографія : логіка рішення розподіляється без централізованої точки. Ви можете уявити собі дім, де всі прагнуть до загального блага і працюють проактивно без мікроуправління. Або ви можете уявити людське тіло, де різні члени взаємозалежні і працюють на спільну мету. Практичним прикладом є обробка, керована подіями, де агент активується подією та виконує свою роботу. Всі агенти складають систему разом. Централізованої логіки немає. Можливості хореографії можуть вийти за рамки оркестрації, оскільки вона більше узгоджується з реальним світом.

На мою думку , нам не потрібно сильно розмежовувати між цими двома, так як нам потрібно зосередитися на логіці бізнесу. Там, де працює єдиний момент логіки, ми робимо оркестрацію. Якщо проблема не може бути охоплена централізованою логікою, ми все одно змушені хореографії. Ось чому ми часто стикаємося з оркестром в ІТ, тоді як хореографія залишається більш академічною концепцією та предметом дослідження. І дуже часто ми робимо хореографію, не знаючи цього, як у реальному світі.


21

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

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

Оркестрація показує повну поведінку кожної служби, тоді як хореографія поєднує описи поведінки інтерфейсу кожної служби.

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


19

Оскільки нитка стара, але все ще пишуться на ній для тих, хто натрапив сюди в пошуках цього питання, як я. Це багато дискусійне питання в сервісно-орієнтованій архітектурі (SOA), яке потребує набагато більш чіткого пояснення для початківців.

Оркестрація: Виконаний процес

  • Використовується в приватних бізнес-процесах
  • Центральний процес (який може бути іншим веб-сервісом) бере контроль за залученими веб-сервісами та координує виконання різних операцій над веб-службами, що беруть участь в роботі
  • Залучені веб-служби не "знають" (і не потрібно знати), що вони беруть участь у процесі складання та що вони беруть участь у бізнес-процесі вищого рівня.
  • Про цю мету знає лише центральний координатор оркестрації, тому оркестрація централізована із чіткими визначеннями операцій та порядком виклику веб-служб.

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

Хореографія: багатостороннє співробітництво

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

  • Усі учасники хореографії повинні бути обізнані про бізнес-процес, операції по виконанню, обмін повідомленнями та терміни обміну повідомленнями.

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

Хореографія проти оркестрації

  • З точки зору створення веб-служб для виконання бізнес-процесів, оркестровка є більш гнучкою парадигмою і має такі переваги перед хореографією:

  • Координацію процесів компонентів здійснює централізовано відомий координатор.

  • Веб-сервіси можна включати, не усвідомлюючи, що вони беруть участь у більшій бізнес-процесі.

  • Альтернативні сценарії можуть бути створені у випадку виникнення несправностей.

1
Насправді хореографія зазвичай покладається на центрального координатора - і зазвичай цей координатор є деякою формою брокера розподілених повідомлень. Якщо не використовувати щось на кшталт брокера повідомлень, це пов'язує ваші послуги дуже негнучкими способами, що призводить до крихкості та низької кількості використання.
Родні П.

8

Андрій та інші добре зробили пояснення, що таке оркестрація, а що таке хореографія. Для архітектора програмного забезпечення, що вибирає між цими двома альтернативами, також важливо порівняти їх за різними якостями.

Оркестрація плюсує над хореографією

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

Хореографія плюсує над оркестрацією

  • Продуктивність: Оркестрація вимагає накладних витрат за рахунок інтерпретації сценарію робочого процесу та додаткового рівня самої платформи оркестрації.

  • Вартість: Хореографія не вимагає додаткового середнього програмного забезпечення або мови, які пов'язані з кривими навчання та тягарем управління.

EDIT

Рішення для оркестрації може ввести SPOF, якщо елемент оркестрування не використовує механізм високої доступності. Дякуємо @Deepak por, що вказав це у коментарі.


3
За винятком хореографії потрібні додаткові програмні засоби. Вимоги (завдання) повинні відповідати різним вузлам. Після цього хореографія розгортається, вводиться в дію, контролюється та адаптується. Все це управління вимагає інструментів, які зазвичай надаються середнім програмним забезпеченням.
Андрій

1
Чи не приносить оркестровка недолік однієї точки відмови, що не стосується хореографії?
Діпак

6

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

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


6

Оркестрація корисна, коли ви маєте контроль над усіма учасниками процесу - коли вони всі в одній області контролю, і ви можете диктувати потік діяльності. Це, звичайно, найчастіше, коли ви вказуєте бізнес-процес, який буде застосовуватися в одній організації, над якою ви маєте контроль.

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


5

Ще один спосіб подивитися на Оркестрацію служб та хореографію:

- Оркестровка послуг: навколо домену бізнесу.
- Службова хореографія: серед безлічі доменів бізнесу.


1

В оркестрації є диригент і є інструменти. Гравці грають відповідно до того, як диригує диригент. Якщо диригент замінить, вираз гармоніки буде іншим, тобто це все одно та сама гра (служба), але з іншим результатом. Наприклад, щоб надати пропозицію щодо фінансових домовленостей, служба оркестрування проводитиме, запитуючи (звертаючись) до кожного гравця (суб'єкта господарювання або комунальної служби, наприклад, перевірка кредиту), щоб грати (повертати результати або коригувати / оновити свою гру) відповідно до шаблону диригента (бізнес правила). У хореографії є ​​хореограф і є групи танцюристів. Хореографія - це напрям, але кожна група танцюристів автономна в тому, як реалізувати цей напрям.


-1

Оркестрація, як правило, пов'язує послуги нижчого рівня. Це як посередник . Хореографія допомагає ще більше зменшити зв'язок. Я пояснив це детальніше тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.