Name

Multiple Instances Patterns

Synopsis

In the patterns discussed in this section, multiple instances of an activity run concurrently. A given language’s support for these patterns requires support for the ability to spawn multiple instances, and, in three cases, the ability to perform a synchronizing merge of the branches. The four Multiple Instances (MI) patterns are: Without Synchronization, With Design-Time Knowledge, With Runtime Knowledge, and Without Runtime Knowledge.

Without Synchronization

The intent of the Without Synchronization pattern is to perform multiple concurrent instances of an activity but let each run on its own with no overall synchronization.

A batch process, for example, reads a large data file record by record and spawns a subprocess to handle each record. The implementation, as suggested by the P4, is to perform a parallel split in a loop.[*] Figure 4-15 illustrates this concept.

The Multiple Instances Without Synchronization pattern
Figure 4-15. The Multiple Instances Without Synchronization pattern

BPMN supports this pattern out of the box; the activity is configured to loop in multiple parallel instances (denoted by two parallel bars marked inside the activity’s box) with the flow condition set to none, as shown in Figure 4-16.

In BPEL, the behavior can be achieved by invoking an asynchronous process in multiple iterations of a while loop.

This pattern is related to other Multiple Instances patterns, Parallel Split, ...

Get Essential Business Process Modeling now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.