bpel4ws business process execution language for web services

Post on 21-Jan-2016

39 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

BPEL4WS Business Process Execution Language for Web Services. Riad Djemili (djemili@inf.fu-berlin.de) 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

BPEL4WSBusiness Process Execution Languagefor Web Services

Riad Djemili (djemili@inf.fu-berlin.de)

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

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.

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.

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)

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.

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)

Strukturanweisungen (I)

Sequence Sequentielle Abarbeitung.

Flow Nebenläufige Abarbeitung.

Switch Klassische Fallunterscheidung.

While Klassische Schleifenanweisung.

Pick Kombination von Switch und Receive.

Strukturanweisungen (II)

Sequentieller Ablauf<sequence>

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

</sequence>

invoke

receive

invoke

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

Zustände

Langanhaltende Sitzungen müssen zustandsbehaftet sein.

MittelsVariablenEigenschaftenKorrelationsmengen

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>

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.

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.

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

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"/>

Fehlerbehandlung (II)

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

Fehlertypen definieren.

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

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>

Außerdem..

Eventhandler Kann eingehende Aufrufe paralell zum normalen

Ablauf behandeln. Terminate

Beendet den Prozess. Wait

Warteanweisung. Scope

Lokaler Umgebungsraum.

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.

Collaxa BPEL designer

Fazit

Fehlen eines Standards zur Kombination von Webdiensten allgemein erkannt.

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

Ausschlag geben.

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

top related