论文摘要
近年来,服务计算作为一种新兴的分布式计算和软件应用模式得到了广泛的关注和研究。服务计算的核心思想是软件的广泛复用和松散的耦合形式,采用面向服务的软件架构模式(SOA),使用Web服务充当软件的功能模块。面向服务的体系结构(Service-Oriented Architecture, SOA)是一个组件模型,它将软件系统的不同功能模块单元(称作服务)通过预先定义好的接口和契约联结起来。简单的说,SOA就是一种以服务作为其基本功能模块的分布式软件构建和部署模型。随着计算机、因特网的普及以及XML语言的广泛使用,Web服务成为了SOA架构最主要的实现方式。W3C将Web服务定义为“支持计算机间通过网络进行互操作的软件系统”。各种服务以开放、自主的方式运行在彼此逻辑独立的分布节点上。在开发软件应用时,通过对功能需求的分析和分解,选择出符合需求的各个服务,将这些服务按照应用的执行流程组合起来,就完成了对软件应用的开发。服务计算这种快速开发部署、按需租用的模式正符合用户需求多样化和软件应用个性化的软件发展趋势。随着Web服务技术的高速发展和广泛应用,越来越多的服务提供商开始提供越来越多的服务,服务注册和发现的需求与日俱增。然而,传统的Web服务发现模式——基于UDDI注册服务器的服务发现是一个集中式的注册发现机制,存在单点失效、性能瓶颈等问题,无法满足日益扩大的服务发现需求。与此同时,随着服务提供商和服务的数量的增多,能够满足特定用户需求的服务也越来越多,根据服务的质量(QoS)来选择一个最好的服务为用户工作成为了一个很受关注的问题。传统的基于QoS的服务选择方法都假定能直接对所有的候选服务数据进行服务选择,因此很多服务选择算法都无法在服务QoS数据分散时获得正确的选择结果。本文在以前的研究人员的研究成果基础上,对上述问题进行了一些探索,并提出了相应的解决方案。本文首先分析了集中式服务发现模式的缺陷和可行的改进方法,并提出了一个基于无结构P2P网络的服务注册和发现方法。针对新的基于P2P网络的服务发现环境,本文提出了一种新的服务选择模式,并分析了在这种服务选择模式中执行的服务选择算法要获得正确的结果必须满足的性质。提出使用基于Skyline的服务选择算法在这种环境中进行服务选择,并证明了这种算法满足前面分析的性质。