Presentation is loading. Please wait.

Presentation is loading. Please wait.

Web Services Business Process Execution Language (WS-BPEL 2.0) The Standards Landscape Dieter König Senior Technical Staff Member IBM Software Group Böblingen,

Similar presentations


Presentation on theme: "Web Services Business Process Execution Language (WS-BPEL 2.0) The Standards Landscape Dieter König Senior Technical Staff Member IBM Software Group Böblingen,"— Presentation transcript:

1 Web Services Business Process Execution Language (WS-BPEL 2.0) The Standards Landscape Dieter König Senior Technical Staff Member IBM Software Group Böblingen, Germany dieterkoenig@de.ibm.com

2 SOA on your terms and our expertise © 2007 IBM Corporation IBM SOA Vision & Open Standards Infrastructure Know-how & best practices Skills Applications SOA allows customers to have a flexible, robust infrastructure to model, assemble, deploy & manage in real-time reusing existing assets SOA success depends on a portable and interoperable service model that is strongly grounded in standards

3 SOA on your terms and our expertise © 2007 IBM Corporation The Open Platform Approach IBM is the #1 commercial supporter Open Operating System Choice Includes Linux IBM contributed significant technology to J2EE & helped form the Apache Software Foundation Open Application Server J2EE and Apache IBM led or co-led the creation of SOAP, WSDL, UDDI, WS-Security, WS-BPEL, … Open Application Integration Web Services IBM donated $40M of initial technology Open Development Integration Platform Eclipse Open Grid / On Demand Computing IBM defined “On Demand” computing and leads in grid technology On Demand Architecture

4 SOA on your terms and our expertise © 2007 IBM Corporation Web Services Standards for SOA The Web Services Platform Architecture Messaging Quality of Service Transport Description Components Transport Interface + Bindings Composite XMLNon-XML Security Policy Discovery, Negotiation, Agreement Atomic Orchestration Protocols State Reliable Messaging Transactions Component Model

5 SOA on your terms and our expertise © 2007 IBM Corporation Web Services Standards for SOA The Web Services Platform Architecture Messaging Quality of Service Transport Description Components Transport Interface + Bindings Composite XMLNon-XML Security Policy Discovery, Negotiation, Agreement Atomic Orchestration Protocols State Reliable Messaging Transactions Component Model WS-RM WSDL*WS-Policy* HTTP, TCP/IP, SMTP, FTP, … UDDI, WS-Addr, Metadata Exch.,… WS-C WS-N* WS-RFWS-BPEL WS-Security* WS-AT WS-BA SOAP, WS-Addr* JMS, RMI/IIOP,... SCA

6 SOA on your terms and our expertise © 2007 IBM Corporation Web Services Standards for SOA The Web Services Platform Architecture Messaging Quality of Service Transport Description Components Transport Interface + Bindings Composite XMLNon-XML Security Policy Discovery, Negotiation, Agreement Atomic Orchestration Protocols State Reliable Messaging Transactions Component Model WS-RM WSDL*WS-Policy* HTTP, TCP/IP, SMTP, FTP, … UDDI, WS-Addr, Metadata Exch.,… WS-C WS-N* WS-RFWS-BPEL WS-Security* WS-AT WS-BA SOAP, WS-Addr* JMS, RMI/IIOP,... SCA

7 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for People (BPEL4People) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelsubproc WS-BPEL 2.0 Extensions for Java (BPELJ) http://www-128.ibm.com/developerworks/library/specification/ws-bpelj WS-BPEL Standards Roadmap WS-BPEL 2.0 www.oasis.org www.osoa.org Service Component Architecture (SCA) SCA Assembly Model SCA WS-BPEL Client and Implementation Model

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

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

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

11 Business Process Application Integration WAS.net CICS SOAP RMI/IIOP MQSeries Delivery channels Legacy integration

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

13 BPEL in SOA: Abstract View WS-BPEL is a Recursive Aggregation Model for Web Services n Aggregation: a set of Web services can be tied into one or more new Web service by means of a business process model n Recursive: these new Web services can again be tied into other new Web services

14 WS-BPEL in a Nutshell n WS-BPEL describes in an SOA how your company performs its business processes n With WS-BPEL, it is straightforward to let your business partners and customers directly participate in your business processes n With WS-BPEL, it is straightforward to tie in Web services as activities of your business processes

15 How to make money? Capital & Work Force, Business Models, Organizational Structures Application Systems, Transactions & Data, Hardware Infrastructure How to support business with IT? Business-IT-Gap Executive Focus IT Personnel Focus A Well-Known Problem

16 Key Aspect of a Solution How to make money? Capital & Work Force, Business Models, Organizational Structures Application Systems, Transactions & Data, Hardware Infrastructure How to support business with IT? Business-IT-Gap Business Processes Executive Focus IT Personnel Focus

17 Specific Tool 1 Specific Tool k Specific Tool 2 Today’s Process Management Business-Level IT-Level Modeling Tool 1 Modeling Tool n Modeling Tool 2 … Modeling Tool 3 Process Engine 1 Process Engine k Process Engine 2 How to make models run on particular engine? Managing Business Processes

18 WS-BPEL Tool 1 WS-BPEL Tool k WS-BPEL Tool 2 Benefits of WS-BPEL Business-Level IT-Level Modeling Tool 1 Modeling Tool n Modeling Tool 2 … Modeling Tool 3 WS-BPEL Engine 1 WS-BPEL Engine k WS-BPEL Engine 2 WS-BPEL Engine WS-BPEL Tool

19 Tool Interoperability BPEL Tool 1 BPEL Tool k BPEL Tool 2 ….bpel WS-BPEL Engine

20 WS-BPEL Tool Common Operational Semantics WS-BPEL Engine 1 WS-BPEL Engine k WS-BPEL Engine 2 ….bpel Deployment

21 Two-Level Programming Model n Programming in the large l Non-programmers implementing processes n Flow logic deals with combining functions in order to solve a more complex problem (such as processing an order) n Programming in the small l Programmers implementing low-level services n Function logic deals with a discrete fine-grained task (such as retrieving an order document or updating a customer record)

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

23 Process Model Requirements n Portability and Interoperability n Flexible Integration l Rich, and easily adaptable to changes in underlying services n Recursive, type-based composition, enables l Third-party composition of existing services l Providing different views on a composition to different parties l Increased scalability and reuse n Stateful conversations and lifecycle management l Supports multiple stateful long-running conversations n Recoverability l Long running business processes need fault handling and compensation mechanisms to manage and recover from errors

24 Benefits of WS-BPEL n Industry standard language for expressing business processes l Leverage a common skill set and language n Designed to fit naturally into the Web services stack l Expressed entirely in XML l Uses and extends WSDL 1.1 l Uses XML Schema 1.0 for the data model n Portable across platform and vendor l Will run on any WS-BPEL-compliant engine n Interoperable between interacting processes l Layering on top of Web services stack

25 WS-BPEL 2.0 History n Dec 2000 l Microsoft publishes XLANG n March 2001 l IBM publishes WSFL n July 2002 l IBM, Microsoft, BEA converge WSFL and XLANG into BPEL4WS 1.0 n March 2003 l BPEL4WS is submitted to OASIS n May 2003 l OASIS publishes BPEL4WS 1.1 n April 2007 l WS-BPEL 2.0 standard

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

27 WS-BPEL Language Constructs n WS-BPEL process definition n Recursive composition and partner links n Variables n Variable properties n Correlation sets n Basic and structured activities n Scopes n Compensation handling

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

29 Web Service Financial institution‘s Web service implementation (Loan Approver) Web Service WSDL Loan Approval PortType Loan Approval Process invoke receive reply Recursive Composition Model WS-BPEL processes are exposed as Web services to business partners WS-BPEL processes interact with Web services exposed by business partners

30 Partner Links process partner link partner link type Peer-to-peer conversational partner relationship WSDL port type myRole Provided port type WSDL port type partnerRole Required port type receive Inbound request – service provided by the process invoke Outbound request – service required by the process

31 Variables process assign xsl:transform receive request response invoke request reply response 42 WSDL message WSDL message WSDL messages Variables defined using WSDL messages 42 XML schemas XML Schema elements / types Variables defined using XML schema elements or types

32 process Variable Properties XML schema element WSDL message part... property alias Typed properties are mapped (aliased) to parts of WSDL messages or XML schema elements property alias 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 

33 Properties and Correlation Sets n How to identify stateful instances via stateless WS interfaces? n A process instance is assigned one or more keys l Business data is used as key, e.g., customerID l A key can be compound, e.g., (customerID, orderNumber) l WS-BPEL calls a key a correlation set – it is used to correlate an incoming message with a process instance Process 4 (0123,15) Process 3 (0815,42) Process 2 (4711,37) Process 1 (0815,12) 081542 Message 2 customerID orderNumber 471137 Message 1

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

35 process Basic Activities receivereply invoke Invoke a one-way or request-response operation Do a blocking wait for a matching message to arrive / send a message in reply validate assign Update the values of variables or partner links with new data Validate XML data stored in variables throw rethrow Generate a fault from inside the business process Forward a fault from inside a fault handler 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 wait Wait for a given time period or until a certain time has passed empty No-op instruction for a business process extensionActivity Wrapper for language extensions

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

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

38 Compensation Handling process scope invoke fault handler compensate compensation handler compensate compensation handler compensation handler invoke 1. Do some work (successfully invoke two services) 2. Invoke another service (throws fault) 3. The fault triggers the process-level fault handler 4. Compensate previous work 5. Propagate compensation 6. Undo work (in reverse order)

39 forEach scope Parallel Processing in WS-BPEL scope event handler flow... scope event handler event handler event handler event handler event handler

40 process_a process_b Partner Link Assignment receive request invoke callback PortType-B PortType-A invoke service receive response Partner Link Type A-role B-role partner link partner link assign EPR assign EPR

41 WS-BPEL Abstract Processes n Hiding process details n Abstract process use cases

42 Hiding Process Details private process Enterprise public view Abstract Process Executable Process

43 Abstraction and Completion ep pq ap q abstraction executable completion Omitted information represents modeling artifacts that may be provided later An abstract process describes “behavior” It may not be executable It may omit certain information

44 Abstract Process Use Cases n View on internal process l Only a projection of an internal (executable) process is made visible to the outside n …to protect process model as corporate asset n …to hide non-optimal parts of a process model n Template as “best practice” l Specification of common activities, major data structures, and main control flow l Must be refined into an executable processes on a case-by- case basis n Constraints on message exchange l Specification about the order in which messages are consumed or produced n Business functionality is implemented as a (set of) port types, and operations must be used in a certain order to achieve intended business goal

45 View (Export) n An abstract process is derived from an executable by abstracting away parts that are not part of the behavior one wishes to expose n Example: l Show a particular business partner the interactions that the partner must follow n Interactions with all other partners are dropped l Use an abstract process to represent common behavior in a set of executables, and drop any non- repeated behavior n An executable process of a more general business model may need parts tagged as points of variability, and those are made explicitly opaque

46 Template (Import) n An abstract process is basis to create one or more executables, or more detailed abstract processes n Example: l One needs to create an implementation of an abstract process provided as a behavioral prescription for complying with a known, domain-specific business function l Multiple abstract processes can be created in a series of iterative refinements to a design l One wants to implement “best practices” while maintaining some company specifics n The abstract process may have been purchased from a consulting firm, as a model of an optimized approach to a problem

47 Service Usage Constraint n Typically, the operations of a services may not be used in order l E.g. it doesn’t make sense to use the Cancel operation of an Order service before using its Buy operation n To describe such ordering constraint an abstract process can be used that only refers to operations of a single port type n The port type of a service may be associated with a process which describes the order in which the operations of the port type can be used

48 WS-BPEL Status and Outlook n What's new since BPEL4WS 1.1 n Current status n References

49 What’s new since BPEL4WS 1.1 n Data access l XML schema complex-typed variables l Simplified XPath expressions l Simplified WSDL message access Elaborated operation behavior in Attribute keepSrcElementName in Attribute ignoreMissingFromData in Extension operations in l XSLT 1.0 function for use within XPath expressions l XML data validation New activity l Inline variable initialization within variable declarations

50 What’s new since BPEL4WS 1.1 n Scope model l Elaboration of compensation and fault models Scope isolation and control links interaction in New activity New Attribute exitOnStandardFault n Partner interactions l Join-style correlation set l Scope-local partner link declarations Attribute initializePartnerRole New construct

51 What’s new since BPEL4WS 1.1 n Other new activities l l n Syntactic makeover  - -  and n Other additions l Improved event handling New alarm feature Formal support New declaration l

52 WS-BPEL Adoption – Products n Active Endpoints ActiveBPEL n BEA WebLogic n Cape Clear Orchestrator n Intalio/Apache Orchestration Director Engine (Ode) n IBM WebSphere Process Server n Microsoft BizTalk Server n MidOffice BPEL Engine (open source) n OpenLink Virtuoso Universal Server n Oracle BPEL Process Manager n Parasoft BPEL Maestro n Progress Sonic BPEL Server n SAP NetWeaver n Sun eInsight BPM

53 WS-BPEL Resources n WS-BPEL 2.0 – Approved Standard (04/11/2007) l http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html n OASIS Technical Committee l http://www.oasis-open.org http://www.oasis-open.org n BPEL4WS 1.1 l http://www- 128.ibm.com/developerworks/library/specification/ws-bpel/ http://www- 128.ibm.com/developerworks/library/specification/ws-bpel/ n Wikipedia l http://en.wikipedia.org/wiki/BPEL http://en.wikipedia.org/wiki/BPEL n Numerous books, papers, and analyst reports …

54 WS-BPEL Follow-on Work n BPEL4People – human interactions l http://www- 128.ibm.com/developerworks/webservices/library/specification/ ws-bpel4people/ http://www- 128.ibm.com/developerworks/webservices/library/specification/ ws-bpel4people/ n BPEL-SPE – subprocess coordination protocol l http://www- 128.ibm.com/developerworks/webservices/library/specification/ ws-bpelsubproc/ http://www- 128.ibm.com/developerworks/webservices/library/specification/ ws-bpelsubproc/ n BPELJ – inline Java code in activities and expressions l http://www- 128.ibm.com/developerworks/library/specification/ws-bpelj/ http://www- 128.ibm.com/developerworks/library/specification/ws-bpelj/ n Currency with related standards l WSDL 2.0, XPath 2.0, XQuery, etc.

55 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for People (BPEL4People) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelsubproc WS-BPEL 2.0 Extensions for Java (BPELJ) http://www-128.ibm.com/developerworks/library/specification/ws-bpelj WS-BPEL Standards Roadmap WS-BPEL 2.0 www.oasis.org www.osoa.org Service Component Architecture (SCA) SCA Assembly Model SCA WS-BPEL Client and Implementation Model

56 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 MyProcess invoke receive invoke Basic Activities receive reply invoke throw exit wait empty compensatevalidate assign rethrow extensionActivity compensateScope Structured Activities if-else while scope pick sequence flow repeatUntil forEach Handlers fault handler event handler fault handler compensation handler termination handler event handler Partner Links Partner Link Type Port Type 1 Port Type 2 partner link partner link Variables 42 WSDL Message XML Schema Type XML Schema Element Properties Correlation Sets Property 1 Property 2 bpel:extensionActivity b4p:peopleActivity

57 SOA on your terms and our expertise © 2007 IBM Corporation BPEL4People & WS-HumanTask  Specifications published June 25, 2007 http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people/  Next step: OASIS Technical Committee to be created to standardize BPEL4People and WS-HumanTask

58 SOA on your terms and our expertise © 2007 IBM Corporation BPEL4People & WS-HumanTask – Requirements  Integration of human-executed activities in Web services-based business processes  Integration of human-executed activities in SOA-based applications  Standard-based solution to support interoperability and portability scenarios

59 SOA on your terms and our expertise © 2007 IBM Corporation BPEL4People & WS-HumanTask – Approach  BPEL4People –Definition of human interactions within WS-BPEL processes –Specification built on top of WS-BPEL 2.0  WS-HumanTask –Definition of service-enabled human tasks and notifications –Coordination protocol used to control autonomy and life cycle of service-enabled human tasks in an interoperable manner –Interoperable programming interface enabling task client applications to work with human tasks

60 SOA on your terms and our expertise © 2007 IBM Corporation Process People activity People activity Inline Task Definition People activity Invoke activity People activity Inline Task Definition Standalone Task Definition Standalone Task Definition Standalone Task Definition BPEL4People: People Activities and Tasks Task can be used outside of process context Communication with task is based on coordination protocol Task is interoperable as well as portable Task is just a Web service with no additional constraints Easy to switch between performing the task by humans or programs Task can only be used inside of process context Task is interoperable as well as portable

61 SOA on your terms and our expertise © 2007 IBM Corporation BPEL4People: Web Service vs. Human Task Translation Process receive document automatic translation reply translation manual translation Web Service EndpointAbstract Organizational Group

62 SOA on your terms and our expertise © 2007 IBM Corporation Deployment Descriptor BPEL4People: People Links and People Resolution Brochure Creation Process create approve revise "Authors" "Approvers" Departments Department1 Member1 Member2... Department2... Users Group1 Member1 Member2... Group2... Roles Role1 Member1 Member2... Role2... Select staff Where qualification = "tech writer" Select staff Where responsibility = "marketing" Org Database

63 SOA on your terms and our expertise © 2007 IBM Corporation BPEL4People & WS-HumanTask – Benefits  BPEL4People –Enable unified design tools for automated Web services-based business processes and human-centric processes –Enable unified monitoring environments for automated Web services-based business processes and human-centric processes –Interoperate and integrate with BPEL4People-aware environments  WS-HumanTask –Leverage UI technology that can consume and execute tasks from different task engines –Build and leverage vendor neutral task-aware applications –Interoperate and exchange work with other WS-HumanTask-aware environments

64 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for People (BPEL4People) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelsubproc WS-BPEL 2.0 Extensions for Java (BPELJ) http://www-128.ibm.com/developerworks/library/specification/ws-bpelj WS-BPEL Standards Roadmap WS-BPEL 2.0 www.oasis.org www.osoa.org Service Component Architecture (SCA) SCA Assembly Model SCA WS-BPEL Client and Implementation Model

65 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Basic Activities receive reply invoke throw exit wait empty compensatevalidate assign rethrow extensionActivity compensateScope Structured Activities if-else while scope pick sequence flow repeatUntil forEach Handlers fault handler event handler fault handler compensation handler termination handler event handler Partner Links Partner Link Type Port Type 1 Port Type 2 partner link partner link Variables 42 WSDL Message XML Schema Type XML Schema Element Properties Correlation Sets Property 1 Property 2 MyProcess invoke receive invoke... Parent-Process Sub-Process subp:call terminate compensate close... terminated compensated closed... receivereply

66 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE)  Services used by an activity may be implemented as another process –In BPEL this is hidden from the engine(s) running both processes –Both processes can be coupled to a larger “virtual” process Their lifecycle can be coupled They may share context  Benefits –Reuse of process knowledge Same business problems Best practices –Enhanced modeling capabilities Decomposition of large processes, outsourcing Composition – modular process structure –Large-scale distributed execution Process “parts” on different platforms, within one enterprise or even across enterprises (“B2B processes”)

67 SOA on your terms and our expertise © 2007 IBM Corporation Sub-Processes – Definition and Invocation WFMS 2 Parent Process Local Sub-Process Remote Sub-Process Inline Sub-Process call WFMS 1

68 SOA on your terms and our expertise © 2007 IBM Corporation Business Process and WS Infrastructure Sub-Processes – Coordination Protocol Parent process Inline Sub-Process Inline Sub-Process Call Remote Sub-Process Request Reply Call Return Register Coordination protocol Compensation Handler Compensate Application protocol

69 SOA on your terms and our expertise © 2007 IBM Corporation Sub-Process Invocation – Request-Response Operation receive (input) subp:call reply (output) Partner Link Type  op... call... partnerLink=... requestOperation=op Sub-ProcessParent Process

70 SOA on your terms and our expertise © 2007 IBM Corporation Sub-Process Invocation – Two One-Way Operations Sub-ProcessParent Process receive (input) subp:call invoke (output) Partner Link Type op op‘... call... partnerLink=... requestOperation=op responseOperation=op’ EPR(op‘)

71 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for People (BPEL4People) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelsubproc WS-BPEL 2.0 Extensions for Java (BPELJ) http://www-128.ibm.com/developerworks/library/specification/ws-bpelj WS-BPEL Standards Roadmap WS-BPEL 2.0 www.oasis.org www.osoa.org Service Component Architecture (SCA) SCA Assembly Model SCA WS-BPEL Client and Implementation Model

72 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 MyProcess invoke receive invoke Basic Activities receive reply invoke throw exit wait empty compensatevalidate assign rethrow extensionActivity compensateScope Structured Activities if-else while scope pick sequence flow repeatUntil forEach Handlers fault handler event handler fault handler compensation handler termination handler event handler Partner Links Partner Link Type Port Type 1 Port Type 2 partner link partner link Variables 42 WSDL Message XML Schema Type XML Schema Element Properties Correlation Sets Property 1 Property 2 bpel:extensionActivity return "Hello world !!!"; bpelj:snippet

73 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for Java (BPELJ)  Include inline Java code in BPEL processes –Activities –Conditions –Variable initialization  Orchestrate long-running interactions with Java components  Support advanced transactional capabilities –Atomic Scopes and Atomic Processes

74 SOA on your terms and our expertise © 2007 IBM Corporation BPELJ Examples – Inline Java Expressions  Condition (Boolean Expression)  Variable initialization (General Expression) <condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:java1.4"> widget.equals(getVariableProperty("PO", "productName"))... <from expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:java1.4"> subtotal * taxRate

75 SOA on your terms and our expertise © 2007 IBM Corporation BPELJ Examples – Inline Java Activity  Extension Activity... // Get the approver using SDO accessor Approver approver = po.getApprover(); // Get the approver's comments NodeList commentNodeList = justificationDoc.getElementsByTagName("approverComment");...

76 SOA on your terms and our expertise © 2007 IBM Corporation BPELJ Status and Progress  IBM-BEA Whitepaper published in March 2004 http://www.ibm.com/developerworks/library/specification/ws-bpelj/  Specification completed (October 2005)

77 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for People (BPEL4People) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelsubproc WS-BPEL 2.0 Extensions for Java (BPELJ) http://www-128.ibm.com/developerworks/library/specification/ws-bpelj WS-BPEL Standards Roadmap WS-BPEL 2.0 www.oasis.org www.osoa.org Service Component Architecture (SCA) SCA Assembly Model SCA WS-BPEL Client and Implementation Model

78 SCA Service Component Architecture SCA Assembly Model  Unified declarative model for service assemblies Service components with interfaces (WSDL port types or Java interfaces) Dependency resolution and configuration Declarative policies for infrastructure services Security, Transactions, Reliable messaging  Binding model for multiple access methods SOAP/HTTP, JCA, JMS, Java RMI/IIOP, …  Language-independent way to expose implementations as services Java, WS-BPEL, PHP, other languages  Facilities for dynamic service configuration Properties / protocols / qualities of service Profiles

79 SCA Service Component Architecture SCA Assembly Model – Component Implementation - Java - WS-BPEL - Composite - … Properties Services … References …

80 SCA Service Component Architecture SCA Assembly Model – Composite Binding - Web Service - SCA - JCA - JMS - SLSB - … Service -Java interface -WSDLPortType Wire Component A B Property setting Reference -Java interface -WSDLPortType Binding - Web Service - SCA - JCA - JMS - SLSB - …

81 SCA Service Component Architecture SCA Assembly Model – Deployment Service Composite XComposite Z Implementation Wire System Reference Composite Y Component B A Wire Composite A Composite B … …

82 SCA Service Component Architecture SCA WS-BPEL Client and Implementation Model  Specifies how WS-BPEL can be used with SCA Use any valid WS-BPEL 2.0 process definition as the implementation of a component within SCA Use WS-BPEL to implement any SCA Component Type that uses only WSDL interfaces to define services and references, possibly with some SCA specific extensions used in process definition. Create a WS-BPEL process definition that uses SCA extensions and generate an SCA Component Type and use that type within an SCA assembly Some SCA capabilities (such as properties and multi-party references) can only be used by WS-BPEL process definitions that use SCA extensions.

83 SCA Service Component Architecture SCA WS-BPEL Client and Implementation Model WS-BPEL inside Implementation - Java - WS-BPEL - Composite - … WS-BPEL Process Services References Properties … …

84 SCA Service Component Architecture SCA WS-BPEL Client & Implementation Model Services and References WS-BPEL Process flow Service A Reference B wire partnerLink A (myRole) partnerLink B (partnerRole) invoke reply receive

85 SCA Service Component Architecture SCA WS-BPEL Client & Implementation Model Endpoint Reference Assignment WS-BPEL Process partnerLink A partnerLink B Web Service Binding partnerLink C variable EPR-C assign variable EPR-B assign variable EPR-A assign Web Service Binding unwired Web Service Binding

86 SCA Service Component Architecture SCA WS-BPEL Client & Implementation Model Multi-Valued References WS-BPEL Process forEach scope wires variable vendors sca:multiReference … Reference vendors assigninvoke partnerLink vendorLink sca:multiRefFrom

87 SCA Service Component Architecture SCA WS-BPEL Client & Implementation Model Properties WS-BPEL Process flow property currency variable currency sca:property="yes"...

88 SCA Service Component Architecture SCA and WS-BPEL – Complementary Technologies  Similarities between SCA and WS-BPEL Both are described in a formal language that is based on XML Both languages may be used to describe a business service that is implemented by composing together other business services Both can describe inbound and outbound service interactions types by WSDL port types  SCA describes the structure of an application Components within the business application Services offered by components – Service references components depend on Connections between components Endpoint addresses and communication methods used for the connections Policies applied to components and to the connections between them  WS-BPEL describes the logic of a business process Sequences of operations which are performed to execute an individual business process Services provided and consumed through partnerLinks, that is, abstract interfaces that must be connected to actual endpoints and communication methods through configuration

89 SOA on your terms and our expertise © 2007 IBM Corporation WS-BPEL 2.0 Extensions for People (BPEL4People) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpel4people WS-BPEL 2.0 Extensions for Sub-Processes (BPEL-SPE) http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelsubproc WS-BPEL 2.0 Extensions for Java (BPELJ) http://www-128.ibm.com/developerworks/library/specification/ws-bpelj WS-BPEL Standards Roadmap WS-BPEL 2.0 www.oasis.org www.osoa.org Service Component Architecture (SCA) SCA Assembly Model SCA WS-BPEL Client and Implementation Model


Download ppt "Web Services Business Process Execution Language (WS-BPEL 2.0) The Standards Landscape Dieter König Senior Technical Staff Member IBM Software Group Böblingen,"

Similar presentations


Ads by Google