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

问题描述 投票:74回答:4

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

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

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

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

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

web-services rpc
4个回答
54
投票

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

是的。 Web服务是RPC的特定实现。在最低级别,Web Service使用HTTP协议连接到Socket,以协商发送在远程空间中执行的有效负载(远程空间可以是同一台计算机)。所有这些远程调用抽象,其核心是RPC。


5
投票

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


1
投票

•格式化数据以便使用XML进行传输,改进或消除编组,解组以及通常由开发人员编码的各种其他与翻译相关的要求。 •使用标准化协议(如HTTP或SMTP)传递数据,这些协议已发布定义明确的标准。 •使用已知的已接受机制WSDL定义了底层公开服务。 •使用定义明确的标准UDDI和更高级的ebXML找到服务。

特别是WSDL提供了许多关键信息:

•使用其和元素以及适当的模式定义在两个端点之间传递的消息格式的定义。 •服务的语义:如何调用它来进行同步请求/回复,同步回复或异步通信。 •通过元素的服务的终点和传输:即,谁提供服务。 •通过元素进行编码,即访问服务的方式。


1
投票

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

------------------------------------------------------------------------------
| 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 (Marshilling)   | Fast
------------------------------------------------------------------------------

我没有提到RPC和Web服务的描述,因为你可以清楚地看到其他人的回答。

© www.soinside.com 2019 - 2024. All rights reserved.