Un programma su un computer su una rete utilizza una chiamata di procedura remota per effettuare una richiesta di un programma su un altro computer sulla rete senza conoscere i dettagli della rete. Il protocollo RPC è un modello di programmazione di rete per la comunicazione point-to-point all'interno o tra applicazioni software. Un RPC è anche conosciuto come una chiamata subroutine o una chiamata di funzione.
Come funziona RPC
In RPC, il computer mittente effettua una richiesta sotto forma di una procedura, una funzione o una chiamata di metodo. RPC traduce queste chiamate in richieste e li invia attraverso la rete alla destinazione prevista. Il destinatario RPC elabora quindi la richiesta in base al nome della procedura e all'elenco degli argomenti e, al termine, invia una risposta al mittente. Le applicazioni RPC in genere implementano moduli software chiamati "proxy" e "stub" che mediano le chiamate remote e le fanno apparire al programmatore come le chiamate di procedura locali.
Le applicazioni di chiamata RPC di solito operano in modo sincrono, in attesa che la procedura remota restituisca un risultato. Tuttavia, l'uso di thread leggeri con lo stesso indirizzo significa che più RPC possono verificarsi simultaneamente. RPC incorpora la logica di timeout per gestire i guasti di rete o altre situazioni in cui gli RPC non ritornano.
Tecnologie RPC
RPC è stata una tecnica di programmazione comune nel mondo Unix sin dagli anni '90. Il protocollo RPC è stato implementato sia nelle librerie Open Network Computing Environment di Open Software Foundation che in quelle di Sun Microsystems Open Network, entrambe ampiamente implementate. Esempi più recenti di tecnologie RPC includono Microsoft DCOM, Java RMI e XML-RPC e SOAP.