Title: Business Process Execution Language BPEL
1Business Process Execution Language (BPEL)
- Rich Powers
- CSC 9010 Service Oriented Architecture
- Spring 2008
2Agenda
- Business Process 101
- Business Processes Automation Web Service
Standards - WS-BPEL Overview
- Intalio BPMS BPEL Platform
- Future Directions for WS-BPEL Adoption
3Key Questions
- What is the concept of Business Process
Automation and workflow technologies? - What are the technologies and standards that
constitute the SOA approach for Business Process
Automation? - What are the prospects for adoption of BPEL and
the future direction of standards-based Business
Process Automation leveraging web services?
4Agenda
- Business Process 101
- Business Processes Automation Web Service
Standards - WS-BPEL Overview
- Intalio BPMS BPEL Platform
- Future Directions for WS-BPEL Adoption
5Business Processes Defined
- A business process is a collection of
interrelated tasks, which are designed to deliver
a particular result - Types of business processes
- Management processes - processes that govern the
operation of a system - Operational processes - processes that constitute
the core activities of the business and delivers
the primary value of the organization - Supporting processes - which support the core
processes - A business process can be decomposed into several
sub-processes, which have their own attributes,
but are aligned with the goal of the overall
process - The analysis of business processes typically
includes the mapping of processes and
sub-processes down to an activity level - Business processes can be automated through BPM
software and workflow
6Holy Grail of BPM
- IT becomes the enabler of business agility
through the systemization of flexible processes - However
- Business processes, by nature, are a challenge
to identify, document, implement, and change
7Business Process Automation
- Key Questions for Workflow Design
- Who Should?
- Who is involved in the process
- Do What?
- What tasks/activities need to be performed
- To What?
- What entities (objects) and data involved
- When?
- What starts and stops the process
- In What Order?
- What is the sequence and interrelationship
between tasks - Why?
- What is the value proposition of using workflow
8Expected Benefit of Workflow Automation
- Improve the speed of a business process
- Improve the consistency of a business process
- Improve the quality of a business process
- The key challenge in workflow automation is to
determine the ROI and business value to be
achieved through the introduction of technology
9Workflow Patterns(www.workflowpatterns.com)
- Basic Control Flow
- Sequence
- Parallel Split
- Synchronization
- Exclusive Choice
- Advanced Branching and Synchronization
- Multi-Choice
- Structured Synchronizing Merge
- Multi-Merge
- Structured Discriminator
- Blocking Discriminator
- Multiple Instance Patterns
- Multiple Instances without Synchronization
- Multiple Instances with a Priori Design-Time
Knowledge - Multiple Instances with a Priori Run-Time
Knowledge - State-Based Patterns
- Deferred Choice
- Interleaved Parallel Routing
- Milestone
- Cancellation and Force Completion Patterns
- Cancel Task
- Cancel Case
- Interation Patterns
- Arbitrary Cycles
- Structured Loop
- Recursion
- Termination Patterns
- Implicit Termination
- Explicit Termination
- Trigger Patterns
- Transient Trigger
- Persistent Trigger
10Agenda
- Business Process 101
- Business Processes Automation Web Service
Standards - WS-BPEL Overview
- Intalio BPMS BPEL Platform
- Future Directions for WS-BPEL Adoption
11Web Services Standards for SOAThe Web Services
Platform Architecture
12Web Services Standards for SOAThe Web Services
Platform Architecture
WS-C WS-N
WS-RF
WS-BPEL
SCA
UDDI, WS-Addr, Metadata Exch.,
WS-RM
WS-Security
WS-AT WS-BA
WSDL
WS-Policy
SOAP, WS-Addr
JMS, RMI/IIOP, ...
HTTP, TCP/IP, SMTP, FTP,
13Web Services Standards for SOAThe Web Services
Platform Architecture
WS-C WS-N
WS-RF
WS-BPEL
SCA
UDDI, WS-Addr, Metadata Exch.,
WS-RM
WS-Security
WS-AT WS-BA
WSDL
WS-Policy
SOAP, WS-Addr
JMS, RMI/IIOP, ...
HTTP, TCP/IP, SMTP, FTP,
14Agenda
- Business Process 101
- Business Processes Automation Web Service
Standards - WS-BPEL Overview
- Intalio BPMS BPEL Platform
- Future Directions for WS-BPEL Adoption
15Business Process Execution Language (BPEL)
- Web Services Business Process Execution Language
(WS-BPEL) is a language for describing business
processes based on Web Services - Processes described using WS-BPEL execute
functionality by using Web Service interfaces
exclusively - WS-BPEL Specification is administered by OASIS
- WS-BPEL is an orchestration language, not a
choreography language - Orchestration specifies an executable process
that involves message exchanges with other
systems, such that that the message exchange
sequences are controlled by the orchestration
designer. - Choreography specifies a protocol for
peer-to-peer interactions, defining the legal
sequences of messages exchanged with the
objective of guaranteeing interoperability - A choreography is not directly executable
- A choreography can be implemented through an
orchestration (i.e. a BPEL process)
16BPEL Standard Sponsorship
17WS-BPEL 2.0 History
- Dec 2000
- Microsoft publishes XLANG
- March 2001
- IBM publishes WSFL
- July 2002
- IBM, Microsoft, BEA converge WSFL and XLANG into
BPEL4WS 1.0 - March 2003
- BPEL4WS is submitted to OASIS
- May 2003
- OASIS publishes BPEL4WS 1.1
- April 2007
- WS-BPEL 2.0 standard
18WS-BPEL Design Goals
- Business processes defined using an XML-based
language - Web services are the model for process
decomposition and assembly - The same orchestration concepts are used for both
the external (abstract) and internal (executable)
views of a business process - Both hierarchical and graph-like control regimes
are used, reducing the fragmentation of the
process modeling space - An identification mechanism for process instances
is provided at the application message level - The basic lifecycle mechanism is in implicit
creation and termination of process instances. - A long-running transaction model is defined to
support failure recovery for parts of
long-running business processes - Language built on compatible Web services
standards in a composable and modular manner
19WS-BPEL Language Constructs
- WS-BPEL process definition
- Recursive composition and partner links
- Variables
- Correlation sets
- Basic and structured activities
- Scopes
- Compensation handling
20WS-BPEL Process Definition
process
21Recursive Composition Model
22Partner Links Element
- WDSL describes functionality of services provided
by a partner - Partner Link describes the shape of the
relationship with a partner by describing the
Port Types used in a peer to peer relationship - Example
- ltpartnerLinksgt
- ltpartnerLink nameInvoice
- partnerLinkTypeinvInvoiceType
- partnerRoleInvoiceServiceProvider/gt
- ltpartnerLink nameEmployee
- partnerLinkTypeempEmployeeType
- partnerRoleEmployeeServiceProvider/gt
- lt/partnerLinksgt
Reference to WDSL portType element
23Partner Links
24Variable Element
- Variable construct is used to state information
related to workflow logic - Variables can contain entire messages and data
sets formatted as XSD schema types - Example
- ltvariablesgt
- ltvariable nameEmployeeHoursRequest
- messageTypeempgetWeeklyHoursRequestMessage/gt
- lt/variablesgt
Message Name from Partner Process Definition
25Variables
process
xsltransform
26Properties and Correlation Sets
- How to identify stateful instances via stateless
WS interfaces? - A process instance is assigned one or more keys
- Business data is used as key, e.g., customerID
- A key can be compound, e.g., (customerID,
orderNumber) - WS-BPEL calls a key a correlation set it is
used to correlate an incoming message with a
process instance
Process 4(0123,15)
Process 3(0815,42)
Process 2(4711,37)
Process 1(0815,12)
27Basic Activities
process
28Structured Activities
process
29Scopes
process
Scopes provide a context which influences the
execution behavior of its enclosed activities
Isolated scopes provide control of concurrent
access to shared resources
30Compensation Handling
6. Undo work (in reverse order)
1. Do some work (successfully invoke two services)
2. Invoke another service (throws fault)
31BPEL Syntax ExamplePartner Definition
- lt?xml version"1.0" encoding"utf-8"?gtÂ
- ltprocess name"insuranceSelectionProcess"
- targetNamespace"http//packtpub.com/bpel
/example/" - xmlns"http//schemas.xmlsoap.org/ws/2003
/03/business-process/" - xmlnsins"http//packtpub.com/bpel/insur
ance/" - xmlnscom"http//packtpub.com/bpel/compa
ny/" gt - Â
- ltpartnerLinksgt
- ltpartnerLink name"client"
- partnerLinkType"comselectionL
T" - myRole"insuranceSelectionServi
ce"/gt - Â
- ltpartnerLink name"insuranceA"
- partnerLinkType"insinsuranceL
T" - myRole"insuranceRequester"
- partnerRole"insuranceService"/
gt - Â
- ltpartnerLink name"insuranceB"
- partnerLinkType"insinsuranceL
T"
32BPEL Syntax Example Variable Definition
- ltvariablesgt
- lt!-- input for BPEL process --gt
- ltvariable name"InsuranceRequest"
- messageType"insInsuranceRequestM
essage"/gt - lt!-- output from insurance A --gt
- ltvariable name"InsuranceAResposne"
- messageType"insInsuranceResponse
Message"/gt - lt!-- output from insurance B --gt
- ltvariable name"InsuranceBResposne"
- messageType"insInsuranceResponse
Message"/gt - lt!-- output from BPEL process --gt
- ltvariable name"InsuranceSelectionResponse"
- messageType"insInsuranceResponse
Message"/gt - lt/variablesgt
- ...
33BPEL Syntax ExampleProcess Steps
- ltsequencegt
- lt!-- Receive the initial request from
client --gt - ltreceive partnerLink"client"
- portType"comInsuranceSelectionPT"
- operation"SelectInsurance"
- variable"InsuranceRequest"
- createInstance"yes" /gt
- lt!-- Make concurrent invocations to
Insurance A and B --gt - ltflowgt
- Â
- lt!-- Invoke Insurance A web service --gt
- ltinvoke partnerLink"insuranceA"
- portType"insComputeInsurancePre
miumPT" - operation"ComputeInsurancePremiu
m" - inputVariable"InsuranceRequest"
- outputVariable"InsuranceAResposn
e" /gt - Â
- lt!-- Invoke Insurance B web service --gt
- ltinvoke partnerLink"insuranceB"
34BPEL Syntax ExampleProcess Steps (Cont)
- lt!-- Select the best offer and construct the
response --gt - ltswitchgt
- ltcase condition"bpwsgetVariableData('Ins
uranceAResposne', - 'confirmationData','/conf
irmationData/Amount') - lt bpwsgetVariableData('Ins
uranceBResposne', - 'confirmationData','/conf
irmationData/Amount')"gt - lt!-- Select Insurance A --gt
- ltassigngt
- ltcopygt
- ltfrom variable"InsuranceAResposne"
/gt - ltto variable"InsuranceSelectionRes
ponse" /gt - lt/copygt
- lt/assigngt
- lt/casegt
- ltotherwisegt
- lt!-- Select Insurance B --gt
- ltassigngt
- ltcopygt
- ltfrom variable"InsuranceBResposne"
/gt
35Agenda
- Business Process 101
- Business Processes Automation Web Service
Standards - WS-BPEL Overview
- Intalio BPMS BPEL Platform
- Future Directions for WS-BPEL Adoption
36Intalio BPMS Overview
- Intalio released a BPMS platform community
edition under the Mozilla Public License (MPL) in
late 2006 - Lighter version of Enterprise BPMS platform
- BPEL platform based on Apache Geronimo
application server - Graphical developer tool based on Business
Process Modeling Notation (BPMN) - Web site for code, documentation, and tutorials
http//bpms.intalio.com
37Agenda
- Business Process 101
- Business Processes Automation Web Service
Standards - WS-BPEL Overview
- BPEL Demonstration using Intalio BPMS
- Intalio BPMS BPEL Platform
38WS-BPEL Adoption Products
- Active Endpoints ActiveBPEL
- BEA WebLogic
- Cape Clear Orchestrator
- Intalio/Apache Orchestration Director Engine
(Ode) - IBM WebSphere Process Server
- Microsoft BizTalk Server
- MidOffice BPEL Engine (open source)
- OpenLink Virtuoso Universal Server
- Oracle BPEL Process Manager
- Parasoft BPEL Maestro
- Progress Sonic BPEL Server
- SAP NetWeaver
- Sun eInsight BPM
39WS-BPEL Follow-on Work
- BPEL4People human interactions
- http//www-128.ibm.com/developerworks/webservices/
library/specification/ws-bpel4people/ - BPEL-SPE subprocess coordination protocol
- http//www-128.ibm.com/developerworks/webservices/
library/specification/ws-bpelsubproc/ - BPELJ inline Java code in activities and
expressions - http//www-128.ibm.com/developerworks/library/spec
ification/ws-bpelj/ - Currency with related standards
- WSDL 2.0, XPath 2.0, XQuery, etc.
40WS-BPEL Standards Roadmap
WS-BPEL 2.0
www.oasis.org
WS-BPEL 2.0 Extensions for People
(BPEL4People) http//www-128.ibm.com/developerwork
s/webservices/library/specification/ws-bpel4people
WS-BPEL 2.0 Extensions for Sub-Processes
(BPEL-SPE) http//www-128.ibm.com/developerworks/w
ebservices/library/specification/ws-bpelsubproc W
S-BPEL 2.0 Extensions for Java (BPELJ) http//
Service Component Architecture (SCA) SCA Assembly
ModelSCA WS-BPEL Client and Implementation Model
ww.osoa.org
41BPEL4People WS-HumanTask
- Specifications published June 25, 2007
- http//www-128.ibm.com/developerworks/webservices/
library/specification/ws-bpel4people/ - Next step OASIS Technical Committee to be
created to standardize BPEL4People and
WS-HumanTask
42BPEL4People WS-HumanTask Requirements
- Integration of human-executed activities in Web
services-based business processes - Integration of human-executed activities in
SOA-based applications - Standard-based solution to support
interoperability and portability scenarios
43BPEL4People WS-HumanTask Approach
- BPEL4People
- Definition of human interactions within WS-BPEL
processes - Specification built on top of WS-BPEL 2.0
- WS-HumanTask
- Definition of service-enabled human tasks and
notifications - Coordination protocol used to control autonomy
and life cycle of service-enabled human tasks in
an interoperable manner - Interoperable programming interface enabling task
client applications to work with human tasks
44Service Component Architecture and WS-BPEL
Complementary Technologies
- Similarities between SCA and WS-BPEL
- Both are described in a formal language that is
based on XML - Both languages may be used to describe a business
service that is implemented by composing together
other business services - Both can describe inbound and outbound service
interactions types by WSDL port types - SCA describes the structure of an application
- Components within the business application
- Services offered by components Service
references components depend on - Connections between components
- Endpoint addresses and communication methods used
for the connections - Policies applied to components and to the
connections between them - WS-BPEL describes the logic of a business process
- Sequences of operations which are performed to
execute an individual business process - Services provided and consumed through
partnerLinks, that is, abstract interfaces that
must be connected to actual endpoints and
communication methods through configuration
45BPEL Adoption within SOA
- Though it is one of the first web service
standards published, the mainstream adoption of
WS-BPEL has been slow - BPEL specification was never a complete
programming language - The implementation of web service solutions have
focused on HST and JBOWS patterns - Gaps in functionality have been filled through
the use of other programming tools and vendor
specific extensions - Cross version and cross platform interoperability
has been problematic to date - WS-BPEL 2.0 standard specification provides
promise for improvements in terms of
interoperability and functionality, however
challenges remain - WS-HumanTask and BPEL4People highlight the need
to add additional semantics to BPEL - Significant presence of well-established and
highly capable legacy workflow products on the
market - Critical mass of web-services to orchestrate are
still in development - No standard graphical notation for WS-BPEL as the
OASIS standards committee deemed it out of scope - The question of how to create direct visual
representation of BPEL process descriptions
still needs to be addressed - Vendor Specific
Notations, Business Process Modeling Notation - BPMN to BPEL 2.0 modeling tools
46BPEL Process Integration Scenario Microsoft - SAP
- SAP focused on formal business process workflows
while Microsoft is focused on informal document
workflows - SAP application platform implementation deployed
on Netweaver 7.0 - Implementation of business process automation
using SAP PI which supports BPEL 2.0 - Microsoft collaboration implementation built on
Sharepoint 2007 - Supports Microsoft WF as work flow engine
- Biztalk 2006 ? Netweaver PI to provide cross
platform interoperability using BPEL 2.0