SlideShare a Scribd company logo
1 of 32
Business Process Execution Language
Business Process Execution Language
    Define business processes as coordinated sets of Web
     service interactions
    Define both abstract and executable processes
    Enable the creation of compositions of Web services
    Where it comes from:
       Strong roots in traditional flow models
       Concepts from structured programming languages
       On top of WSDL and core XML specifications
       Merges WSFL and XLANG concepts
    The OASIS WS BPEL Technical Committee is advancing
     the BPEL4WS Specification

Web Services: BPEL                                          2
BPEL & WSDL
                                                             Shipping
                                                             Services
                                                             portType

           Invoice                 Receive                              Production
          Services                 Purchase                             Scheduling
          portType                                                      portType
                                    Order




                       Initiate     Decide        Initiate
                        Price         On        Production
                     Calculation    Shipper     Scheduling


    Purchase
      Order
    portType                       Arrange
                      Complete     Logistics     Complete
                        Price                   Production
                     Calculation                Scheduling




                                    Invoice
                                   Processing




Web Services: BPEL                                                                   3
BPEL & WSDL
                                                             Shipping
                                                             Services
                                                             portType

           Invoice                 Receive                              Production
          Services                 Purchase                             Scheduling
          portType                                                      portType
                                    Order




                       Initiate     Decide        Initiate
                        Price         On        Production               operation
                     Calculation    Shipper     Scheduling


    Purchase
      Order
    portType                       Arrange
                                                                         message
                      Complete     Logistics     Complete
                        Price                   Production
                     Calculation                Scheduling




                                    Invoice
                                   Processing




Web Services: BPEL                                                                   4
BPEL & WSDL
                                                            Shipping
                                                            Services
                                                            portType

        Invoice                    Receive                             Production
       Services                    Purchase                            Scheduling
       portType                                                        portType
                                    Order




                       Initiate    Decide        Initiate
                        Price        On        Production               operation
                     Calculation   Shipper     Scheduling


   Purchase
     Order
   portType                        Arrange
                                                                        message
                      Complete     Logistics    Complete
                        Price                  Production
                     Calculation               Scheduling
<portType name=“schedulingPT”
  <operation name=“requestProductionScheduling”>
    <input message=“pos:POMessage”/>Invoice
  </operation>                     Processing
  <operation name=“sendShippingSchedule”>
    <input message=“pos:scheduleMessage”/>
  </operation>
</portType>
Web Services: BPEL                                                                  5
Structure of a BPEL Process
 <process ...>

    <partners> ...                  Web services the process
    </partners>                      interacts with
    <containers> ...                Data used by the process
    </containers>
                                    Used to support asynchronous
    <correlationSets> ...
    </correlationSets>               interactions
    <faultHandlers> ...             Alternate execution path to deal
    </faultHandlers>                 with faulty conditions
    <compensationHandlers> ...      Code to execute when “undoing”
    </compensationHandlers>          an action
                                    What the process actually does
    (activities)*

 </process>

Web Services: BPEL                                                      6
BPEL and WSDL Partners


            Partner B                             Partner A




                        WSDL
                                         WSDL A

                               Process




Web Services: BPEL                                            7
BPEL and WSDL Partners

           Partner B
                                                    Partner A




                                           WSDL A


                       Service Link Type




Web Services: BPEL                                              8
Partner Links
  Partner  links are used to represent interactions
   between a service and each of the parties with which
   it interacts
  Partner links define the messages and port types
   used in the interactions in both directions, along with
   role names




Web Services: BPEL                                           9
Partner Definitions and Links
 A   partner is accessed over a WS “channel”, defined by
    a service link type
              <partner name=“...”      serviceLinkType=“...”
                     partnerRole=“...” myRole=“...”/>

 A   SLT defines two roles and the portTypes that each
    role needs to support
              <serviceLinkType name=“...”>
                  <role name=“...">
                      <portType name=“...” />*
                  </role>
                  <role name=“...”>
                      <portType name=“...”/>*
                  </role>
              </serviceLinkType>

Web Services: BPEL                                             10
Partner Links

                        “Invoicing”                           “Scheduling”
                        partner link                           partner link
   “Purchasing”
    partner link




                   <partnerLink name="scheduling"
                                  partnerLinkType="lns:schedulingLT"
                          partnerRole="schedulingService"/>                   The portType
                                                                               used in the
                     <plnk:partnerLinkType name="schedulingLT">
                                                        “Shipping”             partner link
                         <plnk:role name="schedulingService"> link
                                                        partner
                             <plnk:portType name="pos:schedulingPT"/>
                         </plnk:role>
                      </plnk:partnerLinkType>




Web Services: BPEL                                                                            11
Traditional Flow Models

   Control links define     Activities represent
   execution flow as a
   directed acyclic graph   units of processing




     Flow of data is
     explicitly modeled     Activities are mapped to
     through data links     application invocations
                            or human actions

Web Services: BPEL                                 12
BPEL Data Model
                                                Activities input /
    Globally scoped data
                                                output is kept in
    variables typed as WSDL
                                                global variables
    messages




   Assignment
   activities move            <container name=“...” message=“...”/>*
   data around

Web Services: BPEL                                                   13
BPEL Basic Activities
  Invokes           an operation on a partner
         <invoke partner=“...” portType=“...” operation=“...”
               inputContainer=“...” outputContainer=“...”/>
  Receives          invocation from a partner
         <receive partner=“...” portType=“...” operation=“...”
              container=“...” [createInstance=“...”] />
  Sends        a reply message in partner invocation
         <reply partner=“...” portType=“...” operation=“...”
            container=“...”/>
  Data       assignment between containers
         <assign>
            <copy>
               <from container=“...”/> <to container=“...”/>
            </copy>+
         </assign>
Web Services: BPEL                                               14
BPEL Composition of Web Services

                            Process
                            WSDL




           Component B                        Component A




                         B’s WSDL
                                         A’s WSDL


                     Service Link Type




Web Services: BPEL                                          15
More Basic Activities
  Detects  processing error and switches into fault
    processing mode
              <throw faultName=“...” faultContainer=“...”/>
  Pull     the plug on this instance
              <terminate/>
  Execution         stops for a specified amount of time
              <wait for=“...”? until=“...”? />
  Do     nothing; a convenience element
              <empty>




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

    <sequence>
       <receive .../>
       <flow>
          <sequence>                        Seq
              <invoke ... />
              <while ... >
                                                  Flow
                   <assign> ... </assign>             Seq   Seq
              </while>
          </sequence>
          <sequence>
              <receive ... />                       While

              <invoke ... />
          </sequence>
       </flow>
       <reply ... />
    </sequence>


Web Services: BPEL                                                18
Asynchronous Interactions in BPEL
  BPEL  can model many types of interactions:
     Simple stateless interactions
     Stateful, long running, asynchronous interactions
  For the latter case, how to ensure that two (or more)
   messages are referring to the same “session” ?




Web Services: BPEL                                         19
Message Correlation
  Associating   two or more messages with each other in
   an asynchronous environment
  Done by associating contents in a given message with
   its correlating message
  For example, in a purchase order/invoice scenario, the
   invoice may contain the corresponding purchase order
   number
 Purchase Order:                    Invoice:
 <PurchaseOrder>                   <Invoice>
    <PurchaseOrderNumber>            <InvoiceNumber>
    <PurchaseOrderDate>              <InvoiceDate>
          ........                   <PurchaseOrderNumber>
 </PurchaseOrder>                    ........
                                   </Invoice>

                     common in both messages
Web Services: BPEL                                           20
Correlation Sets
  What     is a correlation set?
       A set of business data fields that capture the state of
        the interaction (“correlating business data”), e.g., a
        “purchase order number”, a “customer id”, etc.
       Each set is initialized once
       Its values do not change in the course of the
        interaction

  CSs  : the data used to maintain the state of the
   interaction (a “conversation”)
  At the process end of the interaction, CSs allow
   incoming messages to reach the right process instance

Web Services: BPEL                                                21
Defining Correlation Sets
 A   CS is a named set of properties. Properties are defined
    as WSDL extensibility elements

          <correlationSet name=“...” properties=“...”/>


 A     property has a simple XSD type and a global name

          <bpws:property name=“...” type=“...” />




Web Services: BPEL                                         22
Properties
 A   property is “mapped” to a field in a WSDL message
    type
                     <bpws:propertyAlias
                         propertyName=“...”
                         messageType=“...” part=“...”
                         query=“...” />
  The property can thus be found in the messages
   actually exchanged
  Typically a property will be mapped to several different
   message types and carried on many interactions,
   across operations and portTypes


Web Services: BPEL                                            23
Using Correlation
    An input or output operation identifies which correlation
     sets apply to the messages received or sent
         <receive partner=“...” operation=“...” portType=“...”
                container=“...”>
            <correlations>
                <correlation set=“PurchaseOrder” initiation=“yes”/>
            </correlations>
         </receive>

    That CS will be used to assure that the message is
     related to the appropriate stateful interaction
    A CS is initialized once, in an interaction where the set
     appears with the “initiation” attribute set to “yes”. Its
     value may never be changed afterward
Web Services: BPEL                                                    24
Example: Defining Correlation Sets
  A   customer ID and order number represent a unique
     purchase order

            <correlationSet name=“PurchaseOrder”
                 properties=“cor:customerID cor:orderNumber”/>


            <correlationSet name=“Invoice”
                 properties=“cor:vendorID cor:invoiceNumber”/>


  A   vendor ID and invoice number represent a unique
     invoice



Web Services: BPEL                                               25
Example: Using Correlation Sets
   Declares         correlation between purchase order and
     invoice

         <invoke partnerLink=“Buyer” portType=“SP:BuyerPT”
                operation=“AsyncPurchaseResponse”
                inputVariable=“POResponse”>
           <correlations>
             <correlation set=“PurchaseOrder”
                          initiate=“no” pattern=“out”>
             <correlation set=“Invoice”
                          initiate=“yes” pattern=“out”>
           </correlations>
         </invoke>



Web Services: BPEL                                            26
BPEL Handlers and Scopes
    A scope is a set of (basic
     or structured) activities

    Each scope can have two      scope
     types of handlers                    Fault Handler
     associated:
    Fault handlers
     Many can be attached,
     for different fault types
    Compensation handler                 Compensation
     A single compensation                 Handler
     handler per scope




Web Services: BPEL                                        27
Scope and Fault Example


                     A
                           Fault

                     B
                               E
                     C

                     D


Web Services: BPEL                 28
How Handlers Work
 A  fault handler defines alternate execution paths when
   a fault occurs within the scope
  Typical scenario:
      1.   Fault is thrown (retuned by invoke or explicitly by process)
      2.   Execution of scope is terminated
      3.   Appropriate fault handler located (with usual propagation
           semantics)
      4.   Main execution is compensated to “undo” business effects of
           unfinished work
 A   compensation handler is used to reverse the work
    performed by an already completed scope
          A compensation handler can only be invoked by the fault
           handler or compensation handler of its immediate enclosing
           scope


Web Services: BPEL                                                        29
Partial Work Unavoidable
 Business processes are often of long duration, which
  means that a business process may need to be cancelled
  after many transactions have been committed during its
  progress
 Consider a situation in which a user cancels a purchase
  order:
                            Revert back to original state


           Submit      Process                          Order      User
                                        Check                     Cancels!
          Purchase    Purchase                           From
                                      Inventory
            Order       Order                          Supplier



 In  this situation, it is not possible to lock system resources
   (ex: database records) for extended periods of time
       Therefore, the partial work must be undone as best as possible
Web Services: BPEL                                                           30
Compensation Handlers
  Invoked  to perform compensation activities — a
    “wrapper” for compensation activities:
      Specifies a compensating operation on a given
       portType for a given partner link:
                                                 The CancelPurchase
     <compensationHandler>                       operation invokes a
        <invoke partnerLink=“Seller”             cancellation
               portType=“SP:Purchasing”
               operation=“CancelPurchase”
               inputVariable=“getResponse”
               outputVariable=“getConfirmation”>
           <correlations>
             <correlation set=“PurchaseOrder” pattern=“out”/>
           </correlations>
        </invoke>                               The response to the
     </compensationHandler>                     purchase request is
                                                  used as input
Web Services: BPEL                                                     31
Dynamic Service Selection and Invocation
  The   relevant information about a partner service can be
   set up as part of business process deployment
     This is a more “static” approach
  However, it is also possible to select and assign partner
   services dynamically
  BPEL uses endpoint references defined in the WS-
   Addressing specification for this capability
   http://msdn.microsoft.com/ws/2003/03/ws-addressing
          <wsa:EndpointReference xmlns:wsa=“...”>
             <wsa:Address>http://www.someendpoint.com</wsa:Address>
             <wsa:PortType>PurchaseOrderPortType</wsa:PortType>
          </wsa:EndpointReference>

                     PortType and Address assocation
Web Services: BPEL                                                    32

More Related Content

Viewers also liked

Fundamentals of Data Analytics Outline
Fundamentals of Data Analytics OutlineFundamentals of Data Analytics Outline
Fundamentals of Data Analytics OutlineDan Meyer
 
презентация.фрагмент.луканина
презентация.фрагмент.луканинапрезентация.фрагмент.луканина
презентация.фрагмент.луканинаelena_lukanina
 
Fundamentals of Recruitment Analytics Outline
Fundamentals of Recruitment Analytics OutlineFundamentals of Recruitment Analytics Outline
Fundamentals of Recruitment Analytics OutlineDan Meyer
 
Crisis Communication Case Study: Ebola in Animals
Crisis Communication Case Study: Ebola in AnimalsCrisis Communication Case Study: Ebola in Animals
Crisis Communication Case Study: Ebola in AnimalsRebecca Poling
 

Viewers also liked (8)

Fundamentals of Data Analytics Outline
Fundamentals of Data Analytics OutlineFundamentals of Data Analytics Outline
Fundamentals of Data Analytics Outline
 
презентация.фрагмент.луканина
презентация.фрагмент.луканинапрезентация.фрагмент.луканина
презентация.фрагмент.луканина
 
mypurplemartini.com
mypurplemartini.commypurplemartini.com
mypurplemartini.com
 
Guia ii medio quimica Propiedades coligativas
Guia  ii medio quimica Propiedades coligativasGuia  ii medio quimica Propiedades coligativas
Guia ii medio quimica Propiedades coligativas
 
Fundamentals of Recruitment Analytics Outline
Fundamentals of Recruitment Analytics OutlineFundamentals of Recruitment Analytics Outline
Fundamentals of Recruitment Analytics Outline
 
Fotosíntesis clase 3 de octubre
Fotosíntesis clase 3 de octubreFotosíntesis clase 3 de octubre
Fotosíntesis clase 3 de octubre
 
Breast biopsy ppt
Breast biopsy pptBreast biopsy ppt
Breast biopsy ppt
 
Crisis Communication Case Study: Ebola in Animals
Crisis Communication Case Study: Ebola in AnimalsCrisis Communication Case Study: Ebola in Animals
Crisis Communication Case Study: Ebola in Animals
 

Similar to D06 bpel v3

Datamatics Content Billing Solution für Online Publishing
Datamatics Content Billing Solution für Online PublishingDatamatics Content Billing Solution für Online Publishing
Datamatics Content Billing Solution für Online PublishingDatamatics Global Services GmbH
 
SAP Certified Supplier/ Customer Portal
SAP Certified Supplier/ Customer PortalSAP Certified Supplier/ Customer Portal
SAP Certified Supplier/ Customer PortalAndrew Asir
 
Apache O D E Apache Con E U2008
Apache O D E  Apache Con E U2008Apache O D E  Apache Con E U2008
Apache O D E Apache Con E U2008elliando dias
 
Bill Stankiewicz Copy Greg Smith Oracle For Web
Bill Stankiewicz Copy Greg Smith Oracle For WebBill Stankiewicz Copy Greg Smith Oracle For Web
Bill Stankiewicz Copy Greg Smith Oracle For WebBillStankiewicz
 
Prakash Narayan Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E EPrakash  Narayan   Killer S O Aapps Using J2 E E
Prakash Narayan Killer S O Aapps Using J2 E ESOA Symposium
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot ComponentsBIOVIA
 
Real time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalRReal time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalRRoy Cornelissen
 
10 Tricks and Tips for WCF
10 Tricks and Tips for WCF10 Tricks and Tips for WCF
10 Tricks and Tips for WCFBarry Dorrans
 
Exploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process ExecutionExploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process ExecutionCesare Pautasso
 
WebXpress Solutions Finance
WebXpress Solutions FinanceWebXpress Solutions Finance
WebXpress Solutions FinanceWebXpress.IN
 
What is new in WCF 4.0?
What is new in WCF 4.0?What is new in WCF 4.0?
What is new in WCF 4.0?Bala Subra
 
Whats new in WCF 4.0
Whats new in WCF 4.0Whats new in WCF 4.0
Whats new in WCF 4.0Eyal Vardi
 
Telecom OSS/BSS Overview
Telecom OSS/BSS OverviewTelecom OSS/BSS Overview
Telecom OSS/BSS Overviewmagidg
 
TH e-GIF on SOA Using Open Enterprise Architecture
TH e-GIF on SOA Using Open Enterprise ArchitectureTH e-GIF on SOA Using Open Enterprise Architecture
TH e-GIF on SOA Using Open Enterprise ArchitectureThanachart Numnonda
 

Similar to D06 bpel v3 (20)

Datamatics Content Billing Solution für Online Publishing
Datamatics Content Billing Solution für Online PublishingDatamatics Content Billing Solution für Online Publishing
Datamatics Content Billing Solution für Online Publishing
 
SAP Certified Supplier/ Customer Portal
SAP Certified Supplier/ Customer PortalSAP Certified Supplier/ Customer Portal
SAP Certified Supplier/ Customer Portal
 
Oracle
OracleOracle
Oracle
 
Apache O D E Apache Con E U2008
Apache O D E  Apache Con E U2008Apache O D E  Apache Con E U2008
Apache O D E Apache Con E U2008
 
Bill Stankiewicz Copy Greg Smith Oracle For Web
Bill Stankiewicz Copy Greg Smith Oracle For WebBill Stankiewicz Copy Greg Smith Oracle For Web
Bill Stankiewicz Copy Greg Smith Oracle For Web
 
Prakash Narayan Killer S O Aapps Using J2 E E
Prakash  Narayan   Killer S O Aapps Using J2 E EPrakash  Narayan   Killer S O Aapps Using J2 E E
Prakash Narayan Killer S O Aapps Using J2 E E
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components
 
Edi2
Edi2Edi2
Edi2
 
Enterprise service bus part 1
Enterprise service bus part 1Enterprise service bus part 1
Enterprise service bus part 1
 
Real time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalRReal time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalR
 
10 Tricks and Tips for WCF
10 Tricks and Tips for WCF10 Tricks and Tips for WCF
10 Tricks and Tips for WCF
 
WCF
WCFWCF
WCF
 
Exploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process ExecutionExploiting Multicores to Optimize Business Process Execution
Exploiting Multicores to Optimize Business Process Execution
 
WebXpress Solutions Finance
WebXpress Solutions FinanceWebXpress Solutions Finance
WebXpress Solutions Finance
 
What is new in WCF 4.0?
What is new in WCF 4.0?What is new in WCF 4.0?
What is new in WCF 4.0?
 
Ioms
IomsIoms
Ioms
 
Whats new in WCF 4.0
Whats new in WCF 4.0Whats new in WCF 4.0
Whats new in WCF 4.0
 
Telecom OSS/BSS Overview
Telecom OSS/BSS OverviewTelecom OSS/BSS Overview
Telecom OSS/BSS Overview
 
TH e-GIF on SOA Using Open Enterprise Architecture
TH e-GIF on SOA Using Open Enterprise ArchitectureTH e-GIF on SOA Using Open Enterprise Architecture
TH e-GIF on SOA Using Open Enterprise Architecture
 
Ispcms.ppt
Ispcms.pptIspcms.ppt
Ispcms.ppt
 

Recently uploaded

2-tool presenthdbdbdbdbddhdhddation.pptx
2-tool presenthdbdbdbdbddhdhddation.pptx2-tool presenthdbdbdbdbddhdhddation.pptx
2-tool presenthdbdbdbdbddhdhddation.pptxsuhanimunjal27
 
Government polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdGovernment polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdshivubhavv
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...babafaisel
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️soniya singh
 
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...amitlee9823
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Call Girls in Nagpur High Profile
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...amitlee9823
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxjanettecruzeiro1
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...kumaririma588
 
Stark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxStark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxjeswinjees
 
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...Call Girls in Nagpur High Profile
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...amitlee9823
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneLukeKholes
 

Recently uploaded (20)

2-tool presenthdbdbdbdbddhdhddation.pptx
2-tool presenthdbdbdbdbddhdhddation.pptx2-tool presenthdbdbdbdbddhdhddation.pptx
2-tool presenthdbdbdbdbddhdhddation.pptx
 
Government polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcdGovernment polytechnic college-1.pptxabcd
Government polytechnic college-1.pptxabcd
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
 
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
 
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptx
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
 
Stark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxStark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptx
 
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, Pune
 
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 

D06 bpel v3

  • 2. Business Process Execution Language  Define business processes as coordinated sets of Web service interactions  Define both abstract and executable processes  Enable the creation of compositions of Web services  Where it comes from:  Strong roots in traditional flow models  Concepts from structured programming languages  On top of WSDL and core XML specifications  Merges WSFL and XLANG concepts  The OASIS WS BPEL Technical Committee is advancing the BPEL4WS Specification Web Services: BPEL 2
  • 3. BPEL & WSDL Shipping Services portType Invoice Receive Production Services Purchase Scheduling portType portType Order Initiate Decide Initiate Price On Production Calculation Shipper Scheduling Purchase Order portType Arrange Complete Logistics Complete Price Production Calculation Scheduling Invoice Processing Web Services: BPEL 3
  • 4. BPEL & WSDL Shipping Services portType Invoice Receive Production Services Purchase Scheduling portType portType Order Initiate Decide Initiate Price On Production operation Calculation Shipper Scheduling Purchase Order portType Arrange message Complete Logistics Complete Price Production Calculation Scheduling Invoice Processing Web Services: BPEL 4
  • 5. BPEL & WSDL Shipping Services portType Invoice Receive Production Services Purchase Scheduling portType portType Order Initiate Decide Initiate Price On Production operation Calculation Shipper Scheduling Purchase Order portType Arrange message Complete Logistics Complete Price Production Calculation Scheduling <portType name=“schedulingPT” <operation name=“requestProductionScheduling”> <input message=“pos:POMessage”/>Invoice </operation> Processing <operation name=“sendShippingSchedule”> <input message=“pos:scheduleMessage”/> </operation> </portType> Web Services: BPEL 5
  • 6. Structure of a BPEL Process <process ...> <partners> ...  Web services the process </partners> interacts with <containers> ...  Data used by the process </containers>  Used to support asynchronous <correlationSets> ... </correlationSets> interactions <faultHandlers> ...  Alternate execution path to deal </faultHandlers> with faulty conditions <compensationHandlers> ...  Code to execute when “undoing” </compensationHandlers> an action  What the process actually does (activities)* </process> Web Services: BPEL 6
  • 7. BPEL and WSDL Partners Partner B Partner A WSDL WSDL A Process Web Services: BPEL 7
  • 8. BPEL and WSDL Partners Partner B Partner A WSDL A Service Link Type Web Services: BPEL 8
  • 9. Partner Links  Partner links are used to represent interactions between a service and each of the parties with which it interacts  Partner links define the messages and port types used in the interactions in both directions, along with role names Web Services: BPEL 9
  • 10. Partner Definitions and Links A partner is accessed over a WS “channel”, defined by a service link type <partner name=“...” serviceLinkType=“...” partnerRole=“...” myRole=“...”/> A SLT defines two roles and the portTypes that each role needs to support <serviceLinkType name=“...”> <role name=“..."> <portType name=“...” />* </role> <role name=“...”> <portType name=“...”/>* </role> </serviceLinkType> Web Services: BPEL 10
  • 11. Partner Links “Invoicing” “Scheduling” partner link partner link “Purchasing” partner link <partnerLink name="scheduling" partnerLinkType="lns:schedulingLT" partnerRole="schedulingService"/> The portType used in the <plnk:partnerLinkType name="schedulingLT"> “Shipping” partner link <plnk:role name="schedulingService"> link partner <plnk:portType name="pos:schedulingPT"/> </plnk:role> </plnk:partnerLinkType> Web Services: BPEL 11
  • 12. Traditional Flow Models Control links define Activities represent execution flow as a directed acyclic graph units of processing Flow of data is explicitly modeled Activities are mapped to through data links application invocations or human actions Web Services: BPEL 12
  • 13. BPEL Data Model Activities input / Globally scoped data output is kept in variables typed as WSDL global variables messages Assignment activities move <container name=“...” message=“...”/>* data around Web Services: BPEL 13
  • 14. BPEL Basic Activities  Invokes an operation on a partner <invoke partner=“...” portType=“...” operation=“...” inputContainer=“...” outputContainer=“...”/>  Receives invocation from a partner <receive partner=“...” portType=“...” operation=“...” container=“...” [createInstance=“...”] />  Sends a reply message in partner invocation <reply partner=“...” portType=“...” operation=“...” container=“...”/>  Data assignment between containers <assign> <copy> <from container=“...”/> <to container=“...”/> </copy>+ </assign> Web Services: BPEL 14
  • 15. BPEL Composition of Web Services Process WSDL Component B Component A B’s WSDL A’s WSDL Service Link Type Web Services: BPEL 15
  • 16. More Basic Activities  Detects processing error and switches into fault processing mode <throw faultName=“...” faultContainer=“...”/>  Pull the plug on this instance <terminate/>  Execution stops for a specified amount of time <wait for=“...”? until=“...”? />  Do nothing; a convenience element <empty> Web Services: BPEL 16
  • 17. BPEL Structured Activities <sequence> execute activities sequentially <flow> execute activities in parallel <while> iterate execution of activities until condition is violated <pick> several event activities (receive message, timer event) scheduled for execution in parallel; first one is selected and corresponding code executed <link ...> defines a control dependency between a source activity and a target Web Services: BPEL 17
  • 18. Nesting Structured Activities: Example <sequence> <receive .../> <flow> <sequence> Seq <invoke ... /> <while ... > Flow <assign> ... </assign> Seq Seq </while> </sequence> <sequence> <receive ... /> While <invoke ... /> </sequence> </flow> <reply ... /> </sequence> Web Services: BPEL 18
  • 19. Asynchronous Interactions in BPEL  BPEL can model many types of interactions:  Simple stateless interactions  Stateful, long running, asynchronous interactions  For the latter case, how to ensure that two (or more) messages are referring to the same “session” ? Web Services: BPEL 19
  • 20. Message Correlation  Associating two or more messages with each other in an asynchronous environment  Done by associating contents in a given message with its correlating message  For example, in a purchase order/invoice scenario, the invoice may contain the corresponding purchase order number Purchase Order: Invoice: <PurchaseOrder> <Invoice> <PurchaseOrderNumber> <InvoiceNumber> <PurchaseOrderDate> <InvoiceDate> ........ <PurchaseOrderNumber> </PurchaseOrder> ........ </Invoice> common in both messages Web Services: BPEL 20
  • 21. Correlation Sets  What is a correlation set?  A set of business data fields that capture the state of the interaction (“correlating business data”), e.g., a “purchase order number”, a “customer id”, etc.  Each set is initialized once  Its values do not change in the course of the interaction  CSs : the data used to maintain the state of the interaction (a “conversation”)  At the process end of the interaction, CSs allow incoming messages to reach the right process instance Web Services: BPEL 21
  • 22. Defining Correlation Sets A CS is a named set of properties. Properties are defined as WSDL extensibility elements <correlationSet name=“...” properties=“...”/> A property has a simple XSD type and a global name <bpws:property name=“...” type=“...” /> Web Services: BPEL 22
  • 23. Properties A property is “mapped” to a field in a WSDL message type <bpws:propertyAlias propertyName=“...” messageType=“...” part=“...” query=“...” />  The property can thus be found in the messages actually exchanged  Typically a property will be mapped to several different message types and carried on many interactions, across operations and portTypes Web Services: BPEL 23
  • 24. Using Correlation  An input or output operation identifies which correlation sets apply to the messages received or sent <receive partner=“...” operation=“...” portType=“...” container=“...”> <correlations> <correlation set=“PurchaseOrder” initiation=“yes”/> </correlations> </receive>  That CS will be used to assure that the message is related to the appropriate stateful interaction  A CS is initialized once, in an interaction where the set appears with the “initiation” attribute set to “yes”. Its value may never be changed afterward Web Services: BPEL 24
  • 25. Example: Defining Correlation Sets A customer ID and order number represent a unique purchase order <correlationSet name=“PurchaseOrder” properties=“cor:customerID cor:orderNumber”/> <correlationSet name=“Invoice” properties=“cor:vendorID cor:invoiceNumber”/> A vendor ID and invoice number represent a unique invoice Web Services: BPEL 25
  • 26. Example: Using Correlation Sets  Declares correlation between purchase order and invoice <invoke partnerLink=“Buyer” portType=“SP:BuyerPT” operation=“AsyncPurchaseResponse” inputVariable=“POResponse”> <correlations> <correlation set=“PurchaseOrder” initiate=“no” pattern=“out”> <correlation set=“Invoice” initiate=“yes” pattern=“out”> </correlations> </invoke> Web Services: BPEL 26
  • 27. BPEL Handlers and Scopes  A scope is a set of (basic or structured) activities  Each scope can have two scope types of handlers Fault Handler associated:  Fault handlers Many can be attached, for different fault types  Compensation handler Compensation A single compensation Handler handler per scope Web Services: BPEL 27
  • 28. Scope and Fault Example A Fault B E C D Web Services: BPEL 28
  • 29. How Handlers Work A fault handler defines alternate execution paths when a fault occurs within the scope  Typical scenario: 1. Fault is thrown (retuned by invoke or explicitly by process) 2. Execution of scope is terminated 3. Appropriate fault handler located (with usual propagation semantics) 4. Main execution is compensated to “undo” business effects of unfinished work A compensation handler is used to reverse the work performed by an already completed scope  A compensation handler can only be invoked by the fault handler or compensation handler of its immediate enclosing scope Web Services: BPEL 29
  • 30. Partial Work Unavoidable  Business processes are often of long duration, which means that a business process may need to be cancelled after many transactions have been committed during its progress  Consider a situation in which a user cancels a purchase order: Revert back to original state Submit Process Order User Check Cancels! Purchase Purchase From Inventory Order Order Supplier  In this situation, it is not possible to lock system resources (ex: database records) for extended periods of time  Therefore, the partial work must be undone as best as possible Web Services: BPEL 30
  • 31. Compensation Handlers  Invoked to perform compensation activities — a “wrapper” for compensation activities: Specifies a compensating operation on a given portType for a given partner link: The CancelPurchase <compensationHandler> operation invokes a <invoke partnerLink=“Seller” cancellation portType=“SP:Purchasing” operation=“CancelPurchase” inputVariable=“getResponse” outputVariable=“getConfirmation”> <correlations> <correlation set=“PurchaseOrder” pattern=“out”/> </correlations> </invoke> The response to the </compensationHandler> purchase request is used as input Web Services: BPEL 31
  • 32. Dynamic Service Selection and Invocation  The relevant information about a partner service can be set up as part of business process deployment  This is a more “static” approach  However, it is also possible to select and assign partner services dynamically  BPEL uses endpoint references defined in the WS- Addressing specification for this capability http://msdn.microsoft.com/ws/2003/03/ws-addressing <wsa:EndpointReference xmlns:wsa=“...”> <wsa:Address>http://www.someendpoint.com</wsa:Address> <wsa:PortType>PurchaseOrderPortType</wsa:PortType> </wsa:EndpointReference> PortType and Address assocation Web Services: BPEL 32