【发布时间】:2014-02-26 20:07:47
【问题描述】:
我们正在尝试在我的工作中实现 SOA 架构。
在某些情况下,RESTFul Web 服务需要调用其他 SOAP Web 服务。
通常我会在服务 A 中将 Web 引用添加到服务 B,但在 SOA 中提倡松散耦合。那么如何从服务 A 调用服务 B?
【问题讨论】:
标签: web-services rest soap soa
我们正在尝试在我的工作中实现 SOA 架构。
在某些情况下,RESTFul Web 服务需要调用其他 SOAP Web 服务。
通常我会在服务 A 中将 Web 引用添加到服务 B,但在 SOA 中提倡松散耦合。那么如何从服务 A 调用服务 B?
【问题讨论】:
标签: web-services rest soap soa
“正确”的方式是拥有一些服务注册中心,您可以在其中通过所需的合同查找第二个服务等。另一种“正确”的方式是拥有一些协调器(例如 ESB),它将集成两项服务等。
问题是您拥有多少服务和集成,以及开销是否值得。如果您只有几个服务,我建议您先做最简单的事情(即添加引用)并在有意义的情况下添加基础架构和复杂性 - 即管理此依赖项的开销将比添加更多基础架构的开销更重
【讨论】:
您需要查看消息翻译器企业集成模式。这本质上是一个位于两个服务之间的翻译器。
一种方法是创建一个服务,它本身就是消息翻译器,该服务将协调两个服务,即服务 A 和服务 B。人们不会直接调用其余服务,而是这个新的消息翻译器服务。该翻译服务将了解 A 和 B。因此这两个服务彼此松散耦合(A 未耦合到 B)。
另一种方法是在 ESB 上代理 REST 服务 (A),并通过消息转换器将回复发送到 SOAP 服务 (B)。
【讨论】: