This is a form of client–server interaction (caller is client, executor is server), typically implemented via a request–response message passing system.
Bruce Jay Nelson is generally credited with coining the term "remote procedure call" in 1981.
[3] The idea of treating network operations as remote procedure calls goes back at least to the 1970s in early ARPANET documents.
[5] One of the earliest practical implementations was in 1982 by Brian Randell and colleagues for their Newcastle Connection between UNIX machines.
[7][8][9] Lupine automatically generated stubs, providing type-safe bindings, and used an efficient protocol for communication.
An RPC is initiated by the client, which sends a request message to a known remote server to execute a specified procedure with supplied parameters.