B - BPEL – Business Process Execution Language


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.