现在的位置: 首页 > 综合 > 正文

【工作流】工作流结构模式整理

2011年03月27日 ⁄ 综合 ⁄ 共 2733字 ⁄ 字号 评论关闭

  注:1、表格中模式名和描述都是我自己根据理解写的,并没有完全翻译这些模式的完整描述;

        2、有关流程模式的完整描述请参考http://www.workflowpatterns.com/

        3、PE实现一栏是只在ProcessEngineer这个系统中有关结构模式的实现情况,PE设计器的详细文档将会在下月公布;

        4、这些都是小弟的一己愚见,如有不正之处还请大虾们多多指点,这也是我把这个放在blog上的主要目的。

模式E

模式名

描述

PE实现

1. Sequence

顺序流

当一个活动完成时,后一个活动才可执行

BPMN实现

2. Parallel Split

并行分支

多个活动分支同时执行

BPMN实现

3. Synchronization

并行同步

多个分支合并,多个分支活动都完成时,才继续执行下一个活动

BPMN实现

4. Exclusive Choice

多选一分支

多个活动分支中选择其一执行

BPMN实现

5. Simple Merge

多选一合并

多个分支合并,其中任意一个活动完成,就继续执行下一个活动。

BPMN实现

 

 

 

 

6. Multi-Choice

多选多分支

多个活动分支中选择任意多个分支执行

BPMN实现

7. Structured Synchronizing Merge

结构性同步合并

多个分支合并,不论其中多少分支活动正在执行,都等待这些分支活动完成后,才继续执行。

ORGateway中设置IsStructured属性实现

8. Multi-Merge

多分支合并

多个分支合并,等待多个分支活动中任意多个活动完成后,继续执行下一个活动

BPMN实现

9. Structured Discriminator

结构性鉴别器

多个分支合并,当其中一个活动完成,立即执行下一个活动;但其他分支活动执行完成后,不执行下一个活动

Gateway中设置Discriminator属性实现(合并ParallelGateway不支持该模式)

28. Blocking Discriminator

阻塞性辨别器

 

暂不支持

29. Cancelling Discriminator

取消性辨别器

多个分支合并,当其中一个活动完成,立即执行下一个活动;但其他分支活动被取消执行

Gateway中设置Discriminator属性实现(合并ParallelGateway不支持该模式)

30. Structured Partial Join

结构性部分合并

多个分支合并,等待多个分支活动中任意多个活动完成后,继续执行下一个活动;但其他分支执行完成后,不执行一下个活动

Gateway中设置Discriminator属性实现(合并ParallelGateway不支持该模式)

31. Blocking Partial Join

阻塞性部分合并

 

暂不支持

32. Cancelling Partial Join

取消性部分合并

多个分支合并,等待多个分支活动中任意多个活动完成后,继续执行下一个活动;但其他分支活动被取消执行

Gateway中设置Discriminator属性实现(合并ParallelGateway不支持该模式)

33. Generalised AND-Join

通用性并行同步

多个分支合并,多个分支活动都完成时,才继续执行下一个活动;同时多个实例同时到达,需按到达次序执行。

暂不支持

37. Local Synchronizing Merge

本地同步合并

多个分支合并,有多少分支完成时,才继续执行下一个活动是由本地数据来动态决定的。

ORGateway中设置规则实现

38. General Synchronizing Merge

一般性同步合并

 

暂不支持

41. Thread Merge

线程合并

活动需要等待多个流程实例完成该活动后,再继续执行下一个活动

Task中设置IsThreadMergeThreadCount属性实现

42. Thread Split

线程分支

每次执行活动时,会产生多个分支执行下一个活动

Task中设置IsThreadSplitThreadCount属性实现

 

 

 

 

12. Multiple Instances without Synchronization

非同步性多实例

每次执行活动时,会产生多个该活动的实例;它们并行、独立、互不相关地执行,不需同步,而且该活动后的活动不会重复执行

暂不支持

13. Multiple Instances with a Priori Design-Time Knowledge

设计时确定多实例

执行活动的次数由流程设计期间确定,这些实例需要同步后才继续执行

ActivityLoop功能实现

14. Multiple Instances with a Priori Run-Time Knowledge

运行前期确定多实例

执行活动的次数由活动运行前确定,这些实例需要同步后才继续执行

ActivityLoop功能实现

15. Multiple Instances without a Priori Run-Time Knowledge

非运行前期确定多实例

执行活动的次数由活动运行时确定,这些实例需要同步后才继续执行

ActivityLoop功能实现

34. Static Partial Join for Multiple Instances

静态部分合并多实例

执行活动的次数确定后,其中部分活动实例完成后,立即执行下一个活动,其他实例可以执行,但不继续执行下一个活动

ActivityLoop功能实现

35. Cancelling Partial Join for Multiple Instances

取消部分合并多实例

执行活动的次数确定后,其中部分活动实例完成后,立即执行下一个活动,其他实例被取消执行

ActivityLoop功能实现

36. Dynamic Partial Join for Multiple Instances

动态部分合并多实例

执行活动的次数确定后,运行期决定其中多少活动实例完成后,立即执行下一个活动;而其他实例可以执行,但不继续执行下一个活动

暂不支持

 

 

 

 

16. Deferred Choice

推迟选择

多个分支的选择,由其中哪个分支的活动先开始执行,即选择哪个分支执行。

BPMN实现(Event base XOR

17. Interleaved Parallel Routing

依次并发

多个活动分支依次执行,一个分支中的活动完成后,执行下一个

暂不支持

18. Milestone

里程碑

只有当某个活动执行时,该活动(或分支)才能被执行;否则该活动(或分支)是不可见的

暂不支持(可以通过组合Gateway间接模拟)

39. Critical Section

互斥组

两个组的活动不能同时执行

暂不支持

40. Interleaved Routing

依次循环

多个活动分支依次执行,一个分支中的活动完成后,执行下一个;但执行顺序随机

暂不支持

 

 

 

 

抱歉!评论已关闭.