Privacy Policy Cookie Policy Terms and Conditions Business Process Execution Language - Wikipedia

Business Process Execution Language

aus Wikipedia, der freien Enzyklopädie

Die Business Process Execution Language, kurz 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 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.

Inhaltsverzeichnis

[Bearbeiten] Ü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 ([1]) und BPEL4people ([2]).

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, der die Anforderungen für eine Interaktion von Menschen an eine Erweiterung von BPEL stellt.

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.

[Bearbeiten] 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.

[Bearbeiten] 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 [3]) veröffentlicht, in dem eine Erweiterung von BPEL für Unterprozesse erläutert wird.

[Bearbeiten] Stand der Entwicklung

Aktuell ist die Release 1.1, bei dem weitere Hersteller wie SAP und Siebel mitgewirkt haben. Bis zu dieser Version wird der BPEL Standard mit BPEL4WS (Business Process Execution Language for Web Services) benannt.

Der Standard wurde im April 2003 an OASIS zur Standardisierung übergeben.

Eine 2.0-Release ist in Bearbeitung, die Detail-Verbesserungen enthält, jedoch inkompatibel zu den 1.x-Versionen ist. 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.

[Bearbeiten] 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 werden parallel oder in beliebiger Reihenfolge ausgeführt, wobei Abhängigkeiten durch links angegeben werden können.
  • pick - Aus Prozesssicht nicht deterministische Wahl durch externe Ereignisse

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") und ein Kompensationsbehandler ("compensation handler") zugeordnet werden. Durch den Kompensationsbehandler werden lang-andauernde Transaktionen ermöglicht.

[Bearbeiten] 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.

  • 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
  • Oracle BPEL Process Manager - Implementierung des BPEL-Standards 1.1, mit grafischer Modellierungs/Orchestierungs Tool für JDeveloper und Eclipse. Oracle ist einer der wesentlichen Treiber bei der Weiterentwicklung des BPEL-Standards innerhalb der OASIS.
  • Twister - ist eine Open Source Implementierung des BPEL-Standards (LGPL). Twister unterstützt das SOA-Pattern wie auch direkte Interaktion mit Menschen (durch Arbeitslisten). Wird jetzt unter dem Namen Agila weitergeführt
  • ActiveBPEL - Open Source Implementierung (GPL) von BPEL4WS 1.1
  • INTALIO - Open Source BPEL Server
  • BPWS4J - BPEL-Implementierung von IBM
  • WebSphere Integration Developer - Workflow Modellierungstool von IBM
  • Microsoft BizTalk Server - BizTalk Server 2006 kann Prozessmodelle, die mit Modellierungswerkzeugen wie Microsoft Visio erstellt worden sind, ausführen.

[Bearbeiten] Vergleichbare Sprachen

[Bearbeiten] Siehe auch

[Bearbeiten] Weblinks

[Bearbeiten] Standards

[Bearbeiten] Tools

[Bearbeiten] Sonstiges

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu