Business Process Execution Language (BPEL) — Part II

Web-Based Services (INFOSYS 290-3)

Erik Wilde, UC Berkeley iSchool
Wednesday, October 18, 2006
Creative Commons License

This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 2.5 License.

Abstract

BPEL's processing model is based on the assumption that all import and export of data is done by using Web Services. BPEL differentiates two kinds of processes, executable processes and business protocols (abstract processes). While executable processes can be executed by a BPEL engine, business protocols use process descriptions that specify the mutually visible message exchange behavior of each of the parties involved in the protocol, without revealing their internal behavior. For the executable processes, BPEL provides a number of constructs for describing the behavior of such a process.

Web Service Integration

Outline (BPEL Foundations)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

XML Technologies

Notation

BPMN Example

Outline (BPEL and WSDL)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

Extending WSDL

WSDL Combination

Basic WSDL

<definitions targetNamespace="http://tempuri.org/services/loanapprover" xmlns:tns="http://tempuri.org/services/loanapprover" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:loandef="http://tempuri.org/services/loandefinitions" xmlns="http://schemas.xmlsoap.org/wsdl/">
 <import namespace="http://tempuri.org/services/loandefinitions" location="http://localhost:8080/bpws-samples/loanapproval/loandefinitions.wsdl"/>
 <message name="approvalMessage">
  <part name="accept" type="xsd:string"/>
 </message>
 <portType name="loanApprovalPT">
  <operation name="approve">
   <input message="loandef:creditInformationMessage"/>
   <output message="tns:approvalMessage"/>
   <fault name="loanProcessFault" message="loandef:loanRequestErrorMessage"/>
  </operation>
 </portType>
 <binding ...> ... </binding>
 <service name="LoanApprover">....</service>
</definitions>

WSDL Example

 <portType name="riskAssessmentPT">
  <operation name="check">
   <input message="loandef:creditInformationMessage"/>
   <output message="tns:riskAssessmentMessage"/>
   <fault name="loanProcessFault" message="loandef:loanRequestErrorMessage"/>
  </operation>
 </portType>
<plnk:partnerLinkType name="riskAssessmentLinkType"> 
    <plnk:role name="assessor">  
      <portType name="asns:riskAssessmentPT"/>  
    </plnk:role>  
</plnk:partnerLinkType>

Outline (BPEL Process Types)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

Orchestration vs. Choreography

Executable Processes

Business Protocols (Abstract Processes)

Outline (BPEL Processing Model)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

Combining Services

Process Example

Partners

Invoked by a Partner

Invoking a Partner

Interaction with a Partner

Defining Partner Links

<partners>
    <partner name="customer"
             partnerLinkType="lns:loanApproveLinkType"
             myRole="approver"/>
    <partner name="approver"
             partnerLinkType="lns:loanApprovalLinkType"
             partnerRole="approver"/>
    <partner name="assessor" 
             partnerLinkType="lns:riskAssessmentLinkType" 
             partnerRole="assessor"/>
</partners>

Correlation Sets

Outline (BPEL Activities)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

Executable Processes

Language Constructs

Activity Categories

Outline (Basic Activities)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

Invoking Web Service Operations

Providing Web Service Operations

Variable Assignments

Waiting

Outline (Structured Activities)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

BPEL Control Flow

Sequential Control

Flows

Pick

Outline (Conclusions)

  1. BPEL Foundations [3]
  2. BPEL and WSDL [4]
  3. BPEL Process Types [3]
  4. BPEL Processing Model [8]
  5. BPEL Activities [11]
    1. Basic Activities [4]
    2. Structured Activities [4]
  6. Conclusions [1]

BPEL is Programming