基于 ESB 的 Web 服务绑定与网关实现
1. 角色与交互机制
在系统交互中,存在消费者(consumer)和提供者(provider)两种角色。消费者角色意味着组件是 NMR(可能是某种消息路由机制)的消费者,而提供者角色则表示 NMR 是组件的消费者。基于这些角色,NMR 负责交互组件间的格式或协议转换。
为了更清晰地说明消费者和提供者的角色,引入客户端(client)和服务(service)这两个概念。在传统编程范式中,客户端直接与服务器(或服务)交互以获取功能。但在 ESB(企业服务总线)模型中,客户端和服务仅通过 ESB 进行交互。因此,客户端和服务需要分配各自角色的对等体(peer),这些对等体再相互交互。所以,ESB 的消费者和提供者角色可分别视为客户端和服务的对等角色。
客户端请求会委托给消费者对等体,由其与 NMR 交互。这是因为客户端不了解 ESB 和 NMR 的协议或格式,而 servicemix - http 消费者知道如何与 NMR 交互,所以客户端的任何请求都会由 servicemix - http 消费者进行转换并传递给 NMR。在服务端,NMR 需要调用服务,但服务器服务对特定供应商的 NMR 是中立的,不理解 NMR 语言,这时提供者对等体就发挥作用了。提供者从 NMR 接收请求,将其转换为服务器服务的实际格式或协议并调用服务。响应也会按相反顺序处理。
2. servicemix - http 的 XBean 配置
servicemix - http 组件支持基于 XBean 的部署。由于它可以配置为消费者和提供者两种角色,因此有两组配置参数。