Presentation is loading. Please wait.

Presentation is loading. Please wait.

WS-BPEL 2.0 Web Services Business Process Execution Language Workshop

Similar presentations

Presentation on theme: "WS-BPEL 2.0 Web Services Business Process Execution Language Workshop"— Presentation transcript:

1 WS-BPEL 2.0 Web Services Business Process Execution Language Workshop
WS-BPEL 2.0 Web Services Business Process Execution Language Workshop Dieter König, IBM Senior Technical Staff Member Charlton Barreto, Adobe Senior Computer Scientist/Architect

2 WS-BPEL 2.0 Variables Basic Partner Activities Links Structured
42 WSDL Message XML Schema Type Element Basic Activities receive reply invoke throw exit wait empty compensate validate assign rethrow extensionActivity compensateScope Partner Links Link Type Port Type 1 Type 2 partner link WS-BPEL 2.0 MyProcess invoke receive Structured Activities if-else while scope pick sequence flow repeatUntil forEach Handlers fault handler event compensation termination Properties Correlation Sets Property 1 Property 2

3 Abstract Business Processes not only play a key role in Business-to-Business (B2B) and Enterprise Application Integration (EAI) scenarios by exposing the appropriate invocation and interaction patterns but they are the fundamental basis for building heterogeneous and distributed applications (workflow-based applications). Web Services Business Process Execution Language (WS-BPEL) provides the language to specify business processes that are composed of Web services as well as exposed as Web services. Business Processes specified via WS-BPEL are portable; they can be carried out by every WS-BPEL compliant execution environment. This presentation gives an overview of the WS-BPEL language and shows how it can be used to compose Web services. It provides highlights of WS-BPEL, including structured activities, correlation, compensation, and fault handling. Finally, the OASIS WS-BPEL Technical Committee work, the current status of the standard, and an outlook on follow-on activities is presented.

4 Motivation OASIS and WS-BPEL Main Concepts Examples Status and support

5 Motivation Integration continues to be a key problem facing businesses
Intra-enterprise integration (Enterprise Application Integration) Integrating with partners (Business-to-Business Integration) Syndication Web services  move towards service-oriented computing Applications are viewed as “services” Loosely coupled, dynamic interactions Heterogeneous platforms No single party has complete control Service composition How do you compose services in this domain?

6 Integration

7 Concerns addressed by BPEL
BPEL processes can automate both simple and complex interactions between Web services Supporting long running business transactions Correlating message exchanges Implementing parallel processing of activities Mapping data between partner interactions Providing consistent exception and recovery handling

8 Why the Need For BPEL? WSDL defined Web services have a stateless interaction model Messages are exchanged using Synchronous invocation Uncorrelated asynchronous invocations Most “real-world” business processes require a more robust interaction model Messages exchanged in a two-way, peer-to-peer conversation lasting minutes, hours, days, etc. BPEL provides the ability to express stateful, long-running interactions

9 Two programming models
Programming in the large Non-programmers implementing flows Flow logic deals with combining functions in order to solve a more complex problem (such as processing an order) Programming in the small Programmers implementing functions Function logic deals with a discrete fine-grained task (such as retrieving an order document or updating a customer record)

10 Process Usage Patterns
Aiming for a single approach for both Executable processes Contain the partner’s business logic behind an external protocol Abstract processes Define the publicly visible behavior of some or all of the services an executable process offers Define a process template embodying domain-specific best practices

11 Process Model Requirements
Portability and Interoperability Flexible Integration Rich, and easily adaptable to changes in underlying services Recursive, type-based composition, enables Third-party composition of existing services Providing different views on a composition to different parties Increased scalability and reuse Stateful conversations and lifecycle management Supports multiple stateful long-running conversations Recoverability Long running business processes need fault handling and compensation mechanisms to manage and recover from errors Portability and Interoperability Flexible Integration Rich, and easily adaptable to changes in the services it is interacting with Recursive, type-based composition, enables … third-party composition of existing services providing different views on a composition to different parties inter-workflow interaction increased scalability and reuse Separation and composability of concerns Decoupled from the supporting mechanisms (quality of service, messaging frameworks) Stateful conversations and lifecycle management Can carry multiple stateful long-running conversations Recoverability Business processes, and in particular long running ones, need a way to build-in fault handling and compensation mechanisms to handle and recover from errors

12 Benefits of BPEL Industry standard language for expressing business processes Leverage a common skill set and language Designed to fit naturally into the Web services stack Expressed entirely in XML Uses and extends WSDL 1.1 Uses XML Schema 1.0 for the data model Portable across platform and vendor Will run on any BPEL-compliant engine Interoperable between interacting processes Layering on top of Web services stack WS-BPEL enables … Defining business processes as coordinated sets of Web service interactions, recursively into new aggregated Web services Defining both abstract and executable processes Abstract processes for e-commerce specifications Executable processes provide a model to integrating enterprise applications Creating compositions of Web services Composition based on abstract descriptions WS-BPEL provides portable, interoperable process models WS-BPEL comes from … Strong roots in traditional flow models Plus many concepts from structured programming languages All laid on top of WSDL and core XML specifications Merges WSFL and XLANG concepts

13 WS-BPEL 2.0 BPEL is the Web Services Orchestration standard from OASIS
BPEL Historical Timeline Dec 2000 Microsoft publishes XLANG March 2001 IBM publishes WSFL July 2002 IBM, Microsoft and BEA converge WSFL & XLANG into BPEL4WS 1.0 March 2003 BPEL4WS is submitted to OASIS May 2003 OASIS publishes BPEL4WS 1.1 1stH 2007 WS-BPEL 2.0 released BPEL is the Web Services Orchestration standard from OASIS bee•pel’, beep’•uhl, bip’•uhl An XML-based grammar for describing the logic to orchestrate the interaction between Web services in a business process BPEL was first released on July 2, 2002, as BPEL4WS V1.0, jointly by BEA Systems, Inc., IBM Corporation, and Microsoft Corporation. BPEL4WS Version 1.0 merges the flat-graph process definition approach of IBM’s Web Services Flow Language (WSFL) with the structural constructs approach of Microsoft’s XLANG. In 2003, BPEL4WS 1.1 was released with a set of revisions and an expanded list of authors; it is the version of the specification that was submitted to OASIS. OASIS is currently working on producing the standardized version of the language, known as WS-BPEL 2.0.

14 WS-BPEL in the WS-* Stack
Business Processes You are here WSDL, Policy, UDDI, Inspection Description Security Reliable Messaging Transactions Quality Of Service Coordination SOAP (Logical Messaging) Other protocols Transport and Encoding XML, Encoding Other services

15 Motivation OASIS and WS-BPEL Main Concepts Examples Status and support

16 Getting the Players Together
(*) BPEL 1.1 WS-BPEL 2.0 (*) BPEL 1.1 authors, May 2003

17 OASIS Technical Committee
Charter of the WS-BPEL Technical Committee Standardize … Common concepts for a business process execution language for usage patterns including both the process interface descriptions and executable process models Explicitly do not address … Bindings to specific hardware/software platforms and other mechanisms required for a complete runtime environment for process implementation > 280 committee members, including observers ~ 30 active voting members, attending weekly calls Issues Process List of all issues available at (original list - completed) (public review list)

18 WS-BPEL Design Goals Business processes defined using an XML-based language Web services are the model for process decomposition and assembly The same orchestration concepts are used for both the external (abstract) and internal (executable) views of a business process Both hierarchical and graph-like control regimes are used, reducing the fragmentation of the process modeling space An identification mechanism for process instances is provided at the application message level The basic lifecycle mechanism is in implicit creation and termination of process instances. A long-running transaction model is defined to support failure recovery for parts of long-running business processes Language built on compatible Web services standards in a composable and modular manner

19 Motivation OASIS and WS-BPEL Main Concepts Examples Status and support

20 WS-BPEL Language Structure
Process Partner links Data handling Properties and correlation Basic and structured activities Scopes

21 WS-BPEL Process Definition
imports Declare dependencies on external XML Schema or WSDL definitions extensions Declare namespaces of WS-BPEL extension attributes and elements partner links Relationships that a WS-BPEL process will employ in its behavior message exchanges Relationship between inbound and outbound message activities variables Data holding state of a business process or exchanged with partners correlation sets Application data fields that together identify a conversation event handlers Concurrently process inbound messages or timer alarms fault handlers Deal with exceptional situations in a process Elements of a process definition primary activity Perform the process logic – any number of activities may be recursively nested XML schemas WSDL definitions

22 Relationship with WSDL
BPEL is layered on top of and extends the WSDL service model WSDL defines the specific operations allowed BPEL defines how WSDL operations are orchestrated to satisfy a business process BPEL also specifies extensions to WSDL in support of long-running asynchronous business processes BPEL processes are exposed as WSDL services Message exchanges map to WSDL operations WSDL can be derived from partner definitions and the role played by the process in interactions with partners BPEL 2.0 WSDL 1.1 BPEL-defined WSDL extensions

23 Recursive Composition
BPEL processes interact with WSDL services exposed by business partners Interfaces exposed by the BPEL process Interfaces consumed by the BPEL process WSDL Loan Approval PortType Web Service Web Service Loan Approval Process receive Financial Institution‘s Web Service (Loan Approver) invoke reply

24 Composition of Web Services
Service A Service P Service B receive invoke receive invoke invoke A’s WSDL P’s WSDL F B’s WSDL Partner Link Type Partner Link Type

25 Peer-to-peer conversational partner relationship
Partner Links process partner link receive Inbound request – service provided by the process invoke Outbound request – service required by the process partner link type Peer-to-peer conversational partner relationship WSDL port type myRole Provided port type WSDL port type partnerRole Required port type Partner links are channels along which peer-to-peer conversations with partners take place

26 Variables 42 42 process WSDL message messages
Variables defined using WSDL messages receive request invoke request response reply response 42 xsl:transform assign Variables are typed using WSDL messages or XML Schema elements or simple/complex types Activities’ input and output kept in scoped variables Assignment activities move data around 42 XML schemas XML Schema elements / types Variables defined using XML schema elements or types

27 ... Variable Properties process A property creates a name that has
semantic significance beyond an XML schema type getVariableProperty( variable, property ) Properties isolate the process logic from the details of a variable definition XML schema element WSDL message part ... property alias Typed properties are mapped (aliased) to parts of WSDL messages or XML schema elements

28 Properties and Correlation Sets
receive Submit purchase order process instance 1 How to identify stateful instances via stateless Web service interfaces? purchaseOrder cId = 0815 orderNo = 42 process process instance 2 initiate correlation set customerId orderNumber customerId orderNumber Messages in long-running conversations are correlated to the correct process instance locate process instance 3 process instance 3 receive Query order status queryOrderStatus custId = 0815 oNo = 42 4 (0815, 49) 3 (0815, 42) 2 (0707, 11) 1 (0311, 33) Typed properties defined in WSDL are named and mapped (aliased) to parts of several WSDL messages used by the process process instance 4

29 Basic Activities process receive reply invoke Invoke a one-way or
request-response operation Do a blocking wait for a matching message to arrive / send a message in reply exit Immediately terminate execution of a business process instance compensate compensateScope Invoke compensation on all completed child scopes in default order Invoke compensation on one completed child scope validate assign Update the values of variables or partner links with new data Validate XML data stored in variables wait Wait for a given time period or until a certain time has passed throw rethrow Generate a fault from inside the business process Forward a fault from inside a fault handler empty No-op instruction for a business process extensionActivity Wrapper for language extensions

30 Structured Activities
process flow Contained activities are executed in parallel, partially ordered through control links pick Block and wait for a suitable message to arrive (or time out) B C A M1 M2 A sequence Contained activities are performed sequentially in lexical order forEach Contained activity is performed sequentially or in parallel, controlled by a specified counter variable 2. N. 1. 2. N. 1. while Contained activity is repeated while a predicate holds repeatUntil Contained activity is repeated until a predicate holds if-elseif-else Select exactly one branch of activity from a set of choices c1 c2 c scope Associate contained activity with its own local variables, partner links, etc., and handlers c

31 Nesting Structured Activities
sequence <sequence> <receive .../> <flow> <invoke .../> <while ... > <assign>...</assign> </while> </sequence> <invoke ... /> </flow> <reply .../> receive flow sequence sequence invoke receive while invoke assign reply

32 Scopes Scopes provide a context which influences the execution behavior of its enclosed activities process scope scope Local declarations – partner links, message exchanges, variables, correlation sets scope Local handlers – event handlers, fault handlers, a termination handler, and a compensation handler scope Compensation handler to undo persisted effects of already completed activities Termination handler to deal with forced scope termination (external faults) primary activity scope Isolated scopes provide control of concurrent access to shared resources scope scope scope scope

33 Process Instance Lifecycle
Business processes defined in BPEL represent stateful Web services When a process is started, a new instance is created according to the process definition The creation and destruction of BPEL process instances is by design implicit Process receive invoke invoke invoke reply

34 Motivation OASIS and WS-BPEL Main Concepts Examples Status and support

35 Graph-Oriented Authoring Style
flow riskAssessmentPT loanApprovalPT amount < 10000 amount >= 10000 receive loan assessor loan approver invoke risk = "high" invoke assign risk = "low" approved = "true" reply approved = "false" 1. A customer asks for a loan, providing name and amount info 2. Two services are involved: a) A risk assessor which can approve the loan if the risk is low b) A loan approver which checks the name and approves/disapproves the loan 3. The reply is returned to the customer

36 Structured Authoring Style
sequence flow if-else if buyer$$ < seller$$ else receive (buyer) assign "failure" reply (seller) reply (buyer) receive (seller) assign "success"

37 Parallel Processing flow parallel forEach scope scope event handler
. . . scope event handler event handler event handler event handler event handler event handler . . . event handler . . . event handler event handler event handler . . . . . . Use better example . . .

38 Fault Handling & Compensation
Process sequence fault handler scope scope notify manager compensation handler fault handler compensate charge credit card refund customer ship goods rethrow Use better example

39 Dynamic Partner Link Assignment
Process A Process B assign EPR PortType-B invoke service receive request Partner Link Type A-role B-role partner link assign EPR receive response invoke callback PortType-A

40 Abstract & Executable Processes
Contain the partner’s business logic behind an external protocol Model actual behavior of a participant in a business interaction Encompass enough detail to fully specify execution

41 Abstract & Executable Processes
Abstract Processes Partially specified processes that are not intended to be executed May hide some of the required concrete operational details Serve a descriptive role Used to guide executable processes More than one possible use case

42 Executable Processes View
Travel Reservation - Example Abstract Process View Traveler Process Agent Process Airline Process select airline reserve seats charge credit card plan trip get itinerary get order submit to agent order tickets receive confirmation Partner links are channels along which peer-to-peer conversations with partners take place receive tickets receive confirmation confirm flight send confirmation send tickets

43 Abstract Profiles Profiles address varying requirements among Abstract Processes Two profiles provided in WS-BPEL Observable Behavior Process Template

44 Abstract Profiles & Use Cases
Constraints on message exchange Specify order in which messages are consumed or produced View on internal processes Only projection of internal (executable) process is visible Bridge model to executable Provide hooks to executable for model definition to enable abstraction Template as “best practice” Specification of common activities, major data structures, and main control flow

45 Motivation OASIS and WS-BPEL Main Concepts Examples Status and support

46 WS-BPEL Portable, interoperable process model for long running business processes Flexible integration of Web services WSDL abstract interfaces alone used to define composition Enables two levels of adaptive behavior Abstract partners can be bound to actual services at runtime The process can choose a protocol for communicating with the service at runtime Services whose data definitions do not match can be composed Data transformations can be inlined in process definition

47 What’s new since BPEL 1.1? Conditional behavior – if {elseif} [else]
Replacing the BPEL4WS 1.1 switch activity Repetitive execution – repeatUntil Like BPEL4WS 1.1 while activity with at least one iteration Processing multiple branches – forEach Sequential or parallel iteration controlled by a counter variable and a completion condition Reversing work – compensate and compensateScope Compensate all child scopes or one specific child scope Propagating faults – rethrow Rethrow the fault caught in a fault handler Validating data – validate Explicit XML schema validation of WS-BPEL variable content Validation also possible within assignment Immediately ending a process – exit Replacing the BPEL4WS 1.1 terminate activity Adding new activity types – extensionActivity Designated WS-BPEL extension point for new activity types

48 What’s new since BPEL 1.1? Variable initialization Partner links
Inline within variable declaration Partner links Intent for partner role initialization Locally declared messageExchange Internal correlation of receive/pick/onEvent and reply activities Correlation sets Join behavior for multiple start activities XML schema variables in Web service activities Usability enhancement for WS-I compliant doc/lit-style WS interactions Assignment Clarification of copy behavior Keep source element name Ignore missing from data Extension assign operation XSLT for variable transformations New XPath extension function bpel:doXslTransform(...) XPath access to variable data XPath variable syntax $variable[.part]/location Flow activity Scope isolation and link semantics

49 What’s new since BPEL 1.1? Fault handlers Compensation handlers
XML schema typed fault variables Exit on standard fault behavior Compensation handlers New scope snapshot semantics Fault handling during compensation Event handlers Recurring events Resolution of variable, partnerLink, messageExchange, correlationSet Termination handler Customize scope termination behavior Import Predefined import types WSDL and XSD Extensibility Global documentation element Extension namespace declarations Mandatory and optional extensions Abstract processes Common base (syntax) and profiles (semantics) Opacity and omission of activities, expressions, attributes

50 WS-BPEL Adoption: Products
Active Endpoints ActiveBPEL Designer Active Endpoints ActiveBPEL Enterprise Server BEA WebLogic bexee BPEL Execution Engine (open source) Cape Clear Orchestrator FiveSight Process eXecution Engine (PXE) IBM WebSphere Studio Application Developer – Integration Edition IBM WebSphere Business Integration – Server Foundation IBM WebSphere Integration Developer IBM WebSphere Process Server Microsoft BizTalk Server MidOffice BPEL Editor (open source) MidOffice BPEL Engine (open source) OpenLink Virtuoso Universal Server OpenStorm ChoreoServer Oracle BPEL Process Manager Parasoft BPEL Maestro SAP NetWeaver SeeBeyond eInsight BPM Twister (open source)

51 WS-BPEL Application Areas
Business Process Design Autonomic Computing Grid Computing Semantic Web

52 WS-BPEL Schedule Status (March 2007)
First and second public reviews completed Approved Committee Specification submitted for standardization Five organizations have certified use of WS-BPEL in product ActiveEndpoints, IBM, Intalio, SEEBURGER, Sun

53 WS-BPEL Schedule Next steps OASIS standard - April 2007
Voting opens March 19 and closes March 30 OASIS Symposium - April 15-20, 2007 San Diego, California, USA WS-BPEL Lightning Round - April 16 Business Process Sessions - April 16 WS-BPEL Workshop - April 18

54 WS-BPEL Follow-on Work
BPEL4People Human user interactions BPEL Subprocesses Based on a coordination protocol BPELJ Inline Java code in activities and expressions Currency with related standards WSDL 2.0, XPath 2.0, XQuery, etc.

55 WS-BPEL Resources WS-BPEL 2.0 – Committee Specfication (03/2007)
OASIS Technical Committee Info aggregator sites Wikipedia BPEL Resource Guide Numerous books and conference papers Analyst reports BPEL4WS 1.1

Download ppt "WS-BPEL 2.0 Web Services Business Process Execution Language Workshop"

Similar presentations

Ads by Google