一种保证QoS实时有效的Web服务发现模型:实时有效
摘要:本文提出了一种保证QoS实时、有效的Web服务发现模型,该模型中的QoS监控模块在服务调用过程中自动监测QoS属性信息,定期对QoS信息计算,更新到服务注册中心,保证服务注册中心QoS信息的有效性;该模型中的服务提供方在服务调用过程中根据服务提供方系统运行情况主动更新QoS属性信息,保证服务注册中心QoS信息的实时性。
关键词:Web服务发现;服务质量;服务监控;服务可用性;模型
一、引言
随着 Web 服务的广泛扩展,服务质量(quality of service,QoS)已成为区分Web服务的一个重要标准。Web服务发现模型[2][3][5]中,服务注册中心以服务的QoS属性值作为服务质量的判断标准;所以保证服务注册中心QoS信息实时、有效是提高服务注册中心服务质量的前提。
该模型中QoS监控在服务调用过程中自动监测并定期更新QoS属性信息,保证服务QoS信息的有效;该模型中服务提供方根据系统运行状况主动更新相关的QoS属性信息,确保信息的实时性。
二、Web服务发现模型
为满足用户对于服务质量的需求,现有的Web服务发现模型都加入了服务的非功能性即服务质量描述。Web服务发现模型的QoS描述包括一下三个方面:服务发现机制本身的服务质量,以发现成功率和准确率等标准来衡量;针对具体服务的QoS信息,主要包括服务的可用性、可访问性、响应时间及可靠性等;服务请求者对于服务质量的个性化需求。
基于上述原则,在现有的Web服务发现模型基础之上,提出的Web服务发现模型如图1所示。模型中涉及的各种角色和相应操作如下。
三、模型实现
为了验证我们的方法,我们实现了该Web服务发现模型的一个原型系统。原型系统基于J2EE开发平台,使用Apache Axis2开发Web服务,以Apache jUDDI作为服务注册中心,主要介绍Web服务发现模型扩充部分的系统实现。
(一)QoS监控
服务调用过程中QoS监控通过一些功能接口记录与时间相关的服务运行时QoS信息。QoS信息监控获得的服务QoS值包括:Response Time(响应时间)表示从客户端向服务提交方法调用请求到获得方法响应的时间间隔、Execution Duration(执行延迟)表示服务请求者提交服务请求和得到结果之间的延迟等。每次服务调用获取的QoS属性值被作为一条记录存储在QoS Monitor的本地数据库表中。
对存储在数据库中的QoS信息进行量化处理,更新到服务注册中心,是QoS监控的一个主要任务。QoS Monitor根据多次监控获取的数据,采用中值量化的方法,定期对数据库表中的每个QoS属性记录进行去噪声量化。经中值量化计算得到的QoS属性均值()作为特定服务的QoS属性值,提交到QoS Information Manager,进行QoS属性值更新。
服务运行时监控获取QoS信息,与服务注册中心主动监控[4](Active Registry Monitor)相比,简化了服务注册中心的实现,缓解了服务注册中心的压力;与QoS中间件相比,避免了安装昂贵的中间件,持续的对服务提供方进行测试。
(二)服务提供方主动信息更新
在服务发现过程中,服务注册中心以服务调用历史决定服务可用性,即服务可用性
服务提供方系统当前运行状况是影响服务可用性的一个直接因素。为提高服务注册中心的服务发现质量,需要在服务注册中心引入与服务可用性相关的服务状态信息(running_state)和服务提供方系统负载信息(overload);避免提供的服务暂时不可用或服务质量达不到用户需求。
上述两个属性信息由服务提供方主动在服务注册中心进行更新。服务提供方通过调用服务注册中心提供的扩展的UDDI API,更新服务提供方的运行状态信息。
服务提供方系统需要维护时,将系统状态标记为维护状态(maintenance state);当系统维护结束后,将系统状态标记为运行态(running state)。通过调用函数(1)完成服务提供方系统状态的更新。
负载监控是服务提供方系统普遍具有的一项功能,用来实时监控系统当前负载信息。在服务调用过程中,服务提供方可以根据系统负载情况,调用函数(2)更新系统负载信息。
在服务调用过程中更新QoS信息,为服务注册中心服务选择、排序提供了依据;同时实时更新服务QoS信息给服务注册中心增加了一定的负担。为缓解服务注册中心的压力,服务提供方可以在负载量增大超过10%后,才发送请求更新系统负载信息。
服务提供方主动信息更新,并不会给服务提供方增加额外的负担;同时减少了服务调用前的服务提供方与服务请求者的协商,提高了服务调用的成功率。
(三)服务注册中心
本文用Apache jUDDI作为服务注册中心,用MySQL数据库存储服务注册中心服务信息。通过修改jUDDI提供的MySQL数据库源文件,增加对服务QoS信息的支持。增加如下数据库表:
service_qos(service_key,response_time,execution_duration);
business_qos(business_key,runing_state,overl_oad);
service_qos表记录服务的响应时间、执行延迟信息;business_qos表记录服务提供方的工作状态、系统负载信息。
服务注册中心主要功能包括基于用户需求对服务进行选择、排序,支持服务提供方、QoS监控更新服务QoS信息。本文主要介绍服务选择、更新服务QoS信息的实现。
进行服务选择时,服务注册中心首先查询business_qos表:将标记为维护状态、当前系统负载过大(需要服务注册中心与服务提供方进行协商,设定一个标准,比如负载量超过90%,便暂时不再提供服务)的服务提供方过滤掉,然后查找关联的business_entity (business_key)、busniness_service(service_key)、service_qos表,找出满足用户个性化需求的服务记录。在服务选择过程中考虑服务提供方系统运行状况,避免注册中心提供负载量过大、处于维护阶段的服务;一定程度避免服务调用失败后服务请求者重复查询服务注册中心。
通过sql操作,更新MySQL数据库表指定服务或服务提供方系统的QoS信息。需要进行更新操作的表包括service_qos、business_qos。
(四)模型创新
服务的非功能描述,即QoS成为区分服务的一个重要方面。服务注册中心都支持服务提供方基于QoS信息的服务发布、服务请求者基于QoS约束的服务发现。保证服务注册中心的服务QoS信息的实时、有效是提高服务注册中心服务质量的一个重要方面。Web 服务监控、用户对于服务质量的反馈是目前更新服务QoS信息的常用方法。
本文提出的Web服务发现模型,QoS监控定期对获取的信息计算并更新到服务注册中心,保证QoS新的准确性;同时在服务选择过程中,服务注册中心将服务提供方系统运行状况作为判断服务可用性的依据之一,保证提供给用户的服务是可用的。
结束语
现有Web发现模型在保证QoS实时、有效性方面存在不足,不能确保发现的服务满足用户的QoS需求,进而降低了服务发现系统的服务质量。针对这一问题,在现有研究的基础上,本文提出了一种保证QoS实时、有效的Web服务发现模型。该模型通过QoS监控保证QoS信息的有效性,通过服务提供方在服务调用过程中实时在服务注册中心更新系统性能信息,保证服务注册中心信息的实时性。在今后的工作中,将进一步研究Web服务的QoS问题,研究如何提高和保证服务发现系统的QoS问题,逐步提高原型系统的性能。
参考文献
[1] Daniel A. Menasce. QoS Issues in Web Services. IEEE Internet Computing, 6(6), 2002.
[2] Ran S. A model for Web services discovery with QoS. ACM SIGCOM Exchanges, 2003, 4(1) : 1?10.
[3] 徐九韵,夏雷. 基于反馈QoS量化的Web服务发现模型[J].计算机工程与设计, 2006, 28(16): 3860-3863.
[4] 郭得科,任彦,陈洪辉,等. 一种QoS有保障的Web服务分布式发现模型[J].软件学报,2006, 17(11):2324-2334.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
