Business Process Management Languages - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Business Process Management Languages

Description:

IBM's Web services flow language (WSFL) from IBM WebSphere Business Integrator ... Define compensation for error recovery - implement compensating actions for any ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 32
Provided by: Sli46
Category:

less

Transcript and Presenter's Notes

Title: Business Process Management Languages


1
Business Process Management Languages
Slinger Jansen Johan Versendaal Pascal van
Ravesteyn
Utrecht University
2
Outline
  • What are BPM Languages?
  • Different languages
  • BPEL
  • BPML
  • BPEL4People
  • ebXML
  • WSDL
  • OWL-S
  • Exercise

3
History of Competing Standards
Source http//www.radikalfx.com/bpel/usage.html
4
BPEL example of Purchase order processing
5
Business 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.

6
BPEL 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)

7
More 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

8
Developing 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

9
Step 1 Inventory the Involved Web Services
  • Defining partner web services
  • Example American and Delta Airlines web
    service which have identical WSDL descriptions

10
Step 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.

11
Step 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

12
Step 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

13
Example Loans (1)
14
Example 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
15
ACME 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

16
Example ACME Travel Company
  • Stolen from IBM

17
The 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

19
BPEL 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 (!?)

20
BPEL4People Web Service vs. Human Task
Translation Process
receive document
automatic translation
manual translation
Web Service Endpoint
Abstract Organizational Group
reply translation
21
BPMN
22
BPEL 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

23
WEB SERVICES WORLD
UDDI
SOAP
OWL-S
WSDL
24
OWL-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

25
OWL-S Ontology Web Language for Services
  • Ontology - An explicit representation of the
    meaning of terms in a vocabulary, and their
    relationships

26
Key
Publication
Profile
Discovery
Simulation

Selection
Process Model
Verification
Composition

Execution, Interoperation
Grounding

Monitoring, Recovery
Development Deployment Use
27
OWL-S Profile to UDDI Mapping
28
ebXML e-Business XML
  • Just like EDI, but now with XML
  • Uses UML

29
ebXML Example
30
Questions?
31
Exercise
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com