Download presentation
Presentation is loading. Please wait.
Published byOctavia Price Modified over 8 years ago
1
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz Juric
2
95-843: Service Oriented Architecture 2 Master of Information System Management We Are Here From IBM’s High Level Reference Architecture
3
95-843: Service Oriented Architecture 3 Master of Information System Management BPEL Business Process Execution Language Programming in the large Processing logic to handle synchronous and asynchronous messages Quite different from programming in the small - different issues to deal with Structured programming language using while, if else, sequence, flow, … XPATH used for addressing message parts
4
95-843: Service Oriented Architecture 4 Master of Information System Management Basics Developing web services and exposing functionalities is not sufficient. Need a way to compose these functionalities in the right order – a way to define business processes which will make use of the exposed functionalities. BPEL allows composition of web services. BPEL may be used for a long running process. “Dehydration” is the term used to refer to the saving of a process state. Successfully completed processes as well are saved in the dehydration store.
5
95-843: Service Oriented Architecture 5 Master of Information System Management Web Service Composition Methods - Orchestration A central process takes control over the involved web services and coordinates the execution of different operations on the web services involved in the operation. This is done as per the requirements of the orchestration. The involved web services do not know (and do not need to know) that they are involved into a composition and that they are a part of a higher business process. Only the central coordinator of the orchestration knows this. So orchestration is centralized with explicit definitions of operations and the order of invocation of web services.
6
95-843: Service Oriented Architecture 6 Master of Information System Management Web Service Composition Methods - Choreography Choreography does not rely on a central coordinator. Each web service involved in the choreography knows exactly when to execute its operations and whom to interact with. Choreography is a collaborative effort focused on exchange of messages. All participants of the choreography need to be aware of the business process, operations to execute, messages to exchange, and the timing of message exchanges. This is a peer-to-peer approach.
7
95-843: Service Oriented Architecture 7 Master of Information System Management Composing web services to execute business processes Orchestration is the more flexible approach compared to choreography: –We know exactly who is responsible for the execution of the whole business process. –We can incorporate web services, even those that are not aware that they are a part of a business process. –We can also provide alternative scenarios when faults occur. BPEL follows the orchestration paradigm. Choreography is covered by other standards, such as WSCI (Web Services choreography Interface) and WS- CDL (Web Services Choreography Description Language). Choreography has not gained support from the industry which would be comparable to BPEL.
8
95-843: Service Oriented Architecture 8 Master of Information System Management Programming in the Large History IBM WSFL (Web Service Flow Language) defined in May 2001. Microsoft XLANG defined around the same time. Joint submission to OASIS under the name BPEL4WS. OASIS (September 2004) WS-BPEL-2.0. Has no standard graphical language. The BPEL process itself is a web service. BPEL business processes are portable.
9
95-843: Service Oriented Architecture 9 Master of Information System Management BPEL BPEL builds on top of XML and web services. It is an XML-based language which supports the web services technology stack, including SOAP, WSDL, UDDI, WS-Reliable Messaging, WS-Addressing, WS- Coordination and WS-Transaction.
10
95-843: Service Oriented Architecture 10 Master of Information System Management A typical BPEL process First, the BPEL business process receives a request. To fulfill it, the process then invokes the involved web services and finally responds to the original caller. Since the BPEL process communicates with other web services, it relies heavily on the WSDL description of the web services invoked by the composite web service.
11
95-843: Service Oriented Architecture 11 Master of Information System Management Steps in a Process Each step is called an activity. BPEL supports primitive and structure activities. Primitive activities represent basic constructs and are used for common tasks
12
95-843: Service Oriented Architecture 12 Master of Information System Management Primitive Activities Invoking other web services, using Waiting for the client to invoke the business process through sending a message, using (receiving a request) Generating a response for synchronous operations, using Manipulating data variables, using Indicating faults and exceptions, using Waiting for some time, using Terminating the entire process, using etc.
13
95-843: Service Oriented Architecture 13 Master of Information System Management Defining Processes Combine these and other primitive activities and define complex algorithms, which exactly specify the steps of business processes. To combine primitive activities BPEL supports several structured activities
14
95-843: Service Oriented Architecture 14 Master of Information System Management Structured Activities Sequence ( ), which allows us to define a set of activities that will be invoked in an ordered sequence Flow ( ) for defining a set of activities that will be invoked in parallel Case-switch construct ( ) for implementing branches While ( ) for defining loops The ability to select one of a number of alternative paths, using
15
95-843: Service Oriented Architecture 15 Master of Information System Management Definitions and Declarations BPEL processes will typically declare variables using BPEL processes will typically define partner links using A BPEL process can be synchronous or asynchronous. –A synchronous BPEL process blocks the client (the one which is using the process) until the process finishes and returns a result to the client. –An asynchronous process does not block the client. Rather it uses a callback to return the result (if any)
16
95-843: Service Oriented Architecture 16 Master of Information System Management Example Process For its clients a BPEL process looks like any other web service. When we define a BPEL process, we actually define a new web service that is a composition of existing services. The interface of the new BPEL composite web service uses a set of port types, through which it provides operations like any other web service. To invoke a business process described in BPEL, we have to invoke the resulting composite web service.
17
95-843: Service Oriented Architecture 17 Master of Information System Management
18
95-843: Service Oriented Architecture 18 Master of Information System Management Typical Structure (1) the initial client request
19
95-843: Service Oriented Architecture 19 Master of Information System Management Partner Links BPEL calls the links to all parties it interacts with as partner links Partner links can be links to web services that are invoked by the BPEL process Partner links can also be links to clients which invoke the BPEL process Each BPEL process has at least one client partner link, because there has to be a client that invokes the BPEL process.
20
95-843: Service Oriented Architecture 20 Master of Information System Management make calls in parallel a web service another web service Typical Structure (2)
21
95-843: Service Oriented Architecture 21 Master of Information System Management make decisions … … reply to synchronous caller Typical Structure (3)
22
95-843: Service Oriented Architecture 22 Master of Information System Management Sequential Order of Activities …. Do activities in sequential order.
23
95-843: Service Oriented Architecture 23 Master of Information System Management Parallel Activities …. Wait to start process The three invokes are carried out in parallel.
24
95-843: Service Oriented Architecture 24 Master of Information System Management Parallel Sequences …. Wait to start process. Both sequences may run in parallel. These two ‘invokes’ go in order. These two ‘invokes’ go in order
25
95-843: Service Oriented Architecture 25 Master of Information System Management Synchronous Web Services The sender blocks and waits for a reply. The service should run fast. The and form a pair on B... A B No needed B is a synchronous web service and uses a BPEL reply.
26
95-843: Service Oriented Architecture 26 Master of Information System Management Quiz on Synchronous Web Services What does A need to know about B? In other words, what is required in B’s WSDL?.. A B No needed. B is a synchronous web service and uses a BPEL reply.
27
95-843: Service Oriented Architecture 27 Master of Information System Management Quiz on Synchronous Web Services What does A need to know about B? In other words, what is required in B’s WSDL? A needs to know the message types and the available operations as well as B’s location... A B No needed. B is a synchronous web service and uses a BPEL reply.
28
95-843: Service Oriented Architecture 28 Master of Information System Management Asynchronous Web Services (1).. A B Most real-world processes are long running and if callbacks are needed, message correlation may be used. If callbacks are not needed, B need not perform an. Do other things… B is an asynchronous web service and replies with an optional “invoke” not a “reply”.
29
95-843: Service Oriented Architecture 29 Master of Information System Management Quiz on Asynchronous Web Services.. A B What does A need to know in order to use B? In other words, what information must be available in B’s WSDL? Do other things… B is an asynchronous web service and replies with an optional “invoke” not a “reply”.
30
95-843: Service Oriented Architecture 30 Master of Information System Management Quiz on Asynchronous Web Services.. A B What does A need to know in order to use B? In other words, what information must be available in B’s WSDL? A needs to know the message types and the available operations as well as B’s location. In order to use B, A must also know exactly what operations it needs to provide and what messages will be received. Do other things… B is an asynchronous web service and replies with an optional “invoke” not a “reply”.
31
95-843: Service Oriented Architecture 31 Master of Information System Management Example Business Process Collect employee information (name, id, travel plans, etc.). Determine an employee’s flying status (first class or coach) and then determine the cheaper of two airlines. Return suggested flight to the employee.
32
95-843: Service Oriented Architecture 32 Master of Information System Management Modified Example from Juric Text Employee Travel Status WS synchronous American Airlines WS asynchronous Delta Airlines WS asynchronous Asynch Process for Business Travels Coach or first class : : price Asynchronous web service
33
95-843: Service Oriented Architecture 33 Master of Information System Management Partner Links Partner links describe links to partners. Partners might be: (1) Services that invoke the BPEL process. (2) Services invoked by the BPEL process. (3) Services that play both roles - the BPEL process invokes the service and the service invokes a callback on the BPEL process.
34
95-843: Service Oriented Architecture 34 Master of Information System Management PartnerLinkTypes PartnerLinkTypes represent interactions between the parties. We have three types of interactions in the airline example: (1) The client interacts with the BPEL process. (2) The BPEL process calls the employee status web service. (3) The BPEL process calls the two airline web services and expects callbacks from both.
35
95-843: Service Oriented Architecture 35 Master of Information System Management PartnerLinkTypes Within the BPEL process WSDL, we have two roles defined for one of the links: The interface of the BPEL service is implemented at the service. The interface of the client callback is implemented on the client. travelLT Travel Link Type BPEL Process interface Client callback interface
36
95-843: Service Oriented Architecture 36 Master of Information System Management PartnerLinkTypes The employee status WS is synchronous so within the employee status WS WSDL we have one role defined: Interface of employee status web service. employeeLT Employee Link Type
37
95-843: Service Oriented Architecture 37 Master of Information System Management PartnerLinkTypes The airline web services are asynchronous and so within the airline WS WSDL’s we have two roles defined: flightLT Flight Link Type Airline interface Callee’s callback interface
38
95-843: Service Oriented Architecture 38 Master of Information System Management PartnerLinks Are in the BPEL (1) <partnerLink name="client" partnerLinkType="trv:travelLT" myRole="travelService" partnerRole="travelServiceCustomer"/> <partnerLink name="employeeTravelStatus" partnerLinkType="emp:employeeLT" partnerRole="employeeTravelStatusService"/> <partnerLink name="AmericanAirlines" partnerLinkType="aln:flightLT" myRole="airlineCustomer" partnerRole="airlineService"/> <partnerLink name="DeltaAirlines" partnerLinkType="aln:flightLT" myRole="airlineCustomer" partnerRole="airlineService"/>
39
95-843: Service Oriented Architecture 39 Master of Information System Management PartnerLinks Are in the BPEL(2) <partnerLink name="client" partnerLinkType="trv:travelLT" myRole="travelService" partnerRole="travelServiceCustomer"/> : This partner link is of type travelLT. So, two interfaces are involved. This process is the travel service part. The partner implements the client callback interface. These names are defined in the partner link type section.
40
95-843: Service Oriented Architecture 40 Master of Information System Management PartnerLinks Are in the BPEL(3) : <partnerLink name="employeeTravelStatus" partnerLinkType="emp:employeeLT" partnerRole="employeeTravelStatusService"/> : This partner link is of type employeeLT. So, one interface is involved, that is, the interface of the employee status web service.
41
95-843: Service Oriented Architecture 41 Master of Information System Management PartnerLinks Are in the BPEL(4) : <partnerLink name="AmericanAirlines" partnerLinkType="aln:flightLT" myRole="airlineCustomer" partnerRole="airlineService"/> <partnerLink name="DeltaAirlines" partnerLinkType="aln:flightLT" myRole="airlineCustomer" partnerRole="airlineService"/> Both of these partner links are of type flightLT. As such, two interfaces are mentioned. The role of this process is to provide the callback ( FlightCallbackPT) and the role the partner is to provide the FlightAvailabilityPT.
42
95-843: Service Oriented Architecture 42 Master of Information System Management PartnerLinks Are in the BPEL(5) <partnerLink name="client" partnerLinkType="trv:travelLT" myRole="travelService" partnerRole="travelServiceCustomer"/> The interface of the BPEL service is implemented at the service. The interface of the client callback is implemented on the client.
43
95-843: Service Oriented Architecture 43 Master of Information System Management PartnerLinks Are in the BPEL(6) <partnerLink name="employeeTravelStatus" partnerLinkType="emp:employeeLT" partnerRole="employeeTravelStatusService"/>
44
95-843: Service Oriented Architecture 44 Master of Information System Management PartnerLinks Are in the BPEL(7) <partnerLink name="AmericanAirlines" partnerLinkType="aln:flightLT" myRole="airlineCustomer" partnerRole="airlineService"/> <partnerLink name="DeltaAirlines" partnerLinkType="aln:flightLT" myRole="airlineCustomer" partnerRole="airlineService"/>
45
95-843: Service Oriented Architecture 45 Master of Information System Management Variables in BPEL <variable name="TravelRequest" messageType="trv:TravelRequestMessage"/> <variable name="EmployeeTravelStatusRequest" messageType="emp:EmployeeTravelStatusRequestMessage"/> <variable name="EmployeeTravelStatusResponse" messageType="emp:EmployeeTravelStatusResponseMessage"/>
46
95-843: Service Oriented Architecture 46 Master of Information System Management Variables (2) <variable name="FlightDetails" messageType="aln:FlightTicketRequestMessage"/> <variable name="FlightResponseAA" messageType="aln:TravelResponseMessage"/> <variable name="FlightResponseDA" messageType="aln:TravelResponseMessage"/> <variable name="TravelResponse" messageType="aln:TravelResponseMessage"/>
47
95-843: Service Oriented Architecture 47 Master of Information System Management BPEL Main Process (1) <receive partnerLink="client" portType="trv:TravelApprovalPT" operation="TravelApproval" variable="TravelRequest" createInstance="yes" />
48
95-843: Service Oriented Architecture 48 Master of Information System Management BPEL Main Process (2)
49
95-843: Service Oriented Architecture 49 Master of Information System Management BPEL Main Process (3) <invoke partnerLink="employeeTravelStatus" portType="emp:EmployeeTravelStatusPT" operation="EmployeeTravelStatus" inputVariable="EmployeeTravelStatusRequest" outputVariable="EmployeeTravelStatusResponse" />
50
95-843: Service Oriented Architecture 50 Master of Information System Management BPEL Main Process (4) <!-- Prepare the input for the airlines. The input comes from two variables. -->
51
95-843: Service Oriented Architecture 51 Master of Information System Management BPEL Main Process (5) <invoke partnerLink="AmericanAirlines" portType="aln:FlightAvailabilityPT" operation="FlightAvailability" inputVariable="FlightDetails" /> <receive partnerLink="AmericanAirlines" portType="aln:FlightCallbackPT" operation="FlightTicketCallback" variable="FlightResponseAA" /> The receive operation must occur after the invoke. Hence, the sequence tag is used.
52
95-843: Service Oriented Architecture 52 Master of Information System Management BPEL Main Process (6) <invoke partnerLink="DeltaAirlines" portType="aln:FlightAvailabilityPT" operation="FlightAvailability" inputVariable="FlightDetails" /> <receive partnerLink="DeltaAirlines" portType="aln:FlightCallbackPT" operation="FlightTicketCallback" variable="FlightResponseDA" /> Only the flow is done in parallel. For the sequence to complete, the airline must respond.
53
95-843: Service Oriented Architecture 53 Master of Information System Management BPEL Main Process (7) <!-- The airlines have responded. Select the best offer and construct the TravelResponse --> <case condition="bpws:getVariableData('FlightResponseAA', 'confirmationData','/confirmationData/Price') <= bpws:getVariableData('FlightResponseDA', 'confirmationData','/confirmationData/Price')">
54
95-843: Service Oriented Architecture 54 Master of Information System Management BPEL Main Process (8)
55
95-843: Service Oriented Architecture 55 Master of Information System Management BPEL Main Process (9) <invoke partnerLink="client" portType="trv:ClientCallbackPT" operation="ClientCallback" inputVariable="TravelResponse" />
56
95-843: Service Oriented Architecture 56 Master of Information System Management Sketch of Working Process sequence receive information from employee assign assign to variable invoke invoke service to determine flying status assign assign result to variable flow Do sequences in parallel sequence invoke call airline A receive get price for ticket sequence invoke call airline B receive get price for ticket switch select cheaper flight invoke inform the employee
57
95-843: Service Oriented Architecture 57 Master of Information System Management Would this work? sequence receive flow assign invoke assign invoke receive invoke receive switch invoke No. The previous slide had it right. Here, we have not expressed the synchronization dependencies between activities. However, BPEL provides for more complex concurrency scenarios using links. A single link is specified with a source and a target.
58
95-843: Service Oriented Architecture 58 Master of Information System Management We Need To Add Links sequence receive flow assign assign before the invoke invoke invoke before the assign assign assign before the two invokes invoke invoke before receive receive receive before the switch invoke invoke before receive receive receive before the switch switch invoke
59
95-843: Service Oriented Architecture 59 Master of Information System Management Sources and Targets In BPEL … …. Invoke before assign Assign before the two invokes. Assign before invoke. Link names are user defined and should be well chosen.
60
95-843: Service Oriented Architecture 60 Master of Information System Management Sources and Targets
61
95-843: Service Oriented Architecture 61 Master of Information System Management Sources and Targets
62
95-843: Service Oriented Architecture 62 Master of Information System Management Concurrency and Links The flow tag provides the ability to express synchronization dependencies between activities. In other words, we can specify what happens and when. Link definitions are placed within the flow activity. For example, : Every link must be associated with exactly one source and target. A link’s target activity may only be performed after the source activity has completed. Transition conditions may be added for additional confusion.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.