远程过程调用和Web服务之间有什么区别

xia*_*o 啸 75 rpc web-services

是否有任何明确的RPC和Web服务定义?快速维基百科搜索显示:

RPC:远程过程调用(RPC)是一种进程间通信技术,它允许计算机程序使子例程或过程在另一个地址空间(通常在共享网络上的另一台计算机上)上执行,而无需程序员明确编写详细信息这种远程互动.

Web服务:Web服务通常是应用程序编程接口(API)或Web API,可通过超文本传输​​协议访问,并在托管所请求服务的远程系统上执行.Web服务往往属于两大阵营之一:Big Web Services [1]和RESTful Web Services.

我不太清楚这两件事之间的真正区别.似乎有一件事可能属于RPC,同时也是一种Web服务.

Web Service是RPC的更高级别表示吗?

Way*_*man 55

Web Service是RPC的更高级别表示吗?

是的.Web服务是RPC的特定实现.在最低级别,所有Web服务都连接到套接字,使用HTTP协议协商发送在远程空间中执行的有效负载(它甚至可以在同一台计算机上,供所有消费者知道).所有这些抽象都是其核心RPC.

  • 不,这不正确.RPC是Web服务的架构风格.另一种选择是REST.参考:http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?numumber = 5339611 (5认同)

小智 9

我看到这个问题。这个问题很久以前就有人问过了,但我认为这个社区中任何人的答案,提供关于这个主题的更多信息和清晰度,将对未来的提问者有所帮助。所以,我想添加我的增强功能,指出关键差异,我希望这对未来的读者有所帮助。

------------------------------------------------------------------------------
| Category             |    RPC              |    Web Services
------------------------------------------------------------------------------
|Operation's Location  | On top of TCP       | on top of HTTP Protocol
------------------------------------------------------------------------------
|Data format           | Binary              | Text, XML, JSON, ect.
------------------------------------------------------------------------------
|Speed                 | Slow (Marshalling)  | Fast
------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

RPC 和 Web Services 的描述我没有提到,因为你在别人的回答里看的很清楚。


小智 5

远程过程调用(RPC)和WebService,就功能而言都是平行的.但是他们的调用方式存在细微差别.任何应用程序都可以调用Web服务,使用基于HTTP协议的XML格式进行程序及其可互操作性,而在RPC的情况下,该函数可以由多个应用程序调用,因此它遵循序列化的路径来存储对象数据.它支持TCP协议上的二进制格式.在更好的方法中,我们可以简要介绍RPC工作流,就像我们通过正确的Socket和正确的消息格式执行函数一样,但是不知道客户端服务器中特定函数的实际存在.即使提供的套接字可能不在功能所在的同一服务器.但每次它给人的感觉就像功能位于本地.在远程服务中,函数驻留在远程计算机中,它可以通过适当的格式和协议调用,并且它允许可伸缩性.