远程过程调用 (RPC)
远程过程调用是一种用于进程间通信的技术,用于基于客户端-服务器的应用程序。它也称为子程序调用或函数调用。
客户端有一个请求消息,RPC 将其翻译并发送到服务器。此请求可能是对远程服务器的过程或函数调用。当服务器收到请求时,它会将所需的响应发送回客户端。在服务器处理调用期间,客户端处于阻塞状态,只有在服务器完成处理后才会恢复执行。
远程过程调用的事件序列如下所示:
- 客户端调用客户端存根。
- 客户端存根进行系统调用以将消息发送到服务器,并将参数放入消息中。
- 客户端的操作系统将消息从客户端发送到服务器。
- 服务器操作系统将消息传递给服务器存根。
- 服务器存根从消息中删除参数。
- 然后,服务器存根调用服务器过程。
演示此过程的图表如下:
远程过程调用的优点
RPC 的一些优点如下:
- 远程过程调用支持面向过程和面向线程的模型。
- RPC 的内部消息传递机制对用户隐藏。
- 在远程过程调用中,重写和重新开发代码的工作量最少。
- 远程过程调用既可以用于分布式环境,也可以用于本地环境。
- RPC 省略了许多协议层以提高性能。
远程过程调用的缺点
RPC 的一些缺点如下:
- 远程过程调用是一个可以以不同方式实现的概念。它不是标准。
- RPC 在硬件架构方面没有灵活性。它只是基于交互的。
- 由于远程过程调用,成本有所增加。
广告