ActiveBPEL® Designer User’s Guide

What is a BPEL Process?

A BPEL process is a collection of Web services whose interactions are choreographed in a defined manner. Each service is a "black box" that performs some type of processing that is needed by the process. Services can be highly granular (e.g., calculate a rate) or very large in scope (e.g., process an order).

BPEL defines two primary types of processes: executable and abstract. An executable process exposes the details of the services that execute within that process. An abstract process only exposes the interface to the process itself, hiding the execution details from users of that process. In the supply chain example illustrated below, the Seller's process exposes services (Check on Supply, Check Customer Credit) that are executable by the Seller. However, the Seller will probably expose only the process-level interface to Buyers. Thus, the Seller's process is executable to the Seller and abstract to Buyers.

To facilitate the semantic use of executable and abstract processes, BPEL also introduces a process concept called Partner Links, described in more detail in other topics.

Supply Chain Example

In a typical supply chain, if you are the seller of goods, you might begin a business process by accepting a purchase order through an input message of a Web service. Then you would return an acknowledgement to the buyer if the order could be fulfilled. Here is a picture of the process.

Business process conceptual illustration

After you send the acknowledgement, you could send other messages to the buyer, such as shipping notices and invoices. Because you want to have this type of interaction with the buyer for many purchase orders, as well as with other buyers, you build one business process, and it acts as a template for business process instances.

The business process you build has a setting to "create an instance" so that each time a new purchase order arrives, you create a new process. The new process handles all the related interactions for it, keeping interactions separated for each purchase order for each buyer.

The BPEL process definition uses as input the definitions from Web Services Description Language (WSDL) files. These files contain the interface information that can be shared with the outside world. A process developer selects information, such as partner link types and operations to define the process steps, as shown in the following illustration.

WSDL definition elements and BPEL process conceptual illustration

A BPEL process coordinates these interactions and composes them into a straight-through or long-running flow. During execution, when exceptions occur, some activities may need reversal or undo, and a BPEL process provides the techniques for correlation, compensation, fault and event handling.