Back to 工作流

See also BPMNPetri NetDesign

Workflow Patterns

工作流模式是由W.M.P. van der Aalst、A.H.M. ter Hofstede、Bartosz Kiepuszewski、A. P. Barros等人于2000年提出的一个概念。他们一共总结了20种工作流模式。随着后续的发展,更精确与严格的划分下又增加了23种新的模式。

1. The original control-flow patterns

The evaluation is based on BPMN version 1.0.




1 (seq)


Directly supported by linking activities with sequence flow arcs.

2 (par-spl)


Supported by AND-split gateway.

3 (synch)


Supported by AND-join gateway.

4 (ex-ch)


Supported by XOR-split gateway.

5 (simple-m)


Supported by XOR-join gateway.

6 (m-choice)


Supported in three distinct ways: via an implicit split with conditions on the arcs, an OR-split or a complex gateway.

7 (s-sync-m)


Supported through the OR-join gateway.

8 (multi-m)


Supported by XOR-join gateway.

9 (s-disc)


Although support for this pattern is referred to in the BPMN 1.0 specification, it is unclear how the Incoming Condition expression on the COMPLEX-join gateway is specified.

10 (arb-c)


Unstructured repetition can be directly supported.

11 (impl-t)


Supported by ending every thread with an End Event.When the last token generated by the Start Event is consumed, the process instance terminates.

12 (mi-no-s)


Supported via multiple instance task with MI Flow Condition attribute set to none.

13 (mi-dt)


Supported via multiple instance task with MI Flow Condition attribute set to all.

14 (mi-rt)


Supported via multiple instance task with MI Condition attribute set at runtime to the actual number of instances required.

15 (mi-no)


Not supported. There is no means of adding further instances to a multiple instance task once started.

16 (def-c)


Supported via an event-based exclusive gateway followed by either intermediate events using message based triggers or receive tasks.

17 (int-par)


Supported for simple tasks via an ad-hoc process but no support for interleaving groups or sequences of tasks.

18 (milest)


Not supported. No support for states.

19 (can-a)


Supported via an error type intermediate event trigger attached to the boundary of the activity to be cancelled.

20 (can-c)


Directly supported by including the entire process in a transaction. Triggering the cancel end event associated with the transaction will eÆectively terminate allactivities associated with a process instance.

2. Basic Control Patterns


3. Advanced Branching and Synchronization Patterns


4. Structural Patterns


5. Multiple Instances (MI)


6. State-based patterns


6.1. Pattern 18 (Milestone)

Milestone : A task is only enabled when the process instance (of which it is part) is in a specific state (typically a parallel branch). The state is assumed to be a specific execution point (also known as a milestone) in the process model. When this execution point is reached the nominated task can be enabled. If the process instance has progressed beyond this state, then the task cannot be enabled now or at any future time (i.e. the deadline has expired). Note that the execution does not influence the state itself, i.e. unlike normal control-flow dependencies it is a test rather than a trigger.

//这个模式允许测试一个流程是否到达某一阶段。到达某些阶段时可以取消或允许运行某些任务。 animation of this pattern


Modeling Subprocesses in BPMN

7. Cancellation and Force Completion Patterns

7.1. Pattern 19 (Cancel Task)

Cancel Task or Cancel Activity: An enabled task is withdrawn prior to it commencing execution. If the task has started, it is disabled and, where possible, the currently running instance is halted and removed.

//一个有效的任务(enabled task)在执行前被撤回(withdrawn),已经开始的任务失效,如果可能,当前运行的实例都会中止和移除。 animation of Cancel Task pattern


7.2. Pattern 20 (Cancel Case)

Cancel Case: A complete process instance is removed. This includes currently executing tasks, those which may execute at some future time and all sub-processes. The process instance is recorded as having completed unsuccessfully.

//一个完整的实例被移除。其中包括执行中的任务,可能还有将来要执行的和所有子流程。这个流程实例被记录为非成功的完成。 animation of this pattern


7.3. Pattern 25 (Cancel Region)

Cancel Region: The ability to disable a set of tasks in a process instance. If any of the tasks are already executing (or are currently enabled), then they are withdrawn. The tasks need not be a connected subset of the overall process model.

//在一个流程实例中,有能力关闭一组任务,如果有任何任务已经执行或者当前激活,取消他们。这个任务不会关联到整个流程模型的子集。也就是说不会影响到其他子集的执行。 animation of this pattern


8. Iteration Patterns

The following patterns deal with capturing repetitive behaviour in a workflow.

9. Termination Patterns

The following patterns deal with the circumstances under which a workflow is considered to be completed.

10. Trigger Patterns

The following patterns deal with the external signals that may be required to start certain tasks.

11. Reference


MainWiki: workflow_patterns (last edited 2015-07-06 18:35:38 by twotwo)