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 网系统的调度算法不仅可以实现流程的正向调度,即正常的角色签办任务,还可以实现流程的逆向调度,如角色退回任务,并且可以很好的支持循环。
同时,由于多步任务协同网本身的演化,本文所介绍的调度算法可能还会进一步支持一些高级的结构,如子网,多实例等等。