- BPEL4WS
-
Die WS-Business Process Execution Language (BPEL) ist eine XML-basierte Sprache zur Beschreibung von Geschäftsprozessen, deren einzelne Aktivitäten durch Webservices implementiert sind.
Die im Jahr 2002 von IBM, BEA Systems und Microsoft eingeführte Sprache wird dabei zur Beschreibung von so genannten Webservice-Orchestrierungen verwendet. Die Beschreibung selbst wird ebenfalls in Form eines Webservice bereitgestellt und kann als ein solcher verwendet werden.
Durch die Abstraktion mittels BPEL kann die Schnittstelle eines Webservice, der die an einem Prozess beteiligten Web Services steuert, beschrieben werden – beispielsweise in welcher Reihenfolge Nachrichten eintreffen müssen. WS-BPEL ist Teil der sogenannten WS-* Spezifikationen.
Inhaltsverzeichnis
Überblick
Das Prozessmodell WS-BPEL, ehemals BPEL4WS (engl. Akronym für BPEL for Webservices), baut auf dem Dienstmodell von WSDL auf. Weiterhin werden die Standards XMLSchema, XPath und WS-Addressing benutzt.
Die Sprache verbindet die Ideen der kalkülbasierten Sprache XLANG von Microsoft und der Graph-basierten Sprache WSFL von IBM.
Ziel von BPEL ist, das Programmieren im Großen zu ermöglichen. Dabei ist zu beachten, dass BPEL die direkte Interaktion mit Menschen nicht unterstützt. BPEL-Prozesse kommunizieren ausschließlich mit Web Services. Letztere können eine Schnittstelle zu Menschen sein, jedoch nicht Menschen selbst.
BPEL selbst stellt einen Sockel dar, auf dem verschiedene Säulen gebaut werden können. Die Säulen abstrakter Geschäftsprozess und ausführbarer Geschäftsprozess sind schon in der Spezifikation selbst enthalten. Weitere Säulen sind BPELJ und WS-BPEL4People.
Bei BPELJ ist das Ziel, dass Aktivitäten selbst auch Java-Code enthalten können, was den Prozess selbst beschleunigt, ihn aber abhängig von der Programmiersprache Java macht.
IBM hat zusammen mit SAP ein Whitepaper unter dem Namen BPEL4People veröffentlicht, das die Anforderungen für eine Interaktion von Menschen an eine Erweiterung von BPEL stellt. Mittlerweile ist darauf basierend in Kooperation mit anderen Firmene eine Spezifikation entstanden, die z.Z. (April 2009) OASIS zur Standardisierung vorliegt.
BPEL ist blockstrukturiert, d. h. bei der Definition von lokalen Umgebungen (Scopes) können lokale Variablen eingeführt werden. Mit den Scopes können außerdem Fehlerbehandlung (Fault Handler), Kompensationsbehandlung (Compensation Handler) und Ereignisbehandlung (Event Handler) assoziiert werden.
Der BPEL-Standard selbst definiert keine graphische Darstellung der modellierten Prozesse. Dafür ist die Business Process Modeling Notation (BPMN) vorgesehen, die im Standard die Abbildung von BPMN nach BPEL beschreibt.
Abstrakte und ausführbare Prozesse
Ausführbare BPEL-Prozesse können auf einer Workflowmaschine zum Einsatz gebracht werden (engl. deployed) und sind durch sie ausführbar. Abstrakte Prozesse dienen der Beschreibung des Verhaltens des Prozesses („behavioral interface“). Sie werden als Sicht auf einen ausführbaren Prozess verwendet und dienen dazu, das interne Verhalten des Prozesses z. B. vor einem Geschäftspartner zu verbergen.
Unterprozesse
BPEL selbst kennt keine Unterprozesse. Es ist so beispielsweise nicht immer möglich, einen Unterprozess zu terminieren, wenn der Hauptprozess terminiert wird. Diese Funktionalität kann durch explizite Operationen eines Web Services bereitgestellt werden, was jedoch nicht vom BPEL-Standard vorgeschrieben ist.
Von IBM und SAP wurde ein Whitepaper unter dem Namen WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) veröffentlicht, in dem eine Erweiterung von BPEL für Unterprozesse erläutert wird.
Stand der Entwicklung
Aktuell ist die Release 2.0, bei dem weitere Hersteller wie SAP und Siebel mitgewirkt haben. Bis zur Version 1.1 wurde der BPEL-Standard mit BPEL4WS (Business Process Execution Language for Web Services) benannt. Der Standard wurde im April 2003 an OASIS zur Standardisierung übergeben.
Das OASIS WS-BPEL Komitee beschloss am 14. September 2004, die Spezifikation WS-BPEL 2.0 zu nennen, um in Einklang mit den anderen WS-*-Standards wie WSDL, WS-Security usw. zu gelangen.
Die Standardisierung von WS-BPEL 2.0 wurde am 11. April 2007 abgeschlossen. Sie enthält Detail-Verbesserungen, ist jedoch inkompatibel zu den 1.x-Versionen.
Sprachbestandteile
Basic Activities – Dies sind die grundlegenden – sozusagen atomaren – Aktivitäten, welche nicht aus anderen Aktivitäten aufgebaut sind:
- assign – Verändern des Inhalts einer Variablen.
- invoke – Synchroner (request/response) oder asynchroner Aufruf eines Web Service
- receive/reply – Anbieten einer synchronen oder asynchronen Web Service Schnittstelle
- throw – Explizites Signalisieren eines Fehlers, welcher durch Fehlerbehandlungen aufgefangen werden kann. Wird ein Fehler nicht aufgefangen, erreicht er also den globalen Scope, so terminiert der Prozess.
- wait – Warten auf einen Zeitpunkt oder für eine Zeitspanne
- empty – Nichts tun, z. B. um in einer Fehlerbehandlung nichts zu tun und den Fehler so zu unterdrücken
Structured Activities – Diese Aktivitäten beinhalten andere Aktivitäten und lassen so die rekursive Komposition von komplexen Prozessen zu.
- sequence – In einer Sequence werden die Aktivitäten sequentiell abgearbeitet.
- while – Ausführen von Aktivitäten solange eine boolesche Bedingung erfüllt ist
- switch – Bedingte Ausführung von Aktivitäten
- flow – Die Aktivitäten können parallel oder in beliebiger Reihenfolge ausgeführt werden, wobei Kontrollabhängigkeiten durch links angegeben werden.
- pick – Aus Prozesssicht nicht-deterministische Wahl durch externe Ereignisse (Messages, Zeitpunkt oder Zeitspanne)
Scopes – Mit Hilfe dieses Konstrukts können Aktivitäten gebündelt werden und zu einer transaktionalen Einheit zusammengefasst werden. Durch einen Scope kann einer Gruppe von Aktivitäten ein Fehlerbehandler („fault handler“), Ereignisbehandler („event handler“), ein Terminationsbehandler und ein Kompensationsbehandler („compensation handler“) zugeordnet werden. Durch den Kompensationsbehandler werden lang-andauernde Transaktionen ermöglicht.
BPEL Engines
BPEL Engines erlauben das Ausführen von BPEL-Prozessinstanzen. Hierzu müssen die BPEL-Prozesse in die BPEL Engine eingebracht (deployed) und dabei von der jeweiligen BPEL Engine abhängige Deployment-Informationen bereitgestellt werden.
Freie BPEL Engines
- jBPM - Bestandteil des Applikationservers JBOSS. Das Produkt kann aber auch eigenständig betrieben werden.
- Twister – ist eine Open Source Implementierung des BPEL-Standards (LGPL). Twister unterstützt das SOA-Pattern wie auch direkte Interaktion mit Menschen (durch Arbeitslisten). Das Projekt wurde bei Apache zuerst unter dem Namen Agila weitergeführt, wurde mittlerweile aber mit dem Apache ODE Projekt fusioniert.
Open Source BPEL Engines
- Apache ODE – ODE steht für "Orchestration Director Engine", unterstützt WS-BPEL 2.0 und BPEL4WS 1.1
- INTALIO – Open Source BPEL Server
- BPEL SE - Bestandteil des Enterprise Service Bus OpenESB von Sun Microsystems
Kommerzielle BPEL Engines
- ActiveVOS – kommerzielle Weiterentwicklung von ActiveBPEL (Open Source Implementierung (GPL) von BPEL4WS 1.1 und WS-BPEL 2.0)
- Oracle BPEL Process Manager – (vormals Collaxa BPEL Orchestration Server) Native Implementierung des BPEL-Standards, mit grafischer Modellierungs/Orchestrierungs Tool für JDeveloper und Eclipse. Oracle ist einer der wesentlichen Treiber bei der Weiterentwicklung des BPEL-Standards innerhalb der OASIS. In der neuen Version 11g werden BPEL-Prozesse im Rahmen von Composites innerhalb von Service-Component-Architekturen (SCA-Standard) eingebunden.
- SAP Exchange Infrastructure – Implementierung des BPEL-Standards 1.1, grafische Modellierung über ARIS für SAP NetWeaver. Deployment in Solution Manager und XI, die auf Basis des SAP NetWeaver arbeiten
- SEEBURGER Business Integration Server - Teil des B2B Integrationsservers ist eine BPEL Engine und ein Eclipse basierender Prozess Designer. Damit lassen sich also alle Integrationsabläufe (nicht nur für WebService) designen.
- WebSphere Process Server – BPEL-Laufzeitumgebung der IBM basiert auf WebSphere Application Server, dem Java EE Server der IBM. Zusätzliche Angebote der IBM:
- WebSphere Business Modeler – Abstraktes Workflow Modellierungstool von IBM (vergleichbar IDS Scheer Aris). Erzeugt und simuliert Geschäftsmodelle die mit WebSphere Integration Developer zur Ausführung vorbereitet werden.
- WebSphere Integration Developer – Technisches Workflow Modellierungstool von IBM, Dient zur technischen Ausarbeitung von Prozessen, z.B. welches WebService wird von welchem Prozessschritt mit welchen Parametern aufgerufen. Kann optional WebSphere Business Modeler oder Aris Modelle importieren und für die Ausführung auf WebSphere Process Server vorbereiten.
- WebSphere Business Monitor - BPEL-Prozess Monitor - dient zur Prozessüberwachung aus Geschäftssicht
- BPWS4J – Experimentelle BPEL-Implementierung von IBM verfügbar über AlphaWorks
- Microsoft BizTalk Server – BizTalk Server 2006 kann Prozessmodelle ausführen, die mit Modellierungswerkzeugen wie Microsoft Visio erstellt worden sind.
- Microsoft Windows Workflow Foundation im MSDN - Die Windows Workflow Foundation ist Teil von .NET 3.0 und umfasst auch eine vollständige Abbildung von BPEL. Der Designer ist im Visual Studio 2005 als AddOn verfügbar, Visual Studio 2008 bietet die Funktionalität nativ.
- Serena Business Mashups Server 2008 - Die Serverkomponente enthält eine auf der JBoss BPEL Engine basierende sogenannte Orchestration Engine, die BPEL Prozesse in Kombination mit Human Workflows ausführt (ein sogenanntes Mashup)
Vergleichbare Sprachen
- XL
- XML Process Definition Language (XPDL)
- XLANG
- WS-Flow Language (WSFL)
- ASAP/Wf-XML
- Business Process Modeling Language (BPML)
- BPELscript
Siehe auch
- WS-BPEL4People und WS-HumanTask (spielen zusammen)
- Business Process Modeling Notation (BPMN)
- Electronic Business XML (ebXML)
- WS-* Spezifikationen (modulare Erweiterungen von WSDL)
Weblinks
Standards
- OASIS WSBPEL TC Webpage
- OASIS WSBPEL TC Issues List
- BPEL 2.0-Spezifikation
- BPEL4WS 1.1 Spezifikation
Tools
- ActiveVOS
- Apache ODE (Orchestration Director Engine)
- BEA Aqualogic BPM (for end-to-end business processes)
- IBM WebSphere Integration Developer
- NetBeans IDE SOA Features with BPEL support
- objectiF (BPMN-Design und BPEL-Generierung)
- Oracle BPEL Process Manager
- Serena Business Mashups Composer 2008
Modellierung
Sonstiges
- http://groups.yahoo.com/group/wsbpel-dev/ – BPEL Developers Mailingliste (und Linkliste)
- http://www.bpm-guide.de/sitemap/8 Informationsportal – zahlreiche Artikel zu BPEL und angrenzenden Themen
- Seminararbeit Pattern-based Evaluation of IBM WebSphere BPEL von Volker Kramberg
Wikimedia Foundation.