第36卷第4期 北京科技大学学报 Vol.36 No.4 2014年4月 Journal of University of Science and Technology Beijing Apr.2014 一种面向Wb服务的综合可信性度量模型 孙昌爱12四,赵敏”,何啸” 1)北京科技大学计算机与通信工程学院,北京1000832)北京科技大学材料领域知识工程北京市重点实验室,北京100083 ☒通信作者,E-mail:casun@ustb.cdu.cn 摘要基于Wb服务的可信应用程序构造的一个关键问题是如何度量Web服务的可信性.在遵循Wb服务特点的基础 上,提出一个综合的Wb服务可信性度量模型TMM4WS,从Wb服务的内部实现和外部使用两方面对Wb服务的可信性进 行度量,开发了相应的度量支持工具TMT4WS.采用Wb服务实例对提出的度量模型与工具进行了验证.实验结果表明,度 量模型TMM4WS及其支持工具TMT4WS具有较好的可操作性,能够定量地度量Web服务的可信性. 关键词面向服务的架构:Wb服务:可信性:软件度量 分类号TP311 Comprehensive trustworthiness measurement model for Web services SUN Chang-ai.2,ZHAO Min”,HE Xiao》 1)School of Computer and Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 2)Beijing Key Lab of Knowledge Engineering for Materials Science,University of Science and Technology Beijing,Beijing 100083,China Corresponding author,E-mail:casun@ustb.edu.cn ABSTRACT One crucial issue of service-based trustworthy application development is how to measure the trustworthiness of Web services.A comprehensive trustworthiness measurement model for Web services,TMM4WS,was proposed based on the unique features of Web services.The model measures the trustworthiness of a Web service in terms of both its source code and external usage.A tool called TMT4WS was developed to support the model.An empirical study was conducted on tens of Web services to validate the effec- tiveness of the model and its supporting tool.Experimental results show that the model and its supporting tool can be employed to provide a quantitative trustworthiness measurement of Web services. KEY WORDS service oriented architecture (SOA):Web services;trustworthiness:software metrics 面向服务的架构(SOA)正被广泛采纳用来开发跨平台的应用程序集成和数据交换. 各种分布式应用程序口.Wb服务是SOA软件的 在进行S0A软件开发时,对于某个特定的需求 基本单元,由规格说明与实现两部分组成.前者采 而言,往往存在多个功能相似、性能不同的Wb服 用Wb服务描述语言(WSDL回)编写,后者可以采 务.在特定应用领域中,可能存在多个机构提供航 用任何程序设计语言进行编写.服务提供者开发 班查询、火车时刻查询、电子支付、搜索引擎等Wb Wb服务后将其发布到网络上,服务使用者采用简服务,例如雅虎、新浪和搜狐门户网站均提供天气查 单对象访问协议(SOAP)回发送请求,实现对Wb 询的Wb服务.当应用程序的可信性要求较高时, 服务的调用并接受返回结果.由于Web服务的定 如何评估与选择可信的Web服务尤为重要.Web 义与访问遵循相应的标准与规范,因此支持跨语言、 服务的可信性度量不仅有助于选择合适的Wb服 收稿日期:2013-02-20 基金项目:国家自然科学基金资助项目(60903003,61370061):北京市自然科学基金资助项目(4112037:“十二五”国家科技支撑计划资助项 目(2011BAK08B04):中央高校基本科研业务费资助项目(RF6DH2915A):北京市优秀人才培养计划资助项目(2012D009006000002):2012 年度阶梯计划资助项目(Z121101002812005) DOI:10.13374/j.issn1001-053x.2014.04.018:http:/journals.ustb.edu.cn
第 36 卷 第 4 期 2014 年 4 月 北京科技大学学报 Journal of University of Science and Technology Beijing Vol. 36 No. 4 Apr. 2014 一种面向 Web 服务的综合可信性度量模型 孙昌爱1,2) ,赵 敏1) ,何 啸1) 1) 北京科技大学计算机与通信工程学院,北京 100083 2) 北京科技大学材料领域知识工程北京市重点实验室,北京 100083 通信作者,E-mail: casun@ ustb. edu. cn 摘 要 基于 Web 服务的可信应用程序构造的一个关键问题是如何度量 Web 服务的可信性. 在遵循 Web 服务特点的基础 上,提出一个综合的 Web 服务可信性度量模型 TMM4WS,从 Web 服务的内部实现和外部使用两方面对 Web 服务的可信性进 行度量,开发了相应的度量支持工具 TMT4WS. 采用 Web 服务实例对提出的度量模型与工具进行了验证. 实验结果表明,度 量模型 TMM4WS 及其支持工具 TMT4WS 具有较好的可操作性,能够定量地度量 Web 服务的可信性. 关键词 面向服务的架构; Web 服务; 可信性; 软件度量 分类号 TP311 Comprehensive trustworthiness measurement model for Web services SUN Chang-ai 1,2) ,ZHAO Min1) ,HE Xiao 1) 1) School of Computer and Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 2) Beijing Key Lab of Knowledge Engineering for Materials Science,University of Science and Technology Beijing,Beijing 100083,China Corresponding author,E-mail: casun@ ustb. edu. cn ABSTRACT One crucial issue of service-based trustworthy application development is how to measure the trustworthiness of Web services. A comprehensive trustworthiness measurement model for Web services,TMM4WS,was proposed based on the unique features of Web services. The model measures the trustworthiness of a Web service in terms of both its source code and external usage. A tool called TMT4WS was developed to support the model. An empirical study was conducted on tens of Web services to validate the effectiveness of the model and its supporting tool. Experimental results show that the model and its supporting tool can be employed to provide a quantitative trustworthiness measurement of Web services. KEY WORDS service oriented architecture ( SOA) ; Web services; trustworthiness; software metrics 收稿日期: 2013--02--20 基金项目: 国家自然科学基金资助项目( 60903003,61370061) ; 北京市自然科学基金资助项目( 4112037) ; “十二五”国家科技支撑计划资助项 目( 2011BAK08B04) ; 中央高校基本科研业务费资助项目( FRF-SD-12-015A) ; 北京市优秀人才培养计划资助项目( 2012D009006000002) ; 2012 年度阶梯计划资助项目( Z121101002812005) DOI: 10. 13374 /j. issn1001--053x. 2014. 04. 018; http: / /journals. ustb. edu. cn 面向服务的架构( SOA) 正被广泛采纳用来开发 各种分布式应用程序[1]. Web 服务是 SOA 软件的 基本单元,由规格说明与实现两部分组成. 前者采 用 Web 服务描述语言( WSDL [2]) 编写,后者可以采 用任何程序设计语言进行编写. 服务提供者开发 Web 服务后将其发布到网络上,服务使用者采用简 单对象访问协议( SOAP) [2]发送请求,实现对 Web 服务的调用并接受返回结果. 由于 Web 服务的定 义与访问遵循相应的标准与规范,因此支持跨语言、 跨平台的应用程序集成和数据交换. 在进行 SOA 软件开发时,对于某个特定的需求 而言,往往存在多个功能相似、性能不同的 Web 服 务. 在特定应用领域中,可能存在多个机构提供航 班查询、火车时刻查询、电子支付、搜索引擎等 Web 服务,例如雅虎、新浪和搜狐门户网站均提供天气查 询的 Web 服务. 当应用程序的可信性要求较高时, 如何评估与选择可信的 Web 服务尤为重要. Web 服务的可信性度量不仅有助于选择合适的 Web 服
·544 北京科技大学学报 第36卷 务,而且为Wb服务的可信性改进提供了客观依 恢复性)因。因此,可生存性可以进一步分解为安全 据.Wb服务可信性度量的关键问题是定义可信度 性、容错性和可恢复性 量模型,即如何选择与定义各种可信属性.由于 其次,软件系统的行为和结果符合用户预期的 Wb服务在部署方式、调用方法、运行环境等方面 能力可以用正确性、可维护性、响应时间、可用性、满 与传统软件存在较大差别,己有度量技术不适用于 意度、信誉度、实时性、性能、防卫性等属性刻 Wb服务的可信性度量.人们提出了一些面向Wb 画.其中,只有对计算要求很高的领域才会关注 服务的可信性度量模型与工具).然而,己有研究 Wb服务的性能,只有涉及安全性机密较高的领域 工作存在如下不足:(1)主要关注Wb服务应用阶 才会关注Wb服务的防卫性,因此这两个属性不具 段的度量,缺乏对开发阶段和提交阶段的支持:(2) 备一般性,本文暂不予考虑.本文也不考虑实时性 提出了一些抽象的概念框架,缺乏可操作的细节 的度量,因为它依赖于用户和服务提供者的网络状 本文提出一个面向Web服务、内外结合的可信 况,评价结果不具有客观性.可维护性则可以被进 性度量模型TMM4WS.内部度量指标在源代码的层 一步分解为环形复杂度、子类数、对象耦合度和类响 次上反映Wb服务的可信性;外部度量指标反映 应集合回.此外,本文认为Web服务的行为和结果 Web运行时服务的可信性.依据TMM4WS,本文设 符合用户预期的能力还与Wb服务的互操作性有 计并实现了度量工具TMT4WS.采用实例研究的手 关.互操作性是指Web服务被用户或其他系统调 段,对提出的度量模型及其支持工具的有效性进行 用的难易程度.Wb服务越容易被调用,就越容易 了评估.实验结果表明,提出的Wb服务可信性的 被用来满足用户预期,也会降低调用错误的产生 度量模型TMM4WS易于实现,能够比较全面地反映 几率. Weh服务的可信性 上述可信属性中,有些属性是从内部实现的视 角对Web服务进行度量,通过分析Web服务的实 面向Web服务的可信性度量模型 现代码,计算出相应的度量值.本文将这样的属性 可信性可以由一组可信属性以及对这组属性的 称为Wb服务的内部可信属性,依靠在开发和提交 预期来表示,目前尚不存在统一的可信性定义回 阶段的Wb服务可信证据进行度量.其他属性则 本文将Web服务可信性定义为“Web服务的运行行 是从外部调用的视角对Wb服务进行衡量,通过观 为和执行结果符合预期描述,并在受到干扰时仍能 察和记录Wb服务被调用时表现和特性计算度量 提供连续服务的能力”.为此,从全部的可信属性中 值.这样的属性称为Wb服务的外部可信性属性, 选取一组关键的、具有一般性的属性对Wb服务的 反映了Wb服务在真实运行状态下的可信性 可信性进行评估,将这组属性称为Wb服务的可信 本文提出的可信度量模型TMM4WS综合了内 性度量指标.可信性度量指标的计算依赖于Wb 部可信性和外部可信性的度量模型,如图1所示. 服务的可信证据.可信证据是软件所具有的能够反 下面详细讨论图1中每个可信属性的定义和计算 映其某种可信指标的数据、文档或其他信息.结 方法. 合Wb服务的特点,本文提出一种内外结合可信性 1.2Web服务的内部可信性 度量模型TMM4WS,包括可信性度量指标的定义、 Wb服务的内部可信性主要从系统内部实现 指标之间的依赖关系以及每个指标的计算方式 的视角刻画可信性,依靠源代码静态分析的结果和 1.1TMM4WS概览 服务提供者提交的证据进行度量.内部可信性包括 Web服务可信性包括两个方面,即Web服务在 可生存性、功能性和可维护性.本文假设Wb服务 受到干扰时仍能提供连续服务的能力,以及Wb服 采用Java语言实现 务的行为和结果符合用户预期的能力.这两方面的 1.2.1可生存性 能力都可以使用一组可信属性进行刻画. 可生存性是指系统在遭受攻击、失效和偶然事 首先,Wb服务在受到干扰(包括操作错误、环 故时还能及时完成其任务的能力.由三个子属性进 境影响、外部攻击等)时仍然能提供连续服务的能 行刻画,即安全性、容错性和可恢复性 力可以表示为Wb服务的可生存性.可生存性包 (I)Web服务的安全性主要指Web服务代码 括系统抵御恶意攻击的能力(安全性)、系统抵御失 脆弱性程度、保护信息和数据的能力.Wb服务是 效和偶然事故的能力(容错性)以及系统从遭受攻 否提供身份验证、消息加密、访问控制等,反映了 击或出现失效状态恢复并继续提供服务的能力(可 Web服务的安全性.通过Web服务实现是否对数
北 京 科 技 大 学 学 报 第 36 卷 务,而且为 Web 服务的可信性改进提供了客观依 据. Web 服务可信性度量的关键问题是定义可信度 量模型,即如何选择与定义各种可信属性. 由于 Web 服务在部署方式、调用方法、运行环境等方面 与传统软件存在较大差别,已有度量技术不适用于 Web 服务的可信性度量. 人们提出了一些面向 Web 服务的可信性度量模型与工具[3]. 然而,已有研究 工作存在如下不足: ( 1) 主要关注 Web 服务应用阶 段的度量,缺乏对开发阶段和提交阶段的支持; ( 2) 提出了一些抽象的概念框架,缺乏可操作的细节. 本文提出一个面向 Web 服务、内外结合的可信 性度量模型 TMM4WS. 内部度量指标在源代码的层 次上反映 Web 服务的可信性; 外部度量指标反映 Web 运行时服务的可信性. 依据 TMM4WS,本文设 计并实现了度量工具 TMT4WS. 采用实例研究的手 段,对提出的度量模型及其支持工具的有效性进行 了评估. 实验结果表明,提出的 Web 服务可信性的 度量模型 TMM4WS 易于实现,能够比较全面地反映 Web 服务的可信性. 1 面向 Web 服务的可信性度量模型 可信性可以由一组可信属性以及对这组属性的 预期来表示,目前尚不存在统一的可信性定义[4]. 本文将 Web 服务可信性定义为“Web 服务的运行行 为和执行结果符合预期描述,并在受到干扰时仍能 提供连续服务的能力”. 为此,从全部的可信属性中 选取一组关键的、具有一般性的属性对 Web 服务的 可信性进行评估,将这组属性称为 Web 服务的可信 性度量指标. 可信性度量指标的计算依赖于 Web 服务的可信证据. 可信证据是软件所具有的能够反 映其某种可信指标的数据、文档或其他信息[5]. 结 合 Web 服务的特点,本文提出一种内外结合可信性 度量模型 TMM4WS,包括可信性度量指标的定义、 指标之间的依赖关系以及每个指标的计算方式. 1. 1 TMM4WS 概览 Web 服务可信性包括两个方面,即 Web 服务在 受到干扰时仍能提供连续服务的能力,以及 Web 服 务的行为和结果符合用户预期的能力. 这两方面的 能力都可以使用一组可信属性进行刻画. 首先,Web 服务在受到干扰( 包括操作错误、环 境影响、外部攻击等) 时仍然能提供连续服务的能 力可以表示为 Web 服务的可生存性. 可生存性包 括系统抵御恶意攻击的能力( 安全性) 、系统抵御失 效和偶然事故的能力( 容错性) 以及系统从遭受攻 击或出现失效状态恢复并继续提供服务的能力( 可 恢复性) [6]. 因此,可生存性可以进一步分解为安全 性、容错性和可恢复性. 其次,软件系统的行为和结果符合用户预期的 能力可以用正确性、可维护性、响应时间、可用性、满 意度、信 誉 度、实 时 性、性 能、防 卫 性 等 属 性 刻 画[7--8]. 其中,只有对计算要求很高的领域才会关注 Web 服务的性能,只有涉及安全性机密较高的领域 才会关注 Web 服务的防卫性,因此这两个属性不具 备一般性,本文暂不予考虑. 本文也不考虑实时性 的度量,因为它依赖于用户和服务提供者的网络状 况,评价结果不具有客观性. 可维护性则可以被进 一步分解为环形复杂度、子类数、对象耦合度和类响 应集合[9]. 此外,本文认为 Web 服务的行为和结果 符合用户预期的能力还与 Web 服务的互操作性有 关. 互操作性是指 Web 服务被用户或其他系统调 用的难易程度. Web 服务越容易被调用,就越容易 被用来满足用户预期,也会降低调用错误的产生 几率. 上述可信属性中,有些属性是从内部实现的视 角对 Web 服务进行度量,通过分析 Web 服务的实 现代码,计算出相应的度量值. 本文将这样的属性 称为 Web 服务的内部可信属性,依靠在开发和提交 阶段的 Web 服务可信证据进行度量. 其他属性则 是从外部调用的视角对 Web 服务进行衡量,通过观 察和记录 Web 服务被调用时表现和特性计算度量 值. 这样的属性称为 Web 服务的外部可信性属性, 反映了 Web 服务在真实运行状态下的可信性. 本文提出的可信度量模型 TMM4WS 综合了内 部可信性和外部可信性的度量模型,如图 1 所示. 下面详细讨论图 1 中每个可信属性的定义和计算 方法. 1. 2 Web 服务的内部可信性 Web 服务的内部可信性主要从系统内部实现 的视角刻画可信性,依靠源代码静态分析的结果和 服务提供者提交的证据进行度量. 内部可信性包括 可生存性、功能性和可维护性. 本文假设 Web 服务 采用 Java 语言实现. 1. 2. 1 可生存性 可生存性是指系统在遭受攻击、失效和偶然事 故时还能及时完成其任务的能力. 由三个子属性进 行刻画,即安全性、容错性和可恢复性. ( 1) Web 服务的安全性主要指 Web 服务代码 脆弱性程度、保护信息和数据的能力. Web 服务是 否提供身份验证、消息加密、访问控制等,反映了 Web 服务的安全性. 通过 Web 服务实现是否对数 ·544·
第4期 孙昌爱等:一种面向Wb服务的综合可信性度量模型 ·545· Wh服务的 可信性 内部可信性 外部可倍性 响应时间 可生存性 功能性 可维护性 可用性 可恢复性 正确性 复杂性 满意度 安全性 互操作性 可移植性 容错性 可复用性 信誉度 图1Wb服务可信性度量模型TMM4WS Fig.1 Trustworthiness measurement model TMM4WS for Web services 据的保护程度以及访问控制的处理情况来综合反映 1.2.2功能性 Web服务的安全性,可以用如下公式计算: Wb服务的功能性是指指定条件下运行时 security(p)=private_var(p) Wb服务提供满足要求功能的能力,包括正确性和 all var (p) 互操作性. 式中,security(p)表示程序p的安全性,alL_var(p)表 (I)Web服务的正确性反映了Web服务是否 示程序p中总的变量个数,private._var(p)表示程序 能够正确计算出结果的能力.Wb服务的正确性可 p中私有变量的个数. 以从两个方面进行衡量. (2)Wb服务的容错性是指在出现故障或者 (a)通过分析Web服务的运行日志,计算Web 违反其指定接口的情况下,Wb服务维持正常工作 服务正确执行的比率.Wb服务的日志文件中包含 的能力.从Wb服务的实现看来,容错性体现为程 了Wb服务调用成功和失败的信息.通过分析日 序中Try-Catch语句块的数量.由于程序出现错误 志文件,可以统计出成功调用和失败调用的次数. 很大程度上是由于输入数据不合法导致的,数据输 显然,程序的正确性应当与程序正确执行的次数成 入部分是否提供数据校验也反映了Wb服务的容 正比.假设程序p被成功调用的次数为success(p), 错能力.Wb服务的容错性可以用如下公式计算: 程序p失败调用的次数为fail(p),则通过日志文件 fault-tolerate (p)= 体现出程序p的正确性LogCorrectness(p)可表示为 try-eatch (p)+data-check (p)xw. 如下计算公式: 式中,fault-tolerate(p)表示程序p的容错性,try- catch(p)表示程序p中包含的try-catch语句块的数 LogCorrectness(p)=- success(p) success(P)+fail(p) 量,data-check(p)表示程序p中接收数据的部分是 (b)分析Web服务中算术运算的精确性.Web 否包含数据校验.如果包含数据校验模块,那么da- 服务中算术运算的精确性主要是受浮点运算影响. ta-check(p)=l;否则,data-check(p)=0.考虑到输 通常情况下,程序进行浮点运算时都是使用Java的 入数据校验模块的重要性高于单个try-catch语句, 基本数据类型loat或者double,但是这种浮点数在 因此数据校验的度量结果乘以较大的系数w(w的 计算机中只是一种近似表示.如果需要高精度的计 具体取值可由用户进行设定). 算结果,必须使用Java类库中的科学计算类java. (3)Wb服务的可恢复性主要指当系统发生 math.BigDecimal..Web服务中算术运算的精确性可 故障时,Wb服务的恢复能力.目前,对应系统崩溃 以被简化为使用BigDecimal类进行浮点计算比例. 常用方法是采用多节点备份的机制,即在多个网络 以AlgorithmCorrectness(p)来表示程序p的算术运 节点上部署同一个系统的不同实例,当一个主机发 算的正确性,若程序p中所有的浮点运算都是以 生崩溃时迅速切换到其他备用主机.因此,用运行 BigDecimal代替的,则AlgorithmCorrectness(p)赋值 了某个Web服务的节点数目来评估Web服务的可 为1,否则AlgorithmCorrectness(p)赋值为0.那么程 恢复性,这方面的度量信息由服务提供商提供. 序p的正确性correctness(p)可以由如下公式来
第 4 期 孙昌爱等: 一种面向 Web 服务的综合可信性度量模型 图 1 Web 服务可信性度量模型 TMM4WS Fig. 1 Trustworthiness measurement model TMM4WS for Web services 据的保护程度以及访问控制的处理情况来综合反映 Web 服务的安全性,可以用如下公式计算: security( p) = private_var( p) all_var( p) . 式中,security( p) 表示程序 p 的安全性,all_var( p) 表 示程序 p 中总的变量个数,private_var( p) 表示程序 p 中私有变量的个数. ( 2) Web 服务的容错性是指在出现故障或者 违反其指定接口的情况下,Web 服务维持正常工作 的能力. 从 Web 服务的实现看来,容错性体现为程 序中 Try-Catch 语句块的数量. 由于程序出现错误 很大程度上是由于输入数据不合法导致的,数据输 入部分是否提供数据校验也反映了 Web 服务的容 错能力. Web 服务的容错性可以用如下公式计算: fault-tolerate( p) = try-catch( p) + data-check( p) × w. 式中,fault-tolerate ( p ) 表 示 程 序 p 的 容 错 性,trycatch( p) 表示程序 p 中包含的 try-catch 语句块的数 量,data-check( p) 表示程序 p 中接收数据的部分是 否包含数据校验. 如果包含数据校验模块,那么 data-check( p) = 1; 否则,data-check( p) = 0. 考虑到输 入数据校验模块的重要性高于单个 try-catch 语句, 因此数据校验的度量结果乘以较大的系数 w( w 的 具体取值可由用户进行设定) . ( 3) Web 服务的可恢复性主要指当系统发生 故障时,Web 服务的恢复能力. 目前,对应系统崩溃 常用方法是采用多节点备份的机制,即在多个网络 节点上部署同一个系统的不同实例,当一个主机发 生崩溃时迅速切换到其他备用主机. 因此,用运行 了某个 Web 服务的节点数目来评估 Web 服务的可 恢复性,这方面的度量信息由服务提供商提供. 1. 2. 2 功能性 Web 服务的功能性是指指定条件下运行 时 Web 服务提供满足要求功能的能力,包括正确性和 互操作性. ( 1) Web 服务的正确性反映了 Web 服务是否 能够正确计算出结果的能力. Web 服务的正确性可 以从两个方面进行衡量. ( a) 通过分析 Web 服务的运行日志,计算 Web 服务正确执行的比率. Web 服务的日志文件中包含 了 Web 服务调用成功和失败的信息. 通过分析日 志文件,可以统计出成功调用和失败调用的次数. 显然,程序的正确性应当与程序正确执行的次数成 正比. 假设程序 p 被成功调用的次数为 success( p) , 程序 p 失败调用的次数为 fail( p) ,则通过日志文件 体现出程序 p 的正确性 LogCorrectness( p) 可表示为 如下计算公式: LogCorrectness( p) = success( p) success( P) + fail( p) . ( b) 分析 Web 服务中算术运算的精确性. Web 服务中算术运算的精确性主要是受浮点运算影响. 通常情况下,程序进行浮点运算时都是使用 Java 的 基本数据类型 float 或者 double,但是这种浮点数在 计算机中只是一种近似表示. 如果需要高精度的计 算结果,必须使用 Java 类库中的科学计算类 java. math. BigDecimal. Web 服务中算术运算的精确性可 以被简化为使用 BigDecimal 类进行浮点计算比例. 以 AlgorithmCorrectness( p) 来表示程序 p 的算术运 算的正确性,若程序 p 中所有的浮点运算都是以 BigDecimal 代替的,则 AlgorithmCorrectness( p) 赋值 为 1,否则 AlgorithmCorrectness( p) 赋值为 0. 那么程 序 p 的正确性 correctness( p) 可以由如下公式来 ·545·
·546 北京科技大学学报 第36卷 计算: 式中,M,表示当前类中第i方法调用其他类的方法 correctness (p)=A.LogCorrectness (p)+ 的集合,A,表示当前类中第i方法使用其他类的属 B.AlgorithmCorrectness(p). 性的集合。 其中,系数A和B可以依据不同的情况对其值进行 (b)类响应集合RFC是指响应了当前类的消 调整. 息或者方法的所有方法之和.类响应集合影响类的 (2)Wb服务的互操作性指在规定条件下, 可理解性和可测试性.类响应集合反映了该类与其 Web服务之间进行调用和传递数据的能力以及各 他类之间的交互情况,该集合越大说明交互越复杂. 模块之间互相调用的难易程度.每个类都会向外提 RFC的计算方法为 供调用其方法的接口,调用其内部功能的难易程度 RFC =IMURI. 可以被近似为其方法接受参数的数量,所以本文用 式中,M为当前类中的成员方法集合,R指被M中 类中公共方法的参数个数的平均值来定义一个类的 方法调用的方法集合 互操作性.以inter_.op(p)表示程序p的互操作性, (3)可复用性是指软件代码可以被重用的能 则inter_op(p)可用如下公式计算: 力.可以采用C&K度量集的NOC指标计算可复 pubmehod,,p) 用性. inter_op(p)=i=i 子类数NOC是指直接继承当前类的子类数,子 类数度量了可复用程度,影响类的可测试性.NOC n为程序p中公共方法的数目,pub_method:(p) 的计算方法为 表示调用第i个公共方法所需要传递的参数的 NOC count (SC). 个数 这里SC,表示当前类的第i个子类 1.2.3Web服务的可维护性 1.3Web服务的外部可信性 对Wb服务进行维护的难易程度,包括理解、 Wb服务的外部可信性是从外部调用的视角、 改正和改进Wb服务的难易程度.通过C&K度量 通过观察和记录Wb服务在提供服务时所体现的 集四可以定义Wb服务可维护性的三个子度量 一些特征信息以及用户的反馈信息对Wb服务可 指标. 信性进行度量,包括Web服务的响应时间、可用性、 (1)复杂性是指Wb服务的代码复杂程度.若 满意度和信誉度四个度量指标. Wb服务的代码复杂性高,说明其内部代码复杂, (I)Web服务响应时间是一个衡量Web服务 不易维护;复杂程度高的代码出错的可能性也随之 性能的常用和重要指标,是指从开始发送请求开始 增加.可以依据C&K度量集中的环路复杂度CC计 到最后得到输出的时间段.使用如下公式来计算 算复杂性,而类的复杂性可通过类中每个方法的环 Web服务平均响应时间: 路复杂度的平均值得到. 环形复杂度CC也称MaCabe复杂度.函数I方 法的复杂性与其中分支数量成正比,分支越多其逻 式中,n为调用指定Web服务的总次数,Tr为服 辑越复杂,也就越难被理解.因此,CC的计算方 务的平均响应时间,t:为第i次调用服务的响应 法为 时间. CC=Np +1. (2)Wb服务的可用性是指在某个时间内 式中,N表示函数/方法中判断语句数. Web服务可用的概率,可以用Web服务的成功连接 (2)可移植性是指代码从某一环境转移到另一 率衡量.假设在一段时间内对指定Wb服务o的 环境下的难易程度.C&K度量集中的CBO和RFC 调用次数为,其中调用成功并返回结果的次数为 描述类之间的相关性以及方法之间的相关性.因 success(w),调用失败没有得到预期返回结果的次 此,可以利用这两个指标计算可移植性 数为fail(w),则Web服务w的可用性available(w) (a)对象类耦合度CBO表示与当前类具有耦 合关系的类的个数.对象类耦合度影响类的可复用 可用如下公式进行计算: success (w) 性和可修改性.对象类耦合度高意味着该类不易复 available(w)=- 厂success(w)+fail(w) 用且维护困难.CBO的计算方法为 其中,available(w)越大表明Web服务w的可用性 CB0=∑(IM,I+IA:I). 越好,间接说明了w被成功调用的概率越大
北 京 科 技 大 学 学 报 第 36 卷 计算: correctness( p) = A·LogCorrectness( p) + B·AlgorithmCorrectness( p) . 其中,系数 A 和 B 可以依据不同的情况对其值进行 调整. ( 2) Web 服务的互操作性指在规定条件下, Web 服务之间进行调用和传递数据的能力以及各 模块之间互相调用的难易程度. 每个类都会向外提 供调用其方法的接口,调用其内部功能的难易程度 可以被近似为其方法接受参数的数量,所以本文用 类中公共方法的参数个数的平均值来定义一个类的 互操作性. 以 inter_op( p) 表示程序 p 的互操作性, 则 inter_op( p) 可用如下公式计算: inter_op( p) = ∑ n i = 1 pub_methodi ( p) n . n 为程 序 p 中公共方法的数目,pub_methodi ( p) 表示调用 第 i 个公共方法所需要传递的参数的 个数. 1. 2. 3 Web 服务的可维护性 对 Web 服务进行维护的难易程度,包括理解、 改正和改进 Web 服务的难易程度. 通过 C&K 度量 集[9]可以定义 Web 服务可维护性的三个子度量 指标. ( 1) 复杂性是指 Web 服务的代码复杂程度. 若 Web 服务的代码复杂性高,说明其内部代码复杂, 不易维护; 复杂程度高的代码出错的可能性也随之 增加. 可以依据 C&K 度量集中的环路复杂度 CC 计 算复杂性,而类的复杂性可通过类中每个方法的环 路复杂度的平均值得到. 环形复杂度 CC 也称 MaCabe 复杂度 . 函数/方 法的复杂性与其中分支数量成正比,分支越多其逻 辑越复杂,也就越难被理解. 因此,CC 的计算方 法为 CC = Nb + 1. 式中,Nb表示函数/方法中判断语句数. ( 2) 可移植性是指代码从某一环境转移到另一 环境下的难易程度. C&K 度量集中的 CBO 和 RFC 描述类之间的相关性以及方法之间的相关性. 因 此,可以利用这两个指标计算可移植性. ( a) 对象类耦合度 CBO 表示与当前类具有耦 合关系的类的个数. 对象类耦合度影响类的可复用 性和可修改性. 对象类耦合度高意味着该类不易复 用且维护困难. CBO 的计算方法为 CBO = ∑ ( | Mi | + | Ai | ) . 式中,Mi表示当前类中第 i 方法调用其他类的方法 的集合,Ai表示当前类中第 i 方法使用其他类的属 性的集合. ( b) 类响应集合 RFC 是指响应了当前类的消 息或者方法的所有方法之和. 类响应集合影响类的 可理解性和可测试性. 类响应集合反映了该类与其 他类之间的交互情况,该集合越大说明交互越复杂. RFC 的计算方法为 RFC = | M∪R | . 式中,M 为当前类中的成员方法集合,R 指被 M 中 方法调用的方法集合. ( 3) 可复用性是指软件代码可以被重用的能 力. 可以采用 C&K 度量集的 NOC 指标计算可复 用性. 子类数 NOC 是指直接继承当前类的子类数,子 类数度量了可复用程度,影响类的可测试性. NOC 的计算方法为 NOC = count( SCi ) . 这里 SCi表示当前类的第 i 个子类. 1. 3 Web 服务的外部可信性 Web 服务的外部可信性是从外部调用的视角、 通过观察和记录 Web 服务在提供服务时所体现的 一些特征信息以及用户的反馈信息对 Web 服务可 信性进行度量,包括 Web 服务的响应时间、可用性、 满意度和信誉度四个度量指标. ( 1) Web 服务响应时间是一个衡量 Web 服务 性能的常用和重要指标,是指从开始发送请求开始 到最后得到输出的时间段. 使用如下公式来计算 Web 服务平均响应时间: Taverage = ∑ n i = 1 ti n . 式中,n 为调用指定 Web 服务的总次数,Taverage为服 务的平均响应时间,ti 为 第 i 次 调 用 服 务 的 响 应 时间. ( 2) Web 服务的可用性是指在某个时间内 Web 服务可用的概率,可以用 Web 服务的成功连接 率衡量. 假设在一段时间内对指定 Web 服务 w 的 调用次数为 n,其中调用成功并返回结果的次数为 success( w) ,调用失败没有得到预期返回结果的次 数为 fail( w) ,则 Web 服务 w 的可用性 available( w) 可用如下公式进行计算: available( w) = success( w) success( w) + fail( w) . 其中,available( w) 越大表明 Web 服务 w 的可用性 越好,间接说明了 w 被成功调用的概率越大. ·546·
第4期 孙昌爱等:一种面向Wb服务的综合可信性度量模型 ·547· (3)Web服务的满意度是指Web服务使用者 布度量结果,供服务使用者参考.采用这种内外结 对服务的满意程度.用户对特定的Wb服务使用 合的方式对Wb服务进行可信性度量,可以保证数 之后的个人评价,可以采用调查问卷的方式实行打 据的可靠性,降低出错的概率 分制度,接受客户的反馈. (2)提出的Wb服务可信性度量模型采用双 (4)Web服务的信誉度通常指Web服务开发 层结构,具有较好的可操作性.首先将可信性分解 商的信誉度.对于功能相同的Wb服务而言,人们 为可生存性、功能性和可维护性等子特性,并对子特 一般会选择信誉度较高的机构开发的Wb服务. 性进行分解与定义相应的度量指标.己有的度量模 1.4TMM4WS的特点分析 型仅给出了抽象的可信性属性定义,并没有给出度 提出的Wb服务可信性度量模型整体结构明 量模型的依据 确、层次分明以及内外结合,是一个综合的Wb服 2面向Wεb服务的可信性度量工具 务可信性度量模型.具体来说: (1)从“内部”和“外部”两方面综合考虑Wb 为了支持用户利用TM4WS对Wb服务可信 服务的可信性.内部可信性针对Wb服务的源代 性进行度量,设计并实现了一个Wb服务可信性度 码进行可信性度量,采用扩展WSDL文件表示与发 量工具TMT4WS.该工具的体系结构如图2所示 XML文档 分析 源文件分析 源代码 ↑生成 度量元计算 解析 XML转换 与存储 日志分析 日志 读取 调用 读取 读写 Web服务调用 Wh服务实现 读取 度量结果可视化 度量数据库 读取 WSDL扩展 写人 WSDL文档 图2 TMT4WS的体系结构 Fig.2 Architecture of TMT4WS TT4WS主要由日志分析、源文件分析、度量元 计算与存储、Wb服务调用、WSDL文件扩展、XML 3实例研究 转换、度量结果可视化等模块组成.具体地说: 采用实例验证TMM4WS以及TMT4WS的有 (1)日志分析与源文件分析分别对Wb服务 效性. 调用的日志文件和Wb服务的实现代码进行解析, 3.1实验设计 提取内部可信性度量元数据 (2)Wb服务调用依据用户输入的WsDL文 (1)以两个开源的Wb服务验证内部可信性: 件地址,解析WSDL生成SOAP消息调用Wb服 ATM服务由本课题组开发,实现了常见的自动取款 务,得到外部可信性度量元数据. 机系统的功能回;Kandula服务由Apache开发,实 (3)度量元计算与存储将Wb服务可信性度 现了一组常见的Web事务协议o, 量元数据存储到度量数据库:依据可信性度量元数 (2)用32个Wb服务验证外部可信性:通过 据计算度量指标的属性值,将结果存储到度量数 动态调用Wb服务的方式获取可信性证据,从响应 据库. 时间和可用性两方面进行度量Wb服务的外部可 (4)度量结果可视化模块从度量数据库或 信性.具体说来,采用TMT4WS从网上随机抓取了 XL文档中获取度量结果,并可视化显示度量 32个Web服务,依据WSDL文件调用Web服务中 结果 包含的操作,统计Wb服务的每个操作的响应时间 (5)XML转化将可信性度量结果保存到XML 与可用性.通过在给定的响应时间范围内(阈值设 文件中. 为60s)Web服务是否响应请求(统计每个Web服 (6)WSDL扩展将可信性度量结果写入服务描 务的平均调用成功率)计算可用性,计算每个Wb 述的WSDL文件中. 服务的各个操作的平均响应时间
第 4 期 孙昌爱等: 一种面向 Web 服务的综合可信性度量模型 ( 3) Web 服务的满意度是指 Web 服务使用者 对服务的满意程度. 用户对特定的 Web 服务使用 之后的个人评价,可以采用调查问卷的方式实行打 分制度,接受客户的反馈. ( 4) Web 服务的信誉度通常指 Web 服务开发 商的信誉度. 对于功能相同的 Web 服务而言,人们 一般会选择信誉度较高的机构开发的 Web 服务. 1. 4 TMM4WS 的特点分析 提出的 Web 服务可信性度量模型整体结构明 确、层次分明以及内外结合,是一个综合的 Web 服 务可信性度量模型. 具体来说: ( 1) 从“内部”和“外部”两方面综合考虑 Web 服务的可信性. 内部可信性针对 Web 服务的源代 码进行可信性度量,采用扩展 WSDL 文件表示与发 布度量结果,供服务使用者参考. 采用这种内外结 合的方式对 Web 服务进行可信性度量,可以保证数 据的可靠性,降低出错的概率. ( 2) 提出的 Web 服务可信性度量模型采用双 层结构,具有较好的可操作性. 首先将可信性分解 为可生存性、功能性和可维护性等子特性,并对子特 性进行分解与定义相应的度量指标. 已有的度量模 型仅给出了抽象的可信性属性定义,并没有给出度 量模型的依据. 2 面向 Web 服务的可信性度量工具 为了支持用户利用 TMM4WS 对 Web 服务可信 性进行度量,设计并实现了一个 Web 服务可信性度 量工具 TMT4WS. 该工具的体系结构如图 2 所示. 图 2 TMT4WS 的体系结构 Fig. 2 Architecture of TMT4WS TMT4WS 主要由日志分析、源文件分析、度量元 计算与存储、Web 服务调用、WSDL 文件扩展、XML 转换、度量结果可视化等模块组成. 具体地说: ( 1) 日志分析与源文件分析分别对 Web 服务 调用的日志文件和 Web 服务的实现代码进行解析, 提取内部可信性度量元数据. ( 2) Web 服务调用依据用户输入的 WSDL 文 件地址,解析 WSDL 生成 SOAP 消息调用 Web 服 务,得到外部可信性度量元数据. ( 3) 度量元计算与存储将 Web 服务可信性度 量元数据存储到度量数据库; 依据可信性度量元数 据计算度量指标的属性值,将结果存储到度量数 据库. ( 4) 度量结果可视化模块从度量数据库或 XML 文档中获取度量结果,并可视化显示度量 结果. ( 5) XML 转化将可信性度量结果保存到 XML 文件中. ( 6) WSDL 扩展将可信性度量结果写入服务描 述的 WSDL 文件中. 3 实例研究 采用实 例 验 证 TMM4WS 以 及 TMT4WS 的 有 效性. 3. 1 实验设计 ( 1) 以两个开源的 Web 服务验证内部可信性: ATM 服务由本课题组开发,实现了常见的自动取款 机系统的功能[2]; Kandula 服务由 Apache 开发,实 现了一组常见的 Web 事务协议[10]. ( 2) 用 32 个 Web 服务验证外部可信性: 通过 动态调用 Web 服务的方式获取可信性证据,从响应 时间和可用性两方面进行度量 Web 服务的外部可 信性. 具体说来,采用 TMT4WS 从网上随机抓取了 32 个 Web 服务,依据 WSDL 文件调用 Web 服务中 包含的操作,统计 Web 服务的每个操作的响应时间 与可用性. 通过在给定的响应时间范围内( 阈值设 为 60 s) Web 服务是否响应请求( 统计每个 Web 服 务的平均调用成功率) 计算可用性,计算每个 Web 服务的各个操作的平均响应时间. ·547·