Orkiestracja a choreografia

182

Jakie są różnice między orkiestracją usług a choreografią usług z punktu widzenia wewnątrz organizacji.

PetrosB
źródło

Odpowiedzi:

334

Podstawowe technologie, takie jak (XML, SOAP, WSDL), zapewniają sposoby opisywania, lokalizowania i wywoływania usług jako samodzielna jednostka. Jednak technologie te nie zapewniają szczegółowych informacji behawioralnych dotyczących roli usługi w bardziej złożonej współpracy. Ta współpraca obejmuje sekwencję działań i relacje między działaniami, które tworzą proces biznesowy. Istnieją dwa sposoby budowania tego procesu: orkiestracja usług i choreografia usług.

Orkiestracja usług

Orkiestracja usług reprezentuje pojedynczy scentralizowany wykonywalny proces biznesowy (koordynator), który koordynuje interakcje między różnymi usługami. Koordynator jest odpowiedzialny za wywoływanie i łączenie usług.

Relacja między wszystkimi usługami uczestniczącymi jest opisywana przez pojedynczy punkt końcowy (tj. Usługę złożoną). Orkiestracja obejmuje zarządzanie transakcjami między poszczególnymi usługami. Orkiestracja wykorzystuje scentralizowane podejście do kompozycji usług.

Orkiestracja

Choreografia usług

Choreografia usług to globalny opis uczestniczących usług, który jest definiowany przez wymianę komunikatów, zasady interakcji i umowy między dwoma lub więcej punktami końcowymi. Choreografia wykorzystuje zdecentralizowane podejście do kompozycji usług.

Choreografia

Choreografia opisuje interakcje między wieloma usługami, gdzie orkiestracja reprezentuje kontrolę z perspektywy jednej strony. Oznacza to, że choreografia różni się od orkiestracji tym, gdzie powinna znajdować się logika kontrolująca interakcje między zaangażowanymi usługami.

Andrei
źródło
7
Fantastyczne zdjęcia, aby pokazać te dwie rzeczy! Skąd je masz?
David Mann,
6
@DavidMann Wielkie dzięki za komentarz i prosimy o zagłosowanie, jeśli uważasz, że był on dla Ciebie przydatny. Zrobiłem te diagramy w Visio i jako inspirację wykorzystałem literaturę dotyczącą kompozycji usług. Jednak zdałem sobie sprawę, że ta odpowiedź była 2 lata temu, kiedy zacząłem czytać o składzie usług. Zaktualizuję tę odpowiedź o odniesienia i rozszerzę właściwości obu
Andrei
@Andrei: Nie mogło być prostsze niż to.
Anshul Nigam
Czy rozsądne jest mieszanie orkiestracji i choreografii? np. mieć orkiestrację dla podstawowego synchronicznego przepływu pracy, ale potem pewną choreografię do przesyłania strumieniowego zdarzeń asynchronicznych z powrotem do możliwości źródła (mikrousługi). W moim scenariuszu takie podejście może zaoszczędzić mi konieczności robienia sagi / maszyny stanu i logiki kompensacji.
Ryan.Bartsch,
1
Niektórzy czytelnicy mogą wywnioskować z twojego diagramu orkiestracji, że orkiestracja oznacza synchroniczne wywołania od usługi kontrolującej do świadczenia usług. Chciałbym wyjaśnić, że komunikacja Invoke-Reply może być również realizowana przy użyciu metod asynchronicznych, w tym. za pośrednictwem brokera wiadomości.
Christoph
34

Orkiestracja usług : łączysz kilka usług według ustalonej logiki. Ta logika jest opisana w jednym miejscu. Można sobie wyobrazić zespół ludzi z menedżerem zajmującym się mikro-zarządzaniem. Menedżer precyzyjnie podpowiada, co, kiedy i kto powinien zrobić. Członkowie zespołu nie dbają o cały cel pracy, menedżer łączy wyniki w jeden produkt. Praktycznym przykładem jest proces BPEL. Proces BPEL zawiera logikę, może wywoływać kilka usług i łączyć ich odpowiedzi w jedną odpowiedź usługi.

Choreografia usług : logika decyzji jest rozproszona, bez scentralizowanego punktu. Można sobie wyobrazić dom, w którym każdy dąży do wspólnego dobra i pracuje aktywnie bez mikro-zarządzania. Albo możesz sobie wyobrazić ludzkie ciało, w którym różni członkowie są współzależni i pracują dla wspólnego celu. Praktycznym przykładem jest przetwarzanie sterowane zdarzeniami, w którym agent jest aktywowany przez zdarzenie i wykonuje swoje zadanie. Wszyscy agenci tworzą razem system. Nie ma scentralizowanej logiki. Możliwości choreografii mogą wykraczać poza orkiestrację, ponieważ jest bardziej dostosowana do rzeczywistego świata.

Uważam , że nie musimy zbytnio rozróżniać tych dwóch, ponieważ musimy skupić się na logice biznesowej. Tam, gdzie działa pojedynczy punkt logiki, wykonujemy orkiestrację. Tam, gdzie problemu nie da się ująć w scentralizowanej logice, i tak jesteśmy zmuszeni do choreografii. Dlatego często spotykamy się z orkiestracją w IT, podczas gdy choreografia pozostaje bardziej koncepcją akademicką i przedmiotem badań. I bardzo często robimy choreografię, nie wiedząc o tym, jak w prawdziwym świecie.

KarelHusa
źródło
21

Usługi można rozróżnić między usługami atomowymi i usługami złożonymi z innych usług. Takie kompozycje nazywane są „orkiestracją”. Czasami przepływ pracy, czasami proces biznesowy. Na przykład BPEL jest językiem orkiestracji, ale nazywa siebie „językiem wykonywania procesów biznesowych”.

Nie ma wymogu hierarchicznego tworzenia usług. Oznacza to, że dwie usługi mogą ze sobą rozmawiać. Protokół przebiegający między nimi nazywa się „choreografią”. Mogą to być dwie usługi, ale zazwyczaj jest to więcej niż dwie usługi. Każda usługa w choreografii może być postrzegana jako orkiestrator usług partnerskich. Każda usługa biorąca udział w choreografii może być realizowana jako orkiestracja / workflow / proces.

Orkiestracja pokazuje pełne zachowanie każdej usługi, podczas gdy choreografia łączy opisy zachowania interfejsu każdej usługi.

Dobry artykuł naukowy wyróżniający choreografię, zachowanie interfejsu, zachowanie dostawcy i orkiestrację jest następujący: Dijkman, R. & Dumas, M. Projekt zorientowany na usługi: A Multi-viewpoint Approach International Journal of Cooperative Information Systems, 2004, 13, 337-368

koppor
źródło
19

Ponieważ wątek jest stary, ale nadal piszę do niego dla tych, którzy natkną się tutaj w poszukiwaniu tego pytania, tak jak ja. Jest to szeroko dyskutowana kwestia w architekturze zorientowanej na usługi (SOA), która wymaga dużo czystszego wyjaśnienia dla początkujących.

Orkiestracja: proces wykonywalny

  • Używany w prywatnych procesach biznesowych
  • Proces centralny (który może być inną usługą sieciową) przejmuje kontrolę nad zaangażowanymi usługami sieciowymi i koordynuje wykonywanie różnych operacji w usługach sieci Web biorących udział w operacji
  • Zaangażowane usługi internetowe nie „wiedzą” (i nie muszą wiedzieć), że są zaangażowane w proces tworzenia kompozycji i że biorą udział w procesie biznesowym wyższego poziomu.
  • Tylko centralny koordynator aranżacji jest świadomy tego celu, więc aranżacja jest scentralizowana z wyraźnymi definicjami operacji i kolejnością wywoływania usług internetowych.

wprowadź opis obrazu tutaj

Choreografia: współpraca wielostronna

  • Natomiast choreografia nie opiera się na centralnym koordynatorze. Przeciwnie, każda usługa sieciowa zaangażowana w choreografię dokładnie wie, kiedy wykonać swoje operacje iz kim współpracować. Choreografia to wspólny wysiłek skupiający się na wymianie wiadomości w publicznych procesach biznesowych.

  • Wszyscy uczestnicy choreografii muszą być świadomi procesu biznesowego, operacji do wykonania, komunikatów do wymiany i czasu wymiany komunikatów.

wprowadź opis obrazu tutaj

Choreografia a orkiestracja

  • Z punktu widzenia tworzenia usług internetowych w celu wykonywania procesów biznesowych, orkiestracja jest paradygmatem bardziej elastycznym i ma następujące zalety w porównaniu z choreografią:

  • Koordynacją procesów składowych zarządza centralnie znany koordynator.

  • Usługi internetowe mogą być włączane bez świadomości, że biorą udział w większym procesie biznesowym.

  • W przypadku wystąpienia usterek można zastosować alternatywne scenariusze.
Cyclotron3x3
źródło
1
W rzeczywistości choreografia zwykle opiera się na centralnym koordynatorze - a zwykle koordynatorem jest jakaś forma rozproszonego brokera wiadomości. Nieużywanie czegoś takiego jak broker wiadomości wiązałoby Twoje usługi w bardzo nieelastyczny sposób, prowadząc do kruchości i małej możliwości ponownego wykorzystania.
Rodney P. Barbati
8

Andrei i inni wykonali dobrą robotę wyjaśniając, czym jest orkiestracja, a czym choreografia. Dla architekta oprogramowania dokonującego wyboru między tymi dwiema alternatywami ważne jest również porównanie ich pod kątem różnych cech.

Zalety orkiestracji nad choreografią

  • Niezawodność: platformy orkiestracyjne mają wbudowaną obsługę obsługi błędów i zarządzania transakcjami (transakcje kompensacyjne). W choreografii niestandardowy przepływ pracy i obsługa błędów są bardziej podatne na błędy.
  • Modyfikowalność: Tworzenie i zmienianie przepływów pracy procesów i złożonych kompozycji usług jest łatwiejsze dzięki wizualnym narzędziom BPM znajdującym się na platformach orkiestracji.

Choreografia ma przewagę nad orkiestracją

  • Wydajność: Orkiestracja powoduje narzut wydajności ze względu na interpretację skryptów przepływu pracy i dodatkową warstwę samej platformy orkiestracji.

  • Koszt: Choreografia nie wymaga dodatkowego oprogramowania pośredniego ani języka, co wiąże się z krzywymi uczenia się i obciążeniem związanym z zarządzaniem.

EDYTOWAĆ

Rozwiązanie do aranżacji może wprowadzić SPOF, jeśli element orchestrator nie wykorzystuje mechanizmu zapewniającego wysoką dostępność. Dzięki @Deepak por wskazując to w komentarzu.

Paulo Merson
źródło
3
Poza tym, że choreografia wymaga dodatkowego oprogramowania pośredniego. Wymagania (zadania) muszą być dopasowane do różnych węzłów. Następnie choreografia jest wdrażana, wprowadzana w życie, monitorowana i dostosowywana. Całe to zarządzanie wymaga narzędzi, które są zwykle dostarczane przez oprogramowanie pośredniczące.
Andrei
1
Czy orkiestracja nie ma wady pojedynczego punktu awarii, co nie ma miejsca w przypadku choreografii?
Deepak
6

Powiedziałbym, że choreografia dobrze nadaje się wewnętrznie dla wysoce zdecentralizowanych organizacji. Nie potrzebujesz centralnego wykonawcy procesów biznesowych. Ułatwia to niezależny wzrost i rozwój każdej z podjednostek organizacji.

(Subskrybuję tę interpretację pytania o orkiestrację a choreografię: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )

Danijel Arsenovski
źródło
6

Orkiestracja jest przydatna, gdy masz kontrolę nad wszystkimi aktorami w procesie - kiedy wszyscy znajdują się w jednej domenie kontroli i możesz dyktować przepływ działań. Dzieje się tak najczęściej, gdy określasz proces biznesowy, który zostanie uchwalony w jednej organizacji, nad którą masz kontrolę.

Choreografia to sposób na określenie, w jaki sposób dwie lub więcej stron - z których żadna nie ma żadnej kontroli nad procesami innych stron ani być może wglądu w te procesy - może koordynować swoje działania i procesy w celu wymiany informacji i wartości. Używaj choreografii, gdy wymagana jest koordynacja między domenami kontroli / widoczności. Możesz myśleć o choreografii, w prostym scenariuszu, jak o protokole sieciowym. Dyktuje akceptowalne wzorce wniosków i odpowiedzi między stronami.

Peter Piper
źródło
5

Inny sposób spojrzenia na orkiestrację usług a choreografię:

- Orkiestracja usług: wokół domeny biznesowej.
- Choreografia usług: wśród wielu domen biznesowych.

Michael Qin
źródło
1

W orkiestracji jest dyrygent i są instrumentaliści. Gracze grają zgodnie z zachowaniem dyrygenta. Jeśli dyrygent zostanie wymieniony, wyrażenie harmoniczne będzie inne, tj. Nadal będzie to ta sama gra (służba), ale z innym wynikiem. Na przykład, aby przedstawić propozycję porozumienia finansowego, usługa orkiestracji przeprowadzi, prosząc (wzywając) każdego gracza (podmiot lub usługę użyteczności publicznej, np. Sprawdzenie zdolności kredytowej), aby zagrał (zwrócił wyniki lub dostosował / zaktualizował swoją grę) zgodnie z szablonem dyrygenta (biznes zasady). W choreografii jest choreograf i są grupy tancerzy. Choreografia to kierunek, ale każda grupa tancerzy ma autonomię w realizacji tego kierunku.

Otręby
źródło
-1

Orkiestracja zazwyczaj wiąże ze sobą usługi niższego poziomu. Jest jak mediator . Choreografia pomaga jeszcze bardziej zredukować sprzężenie. Wyjaśniłem to bardziej szczegółowo tutaj .

ottodidakt
źródło