Web Services finden zunehmend Verwendung, um komplexe Geschäftsprozesse zu realisieren. Hierfür existieren zwei verschiedene Kopplungsarten. Die Choreographie im Sinne der Prozessbeschreibungssprache WS-CDL beschreibt einen Kontrakt zwischen Kooperationspartnern, welcher die Abläufe der Interaktionen festlegt sowie die entsprechenden Nachrichten- und Datenformate definiert. Der Fokus von BPEL hingegen liegt auf der Orchestrierung, welche den Aufruf mehrerer Web Services versteht, die zusammen einen komplexen Web Service ergeben. In dieser Arbeit werden die Unterschiede der Konzepte anhand der konkreten Prozessbeschreibungssprachen untersucht. Dazu werden diese voneinander abgegrenzt und anschließend direkt verglichen. Ein weiterer Betrachtungsaspekt wird sein, inwiefern eine Choreographie mittels BPEL umgesetzt werden kann.
Inhaltsverzeichnis
1. Einleitung und Motivation
2. Grundlagen
2.1 Kopplungsarten
2.2 BPEL
2.3 WS-CDL
3. Vergleich von BPEL und WS-CDL
3.1 Abgrenzung BPEL / WS-CDL
3.2 Einsatzgebiete und Anwendung
3.3 Herstellerunterstützung
4. Choreographien mittels BPEL
4.1 Abstract Processes
4.2 Ansätze zur Realisierung von Choreographien
5. Zusammenfassung und Ausblick
Literaturverzeichnis
Vergleich von BPEL und WS-CDL III
Abbildungsverzeichnis
Abbildung 1: Orchestrierung von Web Services [Pi06]
Abbildung 2: Choreographie von Web Services [Pi06]
Abbildung 3: WS-CDL Package [BaDuOa05]
Abbildung 4: Reisebuchung mittels BPEL
Abbildung 5: Reisebuchung mittels WS-CDL
Abbildung 6: Integrationsszenario [W3C05]
Abstract
Web Services finden zunehmend Verwendung, um komplexe Geschäftsprozesse zu realisieren. Hierfür existieren zwei verschiedene Kopplungsarten. Die Choreographie im Sinne der Prozessbeschreibungssprache WS-CDL beschreibt einen Kontrakt zwischen Kooperationspartnern, welcher die Abläufe der Interaktionen festlegt sowie die entsprechenden Nachrichten- und Datenformate definiert. Der Fokus von BPEL hingegen liegt auf der Orchestrierung, welche den Aufruf mehrerer Web Services versteht, die zusammen einen komplexen Web Service ergeben.
In dieser Arbeit werden die Unterschiede der Konzepte anhand der konkreten Prozessbeschreibungssprachen untersucht. Dazu werden diese voneinander abgegrenzt und anschließend direkt verglichen. Ein weiterer Betrachtungsaspekt wird sein, inwiefern eine Choreographie mittels BPEL umgesetzt werden kann.
Vergleich von BPEL und WS-CDL II
1. Einleitung und Motivation
Die Vernetzung von unternehmensübergreifenden Anwendungen gewinnt seit einigen Jahren immer mehr an Bedeutung. Dies hat vor allem mit der Web Service-Technologie zu tun, welche in der Geschäftswelt als De-facto-Standard gilt und heute nicht mehr wegzudenken ist, wenn es um die Beschreibung von plattformunabhängigen Anwendungen geht. Allerdings ist offensichtlich, dass diese Technologie alleine nicht ausreicht, um komplexe Geschäftsabläufe zu realisieren, an denen beispielsweise mehrere Dienste beteiligt sind. Diese Unterstützung ist allerdings dringend erforderlich, da bei vielen B2B-Anwendungen innerhalb von Unternehmen sowie über Unternehmensgrenzen hinweg viele verschiedene Services miteinander interagieren. Eine Lösung dieses Problems stellen die Orchestrations- und Choreographiesprachen dar, mit denen die Web Service-Technologie für komplexe Business Processes genutzt werden kann. Das Ziel dieser Prozessbeschreibungssprachen ist die Betrachtung der Anbindung von verschiedenen Web Services untereinander sowie der Nachrichtenaustausch, der zwischen den Beteiligten eines Geschäftsprozesses erfolgt. Zwei bekannte Vertreter dieser Sprachen, die Business Process Execution Language (BPEL) sowie die Web Services Choreography Description Language (WS-CDL), werden in dieser Ausarbeitung näher betrachtet. Dabei handelt es sich bei BPEL um eine Orchstrierungssprache. Im Gegensatz dazu ist WS-CDL eine Sprache zur Beschreibung von Web Service-Choreographien.
Das Ziel dieser Arbeit wird sein, die Grundstruktur und die Kernfunktionalitäten beider Sprachen zu vergleichen. Außerdem soll aufgrund der weiten Verbreitung von BPEL und der ausgiebigen Unterstützung durch Tools (z.B. Oracle BPEL Process Manager, IBM WebSphere Process Choreographer) und Entwickler untersucht werden, inwieweit eine globale Betrachtung einer unternehmensübergreifenden Kooperation durch BPEL (Choreographie) beschrieben werden kann. Dies würde es BPEL-Experten erleichtern, unternehmensübergreifende Kooperationen zu modellieren, ohne eine zusätzliche Choreographiesprache wie WS-CDL zu lernen.
(siehe auch [ReSt04] [HiWaSt05])
2. Grundlagen
In diesem Kapitel werden die zwei Kopplungsarten von Web Services, Orchestrierung und Choreographie, näher beschrieben und abgegrenzt. Im Anschluss werden die beiden Prozessbeschreibungssprachen BPEL und WS-CDL vorgestellt.
2.1 Kopplungsarten
Die Zusammenarbeit von zwei oder mehreren Web Services werden durch zwei Kopplungsmechanismen beschrieben: Orchestrierung und Choreographie. Beide Begriffe „definieren den Prozess der Koordinierung von mindestens zwei Web Services indem die Struktur, die Bedingungen und die Reihenfolge des Nachrichtenaustauschs bestimmt werden“[Le05].
Bei der Orchestrierung werden Dienste mithilfe einer Prozessbeschreibungssprache angeordnet und deren Ablauf genau festgelegt. Innerhalb des ausführbaren Geschäftsprozesses wird vorab geplant, wann und unter welchen Bedingungen ein Web Services aufgerufen wird. Bei den Web Services kann es sich sowohl um interne (firmeneigene) als auch externe (eventuell von Geschäftspartnern verwaltete) handeln. Die Orchestrierung sieht eine kontrollierende Instanz (Koordinator) vor, die den gesamten Prozessablauf, also die Aktivitäten, die zur Zielerreichung notwendig sind, überwacht. Somit entspricht die Orchestrierung eher den in Workflow-Systemen üblichen Prozessabläufen.
Abbildung 1: Orchestrierung von Web Services [Pi06]
Abbildung in dieser Leseprobe nicht enthalten
Im Gegensatz zur Orchestrierung bezieht sich die Choreographie auf eine verteilte Art der Aufgabenbearbeitung. Hierbei wird die Abfolge der Nachrichten von allen Seiten verfolgt und keine Seite ist für die Koordination des Prozessablaufs zuständig, sondern jede angesprochene
Instanz ist für den weiteren Verlauf der Bearbeitung zur Zielerreichung verantwortlich. Die Aufgabe der Choreographie besteht somit darin, den Ablauf zwischen Client und Web Service zu regeln. Bei dieser Kommunikation spielt es keine Rolle, ob der Web Service zur Zielerreichung selbst als Client in Erscheinung tritt oder nicht.
Abbildung 2: Choreographie von Web Services [Pi06]
Abbildung in dieser Leseprobe nicht enthalten
Die Beschreibung einer Web Service-Choreographie ist wesentlicher detaillierter als die einer Web Service-Orchestrierung, beschreibt aber nur direkt zusammenarbeitende Services. Die beiden unterschiedlichen Kopplungsarten sind aber nicht losgelöst voneinander zu sehen, sondern können auch miteinander kombiniert werden. Man kann sich beispielsweise vorstellen, dass durch Orchestrierung verschiedener Einzelfunktionalitäten (Web Services) neue komplexere Web Services entstehen. Diese könnten dann wieder als eigene Services über Unternehmensgrenzen hinweg mittels Choreographie gekoppelt werden. (siehe auch [WOr07] [ITCh07] [Pi06] [Le05])
2.2 BPEL
Die Business Process Execution Language (BPEL) ist eine XML-basierte Sprache zur Beschreibung von Geschäftsprozessen, deren einzelne Aktivitäten durch Webservices implementiert sind. Es lässt sich ein Prozess beschreiben, der in der Lage ist, verschiedene Dienste zu einer Gesamtanwendung zu verknüpfen. Diese Dienste sind lose gekoppelt und interagieren über die BPEL- Ablaufumgebung miteinander.
BPEL4WS, was die Abkürzung für Business Process Execution Language for Web Services darstellt, ist die erste Version von BPEL, die 2002 von Microsoft, BEA und IBM veröffentlicht wurde. Die Sprache verbindet die Ideen der kalkülbasierten Sprache XLANG von Microsoft und der Graph-basierten Sprache WSFL von IBM. Kurz darauf, im Mai 2003, folgte schon die erweiterte Version 1.1, bei welcher nun auch die Firmen SAP und Siebel mitwirkten. Diese Version wurde bei der Organization for the Advancement of Structured Information Standards (OASIS) zur Standardisierung eingereicht und von dieser dann auch standardisiert und weiterentwickelt. Als Ergebnis des Standardisierungsprozesses von BPEL wird demnächst das von der OASIS gebildete Web Services Business Process Execution Language Technical Committee (WSBPEL-TC) die überarbeitete und erweiterte Spezifikation in der Version 2.0 (WS-BPEL 2.0) verabschieden. Diese Version enthält Detail-Verbesserungen, ist jedoch inkompatibel zu den 1.x-Versionen. Die Umbenennung nach WS-BPEL 2.0 wurde im September 2004 vorgenommen, um ein einheitliches Erscheinungsbild zusammen mit anderen Web Service-Technologien (u.a. WS-Security, WS- Transactions) zu ermöglichen.
Wie bereits erwähnt, basiert BPEL auf
Abbildung in dieser Leseprobe nicht enthalten
Grundstruktur eines BPEL- Dokuments
XML. Ein Prozesstemplate ist ein XML-Dokument, das Elemente enthält, die dem BPEL-Standard genügen. Ein Prozess umschließt eine Menge von Aktivitäten. Daher ist das Wurzelelement eines BPEL- Dokuments <process>. Eine vereinfachte Prozessbeschreibung besteht aus einem Definitionsteil (den zwei Bereichen <partnerLinks> und <variables>) und dem Teil, der den eigentlichen Prozessablauf beschreibt. Über das Element <partnerLinks> werden die einzelnen Verbindungen zu den service- anbietenden Systemen definiert, welche Teilnehmer in den Prozess involviert sind. Der jeweilige Partner erhält innerhalb des <partnerLinks> eine Rolle zugesprochen. Die Rolle des Prozesses wird mit einem Attribut namens „myRole“ beschrieben und die des Partner- Services mittels des Attributs „partnerRole“. Die Variablen (<variables>) dienen dem Austausch von Nachrichten (Daten) zwischen den Aktivitäten und Diensten. Der eigentliche Prozess läuft zwischen den <sequence>- oder <flow>- Tags ab. In den <sequence>- Tags laufen die Aktivitäten sequentiell, also nacheinander und in den <flow>- Tags als ganze Blöcke betrachtet parallel ab. Zur Kommunikation dienen die Tags <receive>, <invoke> und <reply>. Mittels <receive> wird ein Prozess blockiert und gewartet, bis eine für diese Aktivität bestimmte Nachricht empfangen worden ist, bevor mit der Verarbeitung des Prozesses weitergemacht wird. Der <invoke>- Tag ruft einen anderen Webservice synchron oder asynchron auf. Mit <reply> kann geantwortet werden. Zusätzlich zu den beschriebenen Tags existiert noch eine Reihe anderer:
- <switch>: anhand eines Kriteriums wird exakt eine der aufgelisteten Aktivitäten ausgeführt.
- <while>: die Aktivitäten werden solange in einer Schleife ausgeführt, bis ein angegebenes Kriterium erfüllt ist.
- <wait>: der Prozess wird für eine angegeben Zeit angehalten.
- <throw>: zur Beschreibung von anwendungsspezifischen Fehlerfällen.
- <assign>: weist einem <variable>- Element einen Wert zu - und weitere
Als wesentliche Neuerungen in WS-BPEL 2.0 sind neue Aktivitäten wie <forEach> und <repeatUntil> hinzugekommen, welche gleich funktionieren wie in Programmiersprachen. Zudem wurde eine Aktivität namens <extensionActivity> eingeführt, welche die Implementierung von benutzerdefinierten Aktivitäten ermöglicht. Es gibt einen verbesserten Datenzugriff auf variablen- Tags via XPath, eine verbesserte Fehlerbehandlung mit Hilfe des Tags <reTrow>, welches nun auch Exceptions aus dem catch- Block weiter werfen kann als es bei <throw> und <catch> möglich war. Ebenso gibt es Syntaktische Änderungen, wie beispielsweise die Namensänderungen von <switch> zu <if>-<else>-<if> und <terminate> zu <exit>.
(siehe auch [BPEL02] [BPEL03])
[...]
- Citar trabajo
- Patrick Wacht (Autor), Steven Schellhaas (Autor), 2007, Vergleich von BPEL und WS-CDL, Múnich, GRIN Verlag, https://www.grin.com/document/67614
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X.