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 可以签办任务t