Zweiter Teil der Artikelserie von Dr. Martin Bartonitz zum Thema Business Process Management Standards. Der erste Teil zum Thema BPMN erschien im PROJECT CONSULT Newsletter 20070720Newsletter 20070720. Martin Bartonitz ist bei der SAPERION AG für das Thema BPM Business Process Management Produkte verantwortlich. Vor seinem Wechsel nach Berlin war Dr. Martin Bartonitz als Senior-Berater in BPM-Pro-jekten von PROJECT CONSULT tätig. E-Mail: martin@bartonitz.net. Der Artikel zu BPEL war ursprünglich für das Standardlexikon „Telekommunikation von A-Z“ der Firma INTEREST verfasst worden.
Einführung in BPEL
Das korrekte von der OASIS - Organization for the Advancement of Structured Information Standards - in 2004 festgelegte Akronym ist WSBPEL und steht für Web Service Business Process Execution Language in Anlehnung an die anderen Web-Service-relevanten Spezifikationen wie WSDL – Web Service Definition Language.
BPEL ist eine XML-basierte, interpretierbare, d.h. von Workflow-Engines ausführbare Programmiersprache zur Orchestrierung von Web-Services zum Zwecke der Automatisierung von Geschäschäftsprozessen.
BPEL kämpfte in den letzten Jahren mit einigen weiteren Definitionen um die Standardbeschreibung von ausführbarem Code. Mittlerweile gibt es nur noch einen ernsthaften Konkurrenten, die XPDL der WfMC – Workflow Management Coalition. XPDL steht für Process Definition Language mit de X für XML-basiert.
WSBPEL verbindet seit 2002 unter der Bezeichnung BPEL4WS die Ideen der kalkülbasierten Sprache XLANG von Microsoft und der Graph-basierten Sprache WSFL - Web Services Flow Language - von IBM. Ein Jahr später wurden die Standardisierungsbemühungen unter das Dach der OASIS gestellt, d.h. der Kreis der mitarbeitenden Firmen ist um weitere wichtige Namen wie BEA, SAP, ORACLE gewachsen. Die aktuelle Version ist 1.1. Die Version 2.0 steht kurz vor der Freigabe.
BPEL ist ein Kind des Internet-Hypes Ende der 1990er Jahe. In dieser Zeit wurden verstärkt sogenannte End-to-End-Prozesse zwischen Business-Partnern auf Basis von Web-Technologien umgesetzt. Daraus entwickelt hat sich eine neue Sicht auf Software-Architekturen, mit dem besonderen Schwerpunkt der Agilität. Prozesse über unterschiedliche Plattformen und Applikationen hinweg werden immer schnelllebiger und müssen daher immer schneller angepasst werden. Die Antwort lautet SOA: Service Oriented Architecture. Im Kontext von SOA sind die Services im Wesentlichen Web-Services, allgemein ist jedoch damit gemeint, das Applikationen zukünftig keine Software-Monolithen sein werden sondern in sinnvoll große Services unterteilt werden, deren Business-Logik wo nötig in andere Komponenten eingebunden werden.
Der BPEL-Kontext
Da BPEL im Zusammenhang mit dem Web entstand, gründet es vorrangig auf weiteren Standards aus diesem Umfeld. Während viele Autoren die Standards mittels Schichtenmodelle mit bis zu 10 Ebenen darzustellen versuchen, schlägt Gartner 2004 eine Netzdarstellung der Abhängigkeiten der BPEL-tangierenden Standards vor. Neben der Nutzung von XML für die Definition eines Prozesses ist in der Grafik klar erkennbar, wie eng BPEL mit den Ideen der Web-Services verzahnt ist, denn überall dort, wo ein Name mit „WS“ anfängt, ist damit Web-Service gemeint.
Grafische Modellierung
WSBPEL ist eine rein ASCI-orientierte Beschreibung von zeitlichen Abläufen der Web-Services und kann diese nicht grafisch darstellen. Seit 2005 wird dazu die Modellierungssprache BPMN – Business Process Modeling Language – genutzt. Dabei muss jedoch festgestellt werden, dass dies selbst mit der WSBPEL Version 2.0 nur eine Einbahnstraße ist. D.h. aus der BPMN werden WSBPEL-Defintionen erzeugt. Dagegen kann aus einer WSBPEL-Definition keine BPMN-Grafik erzeugt werden. Der Grund liegt an den fehlenden Sprachelementen wie z.B. die Koordinaten oder auch z.B. die BPMN-Elemente Pool und Events.
Hier zeigen sich klare Vorteile für den Konkurrenten XPDL der WfMC ab. Mit der Mitte 2005 freigegebenen Version 2.0 ist die Sprache genau um diese fehlenden Elemente ergänzt worden, so dass ein bi-direktionaler Austausch zwischen BPMN und XPDL möglich ist.
Abb. 2: Vernetzung der mit BPEL im Zusammenhang stehenden weiteren Standards nach Gartner Group, 2007.
Unterschiede zwischen WSPBEL und XPDL
Als unbedarfter Außenstehender könnte man schnell die Frage formulieren: Lassen sich die beiden Standardisierungslager in naher Zukunft zusammen bringen?
Da die Motivation für die jeweilige Beschreibungssprachen derzeit noch sehr weit auseinander liegen, ist mit einem Zusammengehen vor dem ersten Jahrzehnt diese Jahrtausends nicht zu rechnen. Während das Lager der BPEL vorrangig dafür Sorge tragen will, dass die einzelnen Funkionsblöcke in Form von Web-Services ordentlich mit einander arbeiten können (Orchestrierung), kümmert sich die XPDL im Schwerpunkt auf das koordinierte Ablaufen von durch Menschen auszuführenden Aufgaben. Letztere stehen immer im Kontext einer Information, die im Schwerpunkt ein unstrukturiertes Dokument einer Akte ist (Case Handling). Die nachfolgende Tabelle zeigt die wesentlichen Unterschiede der beiden Sprach-Definitionen:
| | |
Merkmal
| XPDL
| BPEL
|
Zielsetzung
| Offener Austausch von Prozess-Definitionen (WfMC Interface 1) und Dateiformat für BPMN
| Spezifikation von ausführbaren und abstrakten Geschäfts-prozessen auf Basis von Web Services
|
Prozess- Teilnehmer
| „Participants“: Resource, Role, Org Unit, Human, System Dynamische Zuordnung mittels Rules während Laufzeit
| Intern keine Zuordnung von Teilnehmern, Externe im Message Flow über “Partner (Links)”
|
Technische Schnittstellen
| Diverse, z.B. Web Service, EJB, Pojo, Script, Rule
| Web Services (WSDL) Binding beliebig
|
Manuelle Tasks
| Explizite Definition von Aktivitäten als “TaskManual”
| Nicht explizit unterstützt
|
Modularisierung
| Unterprozesse werden unterstützt
| Eingeschränkt möglich durch „scope“
|
Simulation
| Enthält Attribute für Time Estimation, Cost Unit u.a.
| Nicht explizit unterstützt
|
Datenfluss
| Nur bei Übergabe während Start und Ende eines Subprozesses
| Collaboration zwischen parallelen Web Services
|
Laufzeitverhalten, Problembehandlung
| Für lang laufende automatische Aktivitäten (Teilprozesse) keine expliziten Definitionen
| Enthält „fault handler“, “compensation handler” und „transaction demarcation“
|
Austausch mit BPMN
| Die Version 2.0 enhält neben Koordinaten und Shape-Größen die Elemente Pool, Lane, Gateway und Event, d.h. bidirektionaler Austausch mit BPMN möglich
| Keine grafischen Elemente,
Nur unidirektionaler Austausch von BPMN nach BPEL möglich.
|
Tab 1: Gegenüberstellung der Merkmale von XPDL und BPEL
Eine sehr detaillierte Analyse der Unterschiede zwischen BPEL und XPDL hat Wil van der Aalst auf seiner Web-Site mit dem Titel Workflow-Pattern publiziert. Hier stellt er nicht nur die Unterschiede zwischen den beiden Konkurrenten heraus sonder vergleicht diese noch mit BPMN und UML so den Engines der Hersteller IBM und ORACLE.
SAP und IBM haben aufgrund der fehlenden Elemente hinsichtlich der Interaktion mit Menschen eine Erweiterung für WSBPEL in einem Whitepaper 2005 veröffentlicht. Nach Auskunft eines der Autoren ist aber nicht damit zu rechnen, dass diese Erweiterung noch den Weg in die Spezifikation der WSBPEL Version 2.0 finden wird. Dennoch werden wohl beide Firmen die in dem Whitepaper beschriebenen Erweiterungen in ihren BPEL Engines einbauen.
BPEL-Sprachelemente
Die Elemente der WSBPEL lassen sich in drei Gruppen unterteilen, den elementaren Basisaktivitäten, die nicht aus anderen Aktivitäten aufgebaut werden können, den sturkturierten Aktivitäten, die aus den elementaren Basisaktivitäten zusammen gesetzt werden können u.a. zum Zwecke der Rekursion, und dem Scope, um Gruppen von Aktiviäten Verfahren für Fehler („fault handler“), Ereignisse („event handler“) und zur Kompensation („compensation handler“) im Falle von Abbrüchen zuzuordnen.
Die Sprachelemente der Basic Activities sind:
| |
Element
| Erläuterung
|
assign
| Zuweisen oder Verändern von Werten zu einer Variablen.
|
empty den, um eine Fehlermeldung zu unterdrücken.
| in einer solchen Aktivität ist nichts tun, kann z. B. dazu verwendet werden, um eine Fehlermeldung zu unterdrücken.
|
invoke
| Aufruf eines Web Service
|
receive/reply
| legt fest, ob die Web Service Schnittstelle synchronen oder asynchronen genutzt wird
|
throw
| Soll ein Fehler nicht den den globalen Scope erreichen und damit den Prozesses terminiert, so kann er mit dem expliziten Signal für eine weitere Fehlerbehandlungen aufgefangen werden.
|
wait
| Es wird auf einen Zeitpunkt oder für eine Zeitspanne gewartet.
|
Tab 2: BPEL Basic Activities Elemente
Die Sprachelemente der Structured Activities sind:
| |
Element
| Erläuterung
|
flow
| Die Aktivitäten werden parallel oder in beliebiger Reihenfolge ausgeführt, wobei Abhängigkeiten durch Links angegeben werden können.
|
pick
| Die Wahl der auszuführenden Aktivitäten erfolgt über externe Ereignisse
|
sequence
| Die Aktivitäten werden nach einander abgearbeitet.
|
switch
| Verzweigung im Prozessfluss nach Auswertung von Bedingungen
|
while
| Wiederholtes Ausführen von Aktivitäten, solange eine boolesche Bedingung erfüllt ist
|
wait
| Es wird auf einen Zeitpunkt oder für eine Zeitspanne gewartet.
|
Tab 3: BPEL Structured Activities Elemente
Die folgende Grafik zeigt einen Prozess dargestellt in BPMN, gefolgt von deren textueller Darstellung in XML.
Abb. 3: Ein Beschwerdemanagementprozess in BPMN modelliert.
Die folgenden Zeilen zeigen einen Ausschnitt der Umsetzung des oben dargestellten Beschwerdemanagementprozesses in BPEL-code.
Abb. 4: XML Auszug aus einem Beschwerde-Workflow..
BPEL Engines
Ziel der WSBPEL-Definition ist ihre automtisierte Ausführung von Prozessinstanzen durch Engines, meist BPEL oder Workflow Engines genannt. Die folgende Liste zeigt einen nicht vollständigen Überblick heute verfügbarer Engines. BPEL-Prozesse in die BPEL Engine „deployed“. Dieser Begriff wird für das Bekanntgeben neuer Web-Services benutzt. Da BPEL-Instanzen selbst nicht nur Web-Services koordiniert aufrufen sonder selbst auch als Web-Service aufgerufen werden können, werden auch die BPEL-Definitionen „deployed“.
• IBM WebSphere Process Server
Implementiert ist BPEL4PEOPLE. Die Laufzeitumgebung basiert auf den Servern WebSphere Application Server und dem J2EE Server. Neben Tools zur Generierung von Code werden Simulations- und Monitoring-Werkzeuge zur Verfügung gestellt.
• SAP Exchange Infrastructure
Implementiert wurde der BPEL-Standard 1.1, die grafische Modellierung erfolgt über das ARIS Toolset der Firma IDS Scheer für SAP NetWeaver. Das Deployment erfolgt im Solution Manager und XI, die auf Basis des SAP NetWeaver arbeiten.
• Microsoft BizTalk Server und Workflow Foundation Classes
Beide Software-Komponenten bieten eine BPEL-Unterstützung.
• OpenLink Virtuoso Universal Server
bietet eine integrierte BPEL Engine.
• Oracle BPEL Process Manager
Implementiert ist der BPEL-Standard. 1.1. Angeboten wird ein grafisches Modellierungs/Orchestrie-rungs Tool für JDeveloper und Eclipse. Auch ORACLE pflegt eine intensive Partnerschaft mit der Firam IDS Scheer und exportiert die mit ARIS erstellten EPKs oder BPMN-Modelle in BPEL-Definitionen. Oracle ist einer der wesentlichen Treiber bei der Weiterentwicklung des BPEL-Standards innerhalb der OASIS.
• TIBCO BusinessWorks
Eine Erweiterung implementiert die Unterstützung von BPELVersion 1.1.
• Twister (Open Source)
Implementierung des BPEL-Standards (LGPL). Twister unterstützt SOA-Pattern. Arbeitslisten unterstützen die Interaktion mit Menschen. Das Projekt wurde bei Apache unter Agila weitergeführt und ist mittlerweile in das Ode Projekt integriert.
• ActiveBPEL (Open Source)
Implementiert sind sowohl BPEL4WS 1.1 als auch WS-BPEL 2.0.
• INTALIO (Open Source)
BPEL Server
• jBPM (Open Source)
BPM Server von JBoss mit der eigenen Prozessausführungssprache jPDL. Mittlerweile mit Hochdruck an der Implementierung von BPEL4WS 1.1 und WSBPEL 2.0 gearbeitet.
Literatur
PBEL4WS
Version 1.1 Spezifikation
WSBPEL
Version 2.0 Draft-Spezifikation
BPEL4PEOBPLE
Whitepaper von SAP und IBM Version 1.0
Vil van der Aalst, M. Dumas, A.H.M. ter Hofstede,
N. Russell, H.M.W. Verbeek, and P. Wohed:
Life After BPEL? BPM Center Report BPM-05-23, 2005
Bernd Rücker:
Geschäft(ige) Prozesse – jBPM ein Erfahrungsbericht, Javaspectrum 6/2005
Internetquellen
www.oasis-open.org
Organization for the advancement of Structured Information Standards www.omg.org
Object Management Group www.wfmc.org
Workflow Management Coalition www.workflowpatterns.com
Web-Site of Prof. Wil van der Aalst Workflow Pattern Analyses http://is.tm.tue.nl/staff/wvdaalst/
BPMcenter Virtuelles Forschungszentrum, das 2004 von unterschiedlichen Institutionen zum Thema BPM gegründet wurde (MBa/Kff)