什么是远程过程调用?


远程过程调用 (RPC) 是一种用于访问网络服务中程序的调用类型。

当一个计算机程序需要访问或执行另一个服务网络上的程序时,而不是直接从该网络发送和接收数据,调用会被服务器本身接管,服务器会接收到这个调用并在该网络服务中访问该程序,而无需任何远程位置的程序员的帮助。这有助于使本地过程调用能够从任何远程位置被服务器接管。

当需要进行远程调用时,调用环境会暂停。所有过程都需要传输到另一个网络,以便在该网络中执行调用。

当调用在另一个网络环境中执行后,调用会连同所有过程一起返回到调用环境,在那里执行恢复其常规过程调用。

RPC 的主要用途或目标是隐藏网络的存在。接管调用的过程将隐藏所有用户信息。它省略所有协议以提高性能。

此 RPC 最适合客户端-服务器交互。客户端-服务器不能同时执行程序。

RPC 期间的步骤

在 RPC 期间需要执行以下步骤:

  • 客户端调用位于客户端自身地址空间中的“客户端存根”。

  • 此存根根据客户端的网络服务将消息转换为标准格式。

  • 然后它将消息传输到远程网络服务。

  • 另一方面,服务器调用“服务器存根”,服务器存根根据其标准格式解码传输的消息并接管常规过程调用。

  • 一旦根据其过程执行了调用,调用就会返回到服务器存根,并且服务器存根将消息传输到传输层。

  • 然后传输层将消息发送回客户端服务器存根。

  • 然后客户端服务器存根将消息解码成其标准形式,并且调用完成。

远程过程调用 (RPC) 的示意图如下所示:

伪代码/步骤

RPC 的伪代码/步骤如下:

  • 客户端调用客户端存根。

  • 存根生成系统调用以转发消息,并将参数添加到消息中。

  • 通过客户端操作系统将消息从客户端转发到服务器。

  • 在操作系统的帮助下,消息进一步传递到服务器存根。

  • 消息参数被移除。

  • 服务器存根调用服务器过程。

更新于: 2021年9月13日

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告