RPC和Web服务是否有明确的定义?在维基百科上快速搜索一下会显示:
远程过程调用(RPC):远程过程调用(
)是一种进程间通信技术,它允许计算机程序在另一个地址空间(通常在共享网络上的另一台计算机上)执行子例程或过程,而无需程序员显式编码此远程交互的细节。
Web服务: Web服务通常是应用程序编程接口(API)或web,它们通过超文本传输协议访问并在托管所请求服务的远程系统上执行。网络服务倾向于归入两个阵营之一:大型网络服务和RESTful网络服务。
我不太清楚这两件事之间的真正区别是什么。似乎有一样东西既可以属于RPC,又可以是一种web服务。
Web服务是RPC的更高级别的表示吗?
发布于 2010-06-12 22:02:07
是Web Service的高级表示吗?
是的,是这样的。web服务是RPC的特定实现。在最低级别,Web服务使用HTTP协议连接到套接字,以协商发送在远程空间(远程空间可以是同一台计算机)中执行的有效负载。所有这些远程调用抽象在其核心都是RPC。
发布于 2019-02-18 19:28:38
我看到了这个问题。这个问题很久以前就被提出了,但我认为这个社区中的任何人的答案,给出更多关于这个主题的信息和清晰度,将对未来的提问者有所帮助。因此,我想添加我的增强,指出关键的区别,我希望这将对未来的读者有所帮助。
------------------------------------------------------------------------------
| 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
------------------------------------------------------------------------------
我没有提到对RPC和Web服务的描述,因为您可以在别人的回答中清楚地看到它们。
发布于 2014-09-15 15:27:12
远程过程调用(RPC)和WebService在功能上是并行的。但它们的调用方式有一个细微的差异。Web服务可以由任何应用程序调用,使用HTTP协议上的XML格式进行处理,并且其本质上是可互操作的,而在RPC的情况下,该函数可以由多个应用程序调用,因此它遵循序列化的路径来存储对象数据。它支持TCP协议上的二进制格式。在一种更好的方法中,我们可以简要介绍RPC工作流程,就像我们通过适当的套接字和适当的消息格式执行函数,但不知道客户端server.Even中特定函数的实际存在提供的套接字可能不在函数所在的同一服务器中。但每次它都给人一种函数位于局部的感觉。在远程服务中,函数驻留在远程机器上,可以通过适当的格式和协议调用,并且具有可扩展性。
https://stackoverflow.com/questions/3028899
复制相似问题