Saltar al contenido

Vad är en RPC (Remote Procedure Call)

5 de julio de 2021
GettyImages 534785511 57d6f6c15f9b589b0a2955b1

Ett program på en dator i ett nätverk använder ett Remote Procedure Call för att begära ett program på en annan dator i nätverket utan att känna till nätverkets detaljer. RPC-protokollet är en nätverksprogrammeringsmodell för punkt-till-punkt-kommunikation inom eller mellan programapplikationer. En RPC är också känd som ett subrutinanrop eller ett funktionsanrop.

Hur RPC fungerar

I RPC gör den sändande datorn en begäran i form av ett procedur-, funktions- eller metodanrop. RPC översätter dessa samtal till förfrågningar och skickar dem över nätverket till den avsedda destinationen. RPC-mottagaren behandlar sedan begäran baserat på procedurnamnet och argumentlistan och skickar ett svar till avsändaren när den är klar. RPC-applikationer implementerar vanligtvis mjukvarumoduler som kallas «proxies» och «stubs» som förmedlar fjärrsamtal och får dem att se ut för programmeraren som samma som lokala proceduranrop. RPC-anropsprogram fungerar vanligtvis synkront och väntar på att fjärrproceduren ska returnera ett resultat. Användningen av lätta trådar med samma adress innebär dock att flera RPC kan förekomma samtidigt. RPC innehåller timeout-logik för att hantera nätverksfel eller andra situationer där RPC inte återkommer.

RPC Technologies

RPC har varit en vanlig programmeringsteknik i Unix-världen sedan 1990-talet. RPC-protokollet implementerades i både Open Software Foundations distribuerade datormiljö och Sun Microsystems Open Network Computing-bibliotek, som båda distribuerades i stor utsträckning. Nyare exempel på RPC-tekniker inkluderar Microsoft DCOM, Java RMI och XML-RPC och SOAP.