Web services 让REST与SOAP通信

Web services 让REST与SOAP通信,web-services,rest,soap,Web Services,Rest,Soap,我有两个系统,一个(我们称之为S1)公开RESTful API(我们称之为WS1),另一个(我们称之为S2)公开SOAP API(我们称之为WS2) 我正试图找到一种从S1获取数据并将其添加到S2的方法。 WS1公开了添加/获取数据(到S1/从S1)的方法,而WS2只有添加数据(到S2)的方法 这两个web服务是否可以直接在彼此之间通信,或者是否应该在两者之间存在某种机制。我的猜测是“应该有人管理他们的讨论。”客户在哪里? 您有一个REST服务器和一个SOAP服务器,这两个服务器的目标都是等待来

我有两个系统,一个(我们称之为S1)公开RESTful API(我们称之为WS1),另一个(我们称之为S2)公开SOAP API(我们称之为WS2)

我正试图找到一种从S1获取数据并将其添加到S2的方法。 WS1公开了添加/获取数据(到S1/从S1)的方法,而WS2只有添加数据(到S2)的方法

这两个web服务是否可以直接在彼此之间通信,或者是否应该在两者之间存在某种机制。我的猜测是“应该有人管理他们的讨论。”

客户在哪里? 您有一个
REST服务器
和一个
SOAP服务器
,这两个服务器的目标都是等待来自各自客户机的请求——不管它们执行的操作是否读取和/或写入数据集,客户机仍然需要启动通信

弥合差距。 因此,您需要一个桥接客户端来请求从REST服务器读取某些内容,并请求将某些内容写入SOAP服务器。桥梁的其余基础设施由您决定

您可以编写一个轻量级脚本,用于提取RESTful数据并为少数特定RESTful资源推送SOAP消息,也可以编写一个通用REST2SOAP桥,它可以根据转换约定将RESTful资源映射到SOAP消息端点

直接队列与消息队列。 编写抽象桥客户机将允许您通过直接调用REST服务、接收数据、处理数据、直接调用SOAP服务并向其发送数据来运行它。如果这是一个低负荷的情况,那很好

如果我们有高负载的数据来处理,那么同步处理是不可行的,所以我们引入了消息队列

制作人:
  • 从REST服务读取数据
  • (可能)将其处理为本地形式(桥接客户端理解,如数组和对象)
  • 然后将其序列化(序列化、json_编码等)
  • 将其置于消息队列中
消费者
  • 听消息队列
  • 当它接收到新消息时,它将其反序列化
  • 处理它
  • 将其发送到SOAP服务
消息队列的总体优势在于,您可以根据需要启动尽可能多的生产者或消费者,具体取决于哪些服务运行较慢。

很好的解释:)这基本上总结了我过去几天的发现。我将使用Rabbitmq以异步方式尝试上面描述的方法。让我们看看情况:D