21种工作流模式介绍讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作流模式和JBPM
WorkflowPatterns & JBPM
赵慧 2010/08/03
Internal use only
目录
Байду номын сангаас jBPM4介绍 来自国外的20种工作流模式
5种基本控制流模式(Base Control Flow Patterns)
4种高级分支同步模式
(Advanced Branching and Synchronization Patterns)
Task2
Pattern2 并行分叉(Parallel Split)
定义描述:流程在某个活动之后产生多个分支 例 子:比如用户付款后,认为分叉为“通知用户款已收到真正送货”和“送货”2个动作 流 程 图:
Task2 Task1 Task3
Internal use only
Task21
Task31
Internal use only
2
jBPM4介绍
jBPM简介
jBPM,全称是Java Business Process Management(业务流程管 理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开 源的、灵活的、易扩展的可执行流程语言框架。目前最新版本是 jBPM4.4
jBPM架构
Task2 Task1 Task3 Task31
Internal use only
5
5种基本控制流模式
Pattern4 独占式选择(Exclusive Choice)
定义描述:一个活动完成后,只能在后面的多个分支中激活一个,即独占式分支 例 子:比如用户下单后,可以有N中付款方式,但是只能选择其中一种 流 程 图:
2种结构化模式(Sturctural Patterns)
4种包含多实例的模式(Patterns involving Multiple Instances) 3种基于状态的模式(State-based Patterns)
2种取消模式(Cancellation Patterns)
具有中国特色的工作流模式
4
5种基本控制流模式
Pattern3 同步(Synchronization)
定义描述:在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。 流程必须等待所有的分支都执行完成后,才能激活后续活动,这就是“同步”的意思。 例 子:比如“数据归档”在“发票”和“付款”都完成后才被激活 流 程 图:
定义描述:在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支 例 子:去世博园玩转门口检票后可以选择A~E个片区中的N个进行观光 流 程 图:
Task2
Task1
Task3
Task5
Task4
JBPM中的支持情况:
1. 2. JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是JBPM4.4之后支持一种叫foreach 的节点,允许我们在运行时制定几种特定的任务, 比如上面例子中的 片区,我们可以在选定后再去循环 BPMN方式支持根据条件执行多个子分支
Internal use only
8
4种高级分支同步模式
Pattern7 同步聚合(Synchronizing Merge)
定义描述:在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动,如果分支只有一个那么就 变成Pattern5的简单聚合模式;如果存在2个以上的分支那就是Pattern3的同步模式; 这种模式的关键在于能够动态的根据分支的多少进行聚合。 例 子:游客观光完N个片区后,系统能够将游客在N个片区的信息记录到 库,无论N为多少 流 程 图:
改该变量的值来制定分支的数量
10
Internal use only
4种高级分支同步模式
Pattern9 鉴别器(Discriminator)
定义描述:在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动; 与此同时,流程仍然要等待其余的分支完成并忽略完成。 注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的 例 子:“个人申请提交”后,并行提交给“第一导师审批”、“第二导师审批”、“第三导师审批”, 他们中只要有一个完成了,那么就可以提交给学院做“学院审批”, 但是学院要等这三个都完成之后才能够执行“学院审批”。 N-out-of-M 鉴别器模式 跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点到达后忽略掉这些节点。 另外这M-N个节点未完成前,新激活的后续节点一样无法被执行 JBPM中的支持情况:没有直接支持这种模式,但是如果通过自定义节点,应该是可以处理这种模式的 个人理解:对于里面的N-1个,如果会被忽略掉,会显得没有什么价值,浪费?
Task2
Task1 Task3
Internal use only
任一 Task31
6
基本控制流模式 – jBPM中的综合实现
5种基本控制流模式在JBPM4中的综合实现
流 程 图:(JPDL) 顺序
并行分叉
同步
简单聚合
排他选择
Internal use only
7
4种高级分支同步模式
Pattern6 多重选择(Multiple Choice)
Task2 Task1
Task21
Task3
Task31
Pattern5 简单聚合(Simple Merge)
定义描述:在流程中有2个以上的分支中某一点处被合并成一个分支,只要分支中的一条完成,即可继续进行。 而其他分支自动结束 例 子:比如“发货”在“银行卡支付”和“货到付款”等支付方式中的一个完成后才被激活 流 程 图:
jBPM的使用
Business analyst
Internal use only
3
5种基本控制流模式
Pattern1 顺序流(Sequence)
定义描述:在流程中,活动按照预先设定的顺序一个接着一个的往下执行 例 子:比如申请后进行审批,接着往下一个一个的进行任务 流 程 图:
Task1
Task2
Task2
Task1
Task3
Task5
Task4
JBPM中的支持情况:可以通过设置JBPM的Join节点的属性multiplicity的值为某个变量,并在程序中动态的去修 改该变量的值来制定分支的数量
Internal use only
9
4种高级分支同步模式
Pattern8 多重聚合(Multiple Merge)
定义描述:在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例 例 子:游客观光完N个片区后,每个片区各自的系统可以对游客在自己片区的信息进行存储 流 程 图:
Task2
Task1
Task3
Task5
Task4
Task3
Task1 Task4
Task5
Task5
JBPM中的支持情况:可以通过设置JBPM的Join节点的属性multiplicity的值为某个变量,并在程序中动态的去修
WorkflowPatterns & JBPM
赵慧 2010/08/03
Internal use only
目录
Байду номын сангаас jBPM4介绍 来自国外的20种工作流模式
5种基本控制流模式(Base Control Flow Patterns)
4种高级分支同步模式
(Advanced Branching and Synchronization Patterns)
Task2
Pattern2 并行分叉(Parallel Split)
定义描述:流程在某个活动之后产生多个分支 例 子:比如用户付款后,认为分叉为“通知用户款已收到真正送货”和“送货”2个动作 流 程 图:
Task2 Task1 Task3
Internal use only
Task21
Task31
Internal use only
2
jBPM4介绍
jBPM简介
jBPM,全称是Java Business Process Management(业务流程管 理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开 源的、灵活的、易扩展的可执行流程语言框架。目前最新版本是 jBPM4.4
jBPM架构
Task2 Task1 Task3 Task31
Internal use only
5
5种基本控制流模式
Pattern4 独占式选择(Exclusive Choice)
定义描述:一个活动完成后,只能在后面的多个分支中激活一个,即独占式分支 例 子:比如用户下单后,可以有N中付款方式,但是只能选择其中一种 流 程 图:
2种结构化模式(Sturctural Patterns)
4种包含多实例的模式(Patterns involving Multiple Instances) 3种基于状态的模式(State-based Patterns)
2种取消模式(Cancellation Patterns)
具有中国特色的工作流模式
4
5种基本控制流模式
Pattern3 同步(Synchronization)
定义描述:在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。 流程必须等待所有的分支都执行完成后,才能激活后续活动,这就是“同步”的意思。 例 子:比如“数据归档”在“发票”和“付款”都完成后才被激活 流 程 图:
定义描述:在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支 例 子:去世博园玩转门口检票后可以选择A~E个片区中的N个进行观光 流 程 图:
Task2
Task1
Task3
Task5
Task4
JBPM中的支持情况:
1. 2. JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是JBPM4.4之后支持一种叫foreach 的节点,允许我们在运行时制定几种特定的任务, 比如上面例子中的 片区,我们可以在选定后再去循环 BPMN方式支持根据条件执行多个子分支
Internal use only
8
4种高级分支同步模式
Pattern7 同步聚合(Synchronizing Merge)
定义描述:在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动,如果分支只有一个那么就 变成Pattern5的简单聚合模式;如果存在2个以上的分支那就是Pattern3的同步模式; 这种模式的关键在于能够动态的根据分支的多少进行聚合。 例 子:游客观光完N个片区后,系统能够将游客在N个片区的信息记录到 库,无论N为多少 流 程 图:
改该变量的值来制定分支的数量
10
Internal use only
4种高级分支同步模式
Pattern9 鉴别器(Discriminator)
定义描述:在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动; 与此同时,流程仍然要等待其余的分支完成并忽略完成。 注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的 例 子:“个人申请提交”后,并行提交给“第一导师审批”、“第二导师审批”、“第三导师审批”, 他们中只要有一个完成了,那么就可以提交给学院做“学院审批”, 但是学院要等这三个都完成之后才能够执行“学院审批”。 N-out-of-M 鉴别器模式 跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点到达后忽略掉这些节点。 另外这M-N个节点未完成前,新激活的后续节点一样无法被执行 JBPM中的支持情况:没有直接支持这种模式,但是如果通过自定义节点,应该是可以处理这种模式的 个人理解:对于里面的N-1个,如果会被忽略掉,会显得没有什么价值,浪费?
Task2
Task1 Task3
Internal use only
任一 Task31
6
基本控制流模式 – jBPM中的综合实现
5种基本控制流模式在JBPM4中的综合实现
流 程 图:(JPDL) 顺序
并行分叉
同步
简单聚合
排他选择
Internal use only
7
4种高级分支同步模式
Pattern6 多重选择(Multiple Choice)
Task2 Task1
Task21
Task3
Task31
Pattern5 简单聚合(Simple Merge)
定义描述:在流程中有2个以上的分支中某一点处被合并成一个分支,只要分支中的一条完成,即可继续进行。 而其他分支自动结束 例 子:比如“发货”在“银行卡支付”和“货到付款”等支付方式中的一个完成后才被激活 流 程 图:
jBPM的使用
Business analyst
Internal use only
3
5种基本控制流模式
Pattern1 顺序流(Sequence)
定义描述:在流程中,活动按照预先设定的顺序一个接着一个的往下执行 例 子:比如申请后进行审批,接着往下一个一个的进行任务 流 程 图:
Task1
Task2
Task2
Task1
Task3
Task5
Task4
JBPM中的支持情况:可以通过设置JBPM的Join节点的属性multiplicity的值为某个变量,并在程序中动态的去修 改该变量的值来制定分支的数量
Internal use only
9
4种高级分支同步模式
Pattern8 多重聚合(Multiple Merge)
定义描述:在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例 例 子:游客观光完N个片区后,每个片区各自的系统可以对游客在自己片区的信息进行存储 流 程 图:
Task2
Task1
Task3
Task5
Task4
Task3
Task1 Task4
Task5
Task5
JBPM中的支持情况:可以通过设置JBPM的Join节点的属性multiplicity的值为某个变量,并在程序中动态的去修