Web服务发现与传统的信息检索有很多相似之处,但前者具有更高的复杂性和实现技术的不成熟性,将有更广阔的应用领域。目前web服务发现技术的结构有以下几种:

Ø 直接搜索

形式最简单的服务发现是向服务提供者索要服务描述的副本。服务提供者接收到请求后,只要把服务描述作为附件用电子邮件发送给服务请求者,或者将其放在可传递介质(例如磁盘)上提供给服务请求者。这类服务发现虽然简单,但其效率却不很高,因为它需要先知道Web服务以及服务提供者的联系信息。服务请求者可以从以下几个方式得到服务描述:

1. 本地文件

2. FTP站点

3. Web站点

Ø 集中式架构搜索

集中式架构提供一个中心目录,服务提供者在其中注册服务,发布服务公告及引用。典型的架构是UDDI。UDDI作为Web服务体系中的元服务(Meta Service),为Web服务体系提供基本的商业Web服务的注册和发现机制。UDDI规范利用了W3C和IETF的很多标准作为实现基础,比如扩展标注语言(XML)、HTTP等。另外,在跨平台的设计特性中,UDDI采用了SOAP规范,也就是说UDDI相对其他Web服务技术有其独特性,UDDI是一种服务,这种服务的具体实施形式就是Web服务。一般我们称这种提供Web服务注册发现服务的Web服务为UDDI Registry。

目前公共的UDDI注册库,Microsoft、IBM、SAP和NTT分别提供了一个兼容2.0规范的UDDI注册库,它们之间每天进行数据同步。在各大公司的开发平台上(诸如.NET、WebSphere等)都提供了供开发用的UDDI注册库开发使用。JUDDI(Judy)是UDDI注册库的一个开放源代码实现,底层使用Oracle存储注册数据,而UDDI4J则是UDDI客户端的开放源代码实现,用于在J2EE平台中访问UDDI注册库。一般而言,我们可以通过UDDI客户端查询UDDI注册库,发现我们需要的Web服务及其描述WSDL文档,然后我们就可以通过SOAP来访问这些Web服务了。UDDI虽然提供了较高级的功能,但是服务提供者必须是在UDDI注册中心注册了,我们才能检索到该服务。这样就大大减小了我们的搜索范围,减低了搜索效率。

Ø 分布式架构搜索

分布式服务发现方法,提供对服务提供者提供点处的服务描述的引用。通过指定检查Web站点获得可用Web服务的方法,Web服务检查语言提供了这种分布式发现方法。

WS-Inspection提供此类分布式方法的方式,是通过指定如何探察Web服务提供站点来获得可用的Web服务技术信息。WS-Inspection规范定义了如何在Web服务提供站点上查找Web服务技术描述的位置。

WS-Inspection依赖全分布式模型提供与服务相关的信息,可以把服务描述存在任何位置,通常情况下直接想提供该服务的实体提出检索信息的请求。WS-Inspection文档是非常轻量级的,易于构造,易于维护。WS-Inspection机制通过提供利用现有的协议,直接从服务提供点传播服务的相关信息的能力,从而实现对当个目标执行有重点的发现。但是,由于其分散性本质,如果通信伙伴未知的话,WS-Inspection规范无法提供良好的机制执行有重点的发现。

这些搜索方式之间并不时相互独立的,相反,他们之间的关系是互补的。施友松针对基于UDDI服务发现机制中的缺陷,提出了对服务发现操作的改进策略 。张超等将Web服务的发现问题转换为基于语义的推理过程,利用知识管理领域的成果有效的发现web服务,实现了web服务发现、执行和组合过程的自动化。丁长明等通过改进Chord的环状结构并且结合了本体而实现了一个P2P的Web服务发现结构。其结构设计的主要特点是将服务节点基于服务概念本体分类,使得在Web服务的发现中可以根据服务的语义查询相应的Web服务。从而减轻了整个网络的负担,提高了服务发现的效率 。

与一般的Web服务相比,网络地图服务是Web Service在GIS专业领域的应用。OGC WMS规范定义了网络地图服务必须实现的操作以及这些操作的一系列参数。这样就不存在了困扰一般Web服务发现中的语法的问题。从而,使网络地图服自动化的搜索成为可能。