本文主要是介绍工作流模式_基本工作流模式(C2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这五个模式的共同点在于:模式所涉及流程的执行路径是在设计时即可确定的,不需运行时的信息。包括:[list]
[*] Sequence(顺序模式)
[*] Parallel split(平行拆分模式)
[*] Synchronization(同步模式)
[*] Exclusive choice(排他选择)
[*] Simple merge(简单合并模式)
[/list]
[color=red][b]WP_01、Sequence(顺序模式) [/b][/color]
描述:在一个流程实例中,各个活动按顺序依次执行。 Auto活动2 必须在auto活动1 执行完成以后才能执行。Auto1~auto5是自动活动;这里也可以是人工活动;变迁是无条件转移的。
[img]/upload/attachment/124404/a5cca85b-5720-308e-ac33-ac377dba5f9d.jpg[/img]
图wp01:顺序流程
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp1_flash.swf[/flash]
图wp01:顺序流程(flash)
[color=red][b]WP_02、Parallel split(并发模式) [/b][/color]
描述::在一个流程实例中,存在两个或者多个执行路径平行执行,但这些平行的路径之间没有关联,平行路径的执行没有确定的顺序关系。
在Petri网语意中,存在一个显式and_split,并作为路由活动,来并发执行后续活动的接点。在下图中,当auto活动1完成后,同时会无条件执行auto活动2,3,4的活动节点。这里的发散是显式的。
[img]/upload/attachment/124406/3d8244e2-ee5d-3721-aa41-c396cc788477.jpg[/img]
图wp02:无条件并发流程
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp2_flash.swf[/flash]
图wp02:无条件并发流程(flash)
[color=red][b]WP_03、Synchronization(同步模式) [/b][/color]
描述:在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。流程必须等待所有的分支都执行完以后,才能激活后续活动。
在Petri网语意中,存在一个显式and_join,并作为路由活动,同步汇聚前驱的所有活动接点。 在下图中,只有auto活动2,3,4均已完成,才能激活auto活动5,否则auto_join路由活动一直处于等待同步中。这里的汇聚是显式的。
典型场景是and_split和and_join配套使用,形成发散汇聚的路径。
[img]/upload/attachment/124408/e3c614d5-4dc2-37d9-b6c5-60f817fdbb13.jpg[/img]
图wp03:同步汇聚流程
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp3_flash.swf[/flash]
图wp03:同步汇聚流程(flash)
[color=red][b]WP_04、Exclusive choice(排他选择模式) [/b][/color]
描述:当一个活动完成以后,可以有多个分支进行选择,但是只能选择其中的一个分支,即多选一。
在Petri网语意中,存在一个显式xor_split,并作为路由活动,根据条件判断,选择后续1个分支。
一般来说,流程会预先设定一个相关数据,在该相关数据的值就是后续分支选择的依据。该路由活动会调用一个条件判断模块(1、简单值匹配;2、class返回值;3规则引擎返回值)判断后续需要走哪个流程,只能选择唯一后续活动接点。如果返回多个后续活动接点,引擎选择的是返回的第一个活动节点。
[img]/upload/attachment/124410/97131637-10ba-35eb-8365-1c2be3de3369.jpg[/img]
图wp04:单一条件发散流程(并有个显式的简单汇聚-- xor_join)
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp4_flash.swf[/flash]
图wp04:单一条件发散流程(flash)
[color=red][b]WP_05、Simple merge(简单合并模式)[/b][/color]
描述:在一个流程实例中,两个或多个执行路径在一个活动节点上合并。 一般采用“先进先出”原则,但是后续活动只产生一次。
在Petri网语意中,存在一个显式xor_join,并作为路由活动,当路径活动执行完以后,如果是显示存在xor_join路由活动,可以参考wp04;因为在xor_split处只能激活后续1个活动分支,故auto活动5只能也被执行一次,所以这个xor_join可以被省略,形成wp05图。简化的流程不影响流程的正常执行,而且可以简化流程的画法,在复杂的流程中表现的尤为突出。
条件分支为xor_split类型,才能保证汇聚点的活动只被执行一次;如果条件分支是or_split,即后续分支可能启动多条的时候,则汇聚点有可能会被执行多次,这样就是wp_08的模式
[img]/upload/attachment/124412/8e412e26-b37b-3a46-ac38-480365d77b18.jpg[/img]
图wp05:简单汇聚流程(隐式)
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp5_flash.swf[/flash]
图wp05:简单汇聚流程(flash)
这篇关于工作流模式_基本工作流模式(C2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!