面向Web服务测试的WSDL到代数规约转换技术研究(2)
时间:2019-01-24 21:26 来源:毕业论文 作者:毕业论文 点击:次
Web服务已经被广泛应用于实际生活中,互联网圈中的每一个环节,都在积极地给自己添加Web服务,所以在这种情况下,一个Web服务的质量就显得尤为重要。因此,通过Web服务测试,挑选出高质量的Web服务将成为必不可少的一个过程。代数规约语言是一种形式化测试方法,可以为开发者提供测试以及可考察的语义信息。服务描述语言基于本体论,对Web服务语义进行描述,适合用于开发人员的理解与处理。 因此,本体描述与代数规约之间的转换过程,既是对语法的理解,也是对语义的理解,,实现二者的转换,对实现服务的发现、组合等操作具有重大的意义。 1.2 服务描述介绍 本小节主要介绍对Web服务描述的两种方法:本体描述和代数规约。本体描述以WSDL为例,代数规约以sofia为例。本小节将分别介绍他们的内容以及特点,并比较他们的优缺点。 1.2.1 本体描述 本体(Ontology)本身是哲学上的一个概念,主要用于研究客观世界的本质。但是现在,本体的概念已经广泛到互联网的多个领域,主要包括电子工程、数据挖掘、计算机科学、电子商务等。虽然目前为止,对本体的理解仍然没有同意的定义,但是,现阶段广受认可的是斯坦福大学的Gruber给出的定义,即“本体是概念化的显式规范”【13】。 所谓领域,是指一个特定的学科的范围,在现实生活中,人类和应用软件就是通过本体来共享领域内的知识。本体既包括特定领域内的知识,也包括其他领域间的知识,使用本体描述方法,就可使知识得到重用。通过对Web服务的本体描述,就可以实现“精确地表示那些隐含而不明确的信息”【6】。 作为本体的描述的一种,WSDL是一种基于语法的描述,以XML的格式来描述Web服务:(1)服务提供的操作(服务做什么);(2)数据格式以及操作所遵循的协议(如何访问服务);(3)服务的入口地址,如URL(服务位于何处)。对于WSDL的研究已经相对成熟,但是其描述能力有限,并且灵活性和扩展能力较差,并且缺乏对服务的语义描述。 1.2.2 代数规约 国内外对于代数规约的研究都已经相对成熟,在《Fundamentals of Algebraic Specification》中代数规约已经有了详细的描述。一个完整的系统可以看成是集合,或者定义在集合上用来描述系统功能的操作子的集合【9】,这样我们就得到了一个代数(Algebra)。因此,一个系统可以看成是一个代数,其描述不同的对象,而共享一个相对应的常见结构。 基于形式化规约的测试,通常采用的是随机策略,生成随机的测试数据,使得这种方法具有测试自动化的特点。而基于代数规约的测试,已经应用到广泛的领域,包括抽象数据类型(由过程语言表示),类(面向对象的思想)和EJB组件的测试。通过实践证明,使用代数规约方法描述一个软件系统时,规约的实现具有简洁、精确,并且能够独立于实现语言的特点,这表明通过代数规约方法,不仅可以在隐藏内部的实现细节的前提下,描述这个软件实体的表现行为,还可以应用代数规约本身语法规范中的公理等式,来判断测试是否通过,因此这种方法的测试自动化的程度是相对较高的。 不仅如此,这种基于代数规约的测试方法,可以应用到Web服务的测试,但前提条件是根据Web服务产生的代数规约必须是良构的,而且代数规约的结构必须能够和Web服务的程序结构相匹配。简而言之,除了规约中定义的类名(即sort)和Web服务的名相同,对于签名(signature)部分的操作名、输入以及输出的类型,也必须和Web服务中定义的接口相对应。在面向服务的计算中,开发能被机器准确理解的语义服务,是服务开发的关键。 基于这一目的设计而成的Sofia语言,基于明确的代数理论,很好地满足了这一需求。 (责任编辑:qin) |