Title: WS-BPEL 2.0
1WS-BPEL 2.0
www.oasis-open.org
Web ServicesBusiness Process Execution Language
Workshop Dieter König, IBM Senior Technical
Staff Member (dieterkoenig_at_de.ibm.com) Charlton
Barreto, Adobe Senior Computer Scientist/Architect
(charltonb_at_adobe.com)
2WS-BPEL 2.0
3Abstract
Business Processes not only play a key role in
Business-to-Business (B2B) and Enterprise
Application Integration (EAI) scenarios by
exposing the appropriate invocation and
interaction patterns but they are the fundamental
basis for building heterogeneous and distributed
applications (workflow-based applications). Web
Services Business Process Execution Language
(WS-BPEL) provides the language to specify
business processes that are composed of Web
services as well as exposed as Web services.
Business Processes specified via WS-BPEL are
portable they can be carried out by every
WS-BPEL compliant execution environment. This
presentation gives an overview of the WS-BPEL
language and shows how it can be used to compose
Web services. It provides highlights of WS-BPEL,
including structured activities, correlation,
compensation, and fault handling. Finally, the
OASIS WS-BPEL Technical Committee work, the
current status of the standard, and an outlook on
follow-on activities is presented.
4WS-BPEL 2.0
- Motivation
- OASIS and WS-BPEL
- Main Concepts
- Examples
- Status and support
5Motivation
- Integration continues to be a key problem facing
businesses - Intra-enterprise integration (Enterprise
Application Integration) - Integrating with partners (Business-to-Business
Integration) - Syndication
- Web services ? move towards service-oriented
computing - Applications are viewed as services
- Loosely coupled, dynamic interactions
- Heterogeneous platforms
- No single party has complete control
- Service composition
- How do you compose services in this domain?
6Integration
7Concerns addressed by BPEL
- BPEL processes can automate both simple and
complex interactions between Web services - Supporting long running business transactions
- Correlating message exchanges
- Implementing parallel processing of activities
- Mapping data between partner interactions
- Providing consistent exception and recovery
handling
8Why the Need For BPEL?
- WSDL defined Web services have a stateless
interaction model - Messages are exchanged using
- Synchronous invocation
- Uncorrelated asynchronous invocations
- Most real-world business processes require a
more robust interaction model - Messages exchanged in a two-way, peer-to-peer
conversation lasting minutes, hours, days, etc. - BPEL provides the ability to express stateful,
long-running interactions
9Two programming models
- Programming in the large
- Non-programmers implementing flows
- Flow logic deals with combining functions in
order to solve a more complex problem (such as
processing an order) - Programming in the small
- Programmers implementing functions
- Function logic deals with a discrete fine-grained
task (such as retrieving an order document or
updating a customer record)
10Process Usage Patterns
- Aiming for a single approach for both
- Executable processes
- Contain the partners business logic behind an
external protocol - Abstract processes
- Define the publicly visible behavior of some or
all of the services an executable process offers - Define a process template embodying
domain-specific best practices
11Process Model Requirements
- Portability and Interoperability
- Flexible Integration
- Rich, and easily adaptable to changes in
underlying services - Recursive, type-based composition, enables
- Third-party composition of existing services
- Providing different views on a composition to
different parties - Increased scalability and reuse
- Stateful conversations and lifecycle management
- Supports multiple stateful long-running
conversations - Recoverability
- Long running business processes need fault
handling and compensation mechanisms to manage
and recover from errors
12Benefits of BPEL
- Industry standard language for expressing
business processes - Leverage a common skill set and language
- Designed to fit naturally into the Web services
stack - Expressed entirely in XML
- Uses and extends WSDL 1.1
- Uses XML Schema 1.0 for the data model
- Portable across platform and vendor
- Will run on any BPEL-compliant engine
- Interoperable between interacting processes
- Layering on top of Web services stack
13WS-BPEL 2.0
BPEL Historical Timeline Dec 2000 Microsoft
publishes XLANG March 2001 IBM publishes
WSFL July 2002 IBM, Microsoft and BEA converge
WSFL XLANG into BPEL4WS 1.0 March 2003 BPEL4WS
is submitted to OASIS May 2003 OASIS publishes
BPEL4WS 1.1 1stH 2007 WS-BPEL 2.0 released
- BPEL is the Web Services Orchestration standard
from OASIS - beepel, beepuhl, bipuhl
- An XML-based grammar for describing the logic to
orchestrate the interaction between Web services
in a business process
14WS-BPEL in the WS- Stack
WS-BPEL
Business Processes
You are here
WSDL, Policy, UDDI, Inspection
Description
Security
Reliable Messaging
Transactions
Quality Of Service
Coordination
Other protocols
Transport and Encoding
SOAP (Logical Messaging)
Other services
XML, Encoding
15WS-BPEL 2.0
- Motivation
- OASIS and WS-BPEL
- Main Concepts
- Examples
- Status and support
16Getting the Players Together
()
BPEL 1.1
WS-BPEL 2.0
() BPEL 1.1 authors, May 2003
17OASIS Technical Committee
- Charter of the WS-BPEL Technical Committee
- Standardize
- Common concepts for a business process execution
language for usage patterns including both the
process interface descriptions and executable
process models - Explicitly do not address
- Bindings to specific hardware/software platforms
and other mechanisms required for a complete
runtime environment for process implementation - gt 280 committee members, including observers
- 30 active voting members, attending weekly
calls - Issues Process
- List of all issues available at
- http//www.choreology.com/external/WS_BPEL_issues
_list.html (original list - completed) - http//www.choreology.com/external/WS_BPEL_review
_issues_list.html (public review list)
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 2.0
- Motivation
- OASIS and WS-BPEL
- Main Concepts
- Examples
- Status and support
20WS-BPEL Language Structure
- Process
- Partner links
- Data handling
- Properties and correlation
- Basic and structured activities
- Scopes
21WS-BPEL Process Definition
process
22Relationship with WSDL
- BPEL is layered on top of and extends the WSDL
service model - WSDL defines the specific operations allowed
- BPEL defines how WSDL operations are orchestrated
to satisfy a business process - BPEL also specifies extensions to WSDL in support
of long-running asynchronous business processes
BPEL 2.0
WSDL 1.1
BPEL-defined WSDL extensions
23Recursive Composition
- BPEL processes interact with WSDL services
exposed by business partners
Interfaces exposed by the BPEL process
Interfaces consumed by the BPEL process
Web Service
Web Service
WSDL Loan Approval PortType
Loan Approval Process
receive
Financial Institutions Web Service (Loan
Approver)
invoke
reply
24Composition of Web Services
Service P
Service A
Service B
receive
invoke
receive
invoke
invoke
As WSDL
Ps WSDL
Bs WSDL
F
Partner Link Type
Partner Link Type
25Partner Links
26Variables
process
xsltransform
27Variable Properties
process
28Properties and Correlation Sets
How to identify stateful instances via stateless
Web service interfaces?
process
initiate
29Basic Activities
process
30Structured Activities
process
31Nesting Structured Activities
sequence
ltsequencegt ltreceive .../gt ltflowgt
ltsequencegt ltinvoke .../gt ltwhile
... gt ltassigngt...lt/assigngt
lt/whilegt lt/sequencegt ltsequencegt
ltreceive .../gt ltinvoke ... /gt
lt/sequencegt lt/flowgt ltreply .../gt lt/sequencegt
receive
flow
sequence
sequence
receive
invoke
invoke
while
assign
reply
32Scopes
process
Scopes provide a context which influences the
execution behavior of its enclosed activities
Isolated scopes provide control of concurrent
access to shared resources
33Process Instance Lifecycle
- Business processes defined in BPEL represent
stateful Web services - When a process is started, a new instance is
created according to the process definition - The creation and destruction of BPEL process
instances is by design implicit
Process
receive
reply
invoke
invoke
invoke
34WS-BPEL 2.0
- Motivation
- OASIS and WS-BPEL
- Main Concepts
- Examples
- Status and support
35Graph-Oriented Authoring Style
flow
loanApprovalPT
riskAssessmentPT
amount lt 10000
amount gt 10000
receive
loan approver
loan assessor
risk "high"
invoke
invoke
assign
risk "low"
approved "true"
approved "false"
reply
1. A customer asks for a loan, providing name and
amount info 2. Two services are involved a)
A risk assessor which can approve the loan if the
risk is low b) A loan approver which checks
the name and approves/disapproves the loan 3. The
reply is returned to the customer
36Structured Authoring Style
sequence
flow
if-else
if buyer lt seller else
receive (buyer)
assign "failure"
reply (buyer)
reply (seller)
assign "success"
receive (seller)
37Parallel Processing
scope
parallel forEach
flow
. . .
. . .
. . .
. . .
. . .
. . .
38Fault Handling Compensation
Process
fault handler
sequence
notify manager
scope
scope
compensation handler
fault handler
compensate
charge credit card
refund customer
ship goods
rethrow
39Dynamic Partner Link Assignment
Process B
Process A
PortType-B
receive request
invoke service
invoke callback
receive response
PortType-A
40Abstract Executable Processes
- Executable Processes
- Contain the partners business logic behind an
external protocol - Model actual behavior of a participant in a
business interaction - Encompass enough detail to fully specify execution
41Abstract Executable Processes
- Abstract Processes
- Partially specified processes that are not
intended to be executed - May hide some of the required concrete
operational details - Serve a descriptive role
- Used to guide executable processes
- More than one possible use case
42Executable Processes View
Travel Reservation - Example
Abstract Process View
Agent Process
Airline Process
Traveler Process
get itinerary
get order
submit to agent
order tickets
receive tickets
receive confirmation
receive confirmation
confirm flight
send tickets
send confirmation
43Abstract Profiles
- Profiles address varying requirements among
Abstract Processes - Two profiles provided in WS-BPEL
- Observable Behavior
- Process Template
44Abstract Profiles Use Cases
- Use cases
- Constraints on message exchange
- Specify order in which messages are consumed or
produced - View on internal processes
- Only projection of internal (executable) process
is visible - Bridge model to executable
- Provide hooks to executable for model definition
to enable abstraction - Template as best practice
- Specification of common activities, major data
structures, and main control flow
45WS-BPEL 2.0
- Motivation
- OASIS and WS-BPEL
- Main Concepts
- Examples
- Status and support
46WS-BPEL
- Portable, interoperable process model for long
running business processes - Flexible integration of Web services
- WSDL abstract interfaces alone used to define
composition - Enables two levels of adaptive behavior
- Abstract partners can be bound to actual services
at runtime - The process can choose a protocol for
communicating with the service at runtime - Services whose data definitions do not match can
be composed - Data transformations can be inlined in process
definition
47Whats new since BPEL 1.1?
- Conditional behavior if elseif else
- Replacing the BPEL4WS 1.1 switch activity
- Repetitive execution repeatUntil
- Like BPEL4WS 1.1 while activity with at least one
iteration - Processing multiple branches forEach
- Sequential or parallel iteration controlled by a
counter variable and a completion condition - Reversing work compensate and compensateScope
- Compensate all child scopes or one specific child
scope - Propagating faults rethrow
- Rethrow the fault caught in a fault handler
- Validating data validate
- Explicit XML schema validation of WS-BPEL
variable content - Validation also possible within assignment
- Immediately ending a process exit
- Replacing the BPEL4WS 1.1 terminate activity
- Adding new activity types extensionActivity
- Designated WS-BPEL extension point for new
activity types
48Whats new since BPEL 1.1?
- Variable initialization
- Inline within variable declaration
- Partner links
- Intent for partner role initialization
- Locally declared messageExchange
- Internal correlation of receive/pick/onEvent and
reply activities - Correlation sets
- Join behavior for multiple start activities
- XML schema variables in Web service activities
- Usability enhancement for WS-I compliant
doc/lit-style WS interactions - Assignment
- Clarification of copy behavior
- Keep source element name
- Ignore missing from data
- Extension assign operation
- XSLT for variable transformations
- New XPath extension function bpeldoXslTransform(
...) - XPath access to variable data
- XPath variable syntax variable.part/location
49Whats new since BPEL 1.1?
- Fault handlers
- XML schema typed fault variables
- Exit on standard fault behavior
- Compensation handlers
- New scope snapshot semantics
- Fault handling during compensation
- Event handlers
- Recurring events
- Resolution of variable, partnerLink,
messageExchange, correlationSet - Termination handler
- Customize scope termination behavior
- Import
- Predefined import types WSDL and XSD
- Extensibility
- Global documentation element
- Extension namespace declarations
- Mandatory and optional extensions
- Abstract processes
- Common base (syntax) and profiles (semantics)
50WS-BPEL Adoption Products
- Active Endpoints ActiveBPEL Designer
- Active Endpoints ActiveBPEL Enterprise Server
- BEA WebLogic
- bexee BPEL Execution Engine (open source)
- Cape Clear Orchestrator
- FiveSight Process eXecution Engine (PXE)
- IBM WebSphere Studio Application Developer
Integration Edition - IBM WebSphere Business Integration Server
Foundation - IBM WebSphere Integration Developer
- IBM WebSphere Process Server
- Microsoft BizTalk Server
- MidOffice BPEL Editor (open source)
- MidOffice BPEL Engine (open source)
- OpenLink Virtuoso Universal Server
- OpenStorm ChoreoServer
- Oracle BPEL Process Manager
- Parasoft BPEL Maestro
- SAP NetWeaver
- SeeBeyond eInsight BPM
51WS-BPEL Application Areas
- Business Process Design
- Autonomic Computing
- Grid Computing
- Semantic Web
52WS-BPEL Schedule
- Status (March 2007)
- First and second public reviews completed
- Approved Committee Specification submitted for
standardization - Five organizations have certified use of WS-BPEL
in product - ActiveEndpoints, IBM, Intalio, SEEBURGER, Sun
53WS-BPEL Schedule
- Next steps
- OASIS standard - April 2007
- Voting opens March 19 and closes March 30
- OASIS Symposium - April 15-20, 2007San Diego,
California, USA - WS-BPEL Lightning Round - April 16
- Business Process Sessions - April 16
- WS-BPEL Workshop - April 18
54WS-BPEL Follow-on Work
- BPEL4People
- Human user interactions
- http//www-128.ibm.com/developerworks/webservices
/library/specification/ws-bpel4people/ - BPEL Subprocesses
- Based on a coordination protocol
- http//www-128.ibm.com/developerworks/webservices
/library/specification/ws-bpelsubproc/ - BPELJ
- Inline Java code in activities and
expressionshttp//www-128.ibm.com/developerworks/
library/specification/ws-bpelj/ - Currency with related standards
- WSDL 2.0, XPath 2.0, XQuery, etc.
55WS-BPEL Resources
- WS-BPEL 2.0 Committee Specfication (03/2007)
- http//docs.oasis-open.org/wsbpel/2.0/CS01/wsbp
el-v2.0-CS01.pdf - OASIS Technical Committee
- http//www.oasis-open.org
- Info aggregator sites
- Wikipedia
- http//en.wikipedia.org/wiki/BPEL
- BPEL Resource Guide
- http//bpelsource.com
- Numerous books and conference papers
- Analyst reports
- BPEL4WS 1.1
- http//www-128.ibm.com/developerworks/library/spec
ification/ws-bpel/