在分布式计算中,远程过程调用(Remote Procedure Call, RPC)是指计算机程序导致一个过程(子程序)在不同的地址空间(通常是在共享网络上的另一台计算机上)执行,其编码就像普通的(本地)过程调用一样,而程序员没有明确编码远程交互的细节。在分布式计算中,远程过程调用(Remote Procedure Call, RPC)是指计算机程序导致一个过程(子程序)在不同的地址空间(通常是在共享网络上的另一台计算机上)执行,其编码就像普通的(本地)过程调用一样,而程序员没有明确编码远程交互的细节。
也就是说,无论子程序是在执行程序的本地,还是在远程,程序员写的代码基本上都是一样的。这是一种客户-服务器交互的形式(调用者是客户,执行者是服务器),通常通过请求-响应的消息传递系统实现。在面向对象的编程范式中,RPC由远程方法调用(RMI)表示。RPC模型意味着一定程度的位置透明,即无论本地还是远程,调用程序基本相同,但通常,它们并不完全相同,所以本地调用可以与远程调用区分开来。远程调用通常比本地调用慢几个数量级,而且不那么可靠,所以区分它们很重要。
RPC是进程间通信(Inter-Process Communication, IPC)的一种形式,即不同的进程有不同的地址空间:如果在同一主机上,它们有不同的虚拟地址空间,即使物理地址空间是相同的;而如果它们在不同的主机上,物理地址空间是不同的。许多不同的(通常是不兼容的)技术被用来实现这一概念。