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

RPC和Web Service有没有明确的定义? 快速的维基百科搜索显示:

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

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

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

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


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

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


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


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

具体来说,WSDL提供了许多关键信息:

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

链接地址: http://www.djcxy.com/p/60425.html

上一篇: What is the difference between remote procedure call and web service

下一篇: Render loop vs. explicitely calling update method