简介
远程过程调用(Remote Procedure Call, RPC),是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间的子程序,且不需要考虑交互作用的细节。
RPC是一种服务器,客户端模式,是一个通过发送请求-接收回应而进行信息交互的系统。
如果采用面向对象编程,那么远程过程调用也可以称作远程调用或远程方法调用。
RPC是一种进程间通信模式,程序分布在不同的地址空间中,RPC可以通过不同的虚拟地址空间进行通讯,而在不同的主机间,通过不同的物理地址进行交互。
远程过程调用是进程间通信(IPC)中的一个技术。进程间通信的主要目的是使不同的进程可以互相访问资源,协调工作。这些进程可以运行在同一计算机或网络连接不同的计算机上。除了远程过程调用,进程间通信技术还包括消息传递,同步,共享内存等。
基本流程
远程过程调用作为一种通信技术,广泛应用于分布式系统中。在分布式系统中,一个进程请求消息对远程计算机的进程进行调用。然后在远程服务器上执行这个过程。这个过程完成以后,返回一个结果消息到发起请求的进程。
在调用过程中,调用环境挂起。参数通过网络传递到被调用的环境,在被调用的环境中执行过程,执行完毕后将结果返回给调用者。
在实现过程中引入Stub结构(不要求对调用的程序和语言进行改变)。
远程调用的特点
- 进程间的关系是主从关系
- 传送参数的组装,组成消息的工作靠系统完成
- 是一个同步操作,在远程过程结果返回之前,都需要暂时中止请求程序。