这四个模式的共同点在于:都是多个流程实例之间的交互,包括:
- 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
分享到:
相关推荐
工作流实例是业务自动化中的一个重要概念,它涵盖了组织内各种任务、活动和决策的系统化管理,以确保流程的高效性和一致性。工作流实例是指在特定时间启动并按预定顺序执行的一系列工作流程活动。这些实例是根据预先...
通过研究这些实例,学习者可以深入理解贝叶斯分类器的工作原理,并学会如何将其应用于实际问题。 总之,模式识别与贝叶斯方法在MATLAB中的结合,提供了一种强大且灵活的工具来处理分类任务。通过对数据的处理、模型...
### 工作流模式知识点详解 #### 一、引言 随着信息技术的发展,工作流管理系统在企业级应用中扮演着越来越重要的角色。然而,不同工作流管理系统之间由于缺乏统一的标准,导致了系统的互操作性较差。为了改善这一...
本资源集合提供了一份详细的工作流实例,包括完整的C#工作流系统源码和一篇研究生毕业论文,这对于深入理解和实践工作流技术非常有帮助。 首先,我们要了解工作流的基本概念。工作流是指一个或多个业务过程的执行,...
在HALT模式下,CPU停止工作,时钟被冻结,但外设仍然保持活动,这使得系统能够快速响应外部事件而无需完全唤醒。 HALT模式的进入和退出通常通过软件中断或特定的硬件引脚来触发。为了实现HALT模式,开发者需要在...
工作流模式是组织和管理业务流程的标准模型,用于表示任务之间的控制流和数据传递。这些模式为业务流程建模提供了一种结构化的方法,确保流程的可读性、可维护性和标准化。以下是对标题和描述中提到的工作流模式的...
计算机毕业设计_asp.net基于工作流引擎的系统框架设计开发(源代码+)__毕设源码实例.zip计算机毕业设计_asp.net基于工作流引擎的系统框架设计开发(源代码+)__毕设源码实例.zip计算机毕业设计_asp.net基于工作流引擎的...
传智播客_Activiti工作流视频(企业开发实例讲解)传智播客_Activiti工作流视频(企业开发实例讲解)传智播客_Activiti工作流视频(企业开发实例讲解)
工作流模式是设计和实施业务流程自动化的一种标准方法,它涉及到任务、活动和决策的组织方式,以确保流程的高效性和一致性。以下是基于提供的文件内容的工作流模式的详细解释: 1. **基本控制模式** - **顺序...
现代工作流(workflow)实例介绍,现代工作流(workflow)实例介绍,例子详细易懂
教你怎么画数据流图_包括数据流图实例.ppt
U9V5.0组件化实施方案实例指导_CBO-310 工作流,学习参考
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。...我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。 组合模式java demo
9. **持久化存储**:为了保存和恢复工作流的状态,需要了解数据库操作或者文件系统的接口,以便将工作流实例保存到磁盘并在需要时恢复。 10. **设计模式**:使用设计模式(如工厂模式、观察者模式、装饰器模式等)...
这个压缩包包含了多个源码文件,分别命名为MarvelousWorks.PracticalPattern_XX,这些文件覆盖了不同设计模式的应用实例。 设计模式是软件开发中的最佳实践,它们是解决常见问题的经验总结,为开发者提供了一套通用...
总结来说,"C#工厂模式_计算器"实例不仅展示了如何在C#中运用工厂模式,还展示了如何利用多态性来实现一个灵活、可扩展的计算器系统。这样的设计使得添加新的运算符或计算器类型变得简单,只需创建新的派生类并更新...
8. **模版方法模式**:Jive的某些模块,如工作流引擎,可能会定义一个操作的框架,让子类在不改变整体结构的情况下,实现具体的细节。 9. **状态模式**:Jive的用户状态、任务状态等可能会使用状态模式,根据对象...
Snaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持 轻量:核心代码行数大约7000行,强大的扩展性,支持Spring、Jfinal、Nutz...