Home ORDIX AG             Dienstleistung             Trainingsshop    Kunden / Referenzen Aktuelles    Kontakt
Home  Pfeil  ORDIX News  Pfeil  2/2009  Pfeil  IT-Strategie
suche: 
Dieser Artikel richtet sich an Entscheider, Software-Architekten und Entwickler, die sich mit SOA vertraut machen wollen.

Glossar

BPEL
Business Process Execution Language. BPEL ist eine XML-basierte Sprache, die 2002 von IBM, BEA und Microsoft eingeführt wurde. Diese Sprache dient der Beschreibung von Geschäftsprozessen, deren einzelne Aktivitäten durch Webservices implementiert werden.
Deployment
Installation einer Anwendung auf dem Application Server (AS).
SOA-Governance
Als SOA-Governance (auch Service Governance genannt) werden die Aktivitäten, Entscheidungen, Rollen und Verantwortlichkeiten zur Regulierung und Kontrolle einer serviceorientierten Architektur (SOA) bezeichnet. Konflikte sollen dabei nicht vermieden, sondern durch standardisierte und akzeptierte Prozesse ausgetragen werden.
XML
Extensible Markup Language (XML). XML ist eine so genannte Meta-Sprache zur Beschreibung von Dokumenten. Ein Vorteil von XML ist der vereinfachte Austausch von Daten, da XML-Formate in einer strengen Grammatik definiert werden können, und so die Implementierung von zuverlässigen Schnittstellen erlaubt.


Reihe SOA (Teil IV)

Programmierung im Großen (BPEL)

Nachdem in vorangegangenen Artikeln dieser Reihe unter anderem die Grundlagen von SOA und die serviceorientierte Organisation (SOA-Governance) beleuchtet wurden, beschäftigt sich der vierte Teil mit der flexiblen Zusammenstellung von Services zu Geschäftsprozessen mit Hilfe von BPEL.

Was ist BEPL?

Abb. 1: Choreografie.
Abb. 1: Choreografie.
Abb. 2: Orchestrierung.
Abb. 2: Orchestrierung.
Abb. 3: Funktionsweise eines BPEL-Prozesses.
Abb. 3: Funktionsweise eines BPEL-Prozesses.
<receive>
Mit <receive>wird eine Prozessinstanz aktiviert.
<reply>
Versendet eine Antwort als Folge auf eine <receive>-Aktion.
<invoke>
Ruft einen Webservice auf. Ein Webservice kann entweder synchron (request/response) oder asynchron aufgerufen werden.
<assign>
Kopiert Daten von einer Variablen zu einer anderen. So kann z. B. das Ergebnis eines Services an einen anderen übergeben werden.
<sequence>
Ausführen von Aktivitäten, solange eine boolesche Bedingung erfüllt ist.
<switch>
Mit <switch> wird eine bedingte Ausführung von Aktivitäten realisiert.
<switch>
Ermöglicht das parallele Abarbeiten von Aktivitäten.
<pick>
Versetzt den Prozess in eine Endlosschleife und wartet auf ein Ereignis wie z. B. die Antwort eines Partnerlinks, um dann mit dem Prozessfluss fortzufahren.
Abb. 4: Aktivitäten eines BPEL-Prozesses.
Abb. 5: Beispiel eines BPEL-Prozesses.
Abb. 5: Beispiel eines BPEL-Prozesses. Vergrößern

Die Business Process Execution Language (BPEL) ist eine standardisierte, XML-basierte Meta-Sprache zur Beschreibung von Geschäftsprozessen. Mit BPEL besteht die Möglichkeit, Webservices in einer bestimmten, komplexen Reihenfolge zu einem (Geschäfts-) Prozess zusammenzustellen und aufzurufen. Das Ergebnis der Zusammenstellung ist ein ausführbarer BPEL-Prozess, der gleichzeitig auch selbst ein Webservice ist.

Ein großer Vorteil von BPEL ist, dass der Prozessfluss nicht hart codiert, sondern vielmehr deklarativ modelliert werden kann. Diese Eigenschaft erlaubt zum einen, den Prozessfluss zu verändern, ohne eine neue Version der Software installieren zu müssen. Zum anderen wird damit eine Flexibilisierung der Geschäftsprozesse erreicht, mit dem Vorteil, schnell auf sich ändernde Anforderungen reagieren zu können.

Baukastenprinzip

Die Geschäftsprozesse basieren laut dem SOA-Konzept in der Regel auf Services, die zu einem Prozess zusammengestellt werden. Die Services stehen dabei wie in einem Baukasten zur Verfügung und können für unterschiedliche Prozesse zusammengestellt und wiederverwendet werden. Grundsätzlich stehen für die Art und Weise, wie Services miteinander verknüpft werden, folgende zwei Möglichkeiten zur Verfügung:

Choreografie

Choreografie beschreibt die zulässige Nachrichtenabfolge bei Service-Aufrufen. Dabei handelt es sich um eine verteilte Art der Aufgabenbearbeitung. Das Besondere bei diesem Ansatz ist, dass der Kontrollfluss von jedem ausführenden Service automatisch an den nächsten Service weitergegeben wird (siehe Abbildung 1)

Bei diesem Ansatz existiert keine zentrale Einheit, mit der die Korrektheit und die Aufgabenerfüllung kontrolliert werden. Als Beispiel einer Choreografiesprache kann die WS-CDL (Choreography Description Language) erwähnt werden. Die WS-CDL ist ein Teil der so genannten WS-* Spezifikationen.

Orchestrierung

Mit Orchestrierung werden dagegen die Service-Aufrufe koordiniert. Die Kontrolle geht von einer zentralen Einheit aus, die die beteiligten Services aufruft (wie ein Dirigent im Orchester) (siehe Abbildung 2). Die hier verwendete Sprache zur Beschreibung von Orchestrierung ist WS-BPEL.

Das Besondere an der Orchestrierung ist, dass diese in der Regel eine lokale Beschreibung eines Geschäftsprozesses beinhaltet. ganz im Gegenteil zur Choreografie, in der die Interaktion mehrere Prozesse untereinander beschreibt. Demzufolge ermöglicht die Choreografie eine ganzheitliche Sichtweise auf die zu modellierenden Geschäftsprozesse.

Aufbau eines BPEL-Prozesses

Ein BPEL-Prozess kann in folgende Hauptsektionen aufgeteilt werden:

In der Sektion Partnerlinks werden alle Services aufgelistet, die am Geschäftsprozess beteiligt sind. Die Sektion Variablen beinhaltet die Nachrichten-Typen (XML-Schema-basierte Elemente), die zwischen den Partnerlinks bzw. Services ausgetauscht werden. In der Orchestration Logic ist schließlich der Prozessfluss inklusive der Abfolge der einzelnen Aktivitäten enthalten. Die verschiedenen Aktivitäten können dabei aufeinander folgen oder parallel ablaufen. Zusätzlich sind auch Entscheidungsbäume, Schleifen und Fehlerbehandlungen möglich (siehe Abbildung 3, 4 und 5).

Kompensieren von Aktivitäten

Sind während der Prozessverarbeitung Fehler aufgetreten, so kann es notwendig sein, die bereits durchgeführten Aktivitäten wieder rückgängig zu machen. Neben der aus anderen Programmiersprachen bekannten Fehlerbehandlung mit Hilfe von Fault Handler, verfügt BPEL noch über einen so genannten Kompensationsmechanismus. Die Besonderheit bei dem Kompensationsmechanismus ist, dass dieser vor allem bei lang andauernden Transaktionen innerhalb von BPEL-Prozessen verwendet wird.

Wo wird ein BPEL-Prozess ausgeführt?

Um einen BPEL-Prozess ausführen zu können, wird eine BPEL-Ausführungsumgebung bzw. eine so genannte BPEL-Engine benötigt. Dabei müssen die BPEL-Prozesse in die BPEL-Engine eingebracht (deployed) und von der jeweiligen BPEL-Engine abhängige Deployment-Informationen bereitgestellt werden.

Die derzeit am Markt vorhandenen BPEL-Ausführungsumgebungen sind unter anderem:

Zusammenfassung

Mit BPEL besteht die Möglichkeit, die derzeit in Software eingebetteten und quasi unsichtbaren Geschäftsprozesse aus der Ebene der Applikationen herauszuholen. Dabei werden die Geschäftsprozesse in der Regel an einer zentralen Stelle verwaltet, modelliert und gepflegt.

Schließlich wird mit BPEL eine flexible Anpassung des Prozessverlaufs an neue Gegebenheiten ermöglicht. Damit sind Unternehmen in der Lage, schneller als bisher auf Marktveränderungen reagieren zu können.

Insgesamt kann allerdings gesagt werden, dass es sich bei BPEL um eine relativ neue Technologie handelt, die auch in der Standardisierung einem Wandel unterzogen ist. Dies zeigt, dass die aktuelle Version WS-BPEL 2.0 mit den früheren Versionen 1.x nicht kompatibel ist. Zudem reicht der reine Standard in der Praxis sehr oft nicht aus, was zur Folge hat, dass proprietäre Erweiterungen genutzt werden.

Markus Fiegler (info@ordix.de).