种工作流模式介绍

上传人:奇*** 文档编号:253364255 上传时间:2024-12-12 格式:PPT 页数:25 大小:528KB
返回 下载 相关 举报
种工作流模式介绍_第1页
第1页 / 共25页
种工作流模式介绍_第2页
第2页 / 共25页
种工作流模式介绍_第3页
第3页 / 共25页
点击查看更多>>
资源描述
题头,*,Internal use only,書式設定,書式設定,第,2,第,3,第,4,第,5,*,工作流模式和,JBPM,Work,f,lowPatterns,&JBPM,赵慧,2010,/,08,/,0,3,目录,jBPM4,介绍,来自国外的,20,种工作流模式,5,种基本控制流模式,(Base Control Flow Patterns),4,种高级分支同步模式,(Advanced Branching and Synchronization Patterns),2,种结构化模式,(,Sturctural,Patterns),4,种包含多实例的模式,(Patterns involving Multiple Instances),3,种基于状态的模式,(State-based Patterns),2,种取消模式,(Cancellation Patterns),具有中国特色的工作流模式,2,jBPM4,介绍,j,BPM简介,j,BPM,,全称是,Java Business Process Management(,业务流程管理,),,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。,目前最新版本是,jBPM4.4,Business analyst,j,BPM,架构,j,BPM,的,使用,3,5,种基本控制流模式,Pattern1,顺序流,(,Sequence,),定义描述:,在流程中,活动按照预先设定的顺序一个接着一个的往下执行,例 子:,比如申请后进行审批,接着往下一个一个的进行任务,流 程 图:,Pattern2,并行分叉,(,Parallel Split,),定义描述:,流程在某个活动之后产生多个分支,例 子:,比如用户付款后,认为分叉为,“,通知用户款已收到真正送货,”,和,“,送货,”,2,个动作,流 程 图:,Task1,Task2,Task2,Task1,Task2,Task3,Task21,Task31,4,5,种基本控制流模式,Pattern3,同步,(,Synchronization,),定义描述:,在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。,流程必须等待所有的分支都执行完成后,才能激活后续活动,这就是,“,同步,”,的意思。,例 子:,比如,“,数据归档,”,在,“,发票,”,和,“,付款,”,都完成后才被激活,流 程 图:,Task1,Task2,Task3,Task31,5,5,种基本控制流模式,Pattern4,独占式选择,(,Exclusive Choice,),定义描述:,一个活动完成后,只能在后面的多个分支中激活一个,即独占式分支,例 子:,比如用户下单后,可以有,N,中付款方式,但是只能选择其中一种,流 程 图:,Task1,Task2,Task3,Task21,Task31,Pattern5,简单聚合,(,Simple Merge,),定义描述:,在流程中有,2,个以上的分支中某一点处被合并成一个分支,只要分支中的一条完成,即可继续进行。,而其他分支自动结束,例 子:,比如,“,发货,”,在,“,银行卡支付,”,和,“,货到付款,”,等支付方式中的一个完成后才被激活,流 程 图:,Task1,Task2,Task3,Task31,任一,6,基本控制流模式,jBPM,中的综合实现,5,种基本控制流模式在,JBPM4,中的综合实现,流 程 图,:,(,JPDL,),顺序,并行分叉,同步,排他选择,简单聚合,7,4种高级分支同步模式,Pattern6,多重选择,(,Multiple Choice,),定义描述:,在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者,N,个分支,例 子:,去世博园玩转门口检票后可以选择,AE,个片区中的,N,个进行观光,流 程 图:,JBPM,中的支持情况:,JPDL,方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是,JBPM4.4,之后支持一种叫,foreach,的节点,允许我们在运行时制定几种特定的任务,比如上面例子中的 片区,我们可以在选定后再去循环,BPMN,方式支持根据条件执行多个子分支,Task1,Task2,Task3,Task5,Task4,8,4种高级分支同步模式,Pattern7,同步聚合,(,Synchronizing Merge,),定义描述:,在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动,如果分支只有一个那么就,变成,Pattern5,的简单聚合模式;如果存在,2,个以上的分支那就是,Pattern3,的同步模式;,这种模式的关键在于能够动态的根据分支的多少进行聚合。,例 子:,游客观光完,N,个片区后,系统能够将游客在,N,个片区的信息记录到 库,无论,N,为多少,流 程 图:,JBPM,中的支持情况:,可以通过设置,JBPM,的,Join,节点的属性,multiplicity,的值为某个变量,并在程序中动态的去修,改该变量的值来制定分支的数量,Task1,Task2,Task5,Task3,Task4,9,4种高级分支同步模式,Pattern8,多重聚合,(,Multiple Merge,),定义描述:,在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例,例 子:,游客观光完,N,个片区后,每个片区各自的系统可以对游客在自己片区的信息进行存储,流 程 图:,JBPM,中的支持情况:,可以通过设置,JBPM,的,Join,节点的属性,multiplicity,的值为某个变量,并在程序中动态的去修,改该变量的值来制定分支的数量,Task1,Task2,Task5,Task3,Task4,Task1,Task5,Task3,Task4,Task5,10,4种高级分支同步模式,Pattern9,鉴别器,(,Discriminator,),定义描述:,在流程的某个聚合点,,N,个分支的第一个分支到达后,就立刻激活后续活动;,与此同时,流程仍然要等待其余的分支完成并忽略完成。,注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的,例 子:,“,个人申请提交,”,后,并行提交给,“,第一导师审批,”,、,“,第二导师审批,”,、,“,第三导师审批,”,,,他们中只要有一个完成了,那么就可以提交给学院做,“,学院审批,”,,,但是学院要等这三个都完成之后才能够执行,“,学院审批,”,。,N-out-of-M,鉴别器模式,跟鉴别器模式一样的,只是这种模式是,N,个到达后,激活后续节点,而剩下的,M-N,个节点到达后忽略掉这些节点。,另外这,M-N,个节点未完成前,新激活的后续节点一样无法被执行,JBPM,中的支持情况:,没有直接支持这种模式,但是如果通过自定义节点,应该是可以处理这种模式的,个人理解:对于里面的,N-1,个,如果会被忽略掉,会显得没有什么价值,浪费?,11,2种结构化模式,Pattern10,任意循环,(,Arbitrary Cycles,),定义描述:,某一个或多个活动可以反复执行,例 子:,用户,“,付款,”,,然后,“,拿到汽水,”,,然后中了,“,再来一瓶,”,,然后就重复做了一次,“,拿到汽水,”,动作,流 程 图:,Task1,Task3,Task2,Pattern11,隐式终止,(,Implicit Termination,),定义描述:,指着一个流程中,如果没有活动可以执行力,那么流程就会自动终止,例 子:,比如用户买了汽水后,中了,50,元小奖,但是没有地方可以兑奖,于是这个流程终止了,流 程 图:,Task1,Task2,Task3,Task4,12,2种结构化模式,JBPM,中的综合实现,2种结构化模式,在,JBPM4,中的综合实现,流 程 图,:,(,JPDL,),循环,隐式退出,13,4,种包含多实例的,模式,Pattern12,无同步的多实例,(,MI without,),定义描述:,在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步,例 子:,比如用户购买了,N,本书,于是后续的,“,支付账单,”“,更新客户,”,可以以书本为单位各自执行,流 程 图:,JBPM中的支持情况,:,支持这种模式,但是不允许在后面进行结束动作,Task1,Task2,Task1,Task2-1,Task2-2,Task2-3,Foreach,节点,14,4,种包含多实例的模式,Pattern13,设计时确定的的多实例,(,MI with a Priori Design Time,Knoledge,),定义描述:,在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候就已经知晓率,例 子:,比如,流 程 图:,JBPM中的支持情况,:,对于设计时已经知道实例数量的,最简单的就是使用多个,Task,节点来实现多个实例,Task1,Task2,Task1,Task2-1,Task2-2,Task2-3,X3,15,4,种包含多实例的模式,Pattern14,运行时确定的的多实例,(,MI with a Priori,RunTime,Knoledge,),定义描述:,在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,,只有在运行时根据条件来决定需要激活多少个实例,例 子:,比如,流 程 图:,JBPM中的支持情况,:,对于运行时可以知晓实例数量的,可以通过设置,JOIN,节点的,multiplicity,来实现,Task1,Task2,Task1,Task2-1,Task2-2,Task2-3,Foreach,节点,JOIN,节点,16,4,种包含多实例的模式,Pattern15,运行时无法确定的的多实例,(,MI without a Priori,RunTime,Knoledge,),定义描述:,在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,,该模式与上一个模式的区别就是,在产生的实例执行时或者已经执行完时,仍然有新的实例产生,例 子:,比如订购,100,台电脑,涉及多个供应商,但那时每个供应商供应多少台电脑是不知道的,,因此供应商的数量实现也不确定,但是每次供应商送货来后,就会将现在所拥有的电脑数量和,所需的,100,台进行比较,来决定是否要下一个供应商进行送花,Pattern15,的实现,产生多个实例,JOIN,节点,在产生的实例中执行的时候产生新的实例,Pattern15,的实现主要也是通过,Pattern14,的方式来做的,流 程 图,:,(,JPDL,),在这里修改计算实例的数量并付给,JOIN,节点的,multiplicity,17,3,种基于状态的模式,Pattern16,延迟选择,(,Deferred Choice,),定义描述:,流程中某个点可以有多个分支进行选择。,与,Pattern4,相比较:,不是基于简单的数据或者决定就可以很明显地作出选择,而是会向系统或者执行环境提供,多种可选择的分支;但是又不同于,AND-Split,模式,延迟选择只能选择一个分支执行,,一旦选择了其中第一个分支,那么其他分支就会被撤销。这种延迟一直会持续到第一个选择分支,开始实际运行。,例 子:,收到的一批商品运送到各个部门,到底选择什么样的运行方式,要看资源的可用性,18,3,种基于状态的模式,Pattern17,交叉存取并行路由,(,Interleaved Parallel Routing,),定义描述:,或者叫任意顺序,指几个活动必须按顺序执行,不能同时进行,但是这种顺序又是不定的,例 子:,体检的时候有很多项目,这些项目不能同时进行,但是可以以随意顺序进行,我的理解:,这种任意顺序的模式,有一种情况下是可以运用的,就是,通过资源多少来判断优先执行哪个活动,,,比如若,A,的资源剩余最少,那么就先做,A,的顺序,通过,JBPM,的实现如下:,1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 大学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!