bpel4ws business process execution language for web services

22
BPEL4WS Business Process Execution Language for Web Services Riad Djemili ([email protected] berlin.de) Seminar Advanced Topics in Networking Freie Universität Berlin - WS 03/04

Upload: anika

Post on 21-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

BPEL4WS Business Process Execution Language for Web Services. Riad Djemili ([email protected]) Seminar Advanced Topics in Networking Freie Universität Berlin - WS 03/04. Kombination von Webdiensten. Moderne Reisebuchung. Fluganbieter. 2. Kunde. Reisebüro. Hotel. 1. 3. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: BPEL4WS Business Process Execution Language for Web Services

BPEL4WSBusiness Process Execution Languagefor Web Services

Riad Djemili ([email protected])

Seminar Advanced Topics in NetworkingFreie Universität Berlin - WS 03/04

Page 2: BPEL4WS Business Process Execution Language for Web Services

Kombination von Webdiensten

Moderne Reisebuchung.Fluganbieter

Hotel

Bankinstitut

ReisebüroKunde 1

2

3

45

Standardspezifikationen erlauben Beschreibung (WSDL), Kommunikation (SOAP) und Veröffentlichung (UDDI) einzelner Dienste.

Kombination von Webdiensten aber nicht standardisiert.

Page 3: BPEL4WS Business Process Execution Language for Web Services

BPEL4WSBusiness Process Execution Language

for Web Services

Programmiersprache zum Spezifizieren (und Ausführen) von Geschäftsprozessen mit mehreren Webdiensten. Hervorgegangen aus Microsofts XLANG und IBMs WSFL. Standardisiert durch OASIS (Organization for the

Advancement of Structured Information Standards). In XML-Notation und auf WSDL basierend. Spezielle Kontrollstrukturen. Prozesse werden als eigene Webdienste bereitgestellt.

Page 4: BPEL4WS Business Process Execution Language for Web Services

Partnerbeziehungen (I) PartnerLink-Typen

<partnerLinkType name="BuyerSellerLink"> <role name="Buyer"> <portType name="BuyerPT"/> </role> <role name="Seller"> <portType name="SellerPT"/> </role></partnerLinkType>

PartnerLinks

<partnerLinks> <partnerLink name="buying" partnerLinkType="BuyerSellerLink" myRole="Buyer" partnerRole="Seller"/></partnerLinks>

Buyer(BuyerPT)

BuyerSellerLink

Seller

buying

Buyer

Prozess EntfernterDienst

Seller(SellerPT)

Page 5: BPEL4WS Business Process Execution Language for Web Services

Partnerbeziehungen (II)

Ausgehende Aufrufe mittels invoke

<invoke partnerLink="buying" portType="SellerPT" operation="buy" inputVariable="itemid" outputVariable="response"/>

Entf. WD(SellerPT)

buy(itemid)Prozess(BuyerPT)

buying

response

Dürfen nur WSDL-Nachrichtentypen sein.

Page 6: BPEL4WS Business Process Execution Language for Web Services

Partnerbeziehungen (III)

Eingehende Aufrufe mittels blockierendem receive. Erzeugt außerdem neue Prozess-Instanzen.

<receive partnerLink="selling” portType="SellerPT" operation="getamount" variable="itemid" createInstance="yes"/>

Rückgabewerte mittels reply.

<reply partnerLink="selling" portType="SellerPT" operation="buy" variable="price"/>

Entf. WD(SellerPT)

getamount(itemid)

selling

price

Prozess(BuyerPT)

Page 7: BPEL4WS Business Process Execution Language for Web Services

Strukturanweisungen (I)

Sequence Sequentielle Abarbeitung.

Flow Nebenläufige Abarbeitung.

Switch Klassische Fallunterscheidung.

While Klassische Schleifenanweisung.

Pick Kombination von Switch und Receive.

Page 8: BPEL4WS Business Process Execution Language for Web Services

Strukturanweisungen (II)

Sequentieller Ablauf<sequence>

<invoke ../> <receive../> <invoke ../>

</sequence>

invoke

receive

invoke

Page 9: BPEL4WS Business Process Execution Language for Web Services

Strukturanweisungen (III) Nebenläufiger Ablauf

<flow> <links> <link name="AtoB"> </links> <!-- operation A --> <invoke ..> <source linkName="AtoB"/> </invoke> <sequence> <receive../> <!-- operation B --> <invoke ..> <target linkName="AtoB"/> </invoke> </sequence></flow>

invokeA

receive

invokeB

Page 10: BPEL4WS Business Process Execution Language for Web Services

Zustände

Langanhaltende Sitzungen müssen zustandsbehaftet sein.

MittelsVariablenEigenschaftenKorrelationsmengen

Page 11: BPEL4WS Business Process Execution Language for Web Services

Variablen

Streng statische Typsicherheit. Deklarationen

Typen sind WSDL Nachrichtentypen und XML Schema Typen.

<variables> <variable name="itemid" type="xsd:int"/></variables>

Zuweisung Quellen sind Variableninhalte, Endpunkte, XPath-Ausdrücke oder Literale. Ziele von Zuweisungen sind Variableninhalte oder PartnerLinks.

<assign> <copy> <from>1000</from> <to variable="maxprice"> </copy></assign>

Page 12: BPEL4WS Business Process Execution Language for Web Services

Korrelation (I)

Eigenschaften bieten öffentlichen Zugriff auf Variableninhalte.

<property name="userID" type="xsd:string"/> <propertyAlias propertyName="userID“ messageType="orderDetails“ part="identification“ query="/credentials/"/>

Korrelationsmengen sind Mengen von Eigenschaften.

<correlationSets> <correlationSet name="userid“ properties="username,userpw"/> </correlationSets>

Dienen zur Identifikation bei lokalen und entfernten Prozessen Werden automatisch neben den üblichen Argumente als zusätzliche Werte

gesendet bzw. empfangen.

Page 13: BPEL4WS Business Process Execution Language for Web Services

Korrelation (II)

<sequence> <invoke partnerLink="ordering" portType="ShopPT" operation="login" inputVariable="id"> <correlations> <correlation set="session" initiate="yes" pattern="in"/> </correlations> </invoke> <invoke partnerLink="ordering" portType="ShopPT“ operation="order" outputVariable="itemid"> <correlations> <correlation set="session" initiate="no" pattern="out"/> </correlations> </invoke></sequence>

1. Die Sitzung wird mit einem Aufruf von login eröffnet, welches eine eindeutige Identifikation zurückgibt.

2. Die eindeutige Identifikation wird dann benutzt, um die eigentliche Bestellung vorzunehmen.

Beispiel: Ein Bestellvorgang.

Page 14: BPEL4WS Business Process Execution Language for Web Services

Sequenz mit drei Aktionen und Fehler in dritter Aktion.

Ausnahmebehandlung

Activity 1 Activity 2 Activity 3

Behandeln des aktuellen Fehlers

Eventuelle Rücknahme vorheriger (eigentlich erfolgreicher) Operationen

CompensationHandler FaultHandler

Page 15: BPEL4WS Business Process Execution Language for Web Services

Fehlerbehandlung (I)

Faults Teil der WSDL-Sprache. Können auf drei Arten ausgelöst werden.

1. Bei synchronen Aufrufen entfernter Webdienste.2. Als Rückgabe eingegangener Aufrufe.

<reply partnerLink="selling" portType="SellerPT" operation="buy" faultName=“OutOfStockFault"/>

3. Intern mit throw

<throw faultName="NoDatabaseConnectionFault"/>

Page 16: BPEL4WS Business Process Execution Language for Web Services

Fehlerbehandlung (II)

FaultHandler Behandeln Fehler, indem sie Abläufe für bestimmte

Fehlertypen definieren.

<faultHandlers> <catch faultName="NoDatabaseConnectionFault"> <compensate/> </catch> <catchAll> <terminate/> </catchAll></faultHandlers>

Page 17: BPEL4WS Business Process Execution Language for Web Services

Rücknahmebehandlung

Rücknahme (Kompensation) von Effekten. Werden ausgelöst durch compensate

<compensate/>

Werden behandelt durch CompensationHandler

<compensationHandler> <invoke partnerLink="bidding" portType="AuctionPT" operation="undoBid" outputVariable="productID"> <correlations> <correlation set="visitorID" initiate="no" pattern="out"/> </correlations> </invoke></compensationHandler>

Page 18: BPEL4WS Business Process Execution Language for Web Services

Außerdem..

Eventhandler Kann eingehende Aufrufe paralell zum normalen

Ablauf behandeln. Terminate

Beendet den Prozess. Wait

Warteanweisung. Scope

Lokaler Umgebungsraum.

Page 19: BPEL4WS Business Process Execution Language for Web Services

Implementationen

BPWS4J (IBM) Plattform zum Ausführen von BPEL 1.1- Prozessen auf java-

fähigen WebServern (getestet Application Server 4.0+ und Apache Tomcat).

Ein Valdierungstool für BPEL-Dokumente. Textueller Editor als IBM Eclipse Plug-In.

Collaxa BPEL Server 2.0 (Collaxa) Java basierter BPEL Server. BPEL Console (zum Ausführen von BPEL 1.1 Prozessen,

Debuggen etc.). Graphischer Editor als IBM Eclipse Plug-In. Kann nicht nur Webdienste, sondern auch andere Dienste, wie

Open EJB, JMS, JCA, JSP, eMail etc. ansprechen.

Page 20: BPEL4WS Business Process Execution Language for Web Services

Collaxa BPEL designer

Page 21: BPEL4WS Business Process Execution Language for Web Services

Fazit

Fehlen eines Standards zur Kombination von Webdiensten allgemein erkannt.

BPEL4WSBasiert auf WSDL.Ausgereift.Marktmacht von IBM und Microsoft könnte

Ausschlag geben.

Page 22: BPEL4WS Business Process Execution Language for Web Services

Referenzen

Seminararbeit BPEL4WS (Riad Djemili)

Spezifikationen BPEL4WS 1.1

http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/

WSDL 1.1http://www.w3.org/TR/wsdl

Implementationen BPWS4J

http://www.alphaworks.ibm.com/tech/bpws4j

Collaxa BPEL Server 2.0 http://www.collaxa.com