大规模 Web 服务搜索:从发现到优化
1. 引言
如今,网络正从数据网络向服务网络转变。Web 服务技术使各种功能得以灵活暴露和使用,可集成到传统软件系统和网页中,为业务逻辑的互操作性提供了新基础。大多数 Web 服务通过 WSDL 或 RESTful 方法发布。
早期,UDDI 被提出用于发布和搜索服务,但未在公开可用的 Web 服务领域广泛应用。如今,Web 服务常注册在特定门户(如 XMethods 或 ProgrammableWeb)或直接放在网络上,并配有描述服务功能的网页。目前搜索服务主要有两种方式:通过特定门户的搜索功能或使用标准搜索引擎和关键词搜索,但这些方法存在数据过时或缺失等问题。
本文介绍的方法可发现公开可用的 WSDL 和 RESTful Web 服务,通过聚焦网络爬虫、识别相关文档并聚合信息进行轻量级服务注释。使用该方法收集到了大量(截至 2009 年 6 月,约 8000 个提供商的 28000 多个服务)WSDL Web 服务。
2. 网络服务爬虫策略
搜索引擎的成功依赖于高效的爬虫解决方案。爬虫利用网页间的超链接,从初始页面(种子)开始发现更多 URL。未访问的 URL 构成爬虫的前沿,分布在多个队列中。爬虫的范围和优先级分配是构建聚焦爬虫的关键。本文的 Web 服务爬虫基于开源爬虫 Heritrix,聚焦于 WSDL 文件、相关文档和描述 Web API 的网页。
2.1 WSDL 爬虫策略
- 种子选择 :种子 URL 对爬虫成功至关重要,通过半自动过程收集,包括筛选知名网站和选择先前爬虫的 URL。