Jakie są różnice między orkiestracją usług a choreografią usług z punktu widzenia wewnątrz organizacji.
źródło
Jakie są różnice między orkiestracją usług a choreografią usług z punktu widzenia wewnątrz organizacji.
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 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.
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 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.
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.
źródło
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
źródło
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
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.
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.
źródło
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ą
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.
źródło
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 )
źródło
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.
źródło
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.
źródło
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.
źródło
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 .
źródło