这四个模式的共同点在于:都是多个流程实例之间的交互,包括:
- Multiple processes without synchronization(非同步的多实例模式)
- Multiple processes with design time knowledge(设计时的多实例模式)
- Multiple processes with run time knowledge(运行时的多实例模式)
- Multiple processes without run time knowledge(非运行时的多实例模式)
W
P_12、Multiple Instances without synchronization(异步的多实例模式)
描述:在流程实例中,一个活动可以激活为多个实例,并且彼此不相关,对于这些多实例不需要同步。在流程设计阶段并不确定有多少个执行路径。 执行路径在完成后不需要同步。
在实现中,有2种设计方式:
首先是基于活动方式,活动本身会有规则属性来控制是否能多个实例化,缺省是实例化1次,缺省实例化是流程实例化的时候完成。当auto活动2发现特定参数传来了一个集合类似的数据(比如List),就根据List.size在内存中创建新的时候,并在完成的时候持久化到数据库中。
图wp12:非同步的多实例(自动活动实现方式)
第二种方式是借助子过程的方式,并且设置子过程为异步方式(如果设定为同步,要等所有的子流程实现完毕才能执行auto活动3)。本身子过程是延后创建实例的,也就是说当流程实例化的时候,先实例化的是普通流程,只有当流程推进到了子过程活动的时候,才会实例化该子过程,这样就可以根据传来的参数的个数,实例化子过程。
图wp12a:非同步的多实例(子过程实现方式)
图wp12:非同步的多实例(flash)
WP_13、Multiple Instances with design time knowledge(设计时确定的同步多流程模式)
描述:一个活动可以激活多次产生多个实例。而产生的实例的个数在流程设计时就事先知道了。一旦所有的实例都执行完成,就会激活其他活动(也就是说这里采取的是同步方式)。
这里有2种设计方式:
首先是基于活动方式,在相关活动上有规则来确定是否能多个实例化,以及实例化的个数。
流程实例启动后,执行到当前活动节点,就会根据模型定义实例化指定的个数。当多个实例执行完毕,在激活后续的auto活动3。
图wp13:设计时确定的多实例模式(自动活动实现方式)
第二种方式是借助子过程的方式,通过传递参数的方式,并根据参数的个数来实例化子流程的个数。这里的子流程需要设定为同步机制。这样当多个子过程实例完成后才激活auto活动3。
图wp13a:设计时确定的多实例模式(子过程实现方式)
图wp13:设计时确定的多实例模式(flash)
WP_14、Multiple Instances with run time knowledge(运行时确定的同步多流程模式)
描述:一个活动可以激活多次产生多个实例。而产生的实例的个数是变化的,取决于实例的特点或者可用资源数目,但是在流程执行过程的某个时期,在这个活动的实例产生以前,要产生的实例个数是能确定的。所有的实例都运行完成后,激活后续活动在流程设计阶段并不确定有多少个执行路径。
也就是说多实例在设计的是不清楚,只有到了运行时候,才知道具体的活动实例个数。只有当这些实例都执行完毕,才执行后续的auto活动3,即采取同步模式。
这里有2种设计方式:
首先是基于活动方式,活动本身有规则来控制是否能多个实例化,缺省是实例化1次,缺省实例化是流程实例化的时候完成。当auto活动2发现特定参数传来了一个集合类似的数据(比如List),就根据List.size在内存中创建新的时候,并在完成的时候持久化到数据库中。
当多个实例执行完毕,在激活后续的auto活动3。
第二种方式是借助子过程的方式,设置实例化的次数以及子过程为同步方式,这样当多个子过程实例完成后才激活auto活动3。
图wp14:运行时确定的多实例模式(flash)
WP_15、Multiple Instances without run time knowledge(运行时不确定的多流程模式)
描述:一个活动可以激活多次产生多个实例。而产生的实例的个数在设计流程时既不知道,在运行时也不知道。所有的实例都运行完成后,激活后续活动。即同步模式。
例子:订购100 台电脑,涉及多个供应商,但是每个供应商供应多少台电脑是不知道的,因此供应商的数量事先也不确定。但是当每次供应商送货后,就会将现在所拥有的电脑数量和所需的100 台进行比较,来决定是否要下一个供应商继续送货。因为有太多的不可控制的因素,在实际使用中引擎不支持该种模式。
图wp14:运行时不确定的多实例模式(flash)
- 大小: 40.7 KB
- 大小: 19.6 KB
- 大小: 37.2 KB
- 大小: 19.5 KB
分享到:
相关推荐
工作流实例 工作流实例 工作流实例 工作流实例
Java的23中设计模式_简单实例,让你快速回忆熟悉23中设计模式,每种模式都有简明的实例,没有多余废话(适应对象,对设计模式有过一点接触)
模式识别,贝叶斯实例,语言MATLAB,代码实例
JavaScript应用实例-工作流_版本_1.0.1.js
FLAC 部分实用工程实例分析命令流PDF版
计算机毕业设计_asp.net基于工作流引擎的系统框架设计开发(源代码+)__毕设源码实例.zip计算机毕业设计_asp.net基于工作流引擎的系统框架设计开发(源代码+)__毕设源码实例.zip计算机毕业设计_asp.net基于工作流引擎的...
传智播客_Activiti工作流视频(企业开发实例讲解)传智播客_Activiti工作流视频(企业开发实例讲解)传智播客_Activiti工作流视频(企业开发实例讲解)
C#_WPF_MVVM模式完整实例(比较不错) 介绍的很好
火龙果软件工程技术中心 1.基本概念1.1工作流 根据WFMC的定义,工作...工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。1.2工作流管理系统
198个经典C_WinForm实例源码(超赞)
JAVA设计模式之代理模式实例
设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解
策略模式实例策略模式实例策略模式实例策略模式实例策略模式实例
教你怎么画数据流图_包括数据流图实例.ppt
U9V5.0组件化实施方案实例指导_CBO-310 工作流,学习参考
工作流模式的详细介绍,工作流控制模式共有43种,分为8组,分别是基本控制模式、高级分支和同步模式、多实例 模式、状态模式、取消和强制完成模式、迭代模式、结束模式和触发模式。
C# 工作流引擎实例(初学者非常有用)包括代码,数据库以及文档。
一套完整的工作流源码,加上自己深刻的工作流理解,以及工作流的学习笔记。外加web端工作流开发的研究生论文。是工作流的学习帮助十分之大,是一份非常好的工作流学习资料。
java 设计模式 观察者模式 简单实例 包括测试test类