基于独立第三方的Web服务Qos属性评价系统及其评价方法

文档序号:9471136阅读:696来源:国知局
基于独立第三方的Web服务Qos属性评价系统及其评价方法
【技术领域】
[0001] 本发明涉及Web服务属性选择领域,尤其涉及一种基于独立第三方的Web服务Qos 属性评价系统及其评价方法。
【背景技术】
[0002] 当前,Web服务质量属性(QualityofService,QoS)成为了Web服务选择的重要 考虑因素。
[0003] 在传统Web服务属性发布和发现机制中,QoS信息主要由服务提供商来度量和发 布。其主要存在以下两个弊端: 一方面服务提供商从服务的运行端对QoS动态参数进行单点监测和度量,但是由于Web服务是面向客户的,服务质量真正的好坏也应该从客户的角度来评价,因此现有服务提 供商所发布的QoS数据并不能代表客户端使用服务的真实属性。
[0004] 另一方面,由于服务提供商之间的竞争激烈,服务提供者为了增加其所提供服务 被选择的机会,从而获取更大的利益,往往会发布优于实际值的虚假QoS属性数据。因此, 基于QoS的Web服务发布和发现过程中,QoS信息的真实性、客观性、准确性等问题没有保 障。
[0005] 近年来,还有一些研究考虑QoS信息应该由客户端反馈,由服务用户安装监测程 序对服务的QoS信息进行主动监测和收集记录,并反馈给服务中心。但是这种方法需要用 户紧密地参与到服务质量的度量过程中来,加重了服务请求者的负担,对Web服务客户端 应用的自动化程度会造成较大的影响;并且,实际情况更倾向于进行主动反馈的服务消费 者很少,且评价频率也很低,这样一来,这些评价就不具有普遍性;另外客户端反馈也是一 种主观行为,因此难免存在偏见甚至恶意欺骗,影响服务消费者的决策。
[0006] 现有技术中还有一些对Web服务的质量属性进行度量的技术和工具,但都存在这 样或那样的问题,我们将其列举分析如下: 方法一:基于对SOAP引擎库进行修改的方法来实现对Web服务质量的自动度量。通 过修改ApacheAxis的SOAP引擎库,向其中添加监测代码,以便在SOAP请求发送前和接收 SOAP响应消息时收集与服务质量相关的数据,并将这些数据通发送给专门的节点以便进行 分析和处理,其结果和手工提交的QoS数据一起被用来更新服务注册库中相应Web服务的 质量信息。这种方法的缺点是:它与系统平台以及SOAP引擎库的实现紧密相关。其广泛应 用需要得到工业界各个厂商的支持,才能将这种修改集成到所有的SOAP引擎库的具体实 现中,而且并不是所有的SOAP引擎库都公开源代码。
[0007]方法二:基于应用响应度量(ApplicationResponseMeasure,ARM)API对Apache AxisWeb服务平台上的Web服务执行时间进行度量。通过对ARMAPI调用来指出ARM事务的 开始和终止事件,获得Web服务的执行时间。此外,将面向方面编程技术(Aspect-Oriented Programming,A0P)和ARMAPI结合在一起,用来度量实现具体业务逻辑的后端服务的执行 时间。这种方法的优点在于获取活动与系统平台的无关性,但是侧重于在服务端进行度量, 该方法需要能访问被度量的Web服务的源代码,一旦度量过程发生改变或者应用程序本身 在被度量和独立运行之间进行切换,则整个应用程序都需要进行重新编译和部署。
[0008] 方法三:基于代理的方法是将Proxy作为Web服务客户端和服务提供端之间通信 的桥梁,代理横切服务客户端和服务提供端之间交换的输入输出消息,从而进行服务质量 的度量。这个方法要求服务提供端和客户端之间交换的所有SOAP消息对代理来说都是可 见的。这个方法的缺点是需要对被监测的Web服务应用程序的源代码进行修改并和配置以 便使用Proxy。当面对不开放源代码的Web服务应用程序时,该度量方法就不再体现它的优 越性了。
[0009] 方法四:Web服务质量的度量是通过对底层网络数据包(Packets)进行拦截和捕 获来实现的。采用这种方法的核心思想是要捕获含有SOAP请求消息和响应消息的数据包。 这种方法优点在于:监测程序与Web服务应用程序的源代码完全分离。缺点就是:监测程序 所获取的信息中有很大一部分都是与度量目标无关的数据,需要将它们过滤掉。
[0010] 终上所述,如果能够研发出一套基于独立第三方的Web服务Qos属性评价系统 及其评价方法,Web服务QoS的度量能够由独立于服务提供者和服务用户的第三方进行, 第三方模拟客户实际调用Web服务的情形,发送服务调用请求,由监测代码来收集服务的 执行状况和各项数据。那么在这种情况下,监测代码不需要获得Web服务的设计和实现 细节,跟普通的用户使用服务一样,只要获得Web服务的接口信息即WSDL(WebServices DescriptionLanguage)文档即可,在获得WSDL文档的基础上实现服务的自动调用、监测和 度量。则就可以实现保证Web服务属性的QoS数据的公正性、可信性和客观性。

【发明内容】

[0011] 为了解决现有技术中的问题,本发明的目的是开发出一种基于独立第三方的Web 服务Qos属性评价系统及其评价方法,该系统提供的Web服务属性的QoS数据具有公正性、 可信性和客观性。
[0012] 为达到上述目的,本发明提供的一种基于独立第三方的Web服务Qos属性评价系 统包括以下构件: WSDL解析构件,用户输入Web服务WSDL文档的URL地址后,WSDL解析构件从UDDI注 册库中获得WSDL的描述文档并负责对WSDL文档进行自动解析,通过对WSDL文档进行解 析,可以清楚的了解Web服务使用的绑定协议、端口、实现的操作和输入输出的消息以及用 到的数据类型信息,所有这些信息存储在数据库中,提供给用户浏览和选择; 调用数据生成构件,调用数据生成构件根据WSDL文档中定义数据类型的模式文件生 成调用数据,包括生成简单数据类型的调用数据和生成复杂数据类型的调用数据;简单数 据类型的调用数据是通过WSDL文档中定义的数据类型及刻面约束随机生成默认的调用数 据;复杂数据类型的调用数据是根据WSDL解析构件得到的数据类型结构,采用相应的策 略,生成简单调用数据的集合;所有调用数据生成构件中生成的调用数据都存储到XML文 件当中去; 桩代码生成构件,桩代码生成构件从Web服务的WSDL文件动态的生成用来调用Web服务的客户端Java桩代码,进而使用客户端Java桩代码利用Web服务的工具包Axis的 WSDL2 Java工具来调用远程的Web服务,将WSDL文件中定义的数据类型、消息、端口类型、绑 定协议转换成相应的Java类和接口; 服务调用构件,在Web服务调用的客户端Java桩代码生成后,服务调用构件使用Java的反射机制,获得调用服务的方法名、返回类型、参数类型列表,使用现有的负载测试工具 LoadRunner捕获服务调用场景,并通过模拟上千万用户实施并发负载来进行实时性能的监 测; 服务监测构件,服务监测构件监测服务调用的开始时间和终止时间,服务调用 前和调用后的各种时间和状态信息,服务监测构件采用面向方面的程序设计技术 (Aspect-Oriented Programming, A0P),将对服务的监测设置为方面代码,并将监测代码植 入服务调用代码执行之前和执行之后,收集服务调用前和调用后的时间、状态信息,监测 Web服务动态参数; 结果收集和计算构件,结果收集和计算构件收集来自于服务监测构件监测到的服务的 调用时间和调用状态信息,并且根据服务属性计算模型,计算出服务属性的各个动态参数 指标值,将计算结果存入数据库;所述服务属性的动态参数指标值包括吞吐量、响应时间、 可靠性、可用性和可访问性; QoS动态更新构件,QoS动态更新构件用于对Web服务属性的各个属性值的动态更新,QoS动态更新构件根据历史数据对当前得到的QoS数据进行定期修正和更新,得到最新的 全局Qos属性数据并实时更新到数据库,实时反映出QoS信息的最新变化。
[0013] 优选的方案,所述简单数据类型的调用数据包括字符串型的调用数据、数值型的 调用数据和布尔型的调用数据。
[0014] 进一步的优选方案,所述数值型的调用数据包括int的调用数据、float的调用数 据、double的调用数据和integer的调用数据。
[0015] 更进一步的优选方案,所述布尔型的调用数据包括True取值的调用数据和False 取值的调用数据。
[0016] 所述复杂数据类型的调用数据包括choice型的调用数据、all型的调用数据和 sequence型的调用数据。
[0017] 本发明实现了一个独立的、第三方的QoS动态参数度量系统QoS-M (QoS Measurement system)。该度量系统能够对描述服务的WSDL文档进行自动解析;根据解析 出的WSDL文档信息自动生成调用服务的调用数据;自动生成调用服务的客户端桩代码;在 此基础上,实现Web服务的自动调用;结合面向方面的编程技术,织入服务监测代码直接到 Web服务调用代码处,实现对Web服务调用时间和调用状态的动态采集;完成QoS动态参数 的计算和存储;并通过QoS动态更新算法对QoS历史信息做定期的计算和更新,以反映出 QoS信息的最新变化;为服务双方提供一个客观的、可信的QoS度量数据。
[0018] 另外,本方发明实现了第三方的QoS动态参数
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1