Web服务发现是Web服务应用中需要解决的主要问题之一,也是实现服务共享和重用的前提条件。本文对Web服务发现的研究现状进行了系统的分析。介绍了Web服务的主要形式和Web服务发现的主要内容,将现有方法进行了分类,通过分析其中典型方法的原理和应用情况,总结了每类方法的特点,指出了未来研究中面临的问题。
Web 服务是面向服务架构(Service-Oriented Architecture, SOA)和面向服务计算(Service Oriented Computing, SOC)等技术发展的有效实现。W3C 将Web 服务定义为一个由URI 来标识的软件系统,它采用XML 语言来定义其接口和描述其绑定。它的定义可以被其他软件系统所发现,这些系统通过Web 服务自身所定义的方式与其进行交互,在这个交互过程中,两方通常使用互联网协议来传递基于XML 的消息[1]。从Web 服务的定义可以看出,只需要定义Web 服务的接口就能实现其彼此间的互操作,而与它们具体的实现语言和内部数据结构无关。由于Web 服务相比普通的应用和网页而言具有明显的优点, 能有效推动应用资源的共享、复用和集成,所以越来越多的应用以Web 服务的形式发布到网络上。但随着Web 服务应用领域的普及,网络上的Web 服务数量以指数级别增长,如何快速准确地在海量的服务资源中找到所需的特定Web 服务就自然成为了Web 服务技术研究中必须解决的问题之一,这就是通常说的Web 服务发现(Web Service Discovery)问题。Web 服务发现与传统的信息检索方法有较多相似之处, 但它具有更高的技术复杂度,涉及的内容也更多,结果不确定性也更大。一般认为,Web 服务发现是Web 服务研究领域的一个非常重要的组成部分,更是实现服务共享和重用的前提条件[2]。
本文阐述了Web 服务的主要形式和Web 服务发现的主要内容,概括了近年来Web 服务发现的研究现状,对典型的Web 服务发现方法进行分析,旨在帮助学习研究人员进一步了解Web 服务发现的研究进展,为后续研究工作的开展做好铺垫。
2. 服务发现概述 2.1. Web 服务的形式 根据SOA 架构设计规范,Web 服务的体系架构可描述为图1 所示。整个架构由服务提供者、服务消费者和服务注册中心三个部分组成。
其中, 服务提供者主要使用WSDL (Web Services Description Language)等语言来描述具体服务,并负责将Web 服务发布给服务注册中心,供服务消费者调用。服务注册中心则使用UDDI (Universal Description, Discovery and Integration)等机制来管理和注册可用的Web 服务描述信息,同时负责接收服务消费者的查询请求,检索到合适的候选服务后,服务注册中心建立起服务请求者和服务提供者之间的供求关系。服务消费者作为web 服务的使用者向服务注册中心提出应用请求,在服务注册中心返还其检索结果后, 通过SOAP (Simple Object Access Protocol)等方式与服务提供者进行通信, 完成最终的服务调用。
2.2. 服务发现的主要内容 从Web 服务的体系架构图可以看出, 服务发现的主要任务就是将服务消费者提出的服务查询与服务提供者发布的服务描述进行对比,从而找出最合适的服务对象。具体来说,当服务消费者提出查询请求