Die Business Process Execution Language (BPEL) ist eine XML-basierte Sprache für Geschäftsprozessen, deren einzelne Aktivitäten durch Webservices implementiert sind. Die von IBM, BEA und Microsoft vorgeschlagene Sprache ist aus WSFL und XLANG entstanden und wird zur Beschreibung von so genannten Webservice-Orchestrierungen verwendet. Darunter versteht man die Beschreibung sogenannter langlaufender Workflow-Transaktionen ("programming in the lange"). Die Bearbeitung eines Kreditvertrages bei einer Bank könnte zum Beispiel als Orchestrierung per BPEL beschrieben werden. Der gesamte Vorgang kann aus vielen Arbeitsschritten bestehen, die sich über einen langen Zeitraum erstrecken können. Die Programmierung innerhalb der einzelnen Arbeitsschritte, die als kurzfristige ACID-Transaktionen ausgeführt werden, sind dagegen nicht Bestandteil der Orchestrierung sondern der Webservice-Choreographie.
BPEL hat folgende Entwurfsziele:
- Definition von Geschäftsprozessen, die nach außen über abstrakte WSDL-beschriebene Webservices interagieren
- Beschreibung dieser Geschäftsprozesse mit Hilfe einer XML-basierten Sprache ohne Festlegungen über eine graphische Repräsentation oder Methode zum Prozessentwurf
- Definition eines Satzes von Webservice-Orchestrierungskozepten sowohl für die abstrakte externe als auch die konkrete interne Betrachtung eines Geschäftsprozesses
- Nahtlose Unterstützung sowohl von hierachischen als auch von graphenorientierten Steuerungsverfahren
- Bereitstellung von Datenmanipulationsverfahren für die einfache Manipulation von Prozess- und Flussdaten
- Unterstützung eines Mechanismus zur Identifikation von Instanzen auf der Ebene der Anwendungsnachrichten
- Bereitstellung von einfachen Lebenszyklusfunktionen für das Erzeugen und Beenden von Prozessinstanzen. Kompliziertere Lebenszyklusfunktionen wie das Schlaufenlegen und Wiederaufwecken sollen in zukünftigen Versionen folgen.
- Definition eines Modells für langlaufende Transaktionen auf Basis von bewährten Techniken wie die der zurücknehmenden Aktionen zum Wiederaufsetzen nach Fehlern in langlaufenden Geschäftsprozessen.
- Nutzung standardisierter Webservices zur Modularisierung und zum Verbinden dieser Module.
Im Jahr 2003 ist BPEL bei OASIS als Standard namens BPEL4WS vorgeschlagen worden. Mit der BPEL kann die Choreographie von Geschäftsprozessen nicht beschrieben werden. Diese Aufgabe wird von Beschreibungssprachen wie WS-CDL übernommen. Auch die Kommunikation mit Menschen kann nicht mit BPEL beschrieben werden.
Ab der zur Version 1.1 nicht kompatiblen Version 2.0 von BPEL ist die Bezeichnung in WS-BPEL umbenannt worden, um mehr Ähnlichkeit mit anderen Webservice-Standars wie WS-Security zu erzielen.