Een programma op één computer in een netwerk gebruikt een Remote Procedure Call om een programma op een andere computer in het netwerk aan te vragen zonder de details van het netwerk te kennen. Het RPC-protocol is een netwerkprogrammamodel voor point-to-point communicatie binnen of tussen softwaretoepassingen. Een RPC is ook bekend als een subroutine-oproep of een functieaanroep.
Hoe RPC werkt
In RPC doet de verzendende computer een verzoek in de vorm van een procedure, functie of methodeaanroep. RPC vertaalt deze oproepen naar aanvragen en verzendt deze over het netwerk naar de beoogde bestemming. De RPC-ontvanger verwerkt de aanvraag vervolgens op basis van de procedurenaam en argumentenlijst en stuurt een antwoord naar de afzender wanneer deze is voltooid. RPC-toepassingen implementeren meestal softwaremodules die "proxies" en "stubs" worden genoemd en die de externe oproepen bemiddelen en ze voor de programmeur laten lijken op lokale procedureaanroepen.
RPC-oproeptoepassingen werken meestal synchroon, in afwachting van een resultaat op afstand. Het gebruik van lichtgewicht threads met hetzelfde adres betekent echter dat meerdere RPC's tegelijkertijd kunnen optreden. RPC gebruikt time-outlogica om netwerkfouten of andere situaties aan te pakken waarin RPC's niet terugkeren.
RPC Technologies
RPC is sinds de jaren negentig een veel gebruikte programmeertechniek in de Unix-wereld. Het RPC-protocol is geïmplementeerd in zowel de Distributed Computing Environment van Open Software Foundation als Sun Microsystems Open Network Computing-bibliotheken, die beide op grote schaal werden gebruikt. Meer recente voorbeelden van RPC-technologieën zijn Microsoft DCOM, Java RMI en XML-RPC en SOAP.