Workflow模式模式是开发工作流必须了解的知识。
本文档是根据如下资料简单翻译的:
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></shapetype><stroke joinstyle="miter"></stroke> <formulas> </formulas> <f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f> <lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" alt="::URL::" type="#_x0000_t75"></shape><imagedata o:href="http://www.blogcn.com/images/aurl.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"></imagedata> http://is.tm.tue.nl/research/patterns/patterns.htm
Basic Control Flow Patterns(基本模式)
1. Sequence 模式
定义:串行模式:在一个工作流中,一个动作在另外一个动作完成后使能。
<shape id="_x0000_i1026" style="WIDTH: 131.25pt; HEIGHT: 32.25pt" alt="" type="#_x0000_t75" o:button="t" target="_blank" href="http://images.blogcn.com/2005/11/6/10/zhaoshouzhong,20051106183748.gif"></shape> <imagedata o:href="http://images.blogcn.com/2005/11/6/10/zhaoshouzhong,20051106183748.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image002.gif"></imagedata>举例:单据录入的动作完成后,审核的动作被执行。
2. Parallel Split模式:
定义:并行分支模式(与分支、AND-Split):工作流中的一个节点,在该节点,一个单一的线程被分成多个线程,这些线程可以被并行执行,因此,分支的动作可以被同时执行或者以某种顺序执行。
举例:客户付款后,送货和通知客户的动作可以并行执行
3. Synchronization模式:
定义:同步模式,(与汇合、AND-Join):在工作流中的一个点,在该点处,所有并行的子流程或者活动,汇合成一个单一的线程。因此必须所有子流程(活动)执行完成后,才可以执行下一个活动。
前提条件:所有的子流程(活动)仅能被执行一次,不可以重复执行
举例:
4. Exclusive Choice 模式:
定义:唯一选择模式(XOR-split):在工作流的一个点,根据选择条件或者工作流控制数据,在多个分支中选择一个分支执行。
5. Simple Merge 模式
定义:简单合并模式(XOR-join):在工作流的一个节点,一个或者多个可选分支非同步到达。只要一个动作完成,就会触发后续动作。
前提条件:这些分支中不存在并行执行的情况。
Advanced Branching and Synchronization Patterns (高级分支、同步模式)
6. Muti-Choice模式:
定义:多选择模式(或分支 OR-split):在工作流中的一个节点,根据条件或者相关控制数据,多个分支被选择。Exclusive Choice 模式仅能选择一个分支
备注:由于某些工作流不支持该模式,因此,可以通过AND-split 模式,XOR-split模式组合来表达。
举例:A活动执行完后,根据条件,B活动,C活动被选择执行。
7. Synchronizing Merge模式:
定义:同步合并模式:在工作流中的一个节点,多个被选的分支汇合成一个单一的线程。如果有多于一个的分支被执行,工作流会等待所有的分支执行完成后,才开始下一个动作的执行。
前提条件:在该节点的下一个动作执行前,被选的分支动作仅能被执行一次。
举例:加入A、 B 被选择执行,只有当A 、B都执行完毕后,动作D才可以被执行。
8. Multi Merge 模式:
定义:重复组合模式:在工作流的一个节点,多个被选分支非同步的聚合。每一个分支完成后,后续的动作都会被执行一次。
举例:如果A、B被 选择执行,A执行完毕后,D会被跟着执行;B执行完毕后,D也会再执行一次。
9. Discriminator 模式:
鉴别器模式(M-OUT-of-N模式 ):在工作流中的一个节点,在等待N个分支的执行的过程中,只要其中的M个分支完成,它就会触发随后的动作,并忽略其他的分支。
举例:只要B\C\D 三个活动中,有两个活动完成,就会触发E动作。另外一个动作将会被忽略。
Structural Patterns(结构化模式)
10. Arbitrary Cycles模式:
定义:任意循环模式:在工作流的一个节点,一个或者多个活动可以被重复执行。
11. Implicit Termination 模式:
定义:隐式终止模式:在没有其他活动可以执行时,一个子流程应该被终止。当然,前提是不存在死锁的情况。
Patterns involving Multiple Instances (多实例模式)
12. Multiple Instances Without Synchronization 模式:
定义:非同步多实例模式:在一个工作流实例的环境中,一个动作的多个实例可以被创建。也就是说在控制线程外,产生新的线程。这些线程相互独立,不需要同步。
举例:在客户订书的流程中,客户可以对不同的书下单,因此订书的动作存在多个实例,订A书的实例,订B书的实例等等。
13. Multiple Instances With a Priori Design Time Knowledge
定义:拥有优先设计知识的多实例模式:在一个流程实例中,一个活动被实例化的次数在设计时是可知的。一旦所有已知的实例完成,其他的活动需要被执行。
举例:某个订单,需要三次不同的审核。
14. Multiple Instances With a Priori Runtime Knowledge模式:
定义:拥有优先运行知识的多实例模式:在一个流程实例中,一个活动被实例的话次数在设计时是不可知的,它依赖于流程特性或者资源可用性,仅在流程实例运行时的某个阶段可知。
举例:在一个评审团对科学论文的评审流程中,评审的动作依赖于论文的内容,评审团人员的数量,评审团的信誉。
15. Multiple Instances Without a Priori Runtime Knowledge模式:
定义:无运行知识的多实例模式:在一个流程实例中,一个活动被实例的话次数在设计时是不可知的,在流程运行的过程中也是不可知的。
举例:在100台计算机的运输流程中,每次运输的计算机的个数是不可知的,因此整个的运输次数也是不可知的。
State-based Patterns (基于状态的模式)
16. Deferred Choise 模式:
定义:延期选择模式:在工作流的一个节点,在多个可选分支中,只有一个分支选中。不同于XOR-split模式(选择是显式的,根据条件判断,立即决定分支的选择),可选分支是由环境决定的。不同于AND-split模式,只有一个分支被选择。也就是说一旦环境激活其中的一个分支,其他的分支讲被丢掉。很重要的一点是:直到可选分支中的一条被激活,“选择”才进行,因此选择的时刻被尽可能的延期。
17. Interleaved Parallel Pattern模式:
定义:交叉并行模式:一组动作以任意的顺序执行。动作执行的顺序,在工作流实例运行时刻决定,不存在两个动作同时运行的情况。
举例:在体检的中,血液检查、视力检查是两个不同的动作,这两个动作的先后顺序可以是随机的,但是一个时刻只可以执行一个动作,不会同时进行。
18. Milestone模式:
定义:里程碑模式:工作流实例的一个动作依赖于某个特定状态,也就是说当某个里程碑到达后,该动作才可以被执行。
举例:在工厂发货前的头两天,客户可以取消订单。
19. Cancel Activity 模式:
定义:活动取消模式:一个使能的活动被设为不可用,即等待一个活动执行的线程被移除。
举例:一个设计通常由两组工程师检查,为了赶进度,其中一组的检查可能被取消
20. Cancel Case模式:
定义:取消案例模式:一个工作流的实例被彻底的移除,也就是说无论是否该实例有动作已经实例化。
举例:在最终法院判决前,起诉人可以撤销上诉。
Workflow
本文档是根据如下资料简单翻译的:
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></shapetype><stroke joinstyle="miter"></stroke> <formulas> </formulas> <f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f> <lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" alt="::URL::" type="#_x0000_t75"></shape><imagedata o:href="http://www.blogcn.com/images/aurl.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"></imagedata> http://is.tm.tue.nl/research/patterns/patterns.htm
Basic Control Flow Patterns(基本模式)
1. Sequence 模式
定义:串行模式:在一个工作流中,一个动作在另外一个动作完成后使能。
<shape id="_x0000_i1026" style="WIDTH: 131.25pt; HEIGHT: 32.25pt" alt="" type="#_x0000_t75" o:button="t" target="_blank" href="http://images.blogcn.com/2005/11/6/10/zhaoshouzhong,20051106183748.gif"></shape> <imagedata o:href="http://images.blogcn.com/2005/11/6/10/zhaoshouzhong,20051106183748.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image002.gif"></imagedata>举例:单据录入的动作完成后,审核的动作被执行。
2. Parallel Split模式:
定义:并行分支模式(与分支、AND-Split):工作流中的一个节点,在该节点,一个单一的线程被分成多个线程,这些线程可以被并行执行,因此,分支的动作可以被同时执行或者以某种顺序执行。
举例:客户付款后,送货和通知客户的动作可以并行执行
3. Synchronization模式:
定义:同步模式,(与汇合、AND-Join):在工作流中的一个点,在该点处,所有并行的子流程或者活动,汇合成一个单一的线程。因此必须所有子流程(活动)执行完成后,才可以执行下一个活动。
前提条件:所有的子流程(活动)仅能被执行一次,不可以重复执行
举例:
4. Exclusive Choice 模式:
定义:唯一选择模式(XOR-split):在工作流的一个点,根据选择条件或者工作流控制数据,在多个分支中选择一个分支执行。
5. Simple Merge 模式
定义:简单合并模式(XOR-join):在工作流的一个节点,一个或者多个可选分支非同步到达。只要一个动作完成,就会触发后续动作。
前提条件:这些分支中不存在并行执行的情况。
Advanced Branching and Synchronization Patterns (高级分支、同步模式)
6. Muti-Choice模式:
定义:多选择模式(或分支 OR-split):在工作流中的一个节点,根据条件或者相关控制数据,多个分支被选择。Exclusive Choice 模式仅能选择一个分支
备注:由于某些工作流不支持该模式,因此,可以通过AND-split 模式,XOR-split模式组合来表达。
举例:A活动执行完后,根据条件,B活动,C活动被选择执行。
7. Synchronizing Merge模式:
定义:同步合并模式:在工作流中的一个节点,多个被选的分支汇合成一个单一的线程。如果有多于一个的分支被执行,工作流会等待所有的分支执行完成后,才开始下一个动作的执行。
前提条件:在该节点的下一个动作执行前,被选的分支动作仅能被执行一次。
举例:加入A、 B 被选择执行,只有当A 、B都执行完毕后,动作D才可以被执行。
8. Multi Merge 模式:
定义:重复组合模式:在工作流的一个节点,多个被选分支非同步的聚合。每一个分支完成后,后续的动作都会被执行一次。
举例:如果A、B被 选择执行,A执行完毕后,D会被跟着执行;B执行完毕后,D也会再执行一次。
9. Discriminator 模式:
鉴别器模式(M-OUT-of-N模式 ):在工作流中的一个节点,在等待N个分支的执行的过程中,只要其中的M个分支完成,它就会触发随后的动作,并忽略其他的分支。
举例:只要B\C\D 三个活动中,有两个活动完成,就会触发E动作。另外一个动作将会被忽略。
Structural Patterns(结构化模式)
10. Arbitrary Cycles模式:
定义:任意循环模式:在工作流的一个节点,一个或者多个活动可以被重复执行。
11. Implicit Termination 模式:
定义:隐式终止模式:在没有其他活动可以执行时,一个子流程应该被终止。当然,前提是不存在死锁的情况。
Patterns involving Multiple Instances (多实例模式)
12. Multiple Instances Without Synchronization 模式:
定义:非同步多实例模式:在一个工作流实例的环境中,一个动作的多个实例可以被创建。也就是说在控制线程外,产生新的线程。这些线程相互独立,不需要同步。
举例:在客户订书的流程中,客户可以对不同的书下单,因此订书的动作存在多个实例,订A书的实例,订B书的实例等等。
13. Multiple Instances With a Priori Design Time Knowledge
定义:拥有优先设计知识的多实例模式:在一个流程实例中,一个活动被实例化的次数在设计时是可知的。一旦所有已知的实例完成,其他的活动需要被执行。
举例:某个订单,需要三次不同的审核。
14. Multiple Instances With a Priori Runtime Knowledge模式:
定义:拥有优先运行知识的多实例模式:在一个流程实例中,一个活动被实例的话次数在设计时是不可知的,它依赖于流程特性或者资源可用性,仅在流程实例运行时的某个阶段可知。
举例:在一个评审团对科学论文的评审流程中,评审的动作依赖于论文的内容,评审团人员的数量,评审团的信誉。
15. Multiple Instances Without a Priori Runtime Knowledge模式:
定义:无运行知识的多实例模式:在一个流程实例中,一个活动被实例的话次数在设计时是不可知的,在流程运行的过程中也是不可知的。
举例:在100台计算机的运输流程中,每次运输的计算机的个数是不可知的,因此整个的运输次数也是不可知的。
State-based Patterns (基于状态的模式)
16. Deferred Choise 模式:
定义:延期选择模式:在工作流的一个节点,在多个可选分支中,只有一个分支选中。不同于XOR-split模式(选择是显式的,根据条件判断,立即决定分支的选择),可选分支是由环境决定的。不同于AND-split模式,只有一个分支被选择。也就是说一旦环境激活其中的一个分支,其他的分支讲被丢掉。很重要的一点是:直到可选分支中的一条被激活,“选择”才进行,因此选择的时刻被尽可能的延期。
17. Interleaved Parallel Pattern模式:
定义:交叉并行模式:一组动作以任意的顺序执行。动作执行的顺序,在工作流实例运行时刻决定,不存在两个动作同时运行的情况。
举例:在体检的中,血液检查、视力检查是两个不同的动作,这两个动作的先后顺序可以是随机的,但是一个时刻只可以执行一个动作,不会同时进行。
18. Milestone模式:
定义:里程碑模式:工作流实例的一个动作依赖于某个特定状态,也就是说当某个里程碑到达后,该动作才可以被执行。
举例:在工厂发货前的头两天,客户可以取消订单。
19. Cancel Activity 模式:
定义:活动取消模式:一个使能的活动被设为不可用,即等待一个活动执行的线程被移除。
举例:一个设计通常由两组工程师检查,为了赶进度,其中一组的检查可能被取消
20. Cancel Case模式:
定义:取消案例模式:一个工作流的实例被彻底的移除,也就是说无论是否该实例有动作已经实例化。
举例:在最终法院判决前,起诉人可以撤销上诉。
Workflow