Professional Documents
Culture Documents
Why Services
Why Composite Applications
BPEL in the Mix
A Java EE Based Composite Application
Summary
Why Services?
SOA = an architectural principle for structuring
systems that
SOA emphasizes the de-coupling of system
components
New services are created from existing ones in a
synergistic fashion
Strong service definitions are critical
Services can be subsequently re-composed in
response to changing business requirements
What Are Services?
Orchestration
– An executable business process describing a flow from the
perspective and under control of a single endpoint
(commonly: Workflow)
– BPEL handles Orchestration
Choreography (WSDL)
– The observable public exchange of messages, rules of
interaction and agreements between two or more business
process endpoints
– WSDL handles Choreography
BPEL: Relationship to Partners
Business Process Needs To...
Co-ordinate asynchronous Manipulate/transform data
communication between between partner interactions
services Support for long running
Correlate message business transactions and
exchanges between parties activities
Implement parallel Handle exception handling
processing of activities Need for universal data
Implement compensation model for message
logic(Undo operations) exchange
BPEL Document Structure
BPEL Activities
Basic Activities Structured Activities
• <invoke> • <sequence>
• <receive> • <while>
• <reply> • <pick>
• <assign> • <flow>
• <throw> • <scope>
• <wait> • <compensate>
• <empty> • <switch>
• <link>
BPEL: Basic Activities
<invoke>
To invoke a one-way or request/response operation on a
portType offered by a partner
<receive>
To do a blocking wait for a matching message to arrive
Can be the instantiator of the business process
<reply>
To send a message in reply to a message that was
received through a <receive>
The combination of a <receive> and a <reply> forms a
request-response operation on the WSDL portType for the
process
BPEL: Basic Activities
<assign>
– Can be used to update the values of variables with new data
<throw>
– Generates a fault from inside the business process
<wait>
– Allows you to wait for a given time period or until a certain time
has passed
<empty>
– Allows you to insert a "no-op" instruction into a business process
– This is useful for synchronization of concurrent activities, for
instance
BPEL: Structured Activities
• <sequence>
Perform activities in sequential order
• <flow>
Perform activities in parallel
• <switch>
Conditional choice of activities
• <scope>
Enclose multiple activities in a single scope
Example Business Process
Sample Activities in BPEL
BPEL: Relationship to Partners
Why Do You Care on BPEL?