论坛首页 Java企业应用论坛

工作流20种基本模式的理解

浏览 2571 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-11  

Aalst提出了工作流有20种基本模式。

如果不知道的可参考附件《Workflow Patterns-2002.pdf》

 

(当然了,后人陆续扩展、变化,模式数量不断变化,但万变不离其宗,可从这些基本模式看起)

 

下面是我的初步分析:

模式名称

模式关键字

模式说明

Basic Control Patterns

Sequence

Sequence

1

Parallel Split

AND Split

2

Synchronization

AND Join

3

Exclusive Choice

XOR Split

4

Simple Merge

XOR Join

5

ADVANCED BRANCHING AND SYNCHRONIZATION PATTERNS

Multiple Choice

OR Split

6

Synchronizing Merge

AND Join

7

Multi-merge

OR Join(+Multi)

8

Discriminator

OR Join(+Reset/Ignore)

9

N-out-of-M-join

OR Join(+Multi M)

9aN分支,M聚合即可

STRUCTURAL PATTERNS 

Arbitrary Cycles[自由循环]

XOR Split

10

Implicit Termination

Multi(OR/AND) Split End

11

PATTERNS INVOLVING MULTIPLE INSTANCES

MI without synchronization

Runtime independent thread by condition

12,在运行期创建独立实例(线程、程序等)

MI with a priori known design time knowledge

Design time priori Instance

13,设计期多实例,且需全部完成

MI with a priori known runtime knowledge

Runtime multi Instance by condition/free

14,运行期可基于条件创建多实例

MI with no a priori runtime knowledge

Runtime multi Instance free by people

15,运行期可手工随意创建多实例

STATE-BASED PATTERNS 

Deferred Choice

XOR Split(By choice)

16,“推着走”流程,或基于既定条件分支

Interleaved Parallel Routing

OR Split + OR Join, Parallel

17,多分支聚合,分支执行顺序由运行期确定

Milestone

Wait by Milestone

18,在“里程碑”节点等待

CANCELLATION PATTERNS   

Cancel Activity

Cancel in specified Activity

19,在指定的活动取消

Cancel Case

Cancel Anywhere/Anytime

20,任意时候可取消

 

可以看到,其实很多是类似的,这为下一步的工作流引擎需求、设计打下基础。

抛砖引玉,供大家参考。

   发表时间:2009-08-11  
哈哈,楼上火气比较暴,要知道这20种(或者说21种)真的是“基础”,如果一个一个说,也许你会不屑一顾,但毕竟是大牛Aalst的作品,我们还是得好好消化,就好比9*9算法表,一个一个上就没劲了。

说实话,有些模式我还需要再消化,才能真正理解工作流的“业务”,并构造自己的工作流引擎的“能力”
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics