Title: Business Process Management Languages
1Business Process Management Languages
Slinger Jansen Johan Versendaal Pascal van
Ravesteyn
Utrecht University
2Outline
- What are BPM Languages?
- Different languages
- BPEL
- BPML
- BPEL4People
- ebXML
- WSDL
- OWL-S
- Exercise
3History of Competing Standards
Source http//www.radikalfx.com/bpel/usage.html
4BPEL example of Purchase order processing
5Business Process Execution Language
- Introduced by IBM, Microsoft and BEA BPEL for
Web Services (BPEL4WS, or just BPEL) - Currently managed by OASIS
- Combines the capabilities of
- IBM's Web services flow language (WSFL) from IBM
WebSphere Business Integrator - Microsoft's XLANG as used by Microsoft BizTalk
Server 2002. - BPEL includes
- WSFL support for graph-oriented processes,
- XLANG support of structural constructs for
processes. - BPEL is designed to support implementation of any
complex business process, as well as to describe
interfaces of business processes.
6BPEL and Activity Diagrams
- BPEL is a language
- Not often written, mostly designed with Activity
Diagrams - Some typical statements
- Invoke an operation on a Web service (ltinvokegt)
- Wait for an external message (ltreceivegt)
- Generate a response for input/output (ltreplygt)
- Wait for some time (ltwaitgt)
- Copy data between locations (ltassigngt)
- Indicate that an error occurred or something went
wrong (ltthrowgt) - Terminate the entire service instance
(ltterminategt)
7More Typical BPEL Statements
- Do nothing (ltemptygt)
- Define a sequence of steps to be executed in a
specific order (ltsequencegt) - Branch using a "case-statement" (ltswitchgt)
- Define a loop (ltwhilegt)
- Execute one of several alternative paths (ltpickgt)
- Indicate that steps should be executed in
parallel (ltflowgt) - Indicate fault logic processing via ltthrowgt and
ltcatchgt - Define compensation for error recovery -
implement compensating actions for any
irreversible actions in error
8Developing BPEL process flow
- BPEL is a process flow language and generally
developed using a visual editor that creates a
flow diagram - Application to application interaction
(orchestration) - In develop the sample BPEL process, you will go
through the following steps - Step 1 - Get familiar with the involved Web
services - Step 2 - Define the WSDL for the BPEL process
- Step 3 - Define partner link types
- Step 4 - Develop the BPEL process
- Define partner links
- Declare variables
- Write the process logic definition
- The language is complete enough to define any
business process flow
9Step 1 Inventory the Involved Web Services
- Defining partner web services
- Example American and Delta Airlines web
service which have identical WSDL descriptions
10Step 2 Define WSDL for the BPEL process
- Next, we have to expose the business travel BPEL
as a Web service. The second step is therefore to
define the WSDL for it. The process has to
receive messages from its clients and return
results.
11Step 3 Define Partner Link Types
- Partner link types represent the interaction
between a BPEL process and the involved parties,
which include the Web services the BPEL process
invokes and the client that invokes the BPEL
process - Example
- ltplnkpartnerLinkType name"travelLT"gt
- ltplnkrole name"travelService"gt
- ltplnkportType name"tnsTravelApprova
lPT" /gt - lt/plnkrolegt
- ltplnkrole name"travelServiceCustomer"gt
- ltplnkportType name"tnsClientCallbackPT
" /gt - lt/plnkrolegt
- lt/plnkpartnerLinkTypegt
12Step 4 Create the Business Process
- Typically, a BPEL process waits for an incoming
message from the client, which starts the
execution of the business process. In our example
the client initiates the BPEL process through
sending an input message - Example
- ltprocess name"BusinessTravelProcess" ... gt
- ltpartnerLinksgt
- lt!-- The declaration of partner links
--gt - lt/partnerLinksgt
- ltvariablesgt
- lt!-- The declaration of variables --gt
- lt/variablesgt
- ltsequencegt
- lt!-- The definition of the BPEL
business process main body --gt - lt/sequencegt
- lt/processgt
13Example Loans (1)
14Example Loans (2)
ltprocess name"loanApprovalProcess"
targetNamespace"http//acme.com/simpleloanprocess
ing" xmlns"http//schemas.xmlsoap.org
/ws/2002/07/business-process/"
xmlnslns"http//loans.org/wsdl/loan-approval"
xmlnsloandef"http//tempuri.org/servic
es/loandefinitions"
xmlnsapns"http//tempuri.org/services/loanapprov
er"gt ltpartnersgt ltpartner name"customer"
serviceLinkType"lnsloanApproveLi
nkType" myRole"approver"/gt
ltpartner name"approver"
serviceLinkType"lnsloanApprovalLinkType"
partnerRole"approver"/gt lt/partnersgt
ltcontainersgt ltcontainer name"request"
messageType"loandefCreditInformationMessage"/gt
ltcontainer name"approvalInfo"
messageType"apnsapprovalMessage"/gt
lt/containersgt ltsequencegt ltreceive
name"receive1" partner"customer"
portType"apnsloanApprovalPT"
operation"approve" container"request"
createInstance"yes"gt lt/receivegt
ltinvoke name"invokeapprover"
partner"approver"
portType"apnsloanApprovalPT"
operation"approve"
inputContainer"request"
outputContainer"approvalInfo"gt lt/invokegt
ltreply name"reply" partner"customer"
portType"apnsloanApprovalPT"
operation"approve" container"approvalInfo"gt
lt/replygt lt/sequencegt lt/processgt
15ACME Example
- You are working for a travel company called
ACME - ACME can receive different kinds of requests with
an itinerary from a customer - ACME wishes to create a business process called
ticketOrder - This process should take in the Itinerary, send
it to an Airline partner, receive tickets, and
then send them on to the customer - ASSIGNMENT Create the BPEL, assume WSDL is
already defined
16Example ACME Travel Company
17The process
18- 1 ltprocess name"ticketOrder"gt
-
- 2 ltpartnersgt
- 3 ltpartner name"customer"
- 4 serviceLinkType"agentLink"
- 5 myRole"agentService"/gt
- 6 ltpartner name"airline"
- 7 serviceLinkType"buyerLink"
- 8 myRole"ticketRequester"
- 9 partnerRole"ticketService"/gt
- 10 lt/partnersgt
- 11 ltcontainersgt
- 12 ltcontainer name"itinerary"
messageType"itineraryMessage"/gt - 13 ltcontainer name"tickets"
messageType"ticketsMessage"/gt - 14 lt/containersgt
- ltsequencegt
19BPEL 4 People
- Alright, so what if a manual task is involved in
a process? - Translation
- Document approval
- Creative processes
- Signature (SOx compliancy approval)
- Etc.
- Just make people Web Services (!?)
20BPEL4People Web Service vs. Human Task
Translation Process
receive document
automatic translation
manual translation
Web Service Endpoint
Abstract Organizational Group
reply translation
21BPMN
22BPEL and BPMN
- BPEL receives direct competition from BPML, but
BPEL seems to be winning - Currently a BPMN to BPEL mapping exists
- Impossible to do round-trip-engineering
- BPML has a complete and formalized semantic
- BPEL syntax won out. BPML semantics won out.
- BPEL is evolving slowly into BPML, since BPML is
formally complete
23WEB SERVICES WORLD
UDDI
SOAP
OWL-S
WSDL
24OWL-S Semantic Mark-up for Web Services
- Automation of service use by software agents
- Ideal full-fledged use of services never before
encountered - Discovery, selection, composition, invocation,
monitoring, .. - Useful in the real world
- Compatible with industry standards
- Enable reasoning/planning about services
- e.g., On-the-fly composition
- Integrated use with information resources
- Ease of use powerful tools
25OWL-S Ontology Web Language for Services
- Ontology - An explicit representation of the
meaning of terms in a vocabulary, and their
relationships
26Key
Publication
Profile
Discovery
Simulation
Selection
Process Model
Verification
Composition
Execution, Interoperation
Grounding
Monitoring, Recovery
Development Deployment Use
27OWL-S Profile to UDDI Mapping
28ebXML e-Business XML
- Just like EDI, but now with XML
- Uses UML
29ebXML Example
30Questions?
31Exercise
- Currently Word, and other software all have their
own print-facility. - Create a DocumentPrint webservice using BPEL
(activity diagram), that generates Postscript
format for printing. - Define input partner links
- Define process logic
- Define output partner links
- Suppose the DocumentPrint webservice should also
handle printing from ERP-system output.