The topmost structure of a BPEL executable process can include the elements shown in Listing 7.3 and also can include a BPEL extension element (<extensions>), which is used in relation to other technologies such as Service Component Architecture.
Listing 7.3: BPEL process elements
<process> <import> </import> <partnerLinks> </partnerLinks> <messageExchanges> </messageExchanges> <variables> </variables> <correlationSets> </correlationSets> <faultHandlers> </faultHandlers> <eventHandlers> </eventHandlers> <!- The previous two elements include activities, as does the subsequent content of the process element. Activities can be enclosed in scopes, as described later. -> </process>
Here are highlights of a process definition:
Each import provides access to a WSDL definition or an XML Schema.
Each partner link is a kind of specialized variable that describes the relationship between the BPEL process and a partner service.
Each message exchange is an identifier that is used to avoid an ambiguous case in a complex business scenario - specifically, to pair a BPEL activity that receives a message with the activity that issues a reply.
Each variable contains business data, whether to hold a message or for other use in the process logic.
Each correlation set is a listing of properties used to correlate service instances.
Each fault handler is a set of activities that run in response to a fault, which is a failure in the process.
Each event handler is a set of activities that run concurrently with other activities, in response either to the passage of time or to receipt of a message.