论文摘要
随着Web服务技术的广泛应用,其服务质量(Quality of Service, QoS)问题也受到越来越多的关注。可靠性作为服务质量的一个重要属性,是服务消费者选择Web服务的一个重要依据。目前国内外学者对Web服务可靠性做了一定的研究,但仍然处于起步阶段,并且存在一些问题和不足。针对这种现状,本文研究了Web服务可靠性的一些关键问题,包括服务可靠性的定义和度量方法、服务可靠性数据的获取方法、基于业务流程的组合服务可靠性计算方法以及提高Web服务可靠性的方法。首先,目前对Web服务可靠性定义和度量方式还没有一个统一的认识,不同的研究者提出了各自不同的见解。结合软件可靠性定义,本文详细分析了现有的Web服务可靠性定义及度量方式存在的问题,给出了Web服务可靠性的描述性定义,并给出了一个基于用户视角的Web服务可靠性量化方法。在现有的Web服务发布、查找和绑定模型中,服务消费者只能通过服务的WSDL文件获取服务的功能和接口信息,而无法获取服务的可靠性信息。针对这个问题,本文提出了一个基于用户反馈的Web服务可靠性评价框架,使用户能通过了解其他用户对服务可靠性的评价来选择符合要求的服务。在组装和发布组合服务之前,服务组装者往往需要对组合服务的可靠性进行评估。与传统软件开发人员不同的是,服务组装者通常不能通过大规模的集群测试来评价Web服务可靠性。借鉴经典控制理论中结构图的等效变换和简化方法,本文给出了基于业务流程的Web服务描述语言BPEL4WS定义的几种基本结构活动的等效变换和简化规则,并给出了等效后的服务可靠性计算方法。通过对组合服务业务流程的等效变换和简化,可以方便地计算出组合服务的可靠性。对服务组装者而言,提高Web服务可靠性是一个非常现实的要求。软件容错技术是用来提高软件可靠性的常用方法。本文分析了常用的两种软件容错技术:N文本法和恢复块法对提高Web服务可靠性的适用性。