Die Web Services-Geschäftsprozess-Ausführungssprache ( WS-BPEL ), allgemein bekannt als BPEL ( Geschäftsprozess-Ausführungssprache ) , ist eine ausführbare OASIS [1] -Standardsprache zum Angeben von Aktionen innerhalb von Geschäftsprozessen mit Web Services. Prozesse in BPEL exportieren und importieren Informationen ausschließlich über Webservice-Schnittstellen.
Überblick [ edit ]
Web-Service-Interaktionen können auf zwei Arten beschrieben werden: als ausführbare Geschäftsprozesse und als abstrakte Geschäftsprozesse.
- Ein ausführbarer Geschäftsprozess : modelliert ein tatsächliches Verhalten eines Teilnehmers an einer Geschäftsinteraktion.
- Ein abstrakter Geschäftsprozess : ist ein teilweise angegebener Prozess, der nicht beabsichtigt ist ausgeführt werden. Im Gegensatz zu ausführbaren Prozessen kann ein abstrakter Prozess einige der erforderlichen konkreten betrieblichen Details verdecken. Prozesse haben eine deskriptive Rolle mit mehr als einem möglichen Anwendungsfall, einschließlich beobachtbarem Verhalten und / oder Prozessvorlage.
WS-BPEL zielt darauf ab, das Verhalten von Prozessen über eine Sprache für die Spezifikation beider Executable zu modellieren. [2] und abstrakte Geschäftsprozesse. Auf diese Weise wird das Interaktionsmodell der Web Services erweitert und die Unterstützung von Geschäftstransaktionen ermöglicht. Außerdem wird ein interoperables Integrationsmodell definiert, das den Ausbau der automatisierten Prozessintegration sowohl innerhalb als auch zwischen Unternehmen erleichtern soll. Ihre Entwicklung kam aus dem Gedanken [3] dass Programmierung in den großen und Programmierung in den kleinen verschiedenen Arten von Sprachen erforderte.
Als solches ist es in XML serialisiert und soll die Programmierung im großen Umfang ermöglichen.
Programmierung im Großen / Kleinen [ edit ]
Die Konzepte der -Programmierung im Großen und im Kleinen unterscheiden zwischen Zwei Aspekte des Schreibens der Art von lang laufenden asynchronen Prozessen, die man normalerweise in Geschäftsprozessen sieht:
- Die Programmierung im Großen bezieht sich im Allgemeinen auf die Wechselwirkungen eines Prozesses auf hoher Ebene des Zustandsübergangs. BPEL bezeichnet dieses Konzept als abstrakten Prozess. Ein BPEL-Abstract-Prozess repräsentiert standardisiert eine Reihe öffentlich beobachtbarer Verhaltensweisen. Ein abstrakter Prozess enthält Informationen, z. B. wann auf Nachrichten gewartet werden soll, wann Nachrichten gesendet werden sollen, wann fehlgeschlagene Transaktionen zu kompensieren sind usw.
- Programmierung im Kleinen befasst sich dagegen mit kurzlebiger Programmatik Verhalten, das häufig als einzelne Transaktion ausgeführt wird und Zugriff auf lokale Logik und Ressourcen wie Dateien, Datenbanken usw. umfasst.
Geschichte [ edit ]
Die Ursprünge von WS-BPEL Gehen Sie zurück zu Web Services Flow Language (WSFL) und Xlang.
Im Jahr 2001 hatten IBM und Microsoft jeweils ihre eigenen, ziemlich ähnlichen Sprachen definiert: "Programmierung in großen Sprachen": WSFL [4] ( Web Services Flow Language ) und Xlang [5] . Microsoft hat sogar eine Skriptvariante namens XLANG / s entwickelt, die später als Grundlage für ihre Orchestrations-Dienste in ihrem BizTalk Server dient. Sie haben ausdrücklich dokumentiert, dass diese Sprache "proprietär und nicht vollständig dokumentiert ist". [6]
Mit dem Aufkommen und der Popularität von BPML und dem wachsenden Erfolg von BPMI.org und der offenen BPMS-Bewegung, die von JBoss und Intalio Inc., IBM und Microsoft geführt wird beschloss, diese Sprachen in einer neuen Sprache, BPEL4WS, zu kombinieren. Im April 2003 reichten BEA Systems, IBM, Microsoft, SAP und Siebel Systems BPEL4WS 1.1 zur Standardisierung über das Web Services BPEL Technical Committee ein. [7] Obwohl BPEL4WS sowohl als 1.0- als auch als 1.1-Version erschien, die OASIS WS-BPEL Das Technische Komitee stimmte am 14. September 2004 mit [8] für die Benennung ihrer Spezifikation "WS-BPEL 2.0". (Diese Namensänderung stimmte BPEL mit anderen Namenskonventionen für Web Service-Standards ab, die mit "WS-" (ähnlich wie WS-Security) beginnen und die erheblichen Verbesserungen zwischen BPEL4WS 1.1 und WS-BPEL 2.0 berücksichtigten.) Falls nicht über a In einer bestimmten Version wird der Moniker BPEL allgemein verwendet [Zitat benötigt .
Im Juni 2007 veröffentlichten Active Endpoints, Adobe Systems, BEA, IBM, Oracle und SAP die Spezifikationen für BPEL4People und WS-HumanTask, in denen beschrieben wird, wie menschliche Interaktion in BPEL-Prozessen implementiert werden kann.
Designziele [ edit ]
Es gab zehn ursprüngliche Designziele, die mit BPEL verbunden waren:
- Definieren Sie Geschäftsprozesse, die mit externen Entitäten über mit WSDL 1.1 definierte Web-Service-Vorgänge interagieren und sich als Web-Services manifestieren, die mit WSDL 1.1 definiert sind. Die Interaktionen sind „abstrakt“ in dem Sinne, dass die Abhängigkeit von portType-Definitionen und nicht von Portdefinitionen abhängt.
- Definieren Sie Geschäftsprozesse mithilfe einer XML-basierten Sprache. Definieren Sie keine grafische Darstellung von Prozessen oder stellen Sie keine bestimmte Entwurfsmethodik für Prozesse dar.
- Definieren Sie eine Reihe von Web-Service-Orchestrierungskonzepten, die sowohl für die externe (abstrakte) als auch für die interne (ausführbare) Sicht eines Unternehmens verwendet werden sollen verarbeiten. Ein solcher Geschäftsprozess definiert das Verhalten einer einzelnen autonomen Entität, die normalerweise in Interaktion mit anderen ähnlichen Peer-Entitäten arbeitet. Es ist bekannt, dass für jedes Verwendungsmuster (dh abstrakte Ansicht und ausführbare Ansicht) einige spezielle Erweiterungen erforderlich sind. Diese Erweiterungen sind jedoch auf ein Minimum zu beschränken und im Hinblick auf Anforderungen wie Import / Export und Übereinstimmungsprüfung zu testen, die die beiden Verwendungszwecke miteinander verknüpfen Muster.
- Sie können sowohl hierarchische als auch grafische Kontrollregime bereitstellen und deren Verwendung so nahtlos wie möglich mischen. Dies sollte die Fragmentierung des Prozessmodellierungsbereichs reduzieren.
- Bietet Datenmanipulationsfunktionen für die einfache Manipulation von Daten, die zur Definition von Prozessdaten und Steuerungsfluss erforderlich sind.
- Unterstützung eines Identifizierungsmechanismus für Prozessinstanzen, der die Definition von Instanzkennungen ermöglicht auf der Ebene der Anwendungsnachrichten. Instanzkennungen sollten von Partnern definiert werden und können sich ändern.
- Unterstützung der impliziten Erstellung und Beendigung von Prozessinstanzen als grundlegender Lebenszyklusmechanismus. Erweiterte Lebenszyklusvorgänge wie "Suspend" und "Resume" können in zukünftigen Releases für ein erweitertes Lifecycle-Management hinzugefügt werden.
- Definieren Sie ein langlebiges Transaktionsmodell, das auf bewährten Techniken wie Kompensationsaktionen und dem Bereich zur Unterstützung der Fehlerbehebung für Teile basiert langwieriger Geschäftsprozesse.
- Verwenden Sie Web Services als Modell für die Zerlegung und Assemblierung von Prozessen.
- Bauen Sie Web Services-Standards (genehmigt und vorgeschlagen) so weit wie möglich in komposierbarer und modularer Weise auf.
The BPEL-Sprache [ edit ]
BPEL ist eine Orchestrierungssprache und keine Choreographiesprache. Der Hauptunterschied zwischen Orchestrierung und Choreografie ist die Ausführbarkeit und Kontrolle. Eine Orchestrierung gibt einen ausführbaren Prozess an, bei dem der Nachrichtenaustausch mit anderen Systemen erfolgt, so dass die Nachrichtenaustauschsequenzen vom Orchestrierungsentwickler gesteuert werden. Eine Choreographie spezifiziert ein Protokoll für Peer-to-Peer-Interaktionen, das beispielsweise die legalen Sequenzen von Nachrichten definiert, die zum Zwecke der Gewährleistung der Interoperabilität ausgetauscht werden. Ein solches Protokoll ist nicht direkt ausführbar, da es viele verschiedene Realisierungen ermöglicht (Prozesse, die dem Protokoll entsprechen). Eine Choreographie kann durch Schreiben einer Orchestrierung (z. B. in Form eines BPEL-Prozesses) für jeden daran beteiligten Peer realisiert werden. Die Orchestrierung und die Choreographieabgrenzung basieren auf Analogien: Orchestrierung bezieht sich auf die zentrale Kontrolle (durch den Dirigenten) des Verhaltens eines verteilten Systems (das aus vielen Spielern bestehende Orchester), während sich die Choreographie auf ein verteiltes System (das Tanzteam) bezieht. die nach Regeln (der Choreographie) arbeitet, jedoch ohne zentrale Kontrolle.
BPELs Fokus auf moderne Geschäftsprozesse sowie die Historien von WSFL und XLANG veranlassten BPEL, Web-Services als externen Kommunikationsmechanismus zu nutzen. Daher hängen die Messaging-Funktionen von BPEL von der Verwendung der WSDL (Web Services Description Language) 1.1 ab, um ausgehende und eingehende Nachrichten zu beschreiben.
Die BPEL-Programmiersprache bietet nicht nur Möglichkeiten zum Senden und Empfangen von Nachrichten, sondern unterstützt auch:
- Eigenschaftsbasierter Nachrichtenkorrelationsmechanismus
- XML- und WSDL-typisierte Variablen
- Ein erweiterbares Sprachen-Plug-In-Modell, mit dem Ausdrücke und Abfragen in mehreren Sprachen geschrieben werden können: BPEL unterstützt standardmäßig XPath 1.0
- Strukturierte Programmierung Konstrukte, einschließlich if-then-elseif-else, while, sequence (um die Ausführung von Befehlen in der richtigen Reihenfolge zu ermöglichen) und flow (um die Ausführung von Befehlen parallel zu ermöglichen)
- Ein Scopingsystem, das die Verkapselung von Logik mit lokalen Variablen (Fehlerbehandlungsroutinen) ermöglicht , Kompensationsabwickler und Ereignisabwickler
- Serialisierte Bereiche zur Kontrolle des gleichzeitigen Zugriffs auf Variablen.
Beziehung zwischen BPEL und BPMN [ edit ]
Es gibt keine grafische Standardnotation für WS-BPEL, da das Technische Komitee der OASIS entschieden hatte, dass dies außerhalb des Geltungsbereichs liege. Einige Anbieter haben eigene Notationen erfunden. Diese Notationen nutzen die Tatsache aus, dass die meisten Konstrukte in BPEL blockstrukturiert sind (z. B. Sequenz, Auswahl, Umfang usw.). Diese Funktion ermöglicht eine direkte visuelle Darstellung der BPEL-Prozessbeschreibungen in Form von -Strukturogrammen in einem Stil, der an ein Nassi-Shneiderman-Diagramm erinnert.
Andere haben vorgeschlagen, eine wesentlich andere Geschäftsprozessmodellierungssprache, nämlich Geschäftsprozessmodell und -notation (BPMN), als grafisches Frontend zu verwenden, um BPEL-Prozessbeschreibungen zu erfassen. Zur Veranschaulichung der Durchführbarkeit dieses Ansatzes enthält die BPMN-Spezifikation eine informelle und teilweise Abbildung [9] von BPMN zu BPEL 1.1. Eine detailliertere Abbildung von BPMN auf BPEL wurde in einer Reihe von Tools implementiert, darunter einem Open-Source-Tool, das als BPMN2BPEL bekannt ist. [10] Die Entwicklung dieser Tools hat jedoch grundlegende Unterschiede zwischen BPMN und BPEL aufgedeckt, die es sehr stark machen Es ist schwierig und in manchen Fällen unmöglich, aus BPMN-Modellen einen von Menschen lesbaren BPEL-Code zu generieren. Noch schwieriger ist das Problem des BPMN-zu-BPEL-Round-Trip-Engineerings: Generieren von BPEL-Code aus BPMN-Diagrammen und Beibehalten des ursprünglichen BPMN-Modells und des generierten BPEL-Codes in dem Sinne, dass jede Änderung an einem anderen zum anderen übertragen wird. [ Zitat benötigt ]
Hinzufügen von "Programmierung in der kleinen" Unterstützung für BPEL edit
BPELs Kontrollstrukturen wie "if-then" -elseif-else 'und' while 'sowie seine variablen Manipulationsmöglichkeiten hängen von der Verwendung von' Programmierung in den kleinen 'Sprachen ab, um Logik bereitzustellen. Alle BPEL-Implementierungen müssen XPath 1.0 als Standardsprache unterstützen. Das Design von BPEL sieht jedoch Erweiterbarkeit vor, so dass Systembauer auch andere Sprachen verwenden können. BPELJ [11] ist eine Anstrengung, die mit JSR 207 [12] zusammenhängt und Java möglicherweise als 'Programmierung in der kleinen' Sprache innerhalb von BPEL dienen kann.
BPEL4People [ edit ]
Trotz der weit verbreiteten Akzeptanz von Web-Services in verteilten Geschäftsanwendungen war das Fehlen menschlicher Interaktionen eine große Lücke für viele reale Geschäftsprozesse.
Um diese Lücke zu schließen, erweiterte BPEL4People BPEL allein von der Orchestrierung von Web-Diensten auf die Orchestrierung von rollenbasierten menschlichen Aktivitäten.
Ziele [ edit ]
Im Rahmen eines Geschäftsprozesses BPEL4People
- unterstützt die rollenbasierte Interaktion von Personen.
- bietet die Möglichkeit, Benutzer generischen menschlichen Rollen zuzuordnen.
- achtet darauf, dass der Besitz einer Aufgabe nur an eine Person delegiert wird.
- unterstützt Szenario als
durch Erweiterung von BPEL mit zusätzlicher unabhängiger Syntax und Semantik.
Die Spezifikation WS-HumanTask führt die Definition menschlicher Aufgaben und Benachrichtigungen ein, einschließlich ihrer Eigenschaften, ihres Verhaltens und einer Reihe von Operationen, mit denen menschliche Aufgaben manipuliert werden. Ein Koordinierungsprotokoll wird eingeführt, um die Autonomie und den Lebenszyklus von dienstleistungsfähigen menschlichen Aufgaben interoperabel zu steuern.
Die Spezifikation BPEL4People führt eine WS-BPEL-Erweiterung ein, um menschliche Interaktionen in WS-BPEL als erstklassiger Bürger zu adressieren. Sie definiert eine neue Art von Basisaktivität, die menschliche Aufgaben als Implementierung verwendet und die Festlegung lokaler Aufgaben für einen Prozess oder die Verwendung von außerhalb der Prozessdefinition definierten Aufgaben ermöglicht. Diese Erweiterung basiert auf der WS-HumanTask-Spezifikation.
WS-BPEL 2.0 [ edit ]
Version 2.0 führte einige Änderungen und neue Funktionen ein:
- Neue Aktivitätsarten: repeatUnternehmen, validieren, fürJedes (parallel und sequentiell), Wiederherstellen, Erweiterungsaktivität, KompensationScope
- Umbenannte Aktivitäten: Umbenennen von Aktivitäten in if / else, Beenden der Umbenennung zum Beenden
- Terminierungshandler hinzugefügt Aktivitäten zur Bereitstellung eines expliziten Beendigungsverhaltens
- Variableninitialisierung
- XSLT für Variablentransformationen (neue XPath-Erweiterungsfunktion bpws: doXslTransform)
- XPath-Zugriff auf Variablendaten (XPath-Variablensyntax $ variable [.part] / location)
- XML-Schemavariablen in Web-Service-Aktivitäten (für WS-I-Doc / Lit-Stil-Service-Interaktionen)
- Lokal deklariertes messageExchange (interne Korrelation von Empfangs- und Antwortaktivitäten)
- Klärung abstrakter Prozesse (Syntax und Semantik)
- Überschreiben der Ausdruckssprache bei jeder Aktivität aktivieren
Siehe auch [ edit ]
Referenzen [ edit ]
Further readi ng [ edit ]
- Bücher über BPEL 2.0
No comments:
Post a Comment