Tutorials
SOA Web ServicesThis is an extension of the Serial Process application pattern where the sub-processes are executed concurrently on multiple targets. This is illustrated in the following figure.

The concurrent execution of sub-processes requires a more sophisticated execution engine. The processes must be split, executed, and joined properly. The final result depends on the success/failure of each process. The consumer request may require an intermediate splitting and joining of a business operation. In such cases, the intermediate results dictate the further execution of the consumer request. Thus, the execution unit shown in the Parallel Process Rules tier can be very complex.
This pattern is observed in the implementation of a BPEL engine. Considering our example of a traveller in the previous section, the reservation request for a hotel, car and airlines may be executed in parallel as these are independent of each other. Depending on the outcome of each reservation, the ultimate confirmation or denial is communicated to the requester.
The implementation of this pattern is best done with the use of a commercial off-the-shelf orchestration engine. Such engines typically use BPEL for creating business processes. The use of BPEL results in ease of defining and modifying the processes. Applying this pattern on custom-built application components is too complex and should be avoided.