一种基于安全状态的工作流实例可迁移性判定方法

文档序号:6539332阅读:169来源:国知局
一种基于安全状态的工作流实例可迁移性判定方法
【专利摘要】本发明的基于安全状态的工作流实例可迁移性判定方法,步骤一,分别找出实例中在目标模型中的节点集合和不在目标模型中的节点集合;步骤二,对实例中仍在目标模型中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态;步骤三,根据实例中仍在目标模型中的节点的状态和它的下一个节点的类型进行可迁移性判定;步骤四,对实例中不在目标模型中的节点集合中的每一个节点,根据该节点和实例已经执行节点的输出变量集作出可迁移性判定;步骤五,对实例中仍在目标模型且不处于安全状态的节点,根据该节点与插入它之前的节点集的输出与输入变量集作出可迁移性判定;步骤六,若判定可迁移性为真则进行实例迁移,否则恢复不可迁移实例的执行。
【专利说明】一种基于安全状态的工作流实例可迁移性判定方法
【技术领域】
[0001]本发明涉及计算机工作流领域,具体是一种基于安全状态的工作流实例可迁移性判定方法,能够快速高效、尽可能多且准确地对原模型下的实例进行可迁移性判定,将可迁移的工作流实例迁移到新模型下执行。
【背景技术】
[0002]与软件动态更新类似,工作流系统的动态更新也可以划分为若干实施步骤。但是,工作流系统的动态更新与软件动态更新又有所不同,工作流系统的动态更新主要涉及两个层面的更新:过程模型层面和过程实例层面。过程模型层面的更新体现为过程模型的变更,这种变更可以是用户根据应用需求的变化直接参与对过程模型的修改,也可以是系统根据运行环境的变化对过程模型的调整;过程实例层面的更新主要体现为过程实例的迁移即源模型下的正在运行的实例能否迁移到目标模型下运行以及如何实施迁移,本发明主要解决的是过程实例层面的可迁移性判定方法。
[0003]可迁移性判定方法是过程实例迁移技术中十分重要的部分。迁移方法的标准过松,则过程实例迁移前后的一致性难以得到保障;反之,则会导致能够迁移的实例减少,达到一定程度,更会从根本上撼动实例迁移的有效性甚至必要性。当过程模型发生变化时,如何将变化准确、迅速地反映到过程的动态执行上是过程系统动态更新的关键所在,若处理不当,容易引发过程模型版本管理混乱,过程运行与过程模型定义脱节等问题。本申请的方法从工作流的基本结构出发,从单个节点的安全状态着手进行原模型和目标模型的比较,回避了宏观结构上直接比较带来的复杂性。

【发明内容】

[0004]发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于安全状态的工作流实例可迁移性判定方法,加快迁移判定的速度,提高迁移的准确度和覆盖率。
[0005]为弥补现有技术的不足,本发明公开了一种基于安全状态的工作流实例可迁移性判定方法,其特征在于,包括以下几个步骤:
[0006]步骤一,比对原模型下任一实例I和目标模型M,找出实例I中不在目标模型中的节点集合Id和仍在目标模型中的节点集合Ip ;
[0007]步骤二,对Ip中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态;
[0008]步骤三,在确定Ip中的所有节点是否处于安全状态之后,对Ip中每个节点,再根据该节点之前节点的状态和它下一个节点的类型做出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤四;
[0009]步骤四,对Id中每一个节点,根据该节点和实例已经执行节点的输出变量集作出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤五;[0010]步骤五,若Ip中的节点都处于安全状态,则判定为可迁移,若Ip中存在不处于安全状态的节点,则根据该节点与插入它之前的节点集的输出与输入变量集作出判断;
[0011]步骤六,若判定可迁移性为真则进行实例迁移,否则恢复不可迁移实例的执行。
[0012]本发明步骤一中,通过暂停原模型下的所有实例,对其中任一实例I和目标模型M,找出实例I中不在目标模型中的节点,这些节点形成集合ld,找出I中仍在目标模型中的节点,这些节点形成集合lp。
[0013]本发明步骤二中,实例中的某节点处于安全状态当且仅当目标模型中其前的节点序列与原模型中其前的节点序列相同或为其子序列,对节点是否处于安全状态的判定是判定实例是否可迁移的重要基础。对Ip中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态,假设Ip中某一节点为A,具体判定过程包括:若A的紧邻父结构为顺序结构或者并发结构,则仅对A进行是否处于安全状态的判定;若A的紧邻父结构为选择结构,如果A之前的所有已执行节点均处于安全状态,则把该实例回退到A的上一个节点,然后将其迁移到目标模型的选择结构恢复执行,否则该过程实例不可迁移,进入步骤六;若々的紧邻父结构为单元块结构,标记A处于安全状态,因为此时单元块结构中有且仅有A ;以上三点都不满足的,则标记A为处于非安全状态。
[0014]本发明步骤三中,在判断完Ip中的所有节点是否处于安全状态之后,对其中每个节点,再根据该节点之前节点的状态和它的下一个节点类型做出可迁移性判定,再次假设Ip中某一节点为A,如果节点A的下一个节点为选择节点,又分为两种情况:若节点A之前的所有已执行节点均处于安全状态,计算选择条件,根据相应的选择分支得到确定的目标模型,继续向下判定;若节点A之前的某个已执行节点不处于安全状态,则实例不可迁移,进入步骤六。若节点A的下一节点为循环节点,将其视为目标模型中新插入的原子节点W,然后再根据下一个节点的紧邻父结构类型进行可迁移性判定。
[0015]本发明步骤四中,对Id中的每一个节点A,若A的输出变量集与其之前的已执行节点的输出变量集之间的交集非空,则实例不可迁移,进入步骤六;否则进入步骤五。
[0016]本发明步骤五中,若Ip中的节点都处于安全状态,则判定为可迁移。若Ip中存在处于非安全状态的节点,假设为B,若B的输出变量集与插入其之前的节点集Nb (可能是新出现的节点,也可能是其他已执行节点与B调换了次序)的输入变量集之间的交集非空或者B的输出变量集与Nb的输出变量集之间的交集非空,则该实例不可迁移,否则判定实例可迁移。
[0017]本发明步骤六中,对判定可迁移性为真的实例进行迁移,否则恢复不可迁移实例的执行。对可迁移实例进行迁移具体指的是:从Ip的最后一个节点迁移到目标模型M中第一个新出现节点(相对已执行序列I而言)开始执行,恢复执行过程中需要跳过已执行的节点,且目标节点的紧邻父结构为并发结构时,并发结构中的其他未执行节点同时恢复执行。恢复不可迁移实例的执行是指恢复不可迁移实例在原模型下的执行。
[0018]有益效果:本发明在实例可迁移性判定中有较高的准确度和覆盖度以及较低的算法复杂性:准确度高,避免了将一些原本不可迁移的实例迁移到新模型下而引发错误;覆盖度高,可以让更多的过程实例动态迁移到新模型下继续执行;执行效率快,从单个节点的安全状态着手进行原模型和目标模型的比较,回避了宏观结构上直接比较带来的复杂性。【专利附图】

【附图说明】
[0019]图1实例迁移判定之顺序结构。
[0020]图2实例迁移判定之并发结构。
[0021]图3实例迁移判定之选择结构。
[0022]图4实例迁移判定之顺序结构2。
[0023]图5本发明执行流程示意图。
【具体实施方式】
[0024]下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述/或其他方面的优点将会变得更加清楚。
[0025]如图5所示,本发明包含以下步骤:步骤一,比对原模型下任一实例I和目标模型M,找出实例I中不在目标模型中的节点集合Id和仍在目标模型中的节点集合Ip ;步骤二,对Ip中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态;步骤三,在确定Ip中的所有节点是否处于安全状态之后,对Ip中每个节点,再根据该节点之前节点的状态和它下一个节点的类型做出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤四;步骤四,对Id中每一个节点,根据该节点和实例已经执行节点的输出变量集作出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤五;步骤五,若Ip中的节点都处于安全状态,则判定为可迁移,若Ip中存在不处于安全状态的节点,则根据该节点与插入它之前的节点集的输出与输入变量集作出判断;步骤六,若判定可迁移性为真则进行实例迁移,否则恢复不可迁移实例的执行。
[0026]下面结合附图对本发明做详细的介绍。
[0027]步骤一中,通过暂停原模型下的所有实例,对其中任一实例I和目标模型M,找出实例I中不在目标模型中的节点,这些节点形成集合ld,找出I中仍在目标模型中的节点,这些节点形成集合lp。
[0028]步骤二中,实例中的某节点处于安全状态当且仅当目标模型中其前的节点序列与原模型中其前的节点序列相同或为其子序列,对节点是否处于安全状态的判定是判定实例是否可迁移的重要基础。对Ip中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态,假设Ip中某一节点为A,具体判定过程包括:1)若A的紧邻父结构为顺序结构或者并发结构,则仅对A进行是否处于安全状
[0029]态的判定。如图1所示的顺序结构,A、C处于安全状态,B处于非安全状态。
[0030]
【权利要求】
1.一种基于安全状态的工作流实例可迁移性判定方法,其特征在于,包括以下步骤: 步骤一,比对原模型下任一实例I和目标模型M,找出实例I中不在目标模型中的节点集合It^P仍在目标模型中的节点集合Ip ; 步骤二,对Ip中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态; 步骤三,在确定Ip中的所有节点是否处于安全状态之后,对Ip中每个节点,再根据该节点之前节点的状态和它下一个节点的类型做出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤四; 步骤四,对Id中每一个节点,根据该节点和实例已经执行节点的输出变量集作出可迁移性判定,若判定不可迁移则转步骤六,否则转步骤五; 步骤五,若Ip中的节点都处于安全状态,则判定为可迁移,若Ip中存在不处于安全状态的节点,则根据该节点与插入它之前的节点集的输出与输入变量集作出可迁移性判定; 步骤六,若判定可迁移性为真则进行实例迁移,否则恢复不可迁移实例的执行。
2.根据权利要求1所述的基于安全状态的工作流实例可迁移性判定方法,其特征在于,步骤一中,通过暂停原模型下的所有实例,对其中任一实例I和目标模型M,找出实例I中不在目标模型中的节点,这些节点形成集合ld,找出I中仍在目标模型中的节点,这些节点形成集合Ip。
3.根据权利要求1所述的基于安全状态的工作流实例可迁移性判定方法,其特征在于,步骤二中,实例中的某节点处于安全状态当且仅当目标模型中其前的节点序列与原模型中其前的节点序列相同或为其子序列,对节点是否处于安全状态的判定是判定实例是否可迁移的重要基础;对Ip中的所有节点,根据它的紧邻父结构来判断该节点是否处于安全状态,假设Ip中某一节点为A,具体判定过程包括: 步骤2.1、若A的紧邻父结构为顺序结构或者并发结构,则仅对A进行是否处于安全状态的判定; 步骤2.2、若的紧邻父结构为选择结构,如果A之前的所有已执行节点均处于安全状态,则把该实例回退到A的上一个节点,然后将其迁移到目标模型的选择结构恢复执行,否则该过程实例不可迁移,进入步骤六; 步骤2.3、若A的紧邻父结构为单元块结构,标记A处于安全状态,因为此时单元块结构中有且仅有A ; 步骤2.4、以上三点都不满足,则标记A为处于非安全状态。
4.根据权利要求1所述的基于安全状态的工作流实例可迁移性判定方法,其特征在于,步骤三中,在判断完Ip中的所有节点是否处于安全状态之后,对其中每个节点,再根据节点的状态和它的下一个节点类型做出可迁移性判定,再次假设Ip中某一节点为A,具体判定包括: 步骤3.1、如果节点A的下一个节点为选择节点,又分为两种情况:若节点A之前的所有已执行节点均处于安全状态,计算选择条件,根据相应的选择分支得到确定的目标模型,继续向下判定;若节点A之前的某个已执行节点不处于安全状态,则实例不可迁移,进入步骤六; 步骤3.2、若节点A的下一节点为循环节点,则将其视为目标模型中新插入的原子节点W,然后再根据下一个节点的紧邻父结构类型进行可迁移性判定。
5.根据权利要求1所述的基于安全状态的工作流实例可迁移性判定方法,其特征在于,步骤四中,对Id中的每一个节点A,若A的输出变量集与其之前的已执行节点的输出变量集之间的交集非空,则实例不可迁移,进入步骤六;否则进入步骤五。
6.根据权利要求1所述的基于安全状态的工作流实例可迁移性判定方法,其特征在于,步骤五中,若Ip中的节点都处于安全状态,则判定为可迁移;若Ip中存在处于非安全状态的节点,假设为B,若B的输出变量集与插入其之前的节点集Nb,可能是新出现的节点也可能是其他已执行节点与B调换了次序,的输入变量集之间的交集非空或者B的输出变量集与Nb的输出变量集之间的交集非空,则该实例不可迁移,否则判定实例可迁移。
7.根据权利要求1所述的基于安全状态的工作流实例可迁移性判定方法,其特征在于,步骤六中,对判定可迁移性为真的实例进行迁移,否则恢复不可迁移实例的执行;对可迁移实例进行迁移具体指的是:从Ip的最后一个节点迁移到目标模型M中第一个新出现节点,相对已执行序列I而言,开始执行,恢复执行过程中需要跳过已执行的节点,且目标节点的紧邻父结构为并发结构时,并发结构中的其他未执行节点同时恢复执行;恢复不可迁移实例的执行是指恢复不可迁移实 例在原模型下的执行。
【文档编号】G06Q10/06GK103778519SQ201410076015
【公开日】2014年5月7日 申请日期:2014年3月4日 优先权日:2014年3月4日
【发明者】胡昊, 曹春, 余萍, 吕建, 陈栋, 张 浩 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1