Choreografia serwisowa
Choreografia usług w informatyce biznesowej to forma kompozycji usług , w której protokół interakcji między kilkoma usługami partnerskimi [ wymagane wyjaśnienie ] jest definiowany z perspektywy globalnej. Ideę leżącą u podstaw pojęcia choreografii serwisowej można streścić w następujący sposób:
„Tancerze tańczą według globalnego scenariusza bez jednego punktu kontroli”
Oznacza to, że w czasie wykonywania każdy uczestnik choreografii usługi wykonuje swoją część zgodnie z zachowaniem innych uczestników. Rola choreografii określa oczekiwane zachowanie uczestników, którzy będą ją odgrywać, pod względem kolejności i czasu komunikatów, które mogą konsumować i wytwarzać.
Choreografia opisuje kolejność i warunki, w których dane są wymieniane między dwoma lub więcej uczestnikami w celu spełnienia jakiegoś użytecznego celu.
Choreografia usług i orkiestracja usług
Choreografię usług można lepiej zrozumieć, porównując z innym paradygmatem kompozycji usług: orkiestracją usług . Z jednej strony w choreografiach usługowych logika komunikatowych interakcji między uczestnikami jest określona z perspektywy globalnej. Z drugiej strony, w przypadku orkiestracji usług, logika jest określana z lokalnego punktu widzenia jednego kontrolującego uczestnika, zwanego orkiestratorem . W języku orkiestracji usług BPEL na przykład specyfikacja orkiestracji usługi (np. plik procesu BPEL) to przepływ pracy, który można wdrożyć w infrastrukturze usługi (na przykład silnik wykonawczy BPEL, taki jak Apache ODE ). Wdrożenie specyfikacji orkiestracji usług przekształca przepływ pracy w usługę złożoną.
W pewnym sensie choreografia usług i orkiestracja to dwie strony tej samej monety. Z jednej strony role choreografii usługowej można wyodrębnić jako orkiestracje usługowe poprzez proces zwany projekcją . Dzięki projekcji możliwe jest zrealizowanie szkieletów , tj. niekompletnych orkiestracji usług, które można wykorzystać jako punkty odniesienia do realizacji usług sieciowych uczestniczących w choreografii usług. Z drugiej strony, istniejące już orkiestracje usługowe mogą być komponowane w choreografie usługowe.
Odgrywanie choreografii serwisowych
Choreografie serwisowe nie są wykonywane: są odgrywane . Choreografia nabożeństwa odgrywana jest, gdy jej uczestnicy wykonują swoje role. Oznacza to, że w przeciwieństwie do orkiestracji usług, choreografie usług nie są uruchamiane przez jakiś silnik w infrastrukturze usług, ale „zdarzają się” podczas wykonywania ich ról. Dzieje się tak, ponieważ logika choreografii usług jest określona z globalnego punktu widzenia i w związku z tym nie jest to realizowane przez jedną usługę, jak w przypadku orkiestracji usług.
Kluczowe pytanie, na które większość badań nad choreografią stara się znaleźć odpowiedź, jest następujące: Załóżmy, że skonstruowana jest globalna choreografia, która opisuje możliwe interakcje między uczestnikami współpracy. Jakim warunkom musi sprostać choreografia, aby mieć pewność, że współpraca zakończy się sukcesem ? Tutaj sukces oznacza, że wyłaniające się zachowanie, które pojawia się, gdy współpraca jest realizowana, przy czym każdy uczestnik działa niezależnie zgodnie z własnym szkieletem , dokładnie odpowiada choreografii, na podstawie której pierwotnie projektowano szkielety. W takim przypadku mówi się, że choreografia jest wykonalna . Ogólnie rzecz biorąc, określenie wykonalności choreografii jest kwestią nietrywialną, szczególnie tam, gdzie współpraca wykorzystuje asynchroniczne przesyłanie wiadomości i możliwe jest jednoczesne wysyłanie wiadomości przez różnych uczestników.
Języki choreografii serwisowej
W zakresie specyfikacji dotyczących usług sieciowych następujące specyfikacje skupiają się na definiowaniu języków do modelowania choreografii usług:
- Web Service Choreography Description Language (WS-CDL) to oparta na XML specyfikacja W3C do modelowania choreografii przy użyciu konstrukcji inspirowanych rachunkiem różniczkowym Pic
- Web Service Choreography Interface (WSCI) to specyfikacja oparta na XML, która została przedstawiona W3C przez Intalio, Sun Microsystems , BEA Systems i SAP AG i która służyła jako dane wejściowe do Web Service Choreography Description Language (WS-CDL)
Ponadto specyfikacja OMG BPMN w wersji 2.0 zawiera diagramy do modelowania choreografii usług.
Propozycje akademickie dotyczące języków choreografii serwisowej obejmują:
- Zatańczmy
- BPEL4 Chor
- chor
Ponadto zaproponowano szereg formalizmów choreografii serwisowej w oparciu o:
- Sieci Petriego , na przykład Interakcyjne sieci Petriego i Otwarte sieci przepływu pracy
- Maszyny skończone
- Strzeżone automaty
- Automaty czasowe
- rachunek pi
- Rachunek procesowy
Choreografia serwisu internetowego
Choreografia usługi sieciowej ( WS-Choreography ) to specyfikacja W3C definiująca język modelowania procesów biznesowych oparty na XML , który opisuje protokoły współpracy współpracujących uczestników usługi sieciowej , w której usługi działają jako równorzędne, a interakcje mogą być długotrwałe i stanowe. ( Orkiestracja to kolejny termin o bardzo podobnym, ale wciąż innym znaczeniu).
Główny wysiłek mający na celu uzyskanie choreografii, Grupa Robocza Choreografii Usług Sieciowych W3C, został zamknięty 10 lipca 2009 r., Pozostawiając WS-CDL jako Rekomendację Kandydata.
„Wiele prezentacji na warsztatach W3C poświęconych usługom sieciowym w dniach 11–12 kwietnia 2001 r. wskazywało na potrzebę wspólnego interfejsu i języka kompozycji, aby pomóc w realizacji choreografii. Roboczy projekt wymagań architektury usług sieciowych stworzony przez grupę roboczą ds. architektury usług sieciowych zawiera również listę idea możliwości choreografii usług internetowych jako krytycznego czynnika sukcesu , wspierająca kilka różnych celów najwyższego poziomu dla rodzącej się architektury usług internetowych” [1] .
Problematyka choreografii cieszyła się wówczas dużym zainteresowaniem przemysłu; wysiłki, takie jak WSCL (Web Service Conversation Language) i WSCI (Web Service Choreography Interface) zostały przesłane do W3C i opublikowane jako uwagi techniczne. Ponadto podjęto działania uzupełniające:
- BPML , teraz BPMN
- BPSS przez ebXML [2]
- WSFL firmy IBM
- XLANG firmy Microsoft
- BPEL4WS firmy IBM, Microsoft i BEA
„W czerwcu 2002 roku Intalio, Sun, BEA i SAP wydali wspólną specyfikację o nazwie Web Services Choreography Interface (WSCI). Specyfikacja ta została również przesłana do W3C jako notatka w sierpniu 2002 roku. Od tego czasu W3C utworzyło nową grupę roboczą o nazwie Web Services Grupa Robocza Choreografii w Działalności Usług Sieciowych. Specyfikacja WSCI jest jednym z głównych danych wejściowych Grupy Roboczej Choreografii Usług Sieciowych , która opublikowała Rekomendację Kandydata dotyczącą WS-CDL w wersji 1.0 9 listopada 2005 roku” [3] . „XLang, WSFL i WSCI nie są już obsługiwane przez żadną standardową organizację lub firmę. BPEL zastąpił Xlang, a WSFL WSCI został zastąpiony przez WS-CDL " [4] .
Nadchodząca wersja 2.0 Business Process Modeling Notation wprowadzi diagramy do określania choreografii usług.
Dziedzina akademicka zaproponowała inne języki choreografii usług, na przykład Let's Dance, BPEL4Chor i MAP.
Paradygmaty choreografii serwisowych
Choreografie usług określają oparte na wiadomościach interakcje między uczestnikami z perspektywy globalnej. W ten sam sposób, w jaki języki programowania można pogrupować w paradygmaty programowania , tak języki choreografii usług można pogrupować w style :
- Modelowanie interakcji: logika choreografii jest określona jako przepływ pracy, w którym działania reprezentują wymianę wiadomości między uczestnikami (na przykład Web Service Choreography Description Language (WS-CDL) i Let's Dance)
- Modelowanie wzajemnie połączonych interfejsów: logika choreografii jest podzielona na jej uczestników poprzez odgrywane przez nich role (tj. oczekiwane zachowania związane z przesyłaniem wiadomości). Role są połączone za pomocą przepływów komunikatów, kanałów lub równoważnych konstrukcji (tak jest na przykład w przypadku BPEL4Chor)
Projekty badawcze dotyczące choreografii
Istnieje kilka aktywnych projektów badawczych na temat choreografii serwisowej.
- CHOREVOLUTION: Zautomatyzowana synteza dynamicznych i zabezpieczonych choreografii dla Internetu przyszłości
- CRC: Choreografie dla niezawodnego i wydajnego oprogramowania komunikacyjnego
- SwarmESB - lekki, open source, ESB lub hub wiadomości dla node.js
- PrivateSKY - eksperymentalny rozwój w partnerstwie publiczno-prywatnym dla lokalnych platform chmurowych z zaawansowanymi funkcjami ochrony danych
Zobacz też
- Programowanie choreograficzne - paradygmat programowania, w którym programy są choreografiami.
- BPEL - Business Process Execution Language, standard OASIS
- Wykonywalna choreografia
- Zasada komponowania usług
- Web Service Choreography Description Language - Język opisu choreografii opracowany w ramach W3C
- ^ Model wiedzy S-Cube: Choreografia usług
- ^ Chris Peltz: Orkiestracja i choreografia usług sieciowych . Komputer IEEE (KOMPUTER) 36 (10): 46-52 (2003)
- ^ Jianwen Su, Tevfik Bultan, Xiang Fu, Xiangpeng Zhao: w kierunku teorii choreografii usług sieciowych . WS-FM 2007:1-16
- ^ „Przegląd modelu choreografii WS” . 24 marca 2004 . Źródło 16 lutego 2019 r .
- ^ Arellanes, Damian; Lau, Kung-Kiu (2017). „Egzogeniczne łączniki do hierarchicznej kompozycji usług” . 2017 IEEE 10. konferencja na temat przetwarzania zorientowanego na usługi i aplikacji (SOCA) . Kanazawa: IEEE: 125–132. doi : 10.1109/SOCA.2017.25 . ISBN 9781538613269 . S2CID 31211787 .
- ^ Hongli Yang, Xiangpeng Zhao, Chao Cai, Zongyan Qiu: „Badanie połączenia choreografii i orkiestracji z obsługą wyjątków i finalizacją / kompensacją” . FORTE 2007:81-96
- ^ Howard Foster, Sebastián Uchitel, Jeff Magee, Jeff Kramer: Oparta na modelu analiza obowiązków w choreografii usług internetowych . AICT/ICIW 2006:149
- ^ Ashley McNeile: Kontrakty protokołowe z zastosowaniem do choreografowanych wielostronnych współpracy . Obliczenia zorientowane na usługi i aplikacje, tom 4, numer 2, 109-136 (2010)
- ^ a b Jack Vaughan: BPMN 2.0 dodaje notację do obsługi choreografii BPM . SearchSOA.com, 22 października 2009
- ^ a b c Johannes Maria Zaha, Alistair P. Barros, Marlon Dumas , Arthur HM ter Hofstede : Tańczmy: język modelowania zachowań usługowych . Konferencje OTM 2006:145-162
- ^ a b c Gero Decker, Oliver Kopp, Frank Leymann, Mathias Weske : BPEL4Chor: Rozszerzenie BPEL do modelowania choreografii . ICWS 2007:296-303
- ^ „Język programowania chóru” .
- ^ Carbone, Marco; Montesi, Fabrizio (2013). Wolność od impasu z założenia: wielostronne asynchroniczne programowanie globalne . doi : 10.1145/2429069.2429101 .
- ^ Gero Decker, Mathias Weske : Lokalna egzekwowalność w interakcjach sieci Petriego . BPM 2007:305-319
- ^ Karsten Schmidt: Możliwość sterowania otwartymi sieciami przepływu pracy . EMISA 2005:236-249
- ^ Nadia Busi, Roberto Gorrieri, Claudio Guidi, Roberto Lucchi, Gianluigi Zavattaro: zgodność choreografii i orkiestracji dla projektowania systemu . KOORDYNACJA 2006:63-81
- ^ Tevfik Bultan, Jianwen Su, Xiang Fu: Analiza rozmów o usługach sieciowych . IEEE Internet Computing (INTERNET) 10(1):18-25 (2006)
- ^ Michele Mancioppi, Manuel Carro, Willem-Jan van den Heuvel, Mike P. Papazoglou: Rozsądne wielostronne protokoły biznesowe dla sieci usługowych . ICSOC 2008:302-316
- ^ a b Adam Barker, Christopher D. Walton, David Robertson: choreografowanie usług sieciowych . IEEE Transactions on Services Computing, tom 2, numer 2, strony 152-166, IEEE Computer Society, kwiecień – czerwiec 2009
- ^ ShuiGuang Deng, Zhaohui Wu, Mengchu Zhou, Ying Li, Jian Wu: Kompatybilność usług modelowania z rachunkiem różniczkowym Pi dla choreografii . ER 2006:26-39
- ^ Paolo Besana, Adam Barker: wykonywalny rachunek dla choreografii serwisowej . Konferencje OTM 2009:373-380
- ^ Raman Kazhamiakin, Marco Pistore: Analiza warunków realizacji choreografii usług sieciowych . FORTE 2006:61-76
- ^ Zongyan Qiu, Xiangpeng Zhao, Chao Cai, Hongli Yang: Ku teoretycznym podstawom choreografii . WWW 2007:973-982
- ^ Grupa robocza choreografii usług sieciowych w W3
- ^ Karta
- ^ Gero Decker, Oliver Kopp, Alistair P. Barros: Wprowadzenie do choreografii usługowych (Servicechoreographien - eine Einführung). to - technologia informacyjna (IT) 50(2):122-127 (2008)
- ^ Model wiedzy S-Cube: model choreografii interakcji
- ^ Model wiedzy S-Cube: model choreografii połączonego interfejsu
Linki zewnętrzne
- Web Service Choreography Description Language — specyfikacja W3C dla WS-Choreography
- Opis choreografii usługi sieciowej Język: elementarz -
- Web Service Choreography Interface (WSCI) 1.0 – specyfikacja firm Intalio, Sun, BEA i SAP; wejście do WS-Choreography
- Wielkoskalowe choreografie dla Internetu przyszłości — projekt badawczy Komisji Europejskiej 7PR
- Choreografia serwisów internetowych w praktyce - Motywacja i opis WSCI
- Service Choreographies - Witryna promująca koncepcję choreografii usług jako podstawy projektowania systemów zorientowanych na usługi. Witryna opisuje również język do modelowania choreografii opartych na WSCI, a mianowicie Let's Dance.
- Usługi sieciowe Choreografia Opis Język Wersja 1.0
- Grupa Robocza Choreografii Usług Sieciowych W3C
- Formalne modelowanie usług sieciowych
- Teoretyczne podstawy programowania współbieżnego zorientowanego na komunikację
- W stronę teoretycznych podstaw choreografii
- Odkrywanie istoty choreografii