论文部分内容阅读
面向服务的体系架构SOA(Service-Oriented Architecture)是分布式计算领域和软件技术发展的一个.里程碑。Web服务作为其实现基础,是一种自治、开放、自描述和实现无关的网络化构件,其良好的互操作性和松耦合方便了Internet环境下的软件开发和分布式应用。Web服务组合技术利用现有的Web服务,根据用户的需求将它们按一定的应用逻辑组合起来,可以提供更多功能更强大的服务,实现了Web服务的增值和复用,其中BPEL(Business Process Execution Language)是最常见的Web组合服务描述语言。BPEL组合服务因缺陷修复、需求增加、功能增强、性能改进、运行环境改变等挑战,需要适时地演化来满足各种现实的需求。如何确保BPEL组合服务在其生命周期中每个版本的正确性,尤其是数据流的正确性,是亟需解决的问题。测试和验证是软件质量保障的两种有效方法,由于BPEL规约是基于XML语言的,为了实现自动高效的测试和验证,还需要为BPEL组合服务构造形式化模型。本文基于演化的特性,从数据流的角度,系统地研究了BPEL组合服务建模、测试和验证的三个方而,主要研究成果如下:(1)研究了BPEL组合服务的演化和建模问题,对BPEL组合服务演化过程中的修改类型进行分类,提出了一种扩展控制流图XCFG(eXtended Control Flow Graph)模型。XCFG模型中用变量集描述BPEL流程中用到的变量,用伙伴链接集描述与流程交互的成员服务,用流图描述流程的执行,其中用结点描述BPEL活动,用控制边描述活动之间的顺序关联,用link边描述BPEL中的特殊元素link,且模型中每个元素都附有信息域来描述对应BPEL组合服务中的相关信息。该模型不仅能描述BPEL组合服务的控制流信息还能描述服务间交互的数据流信息,为后续基于数据流的测试和验证提供了足够的信息。(2)研究了BPEL组合服务的回归测试问题,提出了一种基于XCFG模型的针对全使用数据流测试准则的回归测试用例选择方法。该方法包括数据流分析、受影响的定义-使用对识别、测试路径计算和测试用例选择四个步骤。通过对传统的可到达定义计算方法进行改进,提出了基于XCFG流图的数据流分析方法来计算BPEL流程中的定义-使用对,然后对流程修改、绑定修改和接口修改进行修改影响分析识别需要进行回归测试的定义-使用对,并计算覆盖待测试定义-使用对的数据流路径,最后对基线版本和演化版本中的路径进行路径条件分析比较进行测试用例选择。实验表明该方法是有效的,且可检测BPEL组合服务演化过程中的三种修改类型。(3)研究了BPEL组合服务数据流属性的验证问题,提出了定义-使用一致性、无死锁、可达性和无冲突的单版本验证算法,还提出了无冲突属性的演化版本的增量式验证方法ICV(InCremental Verification)。单版本四种数据流相关属性的验证是基于XCFG模型开展的,实验表明了验证算法的有效性和性能。演化版本无冲突属性的ICV验证方法首先构造基线版本和演化版本的并发集,通过将验证对象局限到受流程修改影响且与无冲突属性相关的活动结点,来提供验证效率。实验表明ICV方法是有效的,且相比较单版本的无冲突验证算法在性能上有所提升。(4)设计和实现了原型工具XCFG4BPEL,以支持以上提出的理论方法。支持对BPEL组合服务的XCFG建模、单版本的数据流测试路径计算、演化版本的数据流回归测试用例选择、单版本的定义-使用一致性、无死锁、可达性、无冲突属性验证以及演化版本的无冲突属性验证。