概要:3.1 启动案例的调度方法一个多步任务协同网系统可以被多次执行,每次执行都对应一个不同的案例。执行该调度方法之后,多步任务协同网系统就进入到运行状态,此后各个元素将逐一转变状态直至案例结束。3.2 终止案例的调度方法该调度算法有多步任务协同网系统自动执行,即系统会根据需要执行该方法以检查案例是否可以结束。3.3 角色签办任务的调度方法当角色的某组关联转发全部为否定或待签且至少有一个为待签时,该角色才能签办改组转发以及相关的任务,同时同组的工作也会转到在办状态。3.4 角色退回任务的调度方法当角色办理工作时发现之前的工作存在问题时可以要求前驱角色重新办理任务,此时该角色的工作将退回到就绪状态,关联转发也会退回到就绪状态,所需重办的工作和任务则转变为在办状态。3.5 多步任务办理的调度方法当所有工作完成或否定且至少有一个完成的话,任务就办理完成了。此时,关联转发根据设定的条件转变为待签或者否定。3.6 任务重办的调度方法当工作未完成或者工作完成但还没有签收时,角色可以要求前驱角色重办与之相关的工作,即退回已经签办的工作。3.7 启动循环的调度方法3.8 终止循环的调度方
MSTC 网及调度算法小探,标签:毕业设计怎么写,毕业设计范文,http://www.88haoxue.com 3.1 启动案例的调度方法
一个多步任务协同网系统可以被多次执行,每次执行都对应一个不同的案例。
执行该调度方法之后,多步任务协同网系统就进入到运行状态,此后各个元素将逐一转变状态直至案例结束。
3.2 终止案例的调度方法
该调度算法有多步任务协同网系统自动执行,即系统会根据需要执行该方法以检查案例是否可以结束。
3.3 角色签办任务的调度方法
当角色的某组关联转发全部为否定或待签且至少有一个为待签时,该角色才能签办改组转发以及相关的任务,同时同组的工作也会转到在办状态。
3.4 角色退回任务的调度方法
当角色办理工作时发现之前的工作存在问题时可以要求前驱角色重新办理任务,此时该角色的工作将退回到就绪状态,关联转发也会退回到就绪状态,所需重办的工作和任务则转变为在办状态。
3.5 多步任务办理的调度方法
当所有工作完成或否定且至少有一个完成的话,任务就办理完成了。此时,关联转发根据设定的条件转变为待签或者否定。
3.6 任务重办的调度方法
当工作未完成或者工作完成但还没有签收时,角色可以要求前驱角色重办与之相关的工作,即退回已经签办的工作。
3.7 启动循环的调度方法
3.8 终止循环的调度方法
4 案例简析
设所示案例i 中有6 个角色(r1、r2、r3、r4、r5 和r6)和7 个任务(t1、t2、t3、t4、t5、t6、t7),其中任务t1、t5 和t7 是多步任务(由多个角色协同完成),工作w1_1、w1_2 和w_5 是启动工作,转发d1_1 和d1_2 是条件转发,在r6 上定义了2 个分组,d2 和w6_2 为分组g1,d1_2 和w6_1 为分组g2,其它所有没有定义分组的客户机默认为同一个分组,w2_1、d4、w3_1 和d3 是一个循环l。
4.1 案例i 的正向调度示例
(1)当案例i 启动后,S(i) = Siw,S(w1_1) = Sww,S(w1_2) = Sww,S(w5) = Sww,S(t1) = Stw,S(t2) = Stw;
(2)由图14 中可以看出,t1 由r1 和r5 同时负责,对应工作w1_1 和w5,t2 由r1 负责,对应工作w1_2;
(3)当w1_1 和w5 办理完毕后,即S(w1_1) = Swf,S(w5) = Swf,则t1 完成,即S(t1) = Stf,由于d1_1 和d1_2 是条件转发,需要根据条件设置进行条件判断,这里假设P(d1_1) = true,P(d1_2) = false,则S(d1_1) = Sdw,S(d1_2) = Sdn;
(4)当w1_2 办理完毕后,S(w1_2) = Swf,S(t2) = Stf,S(d2) = Sdw;
(5)r2 没有定义分组,默认所有转发和工作为同一分组。由于d3 为仅循环用(启动循环运行时才有效),这里假设不启动循环,所以r2 可以签办任务t1,签办后,S(d1_1) = Sdf,S(w2_1) = Sww,S(w2_2) = Sww,S(t4) = Stw,S(t5) = Stw;
(6)r6 上定义了2 个分组,d2 和w6_2 为分组g1,d1_2 和w6_1 为分组g2。对于g1,r6签办任务t2 后,S(d2) = Sdf,S(w6_2) = Sww,S(t6) = Stw。对于g2,由于S(d1_2) = Sdn,所以S(w6_1) = Swn;
(7)当w2_1 办理完毕后,S(w2_1) = Swf,S(t4) = Stf,S(d4) = Sdw;
(8)当w2_2 办理完毕后,S(w2_2) = Swf,由于S(w6_1) = Swn,所以S(t5) = Stf,S(d5_1) =Sdw,S(d5_2) = Sdw;
(9)当w6_2 办理完毕后,S(w6_2) = Swf,S(t6) = Stf;
(10)r3 没有定义分组,默认所有转发和工作为同一分组。由于w3_1 为仅循环用,这里假设不启动循环,所以r3 签办任务t4 和t5 后,S(d4) = Sdf,S(d5_1) = Sdf,S(w3_2) = Sww;
(11)r4 没有定义分组,默认所有转发和工作为同一分组。r4 签办任务t5 后,S(d5_2) = Sdf,S(w4) = Sww;
(12)当w3_2 和w4 办理完毕后,S(w3_2) = Swf,S(w4) = Swf,S(t7) = Stf,由于i 中没有任何一个w 处于待办状态且没有一个d 处于待签状态,所以案例i 结束,即S(i) = Sif。
4.2 案例的逆向调度过程示例
(1)角色重办任务
设案例i 正向调度到第(4)步,由于S(d1_1) = Sdw,S(d1_2) = Sdn,所以r5 可以重办t1,r1 可以重办t1 和t2。这里设r1 重办t1,重办后,S(d1_1) = Sdr,S(d1_2) = Sdr,S(t1) = Stw,S(w1_1) = Sww。
(2) 角色退回任务
设案例i 正向调度到第(6)步,由于S(w2_1) = Sww,S(w2_2) = Sww,S(w6_1) = Swn,S(w6_2) = Sww,S(t4) = Stw,S(t5) = Stw,S(t6) = Stw,所以r2 和r6 都可以退回任务。这里设r6 退回分组g1 的签办的任务t2,则S(w6_2) = Swr,S(d2) = Sdw。可以看出,当r6 退回签办的t2 后,r1 还可以重办w1_2,从而连续实现多步任务调度过程中的逆向。
4.3 案例的循环调度过程示例
设案例 i 正向调度到第(10)步,r3 启动循环l,则S(l) = Slw,S(w3_1) = Sww,S(t3) = Stw;当w3_1 办理完毕后,S(w3_1) = Swf,S(t3) = Stf,S(d3) = Sdw;这时,r2 可以签办任务t3,由于循环将路径中工作、任务和转发统一按照就绪状态处理,而w2_2 不在循环中,所以签办后S(d3) = Sdf,S(w2_1) = Sww,S(t4) = Stw;当w2_1 办理完毕后,S(w2_1) = Swf,S(t4) =Stf,S(d4) = Sdw;此时r3 如果终止循环,则S(l) = Slf,循环结束,如果不终止循环,r3 可以接着办理w3_1,则S(w3_1) = Sww,S(t3) = Stw,如此反复执行直至循环终止。
5 结束语
本文以工作流过程模型MSTC 网系统为基础,研究了其主要的调度方法,最后以案例简析来展示算法的有效性. MSTC 网系统的建模元素主要有角色(R)、任务(T)、工作(W)、转发(D),这些建模元素拥有不同的状态集合,在运行时通过不断的改变他们所处的状态最终实现预定的业务流程功能。MSTC 网系统的调度算法是案例执行的规则,工作流引擎就是按照不同的调度算法对业务流程中的不同元素进行协同调度,从而实现业务流程的流转运行。在现实工作流的执行过程中,任务的执行时间和顺序是完全依赖于MSTC 网的拓扑结构及相关的转发条件,所以严密的调度逻辑对流程的正确执行至关重要。而本文所介绍的8 个调度方法可以全面的控制多步任务协同网的执行。从案例简析中可以看到,MSTC 网系统的调度算法不仅可以实现流程的正向调度,即正常的角色签办任务,还可以实现流程的逆向调度,如角色退回任务,并且可以很好的支持循环。
同时,由于多步任务协同网本身的演化,本文所介绍的调度算法可能还会进一步支持一些高级的结构,如子网,多实例等等。
最新更新
推荐热门