发明名称 一种基于安全状态的工作流实例可迁移性判定方法
摘要 本发明的基于安全状态的工作流实例可迁移性判定方法,步骤一,分别找出实例中在目标模型中的节点集合和不在目标模型中的节点集合;步骤二,对实例中仍在目标模型中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态;步骤三,根据实例中仍在目标模型中的节点的状态和它的下一个节点的类型进行可迁移性判定;步骤四,对实例中不在目标模型中的节点集合中的每一个节点,根据该节点和实例已经执行节点的输出变量集作出可迁移性判定;步骤五,对实例中仍在目标模型且不处于安全状态的节点,根据该节点与插入它之前的节点集的输出与输入变量集作出可迁移性判定;步骤六,若判定可迁移性为真则进行实例迁移,否则恢复不可迁移实例的执行。
申请公布号 CN103778519B 申请公布日期 2017.01.25
申请号 CN201410076015.6 申请日期 2014.03.04
申请人 南京大学 发明人 胡昊;曹春;余萍;吕建;陈栋;张浩
分类号 G06Q10/06(2012.01)I 主分类号 G06Q10/06(2012.01)I
代理机构 南京知识律师事务所 32207 代理人 张苏沛
主权项 一种基于安全状态的工作流实例可迁移性判定方法,其特征在于,包括以下步骤:步骤一,比对原模型下任一实例<i>l</i>和目标模型M,找出实例<i>l</i>中不在目标模型中的节点集合<i>l</i><sub><i>­d</i></sub>和仍在目标模型中的节点集合<i>l</i><sub><i>­p</i></sub>;步骤二,对<i>l</i><sub><i>­p</i></sub>中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态;步骤二中,实例中的某节点处于安全状态当且仅当目标模型中其前的节点序列与原模型中其前的节点序列相同或为其子序列,对节点是否处于安全状态的判定是判定实例是否可迁移的重要基础;对<i>l</i><sub><i>­p</i></sub>中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态,假设<i>l</i><sub><i>­p</i></sub>中某一节点为A,具体判定过程包括:步骤2.1、若A的紧邻父结构为顺序结构或者并发结构,则仅对A进行是否处于安全状态的判定;步骤2.2、若A的紧邻父结构为选择结构,如果A之前的所有已执行节点均处于安全状态,则把该实例回退到A的上一个节点,然后将其迁移到目标模型的选择结构恢复执行,否则该实例不可迁移,进入步骤六;步骤2.3、若A的紧邻父结构为单元块结构,标记A处于安全状态,因为此时单元块结构中有且仅有A;步骤2.4、以上步骤2.1~2.3中三点都不满足,则标记A为处于非安全状态;步骤三,在确定<i>l</i><sub><i>­p</i></sub>中的所有节点是否处于安全状态之后,对<i>l</i><sub><i>­p</i></sub>中每个节点,再根据该节点之前节点的状态和它下一个节点的类型做出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤四;步骤三中,所述可迁移性判定,再次假设<i>l</i><sub><i>­p</i></sub>中某一节点为A,具体判定包括:步骤3.1、如果节点A的下一个节点为选择节点,又分为两种情况:若节点A之前的所有已执行节点均处于安全状态,计算选择条件,根据相应的选择分支得到确定的目标模型,继续向下判定;若节点A之前的某个已执行节点不处于安全状态,则实例不可迁移,进入步骤六;步骤3.2、若节点A的下一节点为循环节点,则将其视为目标模型中新插入的原子节点W,然后再根据下一个节点的紧邻父结构类型进行可迁移性判定;步骤四,对<i>l</i><sub><i>­d</i></sub>中每一个节点,根据该节点和实例已经执行节点的输出变量集作出可迁移性判定,若A的输出变量集与其之前的已执行节点的输出变量集之间的交集非空,则实例不可迁移,若判定不可迁移则转步骤六,否则转步骤五;步骤五,若<i>l­</i><sub><i>p</i></sub>中的节点都处于安全状态,则判定为可迁移;若<i>l</i><sub>p</sub>中存在处于非安全状态的节点,假设为B,若B的输出变量集与插入其之前的节点集<i>N</i><sub><i>B</i></sub> ,可能是新出现的节点也可能是其他已执行节点与B调换了次序,B的输入变量集之间的交集非空或者B的输出变量集与<i>N</i><sub><i>B</i></sub>的输出变量集之间的交集非空,则该实例不可迁移,否则判定实例可迁移;步骤六,若判定可迁移性为真则进行实例迁移,否则恢复不可迁移实例的执行。
地址 210093 江苏省南京市鼓楼区汉口路22号