工作流模式与K2实现--(2)

  1.   结构化过程

 这两个模式的共同点在于:模式所涉及流程的执行路径是由运行时决定的,而非设计时确定。包括:Arbitrary cycles(强制循环模式) 、Implicit termination(隐式终止模式)。

2  11  任意循环(Arbitrary Cycles) 

描述: 

工作流中的一个点可以让一个或多个活动反复的执行。

案例:

“修改提交”后进入“经理审批”,但未通过,又回到“修改提交”。

K2实现:

2  12  隐式终止(Implicit Termination) 

描述: 

在一个流程中,如果没有活动可执行了那么流程就会终止。换句话说,在工作流中没有active 状态的活动了,而且也没有活动会被激活,这就是隐式终止。(前提:工作流不能处于死锁状态)。

有的工作流引擎不支持。

案例:

“主管审批”通过后进入“经理审批”,未通过则无下一个活动。

K2实现: 

如果“主管审批”的输入为“不同意”,流程将终止。

一般都会采用显示终止,因为隐式终止可能会引起不被察觉的错误,例如意外的输入可能导致流程的结束。

  • 多实例过程

“多实例”是指在流程图中,一个活动在同一时刻拥有多个可运行的、处于活动状态的实例。

2  13  非同步的多实例(Multiple Instances Without Synchronization) 

描述:

在流程中,一个活动可以激活多个实例,也就是说可以把一个活动分发成几个控制线程。每个控制线程之间都是相互独立的,并不需要同步它们。

案例:在网上订购书籍,以书为单位,每一本都会独立产生一个购书实例,并且每个实例之间不需要同步数据。

K2实现:

IPC Event调用方式需要选择为Asynchronous。

2  14 在设计期间预先确定的多实例(Multiple Instances With a Priori Design Time Knowledge) 

描述:

一个活动可以激活多次产生多个实例。而产生的实例的个数在流程设计时就事先知道了。一旦所有的实例都执行完成,就会激活其他活动。

案例:

有关某些特定资源的请求需要完成固定几个不同的审核流程。

K2实现 

主流程结构为模式2平行拆分 + 模式3同步,IPC Event中调用方式需要选择为Synchronous。

2  15  在运行期预先确定的多实例(Multiple Instances With a Priori Runtime Knowledge) 

l  描述:

一个活动可以激活多次产生多个实例。而产生的实例的个数是变化的,取决于实例的特点或者可用资源数目,但是在流程执行过程的某个时期,在这个活动的实例产生以前,要产生的实例个数是能确定的。所有的实例都运行完成后,激活后续活动。

l  案例:

处理一个订单,订单中有多本书,要分别检查每一本都有库存,所有的书都检查完成后才开始进入送货。

l  K2实现:

主要结构为模式6多路选择 + 模式7同步合并,IPC Event中调用方式需要选择为Synchronous。

2  16 无法在运行期预先确定的多实例(Multiple Instances With a Priori Runtime Knowledge) 

l  描述:

在一个活动能够被多次激活的这种情况下,在指定情况下的指定活动的实例数量无论是在设计时或者运行时都不能在活动的实例被创建之前预先确定。但是,在活动被创建之前,在运行中的某个阶段,这个数量是可以预知的。一旦所有的实例都完成了,其它的活动应该被启动。这个模式和模式14的区别在于,在某些实例运行结束之后,新的实例仍能被创建。

l  案例:

订购100 台电脑,涉及多个供应商,但是每个供应商供应多少台电脑是不知道的,因此供应商的数量事先也不确定。但是当每次供应商送货后,就会将现在所拥有的电脑数量和所需的100 台进行比较,来决定是否要下一个供应商继续送货。

l  K2实现:

比较复杂,可以利用模式11任意循环实现。

  • 基于状态的模式

这三个模式的共同点是:模式所涉及根据当前运行的流程状态来改变流程里的执行路径,包括:Deferred choice(延迟选择模式)、Interleaved parallel routing(交替平行路由模式)、Milestone(里程碑模式)。

2  17 延迟选择(Deferred Choice)

l  描述:

工作流中的一个点,有一个或多个分支已经被选择。与XOR拆分相比,并没有明确的选择,但是,选择是取决于环境的。与AND拆分相比,两者中只有一个被执行。这意味着一旦环境启动了其中的一个,另一个就被取消。要注意,选择是被延迟到两个分支中的一个真正开始执行时,也就是说,选择是可以尽可能的推后的。

l  案例:

在收到货物之后,可选择两种方法将其送到。选择取决于相关资源的可用性。如果资源均不可用,选择会被推迟到直到其中一个资源可用为止。

l  K2实现:

“监听资源状况”的Destination Rules是一个Robot帐号,只实现监听作用。

2  18 交替平行路由(Interleaved Parallel Routing)

l  描述:

一组活动以任意的顺序执行,每个活动都被执行,他们的顺序是在运行时决定的,并且在任意一个时刻都不会有两个活动在执行。

l  案例:

体检流程中的活动有各种常规检查和血液检查,哪个在先哪个在后都可以,但是不可能同时检查。

l  K2实现:

K2并无直接实现方法,需要编码,变通解决。

2  19 里程碑(Milestone)

l  描述:

一个活动能否执行取决于一个指定的状态。也就是说,只有在到达一个特定的未过期的里程碑时,活动才被执行。

l  案例:

客户在确定交付的前两天是可以取消订单的。

l  K2实现:

时间上的一些状态可以在Start Rule 和Activity Escalations中实现,其他的复杂逻辑需要编程实现。

  • 取消模式

这两个模式的共同点在于:模式所涉及的流程在运行时disables一个活动或者整个流程,包括:Cancel activity(活动取消模式)、Cancel case(实例取消模式)。

2  20  取消活动(Cancel Activity)

l  描述:

一个可执行的活动被强制失效了,也就是说,一个正在等待执行的活动所在线程被移除了。

l  案例:

网上购书时已经下了订单,“支付货款”活动激活,这时如果取消了订单,那么相应的“支付货款”活动也要取消。

l  K2实现:

利用K2 的API实现。

2  21  取消实例(Cancel Case)

l  描述:

如果一个活动产生了多实例,那么仅仅撤消这个活动是不行的,要将这个活动的所有后代(实例)都移除才行。

l  案例:

网上购书时如果取消了购书的活动,所有因订单激活的购书流程实例都要取消。

l  K2实现:

利用K2 的API实现。

  • 其他扩展模式

21个工作流模式并不能囊括所有情况,还有其他的一些扩展模式,例如:流程启动、回退、转发、通知、代理、催办、回收、任务批处理、任务分组处理、流程合并、子流程等等。

时间: 2024-08-07 12:20:19

工作流模式与K2实现--(2)的相关文章

12 个基本的工作流模式简介

1. 五个基本工作流模式 这五个模式的共同点在于:模式所涉及流程的执行路径是在设计时即可确定的,不需运行时的信息.包括: Sequence(顺序模式) Parallel split(平行拆分模式) Synchronization(同步模式) Exclusive choice(排他选择) Simple merge(简单合并模式) 1.1 Sequence(顺序模式) 模式描述: 在一个流程实例中,各个活动按顺序依次执行. 模式所解决的问题: 流程需要保证一系列活动的执行顺序. 模式应用举例: 在一

21种工作流模式

流程模板管理--挂接 流程实例 代办任务 指派任务 会签 回退(自由流) ..... ================================================ 基础控制过程: 模式所涉及流程的执行路径是在设计时即可确定的,不需运行时的信息.包括:Sequence(顺序模式).Parallel split(并行分支模式) .Synchronization(同步模式).Exclusive choice(排他选择) .Simple merge(简单合并模式). 顺序(Seque

Saga的实现模式——观察者(Saga implementation patterns – Observer)

https://lostechies.com/jimmybogard/2013/03/11/saga-implementation-patterns-observer/ 侵删. NServiceBus sagas 是一个Process Manager pattern的实现,在实现的时候经常使用它的一两种主要形式.虽然各有差别,但总的来说saga的实现也就总是那几种. 第一种是观察者模式.作为一个观察者,saga通过响应事件来协调业务: 观察者有一些特性: 消息以事件的形式接收 saga并不控制消

Java开源 开源工作流

OpenEbXML   点击次数7801 Werkflow   点击次数11181 OSWorkflow   点击次数14988 wfmOpen   点击次数7997 OFBiz   点击次数12342 ObjectWeb Bonita   点击次数8808 Bigbross Bossa   点击次数8502 XFlow   点击次数7898 Taverna   点击次数7222 Enhydra Shark   点击次数9526 PowerFolder   点击次数7866 Open Busin

工作流开发总结

工作流开发已经有一段时间了,这里把自己的一些想法小结一下.仅仅就工作流引擎来说,不包括一些外围的实现,例如流程定义器,管理控制,工作项列表等.工作流引擎其实就是一个状态机,只不过在状态变化的过程中加入了其他一些工作.我把工作流引擎的职责理解为以下四个方面:1.对工作流模式的支持.   这无疑是最重要的部分,状态的变迁往往取决于不同模式的选择.支持的模式越多则客户的开发代码会越少.衡量一个工作流引擎的技术水准很大程度取决于引擎支持模式的多少.2.工作流变量的传递和转换.   工作流引擎通过工作流变

“人少也能办大事”---K2 BPM老客户交流会

主题:固铂轮胎工作流项目分享-K2 SmartForm下的工作流快速开发 嘉宾:王彦(固铂轮胎IT资深经理) 国内业务规模越来越大,流程越来越复杂,跨部门跨组织的流程纸质审批非常复杂,内控的要求越来越高,原有的工作流平台局限性日益明显. 固铂轮胎需要一套强大的BPM平台来解决现有的这些问题 K2blackperal 4.6/ Smartform 1.0.4 -通过调用K2丰富详细的SDK及扩展方便的灵活的函数实现复杂业务需求. -K2 Smartobject 配合 Smartform 轻松实现简

软件设计要素初探:架构模式

在 "软件设计要素初探" 一文,尝试从软件设计的整体角度,综合讨论了软件设计的各种要素.本文探讨系统组件交互的架构模式. 架构模式是系统组件及组件交互的模式,决定了处理数据和领域对象的全局控制结构.组件化是使用架构模式的前提. 可参阅 <面向模式的软件架构>了解更多架构模式. 分层模式 分层模式: 将应用划分为多个层次,定义各层的接口.任务抽象及消息格式,以及各层之间的通信与交互.业务系统通常会划分为业务逻辑层.服务层.领域层.数据层.网络栈协议是分层模式的典型应用.应用分

前端资源教程合集

综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 En类资源汇总 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的this陷阱的最全收集--没有之一 JS函数式编程指南 JavaScript Promise迷你书

前端网站资源精编!!

不要吝啬你的赞美喜欢就点个赞 目录: 1-------- 走进前端2-------- jQuery3-------- CSS4-------- Angularjs5-------- ES66-------- React7-------- 移动端API8-------- avalon9-------- Requriejs10-------- vue11-------- Seajs12-------- Less,sass13-------- Markdown14-------- D315------