在SOA架构中SOAP和RPC这两个概念有什么区别?

在SOA架构中SOAP和RPC这两个概念有什么区别?

一、
简单来说:SOAP = HTTP+XML+RPC
对于RPC本身可以走HTTP ,TCP等不同的协议,比如淘宝的Dubbo框架,RPC是可以选择走TCP协议还是走HTTP协议的。

二、
SOAP和RPC都是SOA的具体实现方式。
SOAP是基于HTTP和XML的实现,因此会更容易做业务隔离,在系统可维护性和可扩展性上优于RPC。
而RPC是基于TCP或自定义协议的实现,性能会略好于SOAP,但是异构系统间的耦合度会更高,间接增加系统的故障率和排错难度。

三、
RPC是一种进程远程调用的方式,更强调的是异构平台之间进程通信的机制。它可以使用多种协议(包括HTTP以及其他base在TCP的自定义协议)和序列化方式(Json/xml/二进制),组件之间的耦合度比较高。服务管理的机制相对较弱
SOA是一种产品架构的理念,以服务为中心,松耦合,通过定义严谨明确的接口进行通信。有比较完善的服务管理机制。
个人感觉两者并不是一个层面上的架构,可以说RPC是SOA架构的一种实现

四、
刚刚理解这两个知识,感觉这个回答比较合理:
RPC主要还是注重技术上面的实现,SOA注重产品、资源反复、重复利用。

五、C语言如何调用restful服务
其实restful是一种编程风格,使用json+http post组合。C语言可以使用socket实现http post请求,使用http post调用restful服务。平时Java开发时会导入一个resource层的包,通过方法调用实现。实际上是restful服务把http post请求封装成了方法调用,这样更符合Java语言开发习惯。

猜你喜欢

转载自blog.csdn.net/csj50/article/details/80929561