5.5. BPEL and Patterns BPEL fares exceptionally well in its support for support for P4 patterns. As rated by P4 members in its paper,[5] BPEL directly supports 13 of the 20 patterns, and it indirectly supports another one. The results of the paper are captured in Table 5-5. [5] P. Wohed, W. van der Aalst, M. Dumas, A. H. M. ter Hofstede, "Pattern Based Analysis of BPEL4WS," FIT Technical Report, FIT-TR-2002-04. Table 5-5. BPEL support for the P4 patternsPattern | Compliance (+, +-, -) | Approach | Notes |
|---|
Sequence | + | sequence activity | | Parallel Split | + | flow activity | | Synchronization | + | flow activity followed by another activity, which will not execute until all parallel paths in the flow have completed. | | Exclusive Choice | + | switch activity. | | Simple Merge | + | switch activity followed by another activity, which will not execute until the one activity selected in the switch has completed. | | Multi-Choice | + | flow with conditional links to the activities to be chosen. | See P4 paper, p.8f. | Sync Merge | + | Use dead path elimination to join the results of the multiple choice. | | Multi Merge | - | No. | | Discriminator | - | No. | See P4 paper, p.9. | Arbitrary cycles | - | Only structured loops are allowed. No goto-like constructs. | | Implicit Termination | + | rlow with a link out. | | Multiple Instances (MI) Without Synchronization | + | invoke in a while loop. | | MI With Design Time Knowledge | + | Run each instance as a separate activity in a flow activity. | | MI With Runtime Knowledge | - | Onerous. | See P4 paper, p. 11. | MI Without Runtime Knowledge | - | | | Deferred Choice | + | pick activity | | Interleaved Parallel Routing | +- | Multiple scopes within a flow that compete for a single shared variable whose access is serialized (variableAccessSerializable is set to yes). The order of the scopes is arbitrary but serial. | See P4 paper, p. 12f. | Milestone | - | Poll for milestone in a while loop. | See P4 paper, p.14. | Cancel Activity | + | Fault out of the activity to be cancelled. | | Cancel Case | + | terminate activity | |
|