
|
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. |
Weiterführende Links
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||
| Abb. 4: Aktivitäten eines BPEL-Prozesses. | ||||||||||||||||
|
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.
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 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.
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.
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).
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.
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:
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).