A BPEL process is a collection of Web services whose interactions are choreographed in a defined manner. Each service is a participant that performs some type of processing. Services can be highly granular (for example, calculate a rate) or very large in scope (for example, process an order).
In the following figure, the process is the Seller participant, accepting a purchase order from a customer through a Web service input message. The Seller then places the order with the Purchasing participant. To end the process, the process returns an acknowledgement to the customer if the order was fulfilled.
After participants send the acknowledgement, they could send other messages to the customer, such as shipping notices and invoices.
Because you want to have this type of interaction with the customer for many purchase orders, as well as with other customers, 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, a new process is created. 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 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.
A BPEL process coordinates these interactions and composes them into a straight-through or long-running flow. For example, if an exception occurs while a process is executing, activities could be reversed or undone, and a BPEL process provides the techniques for correlation, compensation, and fault and event handling.