Workflow Pattern

Workflow pattern is taxonomy of workflow based on a shape of a workflow diagram or categorization of task status.

Overview of Workflow Pattern
Workflow pattern is research about taxonomy of workflow, which has been continuously worked on since 2002 by research teams in Eindhoven University of Technology (Netherlands) and Queensland University of Technology (Australia), led by W.M.P. van der Aalst, A.H.M. ter Hofstede, and N. Russell. It is not analyzed from programmers' perspective, but from businesspeople's.

After "Workflow Patterns" was published in "Distributed and Parallel Databases" in 2003, a variety of "pattern research," including "taxonomy of shapes of business flow diagrams", has been worked on.


 * "Control-Flow Patterns": Taxonomy based on shapes of business flow diagrams
 * "Data Patterns": Taxonomy based on data store and delivery
 * "Resource Patterns": Taxonomy based on process status etc. of assigned tasks
 * "Exception Handling Patterns": Taxonomy based on responses to exceptions, such as interruption, relinquishment, and so on.

The number of control flows (shapes of business flow diagrams) was 20 in a paper published in 2002, but later the number has increased to 43 through research.

History

 * 2003: Workflow Patterns (PDF:70p)
 * 2004: Workflow Data Patterns (PDF:75p)
 * 2004: Workflow Resource Patterns (PDF:73p)
 * 2006: Workflow Control-Flow Patterns : A Revised View (PDF:134p)
 * 2006: Exception Handling Patterns in Process-Aware Information Systems (PDF:29p)

Control Flow Patterns presented in 2003
There are a variety of patterns, such as "Sequence," "Parallel Split," "Arbitrary Cycles," and "Multiple Instance without Synchronization." They are not classified based on whether they are structured or not etc.

Basic Control Flow Patterns

 * Pattern 1 Sequence
 * Pattern 2 Parallel Split
 * Pattern 3 Synchronization
 * Pattern 4 Exclusive Choice
 * Pattern 5 Simple Merge

Advanced Branching and Synchronization Patterns

 * Pattern 6 Multi-choice
 * Pattern 7 Synchronizing Merge
 * Pattern 8 Multi-merge
 * Pattern 9 Discriminator

Structural Patterns

 * Pattern 10 Arbitrary Cycles
 * Pattern 11 Implicit Termination

Patterns involving Multiple Instances

 * Pattern 12 Multiple Instances Without Synchronization
 * Pattern 13 Multiple Instances With a Priori Design Time Knowledge
 * Pattern 14 Multiple Instances With a Priori Runtime Knowledge
 * Pattern 15 Multiple Instances Without a Priori Runtime Knowledge

State-based Patterns

 * Pattern 16 Deferred Choice
 * Pattern 17 Interleaved Parallel Routing
 * Pattern 18 Milestone

Cancellation Patterns

 * Pattern 19 Cancel Activity
 * Pattern 20 Cancel Case

Control Flow Patterns Presented in 2006
In addition to 20 patterns presented in 2003, 23 various patterns were added, including "Structured Loop," "Acyclic Synchronizing Merge," and so forth.

Basic Control-flow patterns

 * WCP1: Sequence
 * WCP2: Parallel Split
 * WCP3: Synchronization
 * WCP4: Exclusive Choice
 * WCP5: Simple Merge

Advanced Branching and Synchronization Patterns

 * WCP6: Multi-Choice
 * WCP7: Structured Synchronizing Merge
 * WCP37: Acyclic Synchronized Merge
 * WCP8: Multi-Merge
 * WCP9: Structured Discriminator
 * WCP28: Blocking Discriminator

Structural Patterns

 * WCP10: Arbitrary Cycles
 * WCP21: Structured Loop
 * WCP22: Recursion
 * WCP11: Implicit Termination
 * WCP43: Explicit Termination

Multiple Instance Patterns

 * WCP12: Multiple Instance without Synchronization
 * WCP13: Multiple Instances with a priori Design-Time Knowledge
 * WCP14: Multiple Instances with a priori Run-Time Knowledge
 * WCP15: Multiple instances without a priori run-time knowledge

State-based Patterns

 * WCP16: Deferred Choice
 * WCP17: Interleaved Parallel Routing
 * WCP40: Interleaved Routing
 * WCP18: Milestone

Cancellation Patterns

 * WCP19: Cancel Activity
 * WCP20: Cancel Case

New Control-Flow Patterns

 * WCP-21 Structured Loop
 * WCP-22 Recursion
 * WCP-23 Transient Trigger
 * WCP-24 Persistent Trigger
 * WCP-25 Cancel Region
 * WCP-26 Cancel Multiple Instance Activity
 * WCP-27 Complete Multiple Instance Activity
 * WCP-28 Blocking Discriminator
 * WCP-29 Canceling Discriminator
 * WCP-30 Structured Partial Join
 * WCP-31 Blocking Partial Join
 * WCP-32 Canceling Partial Join
 * WCP-33 Generalized AND-Join
 * WCP-34 Static Partial Join for Multiple Instances
 * WCP-35 Canceling Partial Join for Multiple Instances
 * WCP-36 Dynamic Partial Join for Multiple Instances
 * WCP-37 Acyclic Synchronizing Merge
 * WCP-38 General Synchronizing Merge
 * WCP-39 Critical Section
 * WCP-40 Interleaved Routing
 * WCP-41 Thread Merge
 * WCP-42 Thread Split
 * WCP-43 Explicit Termination

Related Articles

 * Workflow Engine
 * Allocation
 * Offer

Reference

 * WorkflowPatterns.com
 * Recitation: Business Modeling - SOA Best Practice (O'Reilly Japan)