RPC - Remote Procedure Call
RPC (Remote Procedure Call - Chamada de Procedimento Remota), é uma tecnologia de comunicação entre processos que permite a um programa de computador chamar um procedimento em outro espaço de endereçamento (geralmente em outro computador, conectado por uma rede). O programador não se preocupa com detalhes de implementação dessa interação remota: do ponto de vista do código, a chamada se assemelha a chamadas de procedimentos locais.
Permite que um programa procedural, ou seja, que apresente os procedimentos (passo-a-passo) chame uma função que reside em outro computador tão convenientemente como essa função fosse parte do mesmo programa que executa no mesmo computador.
O objetivo do RPC foi permitir aos programadores se concentrar nas tarefas exigidas de um aplicativo, e ao mesmo tempo, tornando transparente para o programador o mecanismo que permite que as partes do aplicativo se comuniquem através de uma rede.
A maior vantagem do RPC é a chamada de métodos em outras linguagens, pois ele não é focado em uma linguagem específica, o que resulta em uma maior flexibilidade, já no caso do RMI (Remote Method Invocation - Chamada de Método Remota) um objeto em uma máquina virtual Java pode se conectar facilmente com outras máquinas virtuais Java usando métodos nativos da linguagem, que porém é uma poderosa linguagem orientada a objetos e tem toda sua funcionalidade inserida na linguagem de maneira que fique transparente ao programador.