BPEL – Business Process Execution Language
BPEL is an XML-based language for
describing Web-Services based Business Processes.
It is expressible in terms of flow
control, variables, concurrent execution, input and output, transaction
scoping/compensation and error handling.
A BPEL describes a Business Process. A
Business Process can be either abstract or executable. An
Abstract Process is similar to a library APIs; they describe what the process
can do and its inputs and outputs but do not describe how anything gets done.
Abstract Processes are useful for describing a Business Process to another
party that wants to use it. Executable processes contain all of the execution
steps that represent a cohesive unit of work.
A process consists of activities connected by links. (A process sometimes
only contains one activity but that is usually a container for more activities.)
The path taken through the activities and their links is determined by many
things, including the values of variables and the evaluation of expressions.
The starting points are called start activities; their create
Instance attributes are set to "yes." When a start activity is
triggered, a new business process instance is created. From then on, the
instance is identified by data called correlation sets. These data uniquely identify a process, but they
may change over time. For example, the correlation set for a process may begin
as a purchase order number retrieved from a customer order. Later, when an
invoice is generated, the correlation set may be the invoice number.
BPEL is layered on top of other Web technology
standards. These include Web Services Description language (see WSDL), XML
Schema (see XML Schema), XPath (see XPath) WS Addressing (see WS-Addressing).
A BPEL file describes a Business Process, and
refers to Web Services described in turn by WSDL files. These in turn may refer
to partners (see WSDL) described in partner files which in turn
reference WSDL files that describe the partner link types.
Services are aggregated in a specific manner to
perform specific processes. WS-BPEL specification provides a standard for the
assembly of Services. A BPEL process is made of one or more frequently, several
Services.
An orchestration (see Orchestration) defines the
sequence and conditions in which one Web service invokes other Web Services in
order to realize some useful function. I.e., an orchestration is the pattern of
interactions that a Web service agent must follow in order to achieve its goal.
A programming language known as Business Process
Execution Language (BPEL), as serialized in XML, aims to enable users to
describe business process activities as Web Servicesand define how they can be
connected to accomplish specific tasks.
Consider a highly configurable manual task workflow.
Not every service that exposes a WSDL as its interface uses necessarily a
SOAP/HTTP binding. By using the Apache Web Service Invocation Framework (WSIF),
Oracle BPEL PM and Oracle ESB can be extended and offer several out of the box
bindings for common cases such as J2CA, SOAP, EJB, and plain Java. Oracle BPEL
PM’s communications with Oracle ESB are transactional. Using WSIF, they can run
within the same global transaction, allowing for tight integration of mission
critical applications.