1 / 18

BPEL (Business Process Execution Language)

BPEL (Business Process Execution Language). presented by Cagdas E. Gerede 01/24/06 Web Services and Security Seminar UC-Santa Barbara. Adaptation from Nirmal Mukhi’s slides. Business Process Execution Language. enables: Definition of Business Processes using Web Services

guri
Download Presentation

BPEL (Business Process Execution Language)

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. BPEL (Business Process Execution Language) presented by Cagdas E. Gerede 01/24/06 Web Services and Security Seminar UC-Santa Barbara Adaptation from Nirmal Mukhi’s slides

  2. Business Process Execution Language • enables: • Definition of Business Processes using Web Services • Coordination of a set of Web service interactions • Degree of interoperability at the process level (describe process and use it in different runtime infrastructures) • where it comes from: • Builds on XML and Web Services • Convergence of two workflow languages (WSFL – directed graphs; XLANG – block-structured language)

  3. Orchestration

  4. Versions • v1.0 - BPEL4WS - August 2002 • v1.1 – March 2003 • v2.0 – Draft - WSBPEL – OASIS • (some issues discussed): • how to use XPath • whether there should be sub-processes in BPEL • how abstract processes should be used

  5. Simple Example Composite Service - Orchestrated by BPEL

  6. Traditional Flow Models Activities represent units of processing. Control links define execution flow as a directed acyclic graph Activities are mapped to application invocations or human actions Flow of data is explicitly modeled through data links.

  7. Structure of a BPEL4WS Process <process ...> <partners> ... </partners> <!-- Web services the process interacts with --> <containers> ... </containers> <!– Data used by the process --> <correlationSets> ... </correlationSets> <!– Used to support asynchronous interactions --> <faultHandlers> ... </faultHandlers> <!–Alternate execution path to deal with faulty conditions --> <compensationHandlers> ... </compensationHandlers> <!–Code to execute when “undoing” an action --> (process body) <!– What the process actually does --> </process>

  8. BPEL Basic Activities <invoke partner=“...” portType=“...” operation=“...” inputContainer=“...” outputContainer=“...”/> <!-- process invokes an operation on a partner: --> <receive partner=“...” portType=“...” operation=“...” container=“...” [createInstance=“...”]/> <!-- process receives invocation from a partner: --> <reply partner=“...” portType=“...” operation=“...” container=“...”/> <!-- process send reply message in partner invocation: --> <assign> <copy> <from container=“...”/> <to container=“...”/> </copy>+ </assign> <!– Data assignment between containers: -->

  9. BPEL and WSDL Partners Partner B Partner A WSDL WSDL A Process Synchronous Communication

  10. Partner A WSDL A BPEL and WSDL. Partners Partner B Asynchronous Communication

  11. Partner Definitions and Links <partner name=“...” serviceLinkType=“...” partnerRole=“...” myRole=“...”/> <!– A partner is accessed over a WS “channel”, defined by a service link type --> <serviceLinkType name=“..."> <role name=“..."> <portType name=“..."/>* </role> <role name=“..."> <portType name=“...”/>* </role> </serviceLinkType> <!– A SLT defines two roles and the portTypes that each role needs to support -->

  12. More Basic Activities <throw faultName=“..." faultContainer=“...“/> <!-- process detects processing error and switches into fault processing mode --> <terminate/> <!– pull the plug --> <wait for=“...”? until=“...”?/> <!-- process execution stops for a specified amount of time--> <empty> <!– Do nothing; a convenience element -->

  13. BPEL Structured Activities <sequence> <!– execute activities sequentially--> <flow> <!– execute activities in parallel--> <while> <!– iterate execution of activities until condition is violated--> <pick> <!– several event activities (receive message, timer event) scheduled for execution in parallel; first one is selected and corresponding code executed. --> <link ...> <!– defines a control dependency between a source activity and a target -->

  14. Nesting Structured Activities. Example <sequence> <receive .../> <flow> <sequence> <invoke .../> <while ... > <assign> ... </assign> </while> </sequence> <sequence> <receive .../> <invoke ... > </sequence> </flow> <reply> </sequence> Seq Flow Seq Seq While

  15. BPEL Critique • No notion of independent activities - everything in a BPEL is a web service operation, not "an activity", i.e. a unit of work • No human interaction modeling • Interacting activities interacting together two-by-two (multiple BPEL documents for a single process) • BPEL can only represent multi-party collaboration that have a "center" of control. (Ariba/CommerceOne - some B2B agent in the middle)

  16. - Questions -

  17. Resources • BPEL4WS 1.0: • http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/ • BPWS4J Java Implementations: • http://www.alphaworks.ibm.com/tech/bpws4j • http://www.collaxa.com/ • Two introductions to BPEL: • http://www.ibm.com/developerworks/webservices/library/ws-bpelcol1 • http://www.ibm.com/developerworks/webservices/library/ws-bpelwp/

More Related