What is a Remote Procedure Call (RPC)?
Remote Procedure Call (RPC) is a distributed computing technique in which a computer program calls a procedure (subroutine or service) to execute in a different address space than its own. The procedure may be on the same system or a different system connected on a network.
The idea behind RPC is that a computer program can call and execute a subroutine on a remote system just like it would call a local subroutine, but the network communication details are hidden from the user.
Client-server model
RPC is a request–response protocol, i.e., it follows the client-server model:
The client makes a request to execute a procedure on the remote server. Like a synchronous local call, the client is suspended until the procedure results are back. The procedure’s parameters are passed over the network to the server-side. The procedure executes on the server and, finally, the results are transferred back to the client.
Advantages
- RPC can be used in distributed environments and local environments.
- RPC is implemented in nearly all popular programming languages including Java, Python, and Go.
- RPC provides an abstraction – the user doesn’t need to know the details of how the RPC interaction was handled over the network.
- RPC supports process-oriented and thread-oriented models.
Free Resources