Docstoc

Service Oriented Architecture

Document Sample
Service Oriented Architecture Powered By Docstoc
					       Service Oriented
         Architecture
                Lecture 7: BPEL
   Some notes selected from “Business Process Execution
       Language for Web Services” by Matjaz Juric




95-843: Service Oriented Architecture
    Master of Information System                          1
            Management
                  We Are Here




From IBM‟s High Level Reference Architecture
    95-843: Service Oriented Architecture
        Master of Information System           2
                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 Service Oriented Architecture
     95-843:
                                         3
      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.
     95-843: Service Oriented Architecture
         Master of Information System         4
                 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.




       95-843: Service Oriented Architecture
           Master of Information System                     5
                   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.
     95-843: Service Oriented Architecture
         Master of Information System          6
                 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.


      95-843: Service Oriented Architecture
          Master of Information System                          7
                  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.
    95-843: Service Oriented Architecture
        Master of Information System        8
                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.
    95-843: Service Oriented Architecture
        Master of Information System        9
                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.

     95-843: Service Oriented Architecture
         Master of Information System        10
                 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



    95-843: Service Oriented Architecture
        Master of Information System        11
                Management
         Primitive Activities
• Invoking other web services, using <invoke>
• Waiting for the client to invoke the business
  process through sending a message, using
  <receive> (receiving a request)
• Generating a response for synchronous
  operations, using <reply>
• Manipulating data variables, using <assign>
• Indicating faults and exceptions, using
  <throw>
• Waiting for some time, using <wait>
• Terminating the entire process, using
  <terminate> etc.
     95-843: Service Oriented Architecture
         Master of Information System         12
                 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


    95-843: Service Oriented Architecture
        Master of Information System        13
                Management
     Structured Activities
• Sequence ( <sequence>), which allows
  us to define a set of activities that will
  be invoked in an ordered sequence
• Flow ( <flow>) for defining a set of
  activities that will be invoked in parallel
• Case-switch construct ( <switch>) for
  implementing branches
• While ( <while>) for defining loops
• The ability to select one of a number of
  alternative paths, using <pick>
     95-843: Service Oriented Architecture
         Master of Information System        14
                 Management
                Definitions and
                 Declarations
• BPEL processes will typically declare variables
  using <variable>
• BPEL processes will typically define partner
  links using <partnerLink>
• 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)

      95-843: Service Oriented Architecture
          Master of Information System                     15
                  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.
    95-843: Service Oriented Architecture
        Master of Information System        16
                Management
95-843: Service Oriented Architecture
    Master of Information System        17
            Management
     Typical Structure (1)
<process>
   <partnerLinks>
      <partnerLink>
      <partnerLink>
   </partnerLinks>
   <variables>
      <variable>
      <variable>
   </variable>
   <sequence>
        <receive>                 the initial client request
        </receive>


     95-843: Service Oriented Architecture
         Master of Information System                          18
                 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.

     95-843: Service Oriented Architecture
         Master of Information System        19
                 Management
  Typical Structure (2)
<flow>              make calls in parallel
    <invoke>        a web service </invoke>
    <invoke>        another web service </invoke>
</flow>




  95-843: Service Oriented Architecture
      Master of Information System                  20
              Management
          Typical Structure (3)
    <switch> make decisions
        <case condition =“…”>
            <assign>
                <copy>
                   <from>…<to>
        </case>
        <otherwise>
            <assign>
                <copy>
                   <from>…<to>
         </otherwise>
     </switch>
     <reply>        reply to synchronous caller
 </sequence>
</process>
          95-843: Service Oriented Architecture
              Master of Information System        21
                      Management
           Sequential Order of
               Activities
<process>
  ….
  <sequence> Do activities in sequential order.
      <receive>
      <invoke>
      <assign>
      <invoke>
      <receive>
      <invoke>
  </sequence>
</process>




         95-843: Service Oriented Architecture
             Master of Information System         22
                     Management
               Parallel Activities
<process>
  ….
  <sequence>
      <receive> Wait to start process
      <flow>
         <invoke>                                The three invokes are
         <invoke>                                 carried out in
         <invoke>                                 parallel.
      </flow>
  </sequence>
</process>




         95-843: Service Oriented Architecture
             Master of Information System                                23
                     Management
            Parallel Sequences
<process>
  ….
  <sequence>
      <receive>              Wait to start process.
      <flow>                 Both sequences may run in parallel.
         <sequence>
            <invoke>          These two „invokes‟ go in order.
            <invoke>
         </sequence>
          <sequence>
            <invoke>          These two „invokes‟ go in order
            <invoke>
         </sequence>
      </flow>
  </sequence>
</process>
        95-843: Service Oriented Architecture
            Master of Information System                           24
                    Management
           Synchronous Web
               Services
The sender blocks and waits for a reply.
The service should run fast. The <receive>
and <reply> form a pair on B.
                                              <receive>
<invoke>                                          <invoke>..<invoke>

No <receive> needed
                                                          B is a synchronous
                                              <reply>
                                                          web service and
  A                                             B         uses a BPEL reply.

      95-843: Service Oriented Architecture
          Master of Information System                                 25
                  Management
 Quiz on Synchronous Web
         Services
What does A need to know about B? In other
words, what is required in B‟s WSDL?



                                                <receive>

  <invoke>                                          <invoke>..<invoke>


  No <receive> needed.
                                                            B is a synchronous
                                                <reply>
                                                            web service and
    A                                             B         uses a BPEL reply.

        95-843: Service Oriented Architecture
            Master of Information System                                 26
                    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.
                                                <receive>

  <invoke>                                          <invoke>..<invoke>


  No <receive> needed.
                                                <reply>     B is a synchronous
                                                            web service and
    A                                             B         uses a BPEL reply.

        95-843: Service Oriented Architecture
            Master of Information System                                 27
                    Management
          Asynchronous Web
             Services (1)
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 <invoke>.




                                               <receive>
  <invoke>
                                                   <invoke>..<invoke>
   Do other things…


  <receive>                                                B is an asynchronous
                                               <invoke>
                                                           web service and
   A                                             B         replies with an
                                                           optional “invoke”
       95-843: Service Oriented Architecture
                                                           not a “reply”.
           Master of Information System                                 28
                   Management
     Quiz on Asynchronous
         Web Services
What does A need to know in order to use B? In other words,
what information must be available in B‟s WSDL?




                                               <receive>
  <invoke>
                                                   <invoke>..<invoke>
   Do other things…


  <receive>                                                B is an asynchronous
                                               <invoke>
                                                           web service and
   A                                             B         replies with an
                                                           optional “invoke”
       95-843: Service Oriented Architecture
                                                           not a “reply”.
           Master of Information System                                   29
                   Management
     Quiz on Asynchronous
         Web Services
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.
                                               <receive>
  <invoke>
                                                   <invoke>..<invoke>
   Do other things…


  <receive>                                    <invoke>    B is an asynchronous
                                                           web service and
   A                                             B         replies with an
                                                           optional “invoke”
       95-843: Service Oriented Architecture               not a “reply”.
           Master of Information System                                 30
                   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.




      95-843: Service Oriented Architecture
          Master of Information System                        31
                  Management
           Modified Example from
                  Juric Text
                                                                           Employee
                                                                           Travel
                                <receive>                                  Status WS
<invoke>                                                                   synchronous
                                <invoke>
                                                    Coach or first class
<receive>
                                                                           American
                                 <invoke>                                  Airlines WS
                                 :                      price              asynchronou
                                 <receive>
                                 <invoke>
                                 :
                                 <receive>                                 Delta
                                 <invoke>                                  Airlines WS
                                                                price
                                                                           asynchronou
                     Asynch Process for Business Travels

                     Asynchronous web service
            95-843: Service Oriented Architecture
                Master of Information System                                 32
                        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.




     95-843: Service Oriented Architecture
         Master of Information System                 33
                 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.




       95-843: Service Oriented Architecture
           Master of Information System                34
                   Management
              PartnerLinkTypes
• Within the BPEL process WSDL, we have two roles defined
  for one of the links:

<partnerLinkType name="travelLT">

 <role name="travelService">                        The interface of the
  <portType name="tns:TravelApprovalPT" />          BPEL service is implemented
 </role>                                            at the service.

 <role name="travelServiceCustomer">                The interface of the
  <portType name="tns:ClientCallbackPT" />          client callback is implemented
</role>                                             on the client.
                                        Client callback             BPEL Process
</partnerLinkType>                      interface                   interface
                                                     travelLT
         95-843: Service Oriented Architecture       Travel Link Type
             Master of Information System                                  35
                   Management
             PartnerLinkTypes
• The employee status WS is synchronous so
   within the employee status WS WSDL we have one role defined:

<partnerLinkType name="employeeLT">

 <role name="employeeTravelStatusService">
  <portType name="tns:EmployeeTravelStatusPT" />
</role>
                                                               Interface
</partnerLinkType>                                             of employee
                                               employeeLT      status web
                                               Employee Link   service.
                                               Type
       95-843: Service Oriented Architecture
           Master of Information System                              36
                   Management
              PartnerLinkTypes
• The airline web services are asynchronous and so
  within the airline WS WSDL‟s we have two roles defined:

<partnerLinkType name="flightLT">

 <role name="airlineService">
  <portType name="tns:FlightAvailabilityPT" />
 </role>

 <role name="airlineCustomer">
  <portType name="tns:FlightCallbackPT" />
                                                                          Airline
 </role>                              Callee‟s                            interface
                                                callback    flightLT
</partnerLinkType>                              interface   Flight Link
        95-843: Service Oriented Architecture               Type
            Master of Information System                                   37
                    Management
    PartnerLinks Are in the BPEL (1)
<partnerLinks>
   <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"/>
 </partnerLinks>
             95-843: Service Oriented Architecture
                 Master of Information System            38
                         Management
     PartnerLinks Are in the BPEL(2)
<partnerLinks>
   <partnerLink name="client"                         This partner link is of
           partnerLinkType="trv:travelLT"             type travelLT. So, two
           myRole="travelService"                     interfaces are involved.
           partnerRole="travelServiceCustomer"/>      This process is the travel
   :                                                  service part. The partner
   :                                                  implements the client callback
                                                      interface.



                                        These names are defined in the
                                        partner link type section.



</partnerLinks>

             95-843: Service Oriented Architecture
                  Master of Information System                             39
                          Management
     PartnerLinks Are in the BPEL(3)
<partnerLinks>
   :                                                     This partner link
   :                                                     is of type employeeLT.
                                                         So, one interface is
   <partnerLink name="employeeTravelStatus"              involved, that is, the
           partnerLinkType="emp:employeeLT"              interface of the
           partnerRole="employeeTravelStatusService"/>   employee status web
   :                                                     service.
   :

</partnerLinks>




           95-843: Service Oriented Architecture
                  Master of Information System                           40
                          Management
      PartnerLinks Are in the BPEL(4)
<partnerLinks>

                                                    Both of these partner
  :
                                                    links are of type
  :
                                                    flightLT. As such, two
   <partnerLink name="AmericanAirlines"             interfaces are mentioned.
           partnerLinkType="aln:flightLT"           The role of this process
           myRole="airlineCustomer"                 is to provide the
           partnerRole="airlineService"/>           callback (FlightCallbackPT)
                                                    and the role the
   <partnerLink name="DeltaAirlines"                partner is to provide the
           partnerLinkType="aln:flightLT"           FlightAvailabilityPT.
           myRole="airlineCustomer"
           partnerRole="airlineService"/>

 </partnerLinks>

            95-843: Service Oriented Architecture
                 Master of Information System                               41
                         Management
     PartnerLinks Are in the BPEL(5)
<partnerLinks>
   <partnerLink name="client"
           partnerLinkType="trv:travelLT"
           myRole="travelService"
           partnerRole="travelServiceCustomer"/>

                                <partnerLinkType name="travelLT">

                                 <role name="travelService">                 The interface of the
                                  <portType name="tns:TravelApprovalPT" />   BPEL service is implemented
                                 </role>                                      at the service.

                                 <role name="travelServiceCustomer">         The interface of the
                                  <portType name="tns:ClientCallbackPT" />   client callback is implemented
                                </role>                                       on the client.

                                </partnerLinkType>


             95-843: Service Oriented Architecture
                 Master of Information System                                                42
                         Management
     PartnerLinks Are in the BPEL(6)
<partnerLink name="employeeTravelStatus"
           partnerLinkType="emp:employeeLT"
           partnerRole="employeeTravelStatusService"/>




                                    <partnerLinkType name="employeeLT">
                                     <role name="employeeTravelStatusService">
                                       <portType name="tns:EmployeeTravelStatusPT" />
                                     </role>




             95-843: Service Oriented Architecture
                 Master of Information System                                43
                         Management
     PartnerLinks Are in the BPEL(7)
<partnerLink name="AmericanAirlines"
           partnerLinkType="aln:flightLT"
           myRole="airlineCustomer"
           partnerRole="airlineService"/>
                                                <partnerLinkType name="flightLT">
   <partnerLink name="DeltaAirlines"
                                                 <role name="airlineService">
           partnerLinkType="aln:flightLT"
           myRole="airlineCustomer"               <portType name="tns:FlightAvailabilityPT" />
           partnerRole="airlineService"/>        </role>

                                                 <role name="airlineCustomer">
                                                  <portType name="tns:FlightCallbackPT" />
                                                 </role>

                                                </partnerLinkType>


             95-843: Service Oriented Architecture
                 Master of Information System                                        44
                         Management
                Variables in BPEL
<variables>

   <!-- input for this process -->
   <variable name="TravelRequest"
          messageType="trv:TravelRequestMessage"/>

   <!-- input for the Employee Travel Status Web service -->
   <variable name="EmployeeTravelStatusRequest"
          messageType="emp:EmployeeTravelStatusRequestMessage"/>

   <!-- output from the Employee Travel Status Web service -->
   <variable name="EmployeeTravelStatusResponse"
         messageType="emp:EmployeeTravelStatusResponseMessage"/>



          95-843: Service Oriented Architecture
              Master of Information System                         45
                      Management
                        Variables (2)
 <!-- input for American and Delta Web services -->
 <variable name="FlightDetails"
        messageType="aln:FlightTicketRequestMessage"/>

 <!-- output from American Airlines -->
 <variable name="FlightResponseAA"
       messageType="aln:TravelResponseMessage"/>

 <!-- output from Delta Airlines -->
 <variable name="FlightResponseDA"
       messageType="aln:TravelResponseMessage"/>

 <!-- output from BPEL process -->
 <variable name="TravelResponse"
       messageType="aln:TravelResponseMessage"/>

</variables>
         95-843: Service Oriented Architecture
               Master of Information System              46
                       Management
   BPEL Main Process (1)
<sequence>

   <!-- Receive the initial request for business travel from client -->
   <receive partnerLink="client"
         portType="trv:TravelApprovalPT"
         operation="TravelApproval"
         variable="TravelRequest"
         createInstance="yes" />




     95-843: Service Oriented Architecture
         Master of Information System                         47
                 Management
 BPEL Main Process (2)

<!-- Prepare the input for the Employee Travel Status Web Service -->
<assign>
 <copy>
  <from variable="TravelRequest" part="employee"/>
  <to variable="EmployeeTravelStatusRequest" part="employee"/>
 </copy>
</assign>




   95-843: Service Oriented Architecture
       Master of Information System                          48
               Management
     BPEL Main Process (3)
 <!-- Synchronously invoke the Employee Travel Status Web Service -->
<invoke partnerLink="employeeTravelStatus"
      portType="emp:EmployeeTravelStatusPT"
      operation="EmployeeTravelStatus"
      inputVariable="EmployeeTravelStatusRequest"
      outputVariable="EmployeeTravelStatusResponse" />




       95-843: Service Oriented Architecture
           Master of Information System                            49
                   Management
BPEL Main Process (4)
<!-- Prepare the input for the airlines. The input comes from two
     variables. -->
<assign>
 <copy>
  <from variable="TravelRequest" part="flightData"/>
  <to variable="FlightDetails" part="flightData"/>
 </copy>
 <copy>
  <from variable="EmployeeTravelStatusResponse" part="travelClass"/>
  <to variable="FlightDetails" part="travelClass"/>
 </copy>
</assign>



  95-843: Service Oriented Architecture
      Master of Information System                          50
              Management
      BPEL Main Process (5)
<!-- Make a concurrent invocation on both airlines. -->
<flow>

 <sequence>
  <!-- Async invoke of the AA Web service and wait for the callback-->

  <invoke partnerLink="AmericanAirlines"
    portType="aln:FlightAvailabilityPT"
    operation="FlightAvailability"
    inputVariable="FlightDetails" />
                                                             The receive operation
  <receive partnerLink="AmericanAirlines"                    must occur after the
    portType="aln:FlightCallbackPT"                          invoke. Hence, the
    operation="FlightTicketCallback"                         sequence tag is
    variable="FlightResponseAA" />                           used.

 </sequence>
         95-843: Service Oriented Architecture
             Master of Information System                                51
                     Management
    BPEL Main Process (6)
  <sequence>
  <!-- Async invoke of the DA Web service and wait for the callback-->

  <invoke partnerLink="DeltaAirlines"
    portType="aln:FlightAvailabilityPT"
    operation="FlightAvailability"
    inputVariable="FlightDetails" />
                                                        Only the flow is
  <receive partnerLink="DeltaAirlines"                  done in parallel. For
    portType="aln:FlightCallbackPT"                     the sequence to
    operation="FlightTicketCallback"                    complete, the airline
    variable="FlightResponseDA" />                      must respond.

 </sequence>

</flow>
      95-843: Service Oriented Architecture
          Master of Information System                                   52
                  Management
     BPEL Main Process (7)
 <!-- The airlines have responded. Select the best offer and construct the
      TravelResponse -->
<switch>

 <case condition="bpws:getVariableData('FlightResponseAA',
           'confirmationData','/confirmationData/Price')
        <= bpws:getVariableData('FlightResponseDA',
           'confirmationData','/confirmationData/Price')">

   <!-- Select American Airlines -->
   <assign>
    <copy>
     <from variable="FlightResponseAA" />
     <to variable="TravelResponse" />
    </copy>
   </assign>
 </case>95-843: Service Oriented Architecture
           Master of Information System                                      53
                   Management
  BPEL Main Process (8)
 <otherwise>
   <!-- Select Delta Airlines -->
   <assign>
    <copy>
     <from variable="FlightResponseDA" />
     <to variable="TravelResponse" />
    </copy>
   </assign>
 </otherwise>
</switch>


    95-843: Service Oriented Architecture
        Master of Information System        54
                Management
      BPEL Main Process (9)
   <!-- Make a callback to the client -->
   <invoke partnerLink="client"
        portType="trv:ClientCallbackPT"
        operation="ClientCallback"
        inputVariable="TravelResponse" />
 </sequence>

</process>




       95-843: Service Oriented Architecture
             Master of Information System      55
                     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



      95-843: Service Oriented Architecture
          Master of Information System                              56
                  Management
            Would this work?
sequence
  receive
  flow
     assign
     invoke
                                          No. The previous slide had it right.
     assign
                                          Here, we have not expressed the
     invoke
                                          synchronization dependencies
     receive
                                          between activities.
     invoke
     receive
     switch
  invoke                                  However, BPEL provides for more
                                          complex concurrency scenarios
                                          using links. A single link is specified
                                          with a source and a target.



      95-843: Service Oriented Architecture
          Master of Information System                                    57
                  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




       95-843: Service Oriented Architecture
           Master of Information System                   58
                   Management
Sources and Targets In BPEL
<sequence>
 <receive>
 <flow>
   <assign>…
      <source linkName = “A”/>               Assign before invoke.
   </assign>
   <invoke>….
      <target linkName = “A” />
      <source linkName = “B” />              Invoke before assign
   </invoke>
   <assign>
       <target linkName = “B” />
       <source linkName = “C” />             Assign before the two
       <source linkName = “D” />             invokes.
   </assign>
                                             Link names are user defined
     95-843: Service Oriented Architecture   and should be well chosen.
         Master of Information System                           59
                 Management
   Sources and Targets

<invoke>
   <target linkName = “C”/>
   <source linkName = “E”/>
</invoke>
<receive>
   <target linkName = “E”/>
   <source linkName = “G”/>
</receive>
<invoke>
   <target linkName = “D”/>
   <source linkName =“F” />
</invoke>


   95-843: Service Oriented Architecture
       Master of Information System        60
               Management
      Sources and Targets

  <receive>
     <target linkName = “F”/>
     <source linkName = “H”/>
  </receive>
  <switch>
      <target linkName = “G”/>
      <target linkName = “H”/>
  </switch>
</flow>
<invoke>




     95-843: Service Oriented Architecture
         Master of Information System        61
                 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,

      <flow>
        <links>
            <link name = “A”/>
            <link name = “B” />
        </links>
        :
• 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.

        95-843: Service Oriented Architecture
            Master of Information System                          62
                    Management

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:10/19/2011
language:English
pages:62