BPEL -Business Process Execution Language by pharmphresh26

VIEWS: 30 PAGES: 6

									BPEL -Business Process Execution Language
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.




'LH *UDILN ]HLJW GLH =XVDPPHQKlQJH ]ZLVFKHQ GHQ ZLFKWLJVWHQ 6WDQGDUGV UXQG XP %3(/ 'HU =HLWVWUDKO LVW QLFKW
H[DNW ZLFKWLJ VLQG KLHU GLH =XVDPPHQKlQJH
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

Dr. Martin Bartonitz, BPEL – Business Process Execution Language, Juli 2007                             1/6
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.
'HU %3(/.RQWH[W
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.




     'LH *UDILN ]HLJW GLH 9HUQHW]XQJ GHU PLW %3(/ LP =XVDPPHQKDQJ VWHKHQGHQ ZHLWHUHQ 6WDQGDUGV

*UDILVFKH 0RGHOOLHUXQJ
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.
Die BPMN wird unter dem Dach OMG – Object Management Group – vorangetrieben, die auch die
grafischen Diagrammer für ein objektoerientiertes Design von Applikationen mittels der UML – Unified
Meta Language – vorantreibt.




Dr. Martin Bartonitz, BPEL – Business Process Execution Language, Juli 2007                         2/6
8QWHUVFKLHGH ]ZLVFKHQ :63%(/ XQG ;3'/
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 auseinanderliegen, ist
mit einem Zusammengehen vor dem ersten Jahrzehnt diese Jahrtaussends 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ümmer 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:
 0HUNPDO                    ;3'/                                          %3(/
 Zielsetzung                Offener Austausch von Prozess-                Spezifikation von ausführbaren und
                            Definitionen                                  abstrakten Geschäftsprozessen auf
                            (WfMC Interface 1) und Dateiformat            Basis von Web Services
                            für BPMN
 Prozess-                   „Participants“: Resource, Role,               Intern keine Zuordnung von Teilnehmern,
 Teilnehmer                 Org Unit, Human, System                       Externe im Message Flow über “Partner
                            Dynamische Zuordnung mittels                  (Links)”
                            Rules während Laufzeit
 Technische                 Diverse, z.B. Web Service, EJB,               Web Services (WSDL)
 Schnittstellen             Pojo, Script, Rule                            Binding beliebig
 Manuelle Tasks             Explizite Definition von Aktivitäten          Nicht explizit unterstützt
                            als “TaskManual”
 Modularisierung            Unterprozesse werden unterstützt              Eingeschränkt möglich durch „scope“
 Simulation                 Enthält Attribute für Time                    Nicht explizit unterstützt
                            Estimation, Cost Unit u.a.
 Datenfluss                 Nur bei Übergabe während Start                Collaboration zwischen parallelen Web
                            und Ende eines Subprozesses                   Services
 Laufzeitverhalten,         Für lang laufende automatische                Enthält „fault handler“, “compensation
 Problembehandlung          Aktivitäten (Teilprozesse) keine              handler” und „transaction demarcation“
                            expliziten Definitionen
 Austausch mit              Die Version 2.0 enhält neben                  Keine grafischen Elemente,
 BPMN                       Koordinaten und Shape-Größen die
                                                                          Nur unidirektionaler Austausch von
                            Elemente Pool, Lane, Gateway und
                                                                          BPMN nach BPEL möglich.
                            Event, d.h. bidirektionaler
                            Austausch mit BPMN möglich


                        Tabelle 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.


Dr. Martin Bartonitz, BPEL – Business Process Execution Language, Juli 2007                                        3/6
%3(/6SUDFKHOHPHQWH
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:
DVVLJQ               Zuweisen oder Verändern von Werten zu einer Variablen.
HPSW\                in einer solchen Aktivität ist nichts tun, kann z. B. dazu verwendet werden, um eine
                     Fehlermeldung zu unterdrücken.
LQYRNH               Aufruf eines Web Service
UHFHLYHUHSO\        legt fest, ob die Web Service Schnittstelle synchronen oder asynchronen genutzt wird
WKURZ                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.
ZDLW                 Es wird auf einen Zeitpunkt oder für eine Zeitspanne gewartet.
Die Sprachelemente der Structured Activities sind:
IORZ                 'LH $NWLYLWlWHQ ZHUGHQ SDUDOOHO RGHU LQ EHOLHELJHU 5HLKHQIROJH DXVJHIKUW ZREHL
                     $EKlQJLJNHLWHQ GXUFK /LQNV DQJHJHEHQ ZHUGHQ N|QQHQ
SLFN                 'LH :DKO GHU DXV]XIKUHQGHQ $NWLYLWlWHQ HUIROJW EHU H[WHUQH (UHLJQLVVH
VHTXHQFH             'LH $NWLYLWlWHQ ZHUGHQ QDFK HLQDQGHU DEJHDUEHLWHW
VZLWFK               9HU]ZHLJXQJ LP 3UR]HVVIOXVV QDFK $XVZHUWXQJ YRQ %HGLQJXQJHQ
ZKLOH                :LHGHUKROWHV $XVIKUHQ YRQ $NWLYLWlWHQ VRODQJH HLQH ERROHVFKH %HGLQJXQJ HUIOOW LVW
Das folgende Grafik zeigt einen Prozess dargestellt in BPMN gefolgt von deren textueller Darstellung in
XML.




                                (LQ %HVFKZHUGHPDQDJHPHQWSUR]HVV LQ %301 PRGHOOLHUW
Die folgenden Zeilen zeigen einen Ausschnitt                          der     Umsetzung   des   oben   dargestellten
Beschwerdemanagementprozesses in BPEL-code.
<process name="complaintHandling">
   <partnerLinks>
      <partnerLink name="local" partnerLinkType="localLT" ... />
      ...
   </partnerLinks>
   <variables> ... </variables>
   <eventHandlers>
      <onEvent Completion(a1)(1)/>
          <sequence>
             <invoke name="sendQuestionnaire" ... /> <!--do a2-->
             <invoke Completion(a2)/>


Dr. Martin Bartonitz, BPEL – Business Process Execution Language, Juli 2007                                     4/6
          </sequence>
      </onEvent>
      ...
      <onEvent Completion(a4)/>
          <sequence>
             <receive Completion(a8)/>
             <assign name="archive"> ... </assign> <!--do a9-->
             <invoke Completion(a9)/>
          </sequence>
      </onEvent>
   </eventHandlers>
   <sequence>
      <receive ProcessInstantiation(p) createInstance="yes"/>
      <assign name="register"> ... </assign> <!--do a1-->
      <flow>
          <invoke Completion(a1)(1)/>
          <invoke Completion(a1)(2)/>
      </flow>
   </sequence>
</process>

%3(/ (QJLQHV
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“.
•   ,%0 :HE6SKHUH 3URFHVV 6HUYHU – Implemtiert ist BPEL4PEOPLE. Die Laufzeitumgebung basiert auf
    den Servern :HE6SKHUH $SSOLFDWLRQ 6HUYHU und dem J2EE Server. Neben Tools zur Generierung von
    Code werden Simulations- und Monitoring-Werkzeuge zur Verfügung gestellt.
•   6$3 ([FKDQJH ,QIUDVWUXFWXUH – Implementier 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.
•   0LFURVRIW %L]7DON 6HUYHU XQG :RUNIORZ )RXQGDWLRQ &ODVVHV ± beide Software-Komponenten bieten ein
    BPEL-Unterstützung.
•   2SHQ/LQN 9LUWXRVR 8QLYHUVDO 6HUYHU—bietet eine integrierte BPEL Engine.
•   2UDFOH %3(/ 3URFHVV 0DQDJHU – Implementiert ist der BPEL-Standard. 1.1. Angeboten wird ein
    grafisches Modellierungs/Orchestrierungs 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.
•   7,%&2 %XVLQHVV:RUNV –Eine Erweiterung implementiert die Unterstützung von BPELVersion 1.1.
•   7ZLVWHU – (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.
•   $FWLYH%3(/ – (Open Source) Implementiert sind sowohl BPEL4WS 1.1 als auch WS-BPEL 2.0.
•   ,17$/,2 – (Open Source) BPEL Server
•   M%30 YRQ -%RVV – (Open Source) BPM Server mit der eigenen Prozessausführungssprache jPDL.
    Mittlerweile mit Hochdruck an der Implementierung von BPEL4WS 1.1 und WSBPEL 2.0 gearbeitet.


Dr. Martin Bartonitz, BPEL – Business Process Execution Language, Juli 2007                           5/6
/LWHUDWXU
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


,QWHUQHWUHVVRXUFHQ
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
is.tm.tue.nl/staff/wvdaalst/BPMcenter                     Virtuelles Forschungszentrum, das 2004 von
                                                          unterschiedlichen Institutionen zum Thema BPM
                                                          gegründet wurde




Dr. Martin Bartonitz, BPEL – Business Process Execution Language, Juli 2007                                      6/6

								
To top