公共 Web 服务的收集、注释和分类
1. 传统 SOA 运营模型的问题
随着现代软件系统复杂度的增加,分布式计算在银行、医学、地球科学等多个应用领域成为典型方法。互联网技术的广泛快速传播催生了面向服务的架构(SOA)等新软件范式。
SOA 的基本原理体现在三角形的 SOA 运营模型中,该模型包含服务提供者、服务消费者和服务注册中心三个角色。理论上,服务提供者将服务注册到一个或多个服务注册中心,服务消费者通过这些注册中心查找满足需求的服务,之后直接与服务提供者绑定调用所需服务。此运营模型旨在实现 SOA 的高互操作性、灵活性、可扩展性、容错性等主要特性。
然而,要实现这些目标,服务消费者需要对服务有足够了解,而这些知识大多来自服务提供者在注册服务时提供的服务描述。但实际上,服务描述通常很匮乏,因为服务提供者更关注服务的实现方面,而非提供丰富的描述。服务注册中心无法强制服务提供者更新其注册 Web 服务的描述,这导致服务注册中心的角色被动且有限。在实践中,由于这些限制,服务注册中心的角色常被忽视。例如,一个生产 UDDI 注册中心中有 48%的链接不可用。移除服务注册中心的角色会违反 SOA 的松耦合和动态绑定基本原则。
服务提供者提供公共 Web 服务时,常通过网站提供服务列表及文本描述,还会提供在线试用选项,包含收集用户输入参数的网页表单。这些网页上的很多信息未在对应的 WSDL 描述中提供,是服务描述的丰富来源。例如,亚马逊的 Amazon RDS 在其 HTML 页面有详细描述,但 WSDL 文件中却未包含部分重要信息。
2. 相关工作
- 恢复服务注册中心角色的方法