1 / 22

BPEL4WS Business Process Execution Language for Web Services

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.

anika
Télécharger la présentation

BPEL4WS Business Process Execution Language for Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BPEL4WSBusiness Process Execution Languagefor Web Services Riad Djemili (djemili@inf.fu-berlin.de) Seminar Advanced Topics in Networking Freie Universität Berlin - WS 03/04

  2. Kombination von Webdiensten • Moderne Reisebuchung. Fluganbieter 2 Kunde Reisebüro Hotel 1 3 Bankinstitut 4 5 • Standardspezifikationen erlauben Beschreibung (WSDL), Kommunikation (SOAP) und Veröffentlichung (UDDI) einzelner Dienste. • Kombination von Webdiensten aber nicht standardisiert.

  3. 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.

  4. 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> BuyerSellerLink Buyer(BuyerPT) Seller(SellerPT) buying Buyer Seller Prozess EntfernterDienst

  5. Partnerbeziehungen (II) buying • Ausgehende Aufrufe mittels invoke<invoke partnerLink="buying" portType="SellerPT" operation="buy" inputVariable="itemid" outputVariable="response"/> buy(itemid) Prozess(BuyerPT) Entf. WD(SellerPT) response Dürfen nur WSDL-Nachrichtentypen sein.

  6. Partnerbeziehungen (III) selling • 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"/> Prozess(BuyerPT) Entf. WD(SellerPT) getamount(itemid) price

  7. Strukturanweisungen (I) • Sequence • Sequentielle Abarbeitung. • Flow • Nebenläufige Abarbeitung. • Switch • Klassische Fallunterscheidung. • While • Klassische Schleifenanweisung. • Pick • Kombination von Switch und Receive.

  8. Strukturanweisungen (II) • Sequentieller Ablauf<sequence> <invoke ../> <receive../> <invoke ../></sequence> invoke receive invoke

  9. 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> receive invokeA invokeB

  10. Zustände • Langanhaltende Sitzungen müssen zustandsbehaftet sein. • Mittels • Variablen • Eigenschaften • Korrelationsmengen

  11. 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>

  12. 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.

  13. Korrelation (II) • Beispiel: Ein Bestellvorgang. <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> • Die Sitzung wird mit einem Aufruf von login eröffnet, welches eine eindeutige Identifikation zurückgibt. • Die eindeutige Identifikation wird dann benutzt, um die eigentliche Bestellung vorzunehmen.

  14. Ausnahmebehandlung • Sequenz mit drei Aktionen und Fehler in dritter Aktion. Activity 1 Activity 2 Activity 3 Eventuelle Rücknahme vorheriger (eigentlich erfolgreicher) Operationen Behandeln des aktuellen Fehlers CompensationHandler FaultHandler

  15. Fehlerbehandlung (I) • Faults • Teil der WSDL-Sprache. • Können auf drei Arten ausgelöst werden. • Bei synchronen Aufrufen entfernter Webdienste. • Als Rückgabe eingegangener Aufrufe.<reply partnerLink="selling" portType="SellerPT" operation="buy" faultName=“OutOfStockFault"/> • Intern mit throw<throw faultName="NoDatabaseConnectionFault"/>

  16. Fehlerbehandlung (II) • FaultHandler • Behandeln Fehler, indem sie Abläufe für bestimmte Fehlertypen definieren.<faultHandlers> <catch faultName="NoDatabaseConnectionFault"> <compensate/> </catch> <catchAll> <terminate/> </catchAll></faultHandlers>

  17. 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>

  18. Außerdem.. • Eventhandler • Kann eingehende Aufrufe paralell zum normalen Ablauf behandeln. • Terminate • Beendet den Prozess. • Wait • Warteanweisung. • Scope • Lokaler Umgebungsraum.

  19. 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.

  20. Collaxa BPEL designer

  21. Fazit • Fehlen eines Standards zur Kombination von Webdiensten allgemein erkannt. • BPEL4WS • Basiert auf WSDL. • Ausgereift. • Marktmacht von IBM und Microsoft könnte Ausschlag geben.

  22. Referenzen • Seminararbeit • BPEL4WS (Riad Djemili) • Spezifikationen • BPEL4WS 1.1http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/ • WSDL 1.1http://www.w3.org/TR/wsdl • Implementationen • BPWS4Jhttp://www.alphaworks.ibm.com/tech/bpws4j • Collaxa BPEL Server 2.0http://www.collaxa.com

More Related