1 / 18

WS – BPEL

WS – BPEL. Inhalt. Spezifikation Einführung BPEL Prozessdefinition BPEL Prozesstypen Aktivitäten Interaktionsaktivitäten Flow, scopes, fault und compensation handling anhand von einem Beispiel Weiterführendes Praktische Umsetzung Beispiel : Hello World!  Apache ODE & Eclipse IDE

dorit
Download Presentation

WS – BPEL

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. WS – BPEL

  2. Inhalt • Spezifikation • Einführung • BPEL Prozessdefinition • BPEL Prozesstypen • Aktivitäten • Interaktionsaktivitäten • Flow, scopes, fault und compensation handlinganhand von einem Beispiel • Weiterführendes • PraktischeUmsetzung • Beispiel: Hello World!  • Apache ODE & Eclipse IDE • Projektbezug • Ist-Zustand • Soll-Zustand

  3. Spezifikation

  4. Einführung • Zusammenhang zu anderen Webstandards • Prozessebene: BPEL • Schnittstelle: WSDL • Nachrichtenformat: SOAP • Typ: XML Schema • Ausdrucks Sprache: XPath 1.0 • Die WSDL Schnittstelle Message Port Type Partner Link Type Process BPEL PL Type BPEL Partner Link Message Part Operation Role Action WSDL

  5. BPEL Prozess Definition • Code Skelett • Orchestrierungsmodell • <process name="TimesheetSubmission" • targetNamespace="http://www.xmltc.com/ptc/process/" • xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable/" …> • <partnerLinks> • … • </partnerLinks> • <variables> • … • </variables> • <faultHandlers> • <catchAll>…<catchAll> • </faultHandlers> • <sequence> • … • </sequence> • </process> Outbound Inbound WS1 WS2 WS3 Prozess Requester

  6. BPEL Prozesstypen • Asynchron • Wartet nicht • Implementierung durch invoke callback • Procedure • Zwei portType’s • Synchron • Wartet auf terminierung • Implementierung durch reply • Function • Ein portType vs • Executable • xmlns=../executable • Ausführbar • Alles sichtbar • Konkreter Workflow • Beliebig viel zusätzlicher BPEL Code • Abstract • xmlns=../process • Nicht Ausführbar • Information hiding • Process templates • opaque = pflicht vs

  7. Aktivitäten • Invoke • Ruft einen externen Partner (Service) auf • Receive • (Start Aktivität) <receive name="receiveInput" partnerLink="client" portType="tns:HelloWorld" operation="process" variable="input" createInstance="yes"/> <invoke name=“callbackClient“ partnerLink="client" portType="tns:HelloWorldCB" operation="onResult" inputVariable="input" /> • Reply • Kommt normalerweise nach receive Fragen? <reply name=“replyOutput“ partnerLink="client" portType="tns:HelloWorld" operation="process“ variable="input"/>

  8. Aktivitäten • While • Nur eine Kind-Aktivität • Sequence • Nacheinander Ausführung <while> <condition> XPath Expression </condition> <sequence>…</sequence> </while> <sequence name="name"> <receive>…</receive> <assign>…</assign> <reply>…</reply> </sequence> • Assign & Copy • Literal Zuweisung • Part‘s kopieren • Query • eventHandlers • Läuft asynchron ab <eventHandlers> <onMessage …> </onMessage> <onAlarm for="P_DT_H_M"> </onAlarm> </eventHandlers> <assign><copy> <from variable="Input" /> <to variable="Output" /> </copy></assign>

  9. Aktivitäten • Beispiel: Transaktion • Flow: Parallele Ausführung • Links: Ablauf synchronisieren • Correlations: Instanz identifizieren <flow> <links> <link name= "HotelApproval"/> <link name= "FlightApproval"/> </links> <receive name="receiveHotelApproval"...> <sources><source linkName="HotelApproval"/></sources> <correlations><correlation set="tradeID"initiate="no"/></correlations> </receive> <receive name="receiveFlightApproval" ...> <sources><sourcelinkName="FlightApproval"/></sources> <correlations><correlation set="ID"initiate="no"/></correlations> </receive> <scopename="invoiceSubmissionScope">…</scope> </flow>

  10. Aktivitäten • Scopes • AbgesonderterDefinitionsbereich • Fault and compensation handling • Abfangen mit catch und catchAll • Rekursiv • joinCondition • Entsprichteiner Startbedingung <scopename="invoiceSubmissionScope"> <targets> <joinCondition>$EntriesApproval and $ExpensesApproval</joinCondition> <target linkName="HotelApproval"/> <target linkName="FlightApproval"/> </targets> <compensationHandler> <invoke name="withdrawInvoiceSubmission" ... /> </compensationHandler> <invokename="submitInvoice" ... /> </scope>

  11. Weiterführendes • Fragen? • Es gibt viel mehr BPEL Konstrukte als vorgestellt!(siehe BPEL Spezifikation) • Extensions • Laufzeit beeinflussende Extensions • Optionale Extensions • WS-BPEL4People • WS-BPEL4SPE

  12. Praktische Umsetzung

  13. Beispiel: Hello World!  • Beschreibung • Input Variable wird ausgegeben • Lösungsansatz • Synchron • Ein SOAP Binding • Simpler Web Service für Ein- Ausgabe HelloWorldResponseMessage HelloWorld HelloWorld HelloWorld BPEL PL Type BPEL client payload process HelloWorldProvider replyOutput WSDL

  14. Apache ODE & Eclipse IDE • Eclipse mit ODE Plugin • Gut geeignet zum rumprobieren • Verbunden mit tomcat Server • Daher unkompliziertes Deployment • Integrierter Web Service Explorer • Graphische design Oberfläche Apache Eclipse WS Explorer Tomcat BPEL Plugin ODE Deployment

  15. Projektbezug

  16. Ist-Zustand • Modellierungstool • Simple Programmblöcke: • if • flow • forEach • Simple und komplexe Variablen • DWDL -> EDWDL -> BPEL • Human Task Web Service • Tasks erstellen und Nutzern zuweisen • Tasks löschen • Tasks auslesen und verändern • Alle Tasks auflisten • Alle einem Tenant zugehörigen Tasks auflisten

  17. Soll-Zustand • Notizen aus dem Kundengespräch • Extension of IF and Concurrent Tasks • Deadline for Human Tasks • Web Service Integration (RPC/Graphical) • „Transaktions-fähigkeit“ • Mögliche Lösungsansätze • Zu den vorhandenen Workflow Elementen sequence hinzufügen • eventHandlers mit onAlarm • Zu den vorhandenen Aktivitäten muss eine “Web Service” Aktivität hinzugefügt werden. • compensationHandler für umkehrbare Aktivitäten • Weitere Fragen?

  18. End Of Document

More Related