Eine Choreographie beschreibt einen kollaborativen Geschäftsprozess durch die Definition der Interaktionen sowie der auftretenden Abhängigkeiten zwischen teilnehmenden Web-Services auf Nachrichtenebene. Hierbei werden ausschließlich Web-Service-Interaktionen an den Schnittstellen zwischen autonomen Partnern betrachtet. Interaktionen werden aus globaler Sicht ohne zentrale Steuerungseinheit beschrieben.
Choreographie
„A 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.” W3C Web-Services Glossary [Haas, Brown 2004]. Eine Choreographie ist vom W3C definiert als die Beschreibung eines kollaborativen Geschäftsprozesses anhand der Interaktionen sowie der auftretenden Abhängigkeiten zwischen teilnehmenden Web-Services auf Nachrichtenebene. Abhängigkeiten bestehen hierbei bzgl. Kontrollfluss, Datenfluss, Nachrichtenkorrelation, oder auch transaktionalen Bedingungen [Haas, Brown 2004]. In einer Choreographie werden keine ausführbaren Prozesse spezifiziert sondern es werden ausschließlich Interaktionen mit Web-Services an den Schnittstellen zwischen Partnern festgelegt. Damit regelt Choreographie den Nachrichtenaustausch zwischen autonomen Geschäftspartnern aus einer globalen Sicht ohne zentrale Steuerungseinheit.
Choreographie, Orchestrierung und abstrakte Prozesse
Orchestrierung, Choreographie und abstrakte Prozesse (engl. behavioral interfaces) bezeichnen unterschiedliche Ansätze zur Komposition von Web-Services zu aggregierten Diensten bzw. Prozessen. Die Ansätze adressieren hierbei jeweils unterschiedliche Aufgaben.
Orchestrierung bezeichnet die zentral gesteuerte Ausführung von Web-Services entsprechend einer konkreten Prozesslogik (aus der lokalen Sicht einer Organisation). Sollen oder können Geschäftsprozesse nicht zentral gesteuert werden sind Konzepte wie Choreographie notwendig. Choreographie definiert ausschließlich das von außen sichtbare Verhalten kollaborierender Web-Services. Hierbei werden keine ausführbaren 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 übergreifenden Geschäftsprozess zu definieren. Die Choreographie fungiert damit als Bindeglied zwischen verschiedenen Orchestrierungen. Sie definiert die Interaktionen zwischen den Partnern beispielsweise zur Durchführung eines Einkaufsprozesses bestehend aus vier auszutauschenden Nachrichten „Request purchase order“, „Acknowledge“, „Accept purchase order“, „Acknowledge“. 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].
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ällt. Ähnlich wie eine Choreographie beschreibt eine abstrakte Prozessdefinition jedoch keine internen Prozesse, sondern nur nach außen sichtbare Prozess-Schritte an den Schnittstellen zwischen Partnern. Abstrakte Prozesse werden zum Beispiel in der Prozessmodellierungssprache WS-BPEL, oder auch in ebXML (dort unter der Bezeichnung collaboration protocol profile) angeboten.
Sprachen zur Choreographie
Zur Choreographie von Web-Services existieren verschiedene Ansätze wie das im ebXML-Kontext entwickelte Business Process Specification Schema oder die Web Services Choreography Description Language (WS-CDL) der Choreography Working Group des W3C. Web Services Choreography Description Language (WS-CDL) [Kavantzas et al. 2005] ist eine XML-basierte Sprache, die dem W3C seit 2005 als Vorschlag zur Empfehlung (Recommendation Candidate) vorliegt. WS-CDL basiert auf der Sprache WSCI (Web Service Choreography Interface) und beschreibt aus einer externen Sicht das Verhalten von Web-Services in einer Choreographie. WS-CDL unterstützt Regeln für Ablauf-Sequenzen, Korrelation, Ausnahmenbehandlung und Transaktionen. Zur Spezifikation von Diensten kann WSDL benutzt werden. WS-CDL basiert auf der algebraischen Sprache pi-Kalkül aus der Familie der Prozess-Kalküle. Diese stellen Sprachen zur Verfügung, um interaktive, Nachrichten-übermittelnde Programme zu spezifizieren.
Literatur
Haas, Hugo ; Brown, Allen: W3C Web Services Glossary (2004). http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211 (Abruf 3.8.2008).
Kavantzas, Nickolas ; Burdett, David ; Ritzinger, Gregory ; Fletcher, Tony ; Lafon, Yves ; Barreto, Charlton: WS-CDL – W3C Candidate Recommendation (2005). http://www.w3.org/TR/ws-cdl-10/ (Abruf 7.8.2008).
Peltz, Chris: Web Services Orchestration and Choreography. In: IEEE Computer (2003), Nr. 36, S. 46–52.