RPC—Remote Procedure Call

The RPC protocol facilitates communication between networked computers

A program on one computer on a network uses a Remote Procedure Call to make a request of a program on another computer on the network without knowing the network's details. The RPC protocol is a network programming model for point-to-point communication within or between software applications. An RPC is also known as a subroutine call or a function call. 

How RPC Works

In RPC, the sending computer makes a request in the form of a procedure, function, or method call.

RPC translates these calls into requests and sends them over the network to the intended destination. The RPC recipient then processes the request based on the procedure name and argument list, and sends a response to the sender when complete. RPC applications typically implement software modules called "proxies" and "stubs" that broker the remote calls and make them appear to the programmer to be the same as local procedure calls.

RPC calling applications usually operate synchronously, waiting for the remote procedure to return a result. However, the use of lightweight threads with the same address means that multiple RPCs can occur simultaneously. RPC incorporates timeout logic to handle network failures or other situations in which RPCs do not return.

RPC Technologies

RPC has been a common programming technique in the Unix world since the 1990s. The RPC protocol was implemented in both the Open Software Foundation's Distributed Computing Environment and Sun Microsystems Open Network Computing libraries, both of which were widely deployed.

More recent examples of RPC technologies include Microsoft DCOM, Java RMI, and XML-RPC and SOAP.