一种并行网关的节点检测方法及装置制造方法及图纸

技术编号:13674676 阅读:41 留言:0更新日期:2016-09-08 00:03
本发明专利技术实施例提供的并行网关的节点检测方法,使用堆栈存储分支节点或互斥节点,当含有并行网关的流程中有嵌套的子流程时,将流转到的分支节点或互斥节依次压入堆栈中,采用堆栈先进后出的原则,最后压入堆栈的节点先被弹出,当流转到聚合节点时,获取所述堆栈中的栈顶元素,若该栈顶元素后没有未经流转的路径,则该栈顶元素即为当前流转到的聚合节点所配对的分支节点或互斥节点。即在含有并行网关的流程中有嵌套的子流程中,先流转到的聚合节点是与最后流转到的分支节点或互斥节点配对的聚合节点。提高了分支冲突检测的效率,实现准确的确定分支节点所对应的聚合节点。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种并行网关的节点检测方法及装置
技术介绍
随着信息技术的发展,企业中很多业务采用流程处理各种复杂的业务管理。流程(Process),主要用于描述一个完整的业务过程,一般包括流程的基本信息,流程的开始和结束条件,组成的活动,活动间流转的规则,节点(分支节点、聚合节点、决策节点),以及可能调用的应用程序以及流程相关数据等信息。在含有并行网关的流程中,分支节点和聚合节点必须成对出现,如图1所示的含有并行网关的流程示意图,分支节点1和聚合节点1为一对,分支节点2和聚合节点2为一对。若流程中分支节点和聚合节点不成对,则该流程会出现分支冲突。为了保证流程的设计的合法性,需要进行并行网关的分支冲突检测。目前,进行并行网关的分支冲突检测主要采用如下方法:从流程中的指定节点向下查找,查找到分支节点时,计数器加1,选择该分支节点的所有流出路径继续查找,当查找到聚合节点时,判断技术器是否为0,如果是,返回该聚合节点,如果否,计数器减1,选择该聚合节点的所有流出路径继续查找。采用上述方法进行并行网关的分支冲突检测,当含有并行网关的流程中有嵌套的子流程时,查找所有分支节点的聚合节点时,需要对流程中的很多路径片段进行重复查找,降低分支冲突检测的效率,也无法确定分支节点所对应的准确的聚合节点。
技术实现思路
本专利技术解决的技术问题在于提供一种并行网关的节点检测方法及装置,从而能够避免对流程中的路径片段进行重复查找。为此,本专利技术解决技术问题的技术方案是:一种并行网关的节点检测方法,所述方法包括:获取流程中当前待检测的节点作为第一节点;判断所述第一节点的类型;当所述第一节点是分支节点或互斥节点时,将所述第一节点压入堆栈,所述堆栈用于存储分支节点和互斥节点;当所述第一节点是聚合节点时,将所述第一节点存储至第一存储区域,所述第一存储区域用于存储聚合节点;判断所述堆栈是否存储有节点;当所述堆栈存储有节点时,获取所述堆栈的栈顶元素作为第二节点;判断所述第二节点后是否存在未流转的路径;所述第二节点后没有未流转的路径时,判断所述第一存储区域是否有且只有所述第一节点;所述第一存储区域有且只有所述第一节点,所述第二节点为分支节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,从所述第一节点流转至下一个待检测的节点;所述第一存储区域有且只有所述第一节点,所述第二节点为互斥节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,判断所述堆栈中是否存在栈顶元素,所述堆栈中不存在栈顶元素时,从所述第一节点流转至下一个待检测的节点;所述堆栈中存在栈顶元素时,从所述堆栈中获取下一个栈顶元素作为第三节点,返回执行判断所述第三节点后是否存在未流转的路径。可选的,所述方法还包括:所述第一节点是聚合节点,所述第二节点后有未流转的路径时,从所述第二节点流转至下一个待检测的节点。可选的,所述将所述第一节点存储至第一存储区域包括:判断所述第一存储区域是否存储有节点;当所述第一存储区域存储有节点时,判断所述第一存储区域存储的节点是否为所述第一节点;当所述第一存储区域存储的节点为所述第一节点时,所述第一节点存储至所述第一存储区域。可选的,所述方法还包括:当所述第一节点不是分支节点,也不是互斥节点,还不是聚合节点时,判断所述第二存储区域是否存在所述第一节点,当所述第二存储区域不存在所述第一节点时,将所述第一节点存储至所述第二存储区域,所述第二存储区域用于存储流程中分支节点,互斥节点以及聚合节点以外的节点。可选的,所述方法还包括:当所述第二存储区域存在所述第一节点时,获取所述堆栈的栈顶元素;判断所述栈顶元素是否为互斥节点;当所述栈顶元素为互斥节点时,从所述第一节点流转至下一个待检测的节点。一种并行网关的节点检测装置,所述装置包括:第一获取单元,用于获取流程中当前待检测的节点作为第一节点;第一判断单元,用于判断所述第一节点的类型;第一存储单元,用于当所述第一节点是分支节点或互斥节点时,将所述第一节点压入堆栈,所述堆栈用于存储分支节点和互斥节点;第二存储单元,用于当所述第一节点是聚合节点时,将所述第一节点存储至第一存储区域,所述第一存储区域用于存储聚合节点;第二判断单元,用于判断所述堆栈是否存储有节点;第二获取单元,用于当所述堆栈存储有节点时,获取所述堆栈的栈顶元素作为第二节点;第三判断单元,用于判断所述第二节点后是否存在未流转的路径;第四判断单元,用于所述第二节点后没有未流转的路径时,判断所述第一存储区域是否有且只有所述第一节点;第一处理单元,用于所述第一存储区域有且只有所述第一节点,所述第二节点为分支节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,从所述第一节点流转至下一个待检测的节点;第五判断单元,用于所述第一存储区域有且只有所述第一节点,所述第二节点为互斥节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,判断所述堆栈中是否存在栈顶元素,所述堆栈中不存在栈顶元素时,从所述第一节点流转至下一个待检测的节点;所述堆栈中存在栈顶元素时,从所述堆栈中获取下一个栈顶元素作为第三节点,返回执行判断所述第三节点后是否存在未流转的路径。可选的,所述装置还包括:第二处理单元,用于所述第一节点是聚合节点,所述第二节点后有未流转的路径时,从所述第二节点流转至下一个待检测的节点。可选的,所述第一存储单元包括:第一判断子单元,用于判断所述第一存储区域是否存储有节点;第二判断子单元,用于当所述第一存储区域存储有节点时,判断所述第一存储区域存储的节点是否为所述第一节点;当所述第一存储区域存储的节点为所述第一节点时,所述第一节点存储至所述第一存储区域。可选的,所述装置还包括:第六判断单元,用于当所述第一节点不是分支节点,也不是互斥节点,还不是聚合节点时,判断所述第二存储区域是否存在所述第一节点,当所述第二存储区域不存在所述第一节点时,将所述第一节点存储至所述第二存储区域,所述第二存储区域用于存储流程中分支节点,互斥节点以及聚合节点以外的节点。可选的,所述装置还包括:第三获取单元,用于当所述第二存储区域存在所述第一节点时,获取所述堆栈的栈顶元素;第七判断单元,用于判断所述栈顶元素是否为互斥节点;当所述栈顶元素为互斥节点时,从所述第一节点流转至下一个待检测的节点。通过上述技术方案可知,本专利技术有如下有益效果:本专利技术实施例提供的并行网关的节点检测方法,使用堆栈存储分支节点或互斥节点,当含有并行网关的流程中有嵌套的子流程时,将流转到的分支节点或互斥节依次压入堆栈中,采用堆栈先进后出的原则,最后压入堆栈的节点先被弹出,当流转到聚合节点时,获取所述堆栈中的栈顶元素,若该栈顶元素后没有未经流转的路径,则该栈顶元素即为当前流转到的聚合节点所配对的分支节点或互斥节点。即在含有并行网关的流程中有嵌套的子流程中,先流转到的聚合节点是与最后流转到的分支节点或互斥节点配对的聚合节点。提高了分支冲突检测的效率,实现准确的确定分支节点所对应的聚合节点。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造本文档来自技高网...

【技术保护点】
一种并行网关的节点检测方法,其特征在于,所述方法包括:获取流程中当前待检测的节点作为第一节点;判断所述第一节点的类型;当所述第一节点是分支节点或互斥节点时,将所述第一节点压入堆栈,所述堆栈用于存储分支节点和互斥节点;当所述第一节点是聚合节点时,将所述第一节点存储至第一存储区域,所述第一存储区域用于存储聚合节点;判断所述堆栈是否存储有节点;当所述堆栈存储有节点时,获取所述堆栈的栈顶元素作为第二节点;判断所述第二节点后是否存在未流转的路径;所述第二节点后没有未流转的路径时,判断所述第一存储区域是否有且只有所述第一节点;所述第一存储区域有且只有所述第一节点,所述第二节点为分支节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,从所述第一节点流转至下一个待检测的节点;所述第一存储区域有且只有所述第一节点,所述第二节点为互斥节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,判断所述堆栈中是否存在栈顶元素,所述堆栈中不存在栈顶元素时,从所述第一节点流转至下一个待检测的节点;所述堆栈中存在栈顶元素时,从所述堆栈中获取下一个栈顶元素作为第三节点,返回执行判断所述第三节点后是否存在未流转的路径。...

【技术特征摘要】
1.一种并行网关的节点检测方法,其特征在于,所述方法包括:获取流程中当前待检测的节点作为第一节点;判断所述第一节点的类型;当所述第一节点是分支节点或互斥节点时,将所述第一节点压入堆栈,所述堆栈用于存储分支节点和互斥节点;当所述第一节点是聚合节点时,将所述第一节点存储至第一存储区域,所述第一存储区域用于存储聚合节点;判断所述堆栈是否存储有节点;当所述堆栈存储有节点时,获取所述堆栈的栈顶元素作为第二节点;判断所述第二节点后是否存在未流转的路径;所述第二节点后没有未流转的路径时,判断所述第一存储区域是否有且只有所述第一节点;所述第一存储区域有且只有所述第一节点,所述第二节点为分支节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,从所述第一节点流转至下一个待检测的节点;所述第一存储区域有且只有所述第一节点,所述第二节点为互斥节点时,从所述堆栈中弹出所述第二节点,清空所述第一存储区域,判断所述堆栈中是否存在栈顶元素,所述堆栈中不存在栈顶元素时,从所述第一节点流转至下一个待检测的节点;所述堆栈中存在栈顶元素时,从所述堆栈中获取下一个栈顶元素作为第三节点,返回执行判断所述第三节点后是否存在未流转的路径。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述第一节点是聚合节点,所述第二节点后有未流转的路径时,从所述第二节点流转至下一个待检测的节点。3.根据权利要求1所述的方法,其特征在于,所述将所述第一节点存储至第一存储区域包括:判断所述第一存储区域是否存储有节点;当所述第一存储区域存储有节点时,判断所述第一存储区域存储的节点是否为所述第一节点;当所述第一存储区域存储的节点为所述第一节点时,所述第一节点存储至所述第一存储区域。4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:当所述第一节点不是分支节点,也不是互斥节点,还不是聚合节点时,判断所述第二存储区域是否存在所述第一节点,当所述第二存储区域不存在所述第一节点时,将所述第一节点存储至所述第二存储区域,所述第二存储区域用于存储流程中分支节点,互斥节点以及聚合节点以外的节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述第二存储区域存在所述第一节点时,获取所述堆栈的栈顶元素;判断所述栈顶元素是否为互斥节点;当所述栈顶元素为互斥节点时,从所述第一节点流转至下一个待检测的节点。6.一种并行网关的节点检测装置,其特征在于,所述装置包括:第一获取单元,用于获取流程中当前待检测的节点作为第一节点;第一判断单元,用于判...

【专利技术属性】
技术研发人员:王腾陈炜赵克强宦维祥刘家杰
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1