Over the past few years, workflow patterns have become a touchstone of workflow standards and products. The Workflow Patterns initiative is a joint effort of Eindhoven University of Technology (led by Professor Wil van der Aalst) and Queensland University of Technology (led by Professor Arthur ter Hofstede) which started in 1999. The aim of this initiative is to provide a conceptual basis for process technology. In particular, the research provides a thorough examination of the various perspectives (control flow, data, resource, and exception handling) that need to be supported by a workflow language or a business process modeling language. The results can be used for examining the suitability of a particular process language or workflow system for a particular project, assessing relative strengths and weaknesses of various approaches to process specification, implementing certain business requirements in a particular process-aware information system, and as a basis for language and tool development. These workflow patterns cover a majority of use cases that BPM modelers would need. Most workflow standards have been evaluated against these patterns.
We start off with some basic control flow patterns. These will introduce some of the common gateways that will be used later. More importantly, these will lay the ground for more complex patterns later in the chapter.
For more interesting patterns please visit Process Patterns here
The simplest of control flow patterns is the sequence flow where a task in a process in enabled after the completion of a preceding task in the same process. In BPMN, this pattern can be modeled using a simple set of sequence flows connecting activities. Lets skip this for its too simple.
Another simple control flow pattern is when two or more task sequences can execute in parallel. In BPMN this can be modeled using an AND gateway. Another option is to model this without a gateway with multiple outgoing sequence flows. When there are multiple outgoing sequence flows from an activity, it is treated as AND split.
Example: Dinner Plan