{"id":3816,"date":"2019-04-08T12:33:03","date_gmt":"2019-04-08T10:33:03","guid":{"rendered":"https:\/\/dev.wi-lex.de\/index.php\/choreographie-von-web-services\/"},"modified":"2022-03-08T18:35:37","modified_gmt":"2022-03-08T17:35:37","slug":"choreographie-von-web-services","status":"publish","type":"page","link":"https:\/\/wi-lex.de\/lexikon\/entwicklung-und-management-von-informationssystemen\/systementwicklung\/softwarearchitektur\/middleware\/web-service-technologien\/choreographie-von-web-services\/","title":{"rendered":"Choreographie von Web-Services"},"content":{"rendered":"<p><a title=\"Thomas Setzer\" href=\"https:\/\/www.wi-lex.de\/index.php\/autoren\/autorenverzeichnis\/setzer-dr-thomas\/\">Thomas Setzer<\/a>,\u00a0<span class=\"documentAuthor\"><a title=\"Martin Bichler\" href=\"https:\/\/www.wi-lex.de\/index.php\/autoren\/autorenverzeichnis\/bichler-prof-dr-martin\/\">Martin Bichler<\/a><\/span><\/p>\n<hr \/>\n<p align=\"JUSTIFY\"><em>Eine Choreographie beschreibt einen kollaborativen Gesch\u00e4ftsprozess durch die Definition der Interaktionen sowie der auftretenden Abh\u00e4ngigkeiten zwischen teilnehmenden Web-Services auf Nachrichtenebene. Hierbei werden ausschlie\u00dflich Web-Service-Interaktionen an den Schnittstellen zwischen autonomen Partnern betrachtet. Interaktionen werden aus globaler Sicht ohne zentrale Steuerungseinheit beschrieben.<\/em><\/p>\n<h2>Choreographie<\/h2>\n<p align=\"JUSTIFY\">\u201eA choreography defines the sequence and conditions under which multiple cooperating independent agents exchange messages in order to perform a task to achieve a goal state.&#8220; W3C Web-Services Glossary [Haas, Brown 2004]. Eine Choreographie ist vom W3C definiert als die Beschreibung eines kollaborativen Gesch\u00e4ftsprozesses anhand der Interaktionen sowie der auftretenden Abh\u00e4ngigkeiten zwischen teilnehmenden <a class=\"internal-link\" title=\"Web-Service\" href=\"https:\/\/www.wi-lex.de\/index.php\/lexikon\/entwicklung-und-management-von-informationssystemen\/systementwicklung\/softwarearchitektur\/middleware\/web-service-technologien\/web-service\/\">Web-Services <\/a>auf Nachrichtenebene. Abh\u00e4ngigkeiten bestehen hierbei bzgl. Kontrollfluss, Datenfluss, Nachrichtenkorrelation, oder auch transaktionalen Bedingungen [Haas, Brown 2004]. In einer Choreographie werden keine ausf\u00fchrbaren Prozesse spezifiziert sondern es werden ausschlie\u00dflich Interaktionen mit Web-Services an den Schnittstellen zwischen Partnern festgelegt. Damit regelt Choreographie den Nachrichtenaustausch zwischen autonomen Gesch\u00e4ftspartnern aus einer globalen Sicht ohne zentrale Steuerungseinheit.<\/p>\n<h3>Choreographie, Orchestrierung und abstrakte Prozesse<\/h3>\n<p align=\"JUSTIFY\"><span class=\"wl_hervorhebung\">Orchestrierung<\/span><em>, <\/em><span class=\"wl_hervorhebung\">Choreographie<\/span> und <span class=\"wl_hervorhebung\">abstrakte Prozesse<\/span> (engl. <span class=\"wl_hervorhebung\">behavioral interfaces<\/span>) bezeichnen unterschiedliche Ans\u00e4tze zur Komposition von Web-Services zu aggregierten Diensten bzw. Prozessen. Die Ans\u00e4tze adressieren hierbei jeweils unterschiedliche Aufgaben.<\/p>\n<p align=\"JUSTIFY\"><a class=\"internal-link\" title=\"Orchestrierung von Web-Services\" href=\"https:\/\/www.wi-lex.de\/index.php\/lexikon\/entwicklung-und-management-von-informationssystemen\/systementwicklung\/softwarearchitektur\/middleware\/web-service-technologien\/orchestrierung-von-web-services\/\">Orchestrierung <\/a>bezeichnet die zentral gesteuerte Ausf\u00fchrung von Web-Services entsprechend einer konkreten Prozesslogik (aus der lokalen Sicht einer Organisation). Sollen oder k\u00f6nnen Gesch\u00e4ftsprozesse nicht zentral gesteuert werden sind Konzepte wie Choreographie notwendig. Choreographie definiert ausschlie\u00dflich das von au\u00dfen sichtbare Verhalten kollaborierender Web-Services. Hierbei werden keine ausf\u00fchrbaren Prozesse spezifiziert und Interaktionen werden aus einer globalen Sicht ohne zentrale Steuerungseinheit beschrieben. Orchestrierungen sollten sich dann an die von der Choreographie vorgegebene Schablone zur Kollaboration mit Partnern halten um aus mehreren orchestrierten Prozessen einen \u00fcbergreifenden Gesch\u00e4ftsprozess zu definieren. Die Choreographie fungiert damit als Bindeglied zwischen verschiedenen Orchestrierungen. Sie definiert die Interaktionen zwischen den Partnern beispielsweise zur Durchf\u00fchrung eines Einkaufsprozesses bestehend aus vier auszutauschenden Nachrichten \u201eRequest purchase order\u201c, \u201eAcknowledge\u201c, \u201eAccept purchase order\u201c, \u201eAcknowledge\u201c. Die konkrete Komposition von Web-Services bei den Partnern, um ankommende Nachrichten zu verarbeiten bzw. Nachrichten zu generieren, kann dann mit Bezug zu den durch die Choreographie definierten Schnittstellen entwickelt werden [Pelz 2003].<\/p>\n<p align=\"JUSTIFY\">Von Choreographie und Orchestrierung ist das Konzept der abstrakten Prozesse zu unterschieden. Wie bei der Orchestrierung betrachten abstrakte Prozesse Interaktionen nur aus der Sicht eines Prozesspartners, d.h. der globale Blick auf die Interaktionen wie bei der Choreographie entf\u00e4llt. \u00c4hnlich wie eine Choreographie beschreibt eine abstrakte Prozessdefinition jedoch keine internen Prozesse, sondern nur nach au\u00dfen sichtbare Prozess-Schritte an den Schnittstellen zwischen Partnern. Abstrakte Prozesse werden zum Beispiel in der Prozessmodellierungssprache <span class=\"wl_hervorhebung\">WS-BPEL<\/span>, oder auch in <span class=\"wl_hervorhebung\">ebXML<\/span> (dort unter der Bezeichnung <span class=\"wl_hervorhebung\">collaboration protocol profile<\/span>) angeboten.<\/p>\n<h3>Sprachen zur Choreographie<\/h3>\n<p align=\"JUSTIFY\">Zur Choreographie von Web-Services existieren verschiedene Ans\u00e4tze wie das im <em>ebXML<\/em>-Kontext entwickelte <span class=\"wl_hervorhebung\">Business Process Specification Schema<\/span> oder die <span class=\"wl_hervorhebung\">Web Services Choreography Description Language<\/span> (<span class=\"wl_hervorhebung\">WS-CDL<\/span>) der <span class=\"wl_hervorhebung\">Choreography Working Group<\/span> des W3C. <span class=\"wl_hervorhebung\">Web Services Choreography Description Language <\/span><em>(<\/em><span class=\"wl_hervorhebung\">WS-CDL<\/span><em>)<\/em> [Kavantzas et al. 2005] ist eine <a class=\"internal-link\" title=\"XML\" href=\"https:\/\/www.wi-lex.de\/index.php\/lexikon\/technologische-und-methodische-grundlagen\/sprache\/auszeichnungssprache\/xml\/\">XML-basierte Sprache<\/a>, die dem W3C seit 2005 als Vorschlag zur Empfehlung (Recommendation Candidate) vorliegt. WS-CDL basiert auf der Sprache <em>WSCI<\/em> (<span class=\"wl_hervorhebung\">Web Service Choreography Interface<\/span>) und beschreibt aus einer externen Sicht das Verhalten von Web-Services in einer Choreographie. WS-CDL unterst\u00fctzt Regeln f\u00fcr Ablauf-Sequenzen, Korrelation, Ausnahmenbehandlung und Transaktionen. Zur Spezi\ufb01kation von Diensten kann WSDL benutzt werden. WS-CDL basiert auf der algebraischen Sprache <span class=\"wl_hervorhebung\">pi-Kalk\u00fcl<\/span> aus der Familie der <span class=\"wl_hervorhebung\">Prozess-Kalk\u00fcle<\/span>. Diese stellen Sprachen zur Verf\u00fcgung, um interaktive, Nachrichten-\u00fcbermittelnde Programme zu spezifizieren.<\/p>\n<hr \/>\n<h3>Literatur<\/h3>\n<p>Haas, Hugo ; Brown, Allen: W3C Web Services Glossary (2004). http:\/\/www.w3.org\/TR\/2004\/NOTE-ws-gloss-20040211 (Abruf 3.8.2008).<\/p>\n<p>Kavantzas, Nickolas ; Burdett, David ; Ritzinger, Gregory ; Fletcher, Tony ; Lafon, Yves ; Barreto, Charlton: WS-CDL \u2013 W3C Candidate Recommendation (2005). http:\/\/www.w3.org\/TR\/ws-cdl-10\/ (Abruf 7.8.2008).<\/p>\n<p>Peltz, Chris: Web Services Orchestration and Choreography. In: IEEE Computer (2003), Nr. 36, S. 46\u201352.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thomas Setzer,\u00a0Martin Bichler Eine Choreographie beschreibt einen kollaborativen Gesch\u00e4ftsprozess durch die Definition der Interaktionen sowie der auftretenden Abh\u00e4ngigkeiten zwischen teilnehmenden Web-Services auf Nachrichtenebene. Hierbei werden ausschlie\u00dflich Web-Service-Interaktionen an den Schnittstellen zwischen autonomen Partnern betrachtet. Interaktionen werden aus globaler Sicht ohne <a href=\"https:\/\/wi-lex.de\/lexikon\/entwicklung-und-management-von-informationssystemen\/systementwicklung\/softwarearchitektur\/middleware\/web-service-technologien\/choreographie-von-web-services\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":568,"featured_media":0,"parent":4748,"menu_order":2,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-3816","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/users\/568"}],"replies":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/comments?post=3816"}],"version-history":[{"count":9,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3816\/revisions"}],"predecessor-version":[{"id":15911,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3816\/revisions\/15911"}],"up":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/4748"}],"wp:attachment":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/media?parent=3816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}