|
Business
Process Execution Language (BPEL)

A
Hands On Introduction to BPEL
by Matjaz
B. Juric
First, some background.
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-Transaction.
BPEL represents
a convergence of two early workflow languages; Web Services
Flow Language (WSFL) and XLANG. WSFL was designed by IBM and
is based on the concept of directed graphs. XLANG, a block-structured
language, was designed by Microsoft. BPEL combines both approaches
and provides a rich vocabulary for description of business
processes.
The first version
of BPEL was developed in August 2002. Since then, many major
vendors have joined (including Oracle), resulting in several
modifications and improvements, and the adoption of version
1.1 in March 2003. In April 2003, BPEL was submitted to the
Organization for the Advancement of Structured Information
Standards (OASIS) for standardization purposes, and the Web
Services Business Process Execution Language Technical Committee
(WSBPEL TC) was formed. This effort has led to even broader
acceptance in industry.
Within the enterprise,
BPEL is used to standardize enterprise application integration
as well as to extend the integration to previously isolated
systems. Between enterprises, BPEL enables easier and more
effective integration with business partners. BPEL stimulates
enterprises to further define their business processes, which
in turn leads to business process optimization, reengineering,
and the selection of the most appropriate processes, thus
further optimizing the organization. Definitions of business
processes described in BPEL do not affect existing systems,
thereby stimulating upgrades. BPEL is the key technology in
environments where functionalities are already or will be
exposed via Web services. With increases in the use of Web
services, the importance of BPEL will increase as well.
Orchestration
versus Choreography
Web services usually expose operations of certain applications
or information systems. Consequently, combining several Web
services actually involves the integration of the underlying
applications and their functionalities.
Web services can
be combined in two ways:
- Orchestration
- Choreography
In orchestration,
which is usually 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 business
process. 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 coordinator. 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 exchanges.
From
the perspective of composing Web services to execute business
processes, orchestration is a more flexible paradigm and has
the following advantages over choreography:
- 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 business process.
- Alternative
scenarios can be put in place in case faults occur.
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 paradigm.
Now, let's walk
through the creation of an executable BPEL business process;
the code for it can be downloaded and deployed to the Oracle
BPEL Process Manager. We will assume that Oracle BPEL Process
Manager has been successfully installed according to the installation
instructions and that it uses the default port 9700. If another
port has been selected during installation, the examples have
to be modified accordingly.
Next
Page "Building a Business Process"
|