Remote Procedure Call
远程过程调用(RPC) 是一个协议,程序能使用这个协议请求来自网络的另外一部计算机的程序的服务,而不用了解网络细节。(一个过程调用也有时被称为函数调用或子程序调用)。 RPC 使用客户/服务器模型。 发出请求的程序是客户,而提供服务的程序是服务器。 和常规的或者本地过程调用一样, RPC 是同步的操作,需要暂停发出请求的程序,直到远程过程结果被送回。 然而, 使用相同地址空间的低权进程或低权线程的使用允许多个 RPCs 同时运行。 当使用 RPC的程序声明被编译进入一个可执行程序,担任遥远的程序密码的代表,一个存根被包含在担当远程过程代码的代表的被编译的代码之中。 当程序在运行而且过程调用被发布的时候,存根接受请求并转寄到本地计算机的一个客户运行时间程序。 客户运行时间程序拥有如何记录远程计算机和服务器应用软件的地址的知识,并可在请求远程过程的网络间发送消息。 同样地,服务器包括一个同远程过程本身连接的一个运行时间程序和存根。 结果被一样送回。 有一些 RPC 模型和执行。 一个流行的模型和执行是开放软件基金会的分布式计算环境 (DCE) 。 1991 年十一月,电气的和电子工程师协会在它的ISO远程过程调用规范, ISO/IEC CD 11578 N6561 ,ISO/IEC 中定义了RPC . RPC 跨越了网络通信的开放式系统相连(OSI)模型的传送层和应用层。RPC 使开发一个包括分布在网络中的多重程序的应用软件变得比较容易。 客户/ 服务器通信的其他可选择的方法包括消息排队和 IBM 的高级程序对程序通信 (APPC).