Remote procedure calls (PRC)

A Remote Procedure Call (RPC) is a protocol that allows a program to execute a procedure (function) on a different address space, typically on another computer over a network, as if it were a local function call. This offers

  • Transparency: The programmer calls a function like normal, but behind the scenes, that call is sent to another machine or process.
  • Abstraction: The network communication, serialization, and deserialization are abstracted away from the programmer.
  • Bidirectional: RPC can be synchronous (waiting for a response) or asynchronous (fire-and-forget).
  • Client-server model: The caller is the client, and the callee (who implements the procedure) is the server.