什么是远程过程调用?
远程过程调用 (RPC) 是一种用于访问网络服务中程序的调用类型。
当一个计算机程序需要访问或执行另一个服务网络上的程序时,而不是直接从该网络发送和接收数据,调用会被服务器本身接管,服务器会接收到这个调用并在该网络服务中访问该程序,而无需任何远程位置的程序员的帮助。这有助于使本地过程调用能够从任何远程位置被服务器接管。
当需要进行远程调用时,调用环境会暂停。所有过程都需要传输到另一个网络,以便在该网络中执行调用。
当调用在另一个网络环境中执行后,调用会连同所有过程一起返回到调用环境,在那里执行恢复其常规过程调用。
RPC 的主要用途或目标是隐藏网络的存在。接管调用的过程将隐藏所有用户信息。它省略所有协议以提高性能。
此 RPC 最适合客户端-服务器交互。客户端-服务器不能同时执行程序。
RPC 期间的步骤
在 RPC 期间需要执行以下步骤:
客户端调用位于客户端自身地址空间中的“客户端存根”。
此存根根据客户端的网络服务将消息转换为标准格式。
然后它将消息传输到远程网络服务。
另一方面,服务器调用“服务器存根”,服务器存根根据其标准格式解码传输的消息并接管常规过程调用。
一旦根据其过程执行了调用,调用就会返回到服务器存根,并且服务器存根将消息传输到传输层。
然后传输层将消息发送回客户端服务器存根。
然后客户端服务器存根将消息解码成其标准形式,并且调用完成。
远程过程调用 (RPC) 的示意图如下所示:
伪代码/步骤
RPC 的伪代码/步骤如下:
客户端调用客户端存根。
存根生成系统调用以转发消息,并将参数添加到消息中。
通过客户端操作系统将消息从客户端转发到服务器。
在操作系统的帮助下,消息进一步传递到服务器存根。
消息参数被移除。
服务器存根调用服务器过程。
广告