一种基于流程编排的服务组合路径推导方法技术

技术编号:14004987 阅读:63 留言:0更新日期:2016-11-16 19:25
本发明专利技术一种基于流程编排的服务组合路径推导方法,属于软件测试技术领域,具体包括:首先、提取某段BPEL源文档中的元素并分别进行编号;同时将该BPEL源文档划分为正常处理程序和异常处理程序;然后分别提取出BPEL路径信息形成中间XML文档;并去除冗余元素,得到描述路径的XML文档,读取边以及节点,建立服务组合路径的邻接矩阵以及并行节点集合;最后、结合深度优先搜索算法,得到所有的服务组合路径,在路径执行条件下输出;优点在于:能够自动化解析BPEL源文档,得到服务组合执行顺序,简化了测试人员的BPEL解析工作;完备的寻找到所有的服务组合路径,辅助测试过程,使得测试结果更加全面。

【技术实现步骤摘要】

本专利技术属于软件测试
,具体是一种基于流程编排的服务组合路径推导方法
技术介绍
相对于传统面向过程或功能的软件结构,面向服务的体系结构(Service-Oriented Architecture,SOA)能更好的适应当下信息化和网络服务的不断发展,在各种企业和IT系统得到广泛应用。SOA中,不同的功能单元通过接口连接完成一个完整的程序功能,这些单元被称为服务。接口的定义是中立的,即SOA的各个服务之间是松耦合的,使SOA具有极高的灵活性和适应性,其中的服务具有良好的可替换性和可复用性;但松耦合的特性同时也对SOA系统的测试带来了一些困难,主要体现在以下三个方面:第一,使用者无法知晓服务内部的运行原理,只有服务的提供者才能对系统进行完整的测试。第二,SOA服务具有动态绑定的特性,会使系统参数在测试运行时发生改变,使得已测得的数据失效。第三,SOA通过对各个服务进行编排来实现完整的业务功能,即使各项服务都能够单独通过测试,将它们整合起来后,测试业务流程时仍可能出现问题。同时,在一个较为复杂的SOA系统中,也可能在测试中错过了某些能够完成功能的服务组合,测试结果可能是不全面的。当前针对SOA系统的测试技术研究有三个不同的阶段:第一阶段为:关注企业内部的测试,主要测试单个服务的功能,检测其功能实现能力和对接口、消息的交换能力;第二阶段为关注面向服务的系统特性,测试主要针对服务的发布、查找和绑定的三种行为,以及服务之间不能及时互相传递信息的问题。第三阶段为关注服务的动态特性和服务组合总体的测试,一般从SOA系统整体上看待问题,关注各个服务组合的集成测试。综合国内外对SOA系统的研究与应用来看,关于SOA测试的研究,其内容一般分为以下三类:针对服务协议和状态进行的简单测试,用自动化生成测试用例对SOA系统整体进行测试以及对SOA系统自动检测工具的相关研究。从相关的文献资料可以看出,目前SOA测试的研究大多只针对系统中的单个服务或者服务之间的关系,对真正能够实现功能的含有多个服务的业务流程的测试较少。自动化检测工具和整体测试中,多用确定的规则自动化生成生成测试用例,而很少使用真实数据进行测试。对于服务组合集成测试需要解析BPEL源文档,得到服务组合执行顺序。Web服务的业务流程执行语言BPEL4WS(Business Process Execution Language For Web Services),是为了整合Web服务而制定的一项规范标准。许多BPEL编辑工具提供从业务流程图转化到BPEL语言的映射,以实现BPEL的图形化设计和分析。现在大约有二十几种能够进行BPEL编辑的工具和相应的平台,其中许多还可以进行可视化的图形操作。但这些工具中的图形或其他符号都是为了转换成BPEL代码而使用的,需要对BPEL的书写规范和代码结构十分熟悉才能高效的利用这些编辑工具。从业务流程模型或业务流程建模与标注标准(Business Process Modeling Notation,BPMN)到BPEL程序的转换算法广泛的被提出和应用,使人们能够更好地利用BPEL语言来设计规划业务流程。但对业务流程的测试还没有得到足够的重视,所需要的从BPEL语言程序到控制流程图形的逆向转换算法并不完备。
技术实现思路
本专利技术为了解决BPEL语言程序到控制流程图的转换问题,从测试角度出发,基于BPEL源程序自动化生成测试服务组合路径的技术还不成熟,提出了一种基于流程编排的服务组合路径推导方法;具体步骤如下:步骤一、针对某段BPEL源文档,提取BPEL源文档中的元素并分别进行编号;BPEL源文档中的元素分为基本活动元素以及结构化活动元素,首先将对基本活动元素按序进行编号,然后,继续顺次对结构化活动元素按序进行编号;并记录基本活动元素的最后一个编号作为分界编号。步骤二、按BPEL语法标准将该BPEL源文档划分为正常处理程序和异常处理程序;步骤三、分别对正常处理程序和异常处理程序提取出BPEL路径信息;具体步骤为:步骤301、首选针对某段程序,判断是否为正常程序,如果是,删除scope元素;否则,保留scope元素;步骤302、从外层到内层逐层遍历该段程序中的每层元素;步骤303、针对某层作为当前层,判断该层遍历到的当前元素是否为基本活动元素,如果是,进入步骤304,否则,进入步骤307;步骤304、判断当前层下一个元素是否为基本活动元素;如果是,将两个基本活动元素的编号相连,形成一条边;否则,进入步骤305;步骤305、判断当前层下一个元素是否为结构化活动元素,如果是,将当前基本活动元素与结构化活动元素的编号相连形成一条边,进入步骤307;否则,进入步骤306;步骤306、判断当前层下一个元素是否为throw,如果是,当前层的throw元素与该throw元素寻找的到异常程序中的第一个节点相连,并返回步骤303;否则,当前层下一个元素不存在,结束。第一个节点是指异常程序中的结构化活动元素catchAll或catch;throw元素按BPEL语法标准寻找异常程序。步骤307、判断结构化活动元素的内层元素是否为基本活动元素,如果是,该结构化活动元素与内层基本活动元素的编号相连形成边;否则,与内层结构化活动元素的编号相连形成边;步骤四、将所有层提取的BPEL路径信息形成中间XML文档;BPEL路径信息包括节点和边;其中节点是指每个基本活动元素的编号;边包括连边和边属性两部分;BPEL路径形式为:from=\编号
o=\编号\condition=\null/valid\flow=
rue/false\;步骤五、对中间XML文档,去除冗余元素,得到描述路径的XML文档;具体去除方法为:针对两条BPEL不同的路径:当第一条路径中的to属性与第二条路径中的from属性中采用的编号值相同,且该编号大于分界编号时,删除该编号,将两条路径合并为一条路径;当两条路径的condition属性中至少有一个为valid,则合并condition属性为valid;当两条路径的flow属性至少有一个为true,则合并flow属性为true。步骤六、利用XML解析工具读取描述路径的XML文档中的边以及节点;步骤七、利用边和节点建立服务组合路径的邻接矩阵以及并行节点集合;邻接矩阵为边和点的连接有向图;并行节点集合为一维向量,用来存储邻接矩阵中具有并行分支路径的开始节点;每个开始节点向下一个节点相连边的flow属性均为true;并行节点用于记录并行路径信息。步骤八、结合深度优先搜索算法,得到所有的服务组合路径;首先、从邻接矩阵中提取所有路径并存储到总路径集合中;所有路径包括无并行执行的路径和并行执行路径,其中并行执行路径的开始节点存放在并行节点集合中;然后、从总路径集合中,将无并行执行路径一一提取并存储到临时存储空间;针对并行节点集合中的每个开始节点,将该开始节点下同时执行的至少两条路径分别提取,作为一组并行路径,放到临时存储空间。具体提取过程为:针对并行节点集合中的每个开始节点,该开始节点下的所有同时执行的并行子节点,对每一个并行子节点对应的分支路径一一提取,并将同一个并行子节点下的所有分支路径存储在一个块结构中,从每个块结构中各选取一条分支路径组合在一起本文档来自技高网
...
一种基于流程编排的服务组合路径推导方法

【技术保护点】
一种基于流程编排的服务组合路径推导方法,其特征在于,具体步骤如下:步骤一、针对某段BPEL源文档,提取BPEL源文档中的元素并分别进行编号;BPEL源文档中的元素分为基本活动元素以及结构化活动元素,首先将对基本活动元素按序进行编号,然后,继续顺次对结构化活动元素按序进行编号;并记录基本活动元素的最后一个编号作为分界编号;步骤二、按BPEL语法标准将该BPEL源文档划分为正常处理程序和异常处理程序;步骤三、分别对正常处理程序和异常处理程序提取出BPEL路径信息;步骤四、将所有层提取的BPEL路径信息形成中间XML文档;步骤五、对中间XML文档,去除冗余元素,得到描述路径的XML文档;具体去除方法为:针对两条BPEL不同的路径:当第一条路径中的to属性与第二条路径中的from属性中采用的编号值相同,且该编号大于分界编号时,删除该编号,将两条路径合并为一条路径;当两条路径的condition属性中至少有一个为valid,则合并condition属性为valid;当两条路径的flow属性至少有一个为true,则合并flow属性为true;步骤六、利用XML解析工具读取描述路径的XML文档中的边以及节点;步骤七、利用边和节点建立服务组合路径的邻接矩阵以及并行节点集合;邻接矩阵为边和点的连接有向图;并行节点集合为一维向量,用来存储邻接矩阵中具有并行分支路径的开始节点;每个开始节点向下一个节点相连边的flow属性均为true;并行节点用于记录并行路径信息;步骤八、结合深度优先搜索算法,得到所有的服务组合路径;步骤九、将所有的服务组合路径,在路径执行条件下输出;路径执行条件是指每条边上condition属性中的valid条件。...

【技术特征摘要】
1.一种基于流程编排的服务组合路径推导方法,其特征在于,具体步骤如下:步骤一、针对某段BPEL源文档,提取BPEL源文档中的元素并分别进行编号;BPEL源文档中的元素分为基本活动元素以及结构化活动元素,首先将对基本活动元素按序进行编号,然后,继续顺次对结构化活动元素按序进行编号;并记录基本活动元素的最后一个编号作为分界编号;步骤二、按BPEL语法标准将该BPEL源文档划分为正常处理程序和异常处理程序;步骤三、分别对正常处理程序和异常处理程序提取出BPEL路径信息;步骤四、将所有层提取的BPEL路径信息形成中间XML文档;步骤五、对中间XML文档,去除冗余元素,得到描述路径的XML文档;具体去除方法为:针对两条BPEL不同的路径:当第一条路径中的to属性与第二条路径中的from属性中采用的编号值相同,且该编号大于分界编号时,删除该编号,将两条路径合并为一条路径;当两条路径的condition属性中至少有一个为valid,则合并condition属性为valid;当两条路径的flow属性至少有一个为true,则合并flow属性为true;步骤六、利用XML解析工具读取描述路径的XML文档中的边以及节点;步骤七、利用边和节点建立服务组合路径的邻接矩阵以及并行节点集合;邻接矩阵为边和点的连接有向图;并行节点集合为一维向量,用来存储邻接矩阵中具有并行分支路径的开始节点;每个开始节点向下一个节点相连边的flow属性均为true;并行节点用于记录并行路径信息;步骤八、结合深度优先搜索算法,得到所有的服务组合路径;步骤九、将所有的服务组合路径,在路径执行条件下输出;路径执行条件是指每条边上condition属性中的valid条件。2.如权利要求1所述的一种基于流程编排的服务组合路径推导方法,其特征在于,所述的步骤三具体为:步骤301、首选针对某段程序,判断是否为正常程序,如果是,删除scope元素;否则,保留scope元素;步骤302、从外层到内层逐层遍历该段程序中的每层元素;步骤303、针对某层作为当前层,判断该层遍历到的当前元素是否为基本活动元素,如果是,进入步骤304,否则,进入步骤307;步骤304、判断当前层下一个元素是否为基本活动元素;如果是,将两个基本活动...

【专利技术属性】
技术研发人员:韩荣宾王世海
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1