Remote Procedure Call (RPC) systems let you call a remote function using the same syntax that you would use when calling a routine in a local API or library. This tends to be useful in two situations:
Your program has a lot of work to do, and you want to spread it across several machines by making calls across the network.
You need data or information that is only available on another hard drive or network, and an RPC interface lets you easily send queries to another system to get back an answer.
The first remote procedure systems tended to be written for low-level languages like C, and therefore placed bytes on the network that looked very much like the bytes already being written on to the processor stack every time one C function ...