9.5. BPEL, XLANG, and WSFL The design of BPEL borrows elements from both XLANG and WSFL. Table 9-3 lists the major BPEL features and their corresponding features in XLANG and WSFL. Table 9-3. XLANG and WSFL influences on BPELBPEL feature | XLANG | WSFL |
---|
Partner, partner links | Business party contracts | Global model, service providers, plug links | Process variables | No, implicit only | No, implicit only | Correlation | Correlation sets, correlation attributes of operation actions | | Exception handling | Per-context exception handler | Weak, use control links to custom exception activities | Compensation | Per-context compensation handler | | Scope | context element | | Invoke | operation action | Activity | Receive | operation action | Activity | Reply | operation action | Activity | Wait | delay action | | No op | empty action | Internal activity | Sequence | sequence action | Yes, as graph | Switch | switch action | Yes, as graph | While | while action | Yes, as graph, supports loops | Pick | pick action | | Flow | All action provides parallelism but not with flow links | Flow model, control links | Assign | | | Global event handler | | | Dead path elimination | | Inherent support, crucially important concept | Subprocess | | | Process initiation | An operation action with activation set to true | Lifecycle service has spawn operation |
Two conclusions can be drawn from this survey: XLANG and WSFL are very different approaches, and, depending on your point of view, coexist either peacefully or tenuously in BPEL. XLANG is programmatic, where programming language-like elements such as while, sequence, and switch structure the control flow. WSFL prefers a directed graph approach, which control flow is the traversal of activities over links. The majority of BPEL resembles XLANG, but its flow activity, and its related concept of dead path elimination, is obviously derived from WSFL. BPEL is much more advanced than either of its ancestors, with support for process variables and global event handlers. In addition, in BPEL the direction of web service interaction (receive, invoke, and reply activities) is clearer than in WSFL and XLANG, which require you to refer back to the WSDL for the ordering of input and output message types on an operation. |