我们正在尝试在我的工作中实现SOA架构。
我们遇到RESTFul Web服务需要调用其他SOAP Web服务的情况。
通常我会在服务A中向服务B添加Web引用,但在SOA中会传播松散耦合。那么如何从服务A呼叫服务B?
答案 0 :(得分:1)
“正确”的方式是有一些服务注册表,你可以通过你需要的合同查找第二个服务等。另一种“正确的”方式是拥有一些协调器(例如ESB)并且它将集成两项服务等。
问题是您拥有多少服务和集成,并且是值得的开销。如果您只有一些服务,我建议您首先做最简单的事情(即添加引用)并在有意义的时候添加基础架构和复杂性 - 即,通过管理此依赖项的开销将比添加更多基础架构的开销更重要
答案 1 :(得分:0)
您需要查看邮件翻译企业集成模式。这本质上是一个位于两个服务之间的翻译器。
一种方法是创建一个服务,即消息转换器本身,该服务将协调两个服务,即服务A和服务B.人们不会直接调用其余服务,而是这个新的消息转换器服务。这个翻译服务将具有A和B的知识。因此,这两个服务彼此松散耦合(A不耦合到B)。
另一种方法是在ESB上代理REST服务(A),并通过消息转换器将回复发送到SOAP服务(B)。