[发明专利]一种基于约束求解器的服务组合验证方法在审

专利信息
申请号: 201510051679.1 申请日: 2015-01-30
公开(公告)号: CN104598619A 公开(公告)日: 2015-05-06
发明(设计)人: 张迎周;马凤娇;居友道;滕庆亚;徐曼青;孙韦翠 申请(专利权)人: 南京邮电大学
主分类号: G06F17/30 分类号: G06F17/30;H04L29/08
代理公司: 南京知识律师事务所 32207 代理人: 汪旭东
地址: 210046 江苏省*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明给出了一种基于约束求解器的服务组合验证方法,包含对WSDL,BPEL文档解析得到相关元素和变量的属性和取值,生成CFG图,描述CFG图,求解器求解等步骤。1)Web服务文档解析过程,包括对WSDL文档和BPEL文档的解析,2)根据BPEL中定义的命名空间对应关系,取得BPEL中变量在对应的WSDL中的元素属性信息,3)根据BPEL文档生成服务组合的控制流图即CFG图;4)建立一个一阶公式描述CFG图。5)结合Z3求解器对输入的语法要求,生成符合求解器输入格式的约束条件;6)将上几步中生成的约束条件及逻辑公式代入Z3求解器,进行验证。该方法从Web服务文档出发,对服务文档进行分析,可方便高效地验证Web服务。
搜索关键词: 一种 基于 约束 求解 服务 组合 验证 方法
【主权项】:
一种基于约束求解器的服务组合验证方法,其特征在于该方法包括Web服务文档解析、Web服务约束条件提取和Web服务验证三部分,该方法包含的步骤如下:1)对WSDL文档进行解析WSDL是一种web services的描述语言,使用开源工具WSDL4J将WSDL解析为DOM树,然后分别提取types,message,portType,binding,service的tag信息,为了提取WSDL中的变量约束信息,需要提取message标签信息以获取message中包含的part信息,用于在BPEL中查找对应变量约束;在获取types标签信息时,需要区分简单元素类型和复杂元素类型,对于简单元素类型,直接获取元素的name,type属性值;对于复杂元素类型,需要对其进行特殊处理:由于WSDL4J中没有对复杂类型进行处理的函数,需要自行解析,而根据复杂类型的XML schema定义,只需迭代获取子标签的内容即可得到复杂类型标签中包含元素的详细定义;2)对BPEL文档进行解析BPEL是一种用XML编写的编程语言,在BPEL的解析阶段,先将BPEL解析为DOM树,由BPEL Version 2.0的定义可知,BPEL的根节点为<process>,<process>的子节点包括<extensions>,<import>,<partnerLinks>,<messageExchanges>,<variables>,<correlationSets>,<faultHandlers>,<eventHandlers>以及业务执行活动等标签;另外,在BPEL的解析阶段,还需要提取业务执行流程,具体的过程为:找到根节点<process>的所有子节点,然后根据<process>的所有子节点名,即可查找到该BPEL中定义的业务执行流程子节点,最后提取出业务执行流程中服务调用、变量赋值等关系得到一个执行流程中间文件;3)将提取的中间文件,利用在cygwin中安装tools4bpel工具将bpel文件转化成控制流图即CFG图;4)建立一个一阶公式描述CFG图由BPEL Version 2.0的定义可知活动类型包括<receive>,<reply>,<invoke>,<assign>,<sequence>,<if>,<while>,<repeatUntil>,<forEach>,<pick>,<flow>,<scope>,<throw>,<exit>,<wait>,<empty>,<compensate>,<compensateScope>,<rethrow>,<validate>,<extensionActivity>,其中<throw>,<exit>,<wait>,<empty>,<compensate>,<compensateScope>,<rethrow>,<validate>,<extensionActivity>的活动主要用于抛出异常、结束业务执行流程、等待、数据验证等特殊情况,未加考虑;CFG图描述的是业务执行流程,在对其进行处理时,主要目标是提取业务执行流程以及活动中变量的赋值关系,所以在解析BPEL时,根据业务执行流程、活动类型、变量的赋值关系以及从WSDL中提取的变量约束条件,自动化生成XML文档用以保存简化的BPEL;然后利用模型检查中的方法,根据不同的活动类型对业务执行流程进行改写,使得业务执行流程可以使用if,assignment,assertions语句以及逻辑运算符表示,根据业务执行流程中的活动分类情况,改写规则如下:·<receive>用于接收匹配的message信息,从而获取输入参数,该活动为基本活动,可直接使用赋值表达式将输入参数赋值给相应的变量;·<reply>用于发送message信息,从而输出活动参数,该活动为基本活动,可直接使用赋值表达式将输出变量的值赋值给输出参数;·<invoke>用于调用PartnerLink中定义的其它Web服务,由于测试人员只能根据portType获取对应的接口说明,无法获取将要调用的Web服务的源代码,因此无法获取被调用的Web服务中的约束条件,只能使用BPEL内置函数getVariableData()来获取调用Web服务后的参数值,并将得到的值赋值给相应的参数;·<assign>活动用于对BPEL活动调用的变量赋值,该活动通常包括多于1个的<copy>子标签,用于指明赋值操作的对象,在获取赋值对象后,即可得到<assign>活动的赋值表达式;·<sequence>活动定义了BPEL中一个顺序执行的活动集合,对于一个<sequence><A1/><A2/><A3/></sequence>活动,各个子活动之间是顺序执行的关系,因此其条件范式为:A1;A2;A3;·<if>活动定义了BPEL中一个选择执行的活动类型,·<while>活动定义了BPEL中一个循环操作,对于一个<while><condition/><activity/></while>活动,由于while(e){I}→if(e){I while(e){I}}成立,因此将<while>活动转变为:·<pick>活动用于定义BPEL中一个选择操作,对于活动<pick><A1/><A2/><A3/></pick>,执行时只能选取其中一个活动,因此其对应的逻辑表达式为:·<flow>活动用于定义BPEL中一个并发操作,对于活动<flow><A1/><A2/></flow>,可能的活动执行次序有:{A1;A2},{A2;A1},在程序执行时,每次只能有一种活动执行次序为真,因此前述<flow>活动对应的逻辑表达式为:通过上面改写之后再通过规范化算法,得到只包含逻辑运算符及if,assignment,assertions语句;5)结合约束求解器对输入的语法要求,生成符合求解器输入格式的约束条件;6)将上几步中生成的约束条件及逻辑公式代入约束求解器,进行验证。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学;,未经南京邮电大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201510051679.1/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top