Business Process Orchestration
1. Oracle BPEL reference
2. Based on SOA for Business Developer,
Concepts, BPEL, and SCA
by B. Margolis with J. Sharpe
McPress, Lewisville, TX, 2007.
• We created single web service to
represent a business process.
• We now move on to create “composite”
services that represent a real-world
• In particular, we will discuss Business
Process Execution Language (BPEL).
BPEL (Oracle definition)
• BPEL (or BPEL4WS) is a language used for
the definition and execution of business
processes using Web services.
• BPEL enables the top-down realization of
Service Oriented Architecture (SOA) through
composition, orchestration, and coordination
of Web services.
• BPEL provides a relatively easy and
straightforward way to compose several Web
services into new composite services called
• BPEL builds on the foundation of XML
and Web services;
• It uses an XML-based language that
supports the Web services technology
stack, including SOAP, WSDL, UDDI,
WS-Reliable Messaging, WS-
Addressing, WS-Coordination, and WS-
• Web services can be combined in two
• Used in private business processes;
• A central process (which can be another Web
service) takes control of the involved Web services
and coordinates the execution of different operations
on the Web services involved in the operation.
• The involved Web services do not "know" (and do not
need to know) that they are involved in a composition
process and that they are taking part in a higher-level
• Only the central coordinator of the orchestration is
aware of this goal, so the orchestration is centralized
with explicit definitions of operations and the order of
invocation of Web services.
• Choreography, in contrast, does not rely on a central
• Rather, each Web service involved in the
choreography knows exactly when to execute its
operations and with whom to interact.
• Choreography is a collaborative effort focusing on the
exchange of messages in public business processes.
• All participants in the choreography need to be aware
of the business process, operations to execute,
messages to exchange, and the timing of message
Choreography vs. Orchestration
• From the perspective of composing Web
services to execute business processes,
orchestration is a more flexible paradigm and
has the following advantages over
– The coordination of component processes is
centrally managed by a known coordinator.
– Web services can be incorporated without their
being aware that they are taking part in a larger
– Alternative scenarios can be put in place in case
• BPEL supports two different ways of
describing business processes that support
orchestration and choreography:
– Executable processes allow you to specify the
exact details of business processes. They follow
the orchestration paradigm and can be executed
by an orchestration engine.
– Abstract business protocols allow
specification of the public message exchange
between parties only. They do not include the
internal details of process flows and are not
executable. They follow the choreography
• A BPEL process specifies the exact order in which
participating Web services should be invoked, either
sequentially or in parallel.
• With BPEL, you can express conditional behaviors.
For example, an invocation of a Web service can
depend on the value of a previous invocation.
• You can also construct loops, declare variables, copy
and assign values, define fault handlers, and so on.
• By combining all these constructs, you can define
complex business processes in an algorithmic
• BPEL is an XML-based language for creating a
process, which is set of logical steps called activities.
• BPLE supports integration of business services.
• Orchestration using BPEL creates a service that
accepts messages from services A and B and sends
related messages to services X and Y.
• A BPEL process queries the messages it receives,
calculates and compares the values it obtained from
• BPEL (2.0) standard relies on XPath (1.0 or 2.0)
standard to accomplish its tasks.
• A process fulfills a workflow primarily by
accessing one service after another.
• A BPEL process example:
– Accept a request for an insurance quote
– If the submitted details are appropriate,
calculate the quote and include it in the
– Otherwise say “No” and include a
A typical BPEL Scenario
• BPEL business process receives a request.
To fulfill it, the process invokes the involved
Web services and then responds to the
• Because the BPEL process communicates
with other Web services, it relies heavily on
the WSDL description of the Web services
invoked by the composite Web service.
BPEL Process: primitive/basic
• A BPEL process consists of steps; each step is called an
• BPEL supports primitive as well as structure activities. Primitive
activities represent basic constructs and are used for common
tasks, such as the following:
• Invoking other Web services, using <invoke>
• Waiting for the client to invoke the business process by sending
a message, using <receive> (receiving a request)
• Generating a response for synchronous operations, using
• Manipulating data variables, using <assign>
• Indicating faults and exceptions, using <throw>
• Waiting for some time, using <wait>
• Terminating the entire process, using <terminate>
BPEL Process: Structured
• To combine primitive activities, BPEL supports
several structure activities. The most important are
• Sequence (<sequence>), which allows us definition
of a set of activities that will be invoked in an ordered
• Flow (<flow>) for defining a set of activities that will
be invoked in parallel
• Case-switch construct (<switch>) for implementing
• While (<while>) for defining loops
• The ability to select one of several alternative paths,
BPEL Process: Other
• Each BPEL process will also define
partner links, using <partnerLink>, and
declare variables, using <variable>.
• Lets look at a complete example from
ref. 2 (Ben Margolis’ text)
• Second example is a travel business
example from Ref. 1 (Oracle
• We will use the handout, that is a copy
of the document available at:
• We reviewed a BPEL process for integration of
• We studied the fundamental elements of BPEL and
usage BPEL through an example.
• Given a description of business, you should be able
to define a BPEL process for the business.
• There are professional tools available for
development of BPEL model.
• We will explore some next semester in our service-
enabled enterprise course.