
调解流概述
调解流会拦截并修改在现有服务(提供者)与要使用这些服务的客户机(请求者)之间传递的消息。调解流最常用于变换数据和访问头信息,如 JMS、MQ 或 SOAP 头。
可以在 IBM® Process Server 上部署调解模块。
在面向服务的体系结构 (SOA) 中,服务表示能以特别方式复用和组合使用来创建响应式业务系统的业务功能。这些服务具有松耦合连接,而不是直接彼此连接。
通过在服务之间引入调解流,可以处理在这些服务之间传递的消息。消息是指从一个应用程序或服务发送到其他应用程序或服务的通信。调解流提供处理这些消息的逻辑。例如,调解流可用于查找请求者正在寻找的具有特定特征的服务,并且可用于解决请求者与提供者之间的接口差别。对于复杂的交互,可以按顺序将调解原语链接到一起。通常,调解包括:
- 将消息从一种格式变换成另一种格式,以便接收服务可以接受该消息
- 根据消息内容有条件地将消息路由到一个或多个目标服务
- 通过添加来自数据源的数据扩充消息
股票报价示例:构建调解流
为了说明调解流,我们将使用一个提供股票价格的简单调解流的示例。客户机应用程序向调解流提供包含股票符号和客户标识的查询,该客户机应用程序将处理此查询。然后,确定客户的订阅级别,并根据订阅级别将此查询路由到相应的服务供应商。将服务供应商返回的报价换算成客户首选货币,然后再返回给客户机应用程序。
之所以使用调解流,是因为我们希望使用来自两个外部服务提供者的接口,并将一个接口向客户机应用程序公开。我们需要快速构建服务,有能力随需应变地更改应用程序,并且无需对业务流程建模。我们还希望有能力更改服务提供者,而不中断服务。
下图显示了完整的调解:
