Simply put, remote procedure call (RPC) services provide a standardized interface for making function or method calls over a network.
Virtually every aspect of Web programming contains RPCs. HTTP requests made by Web browsers to Web servers are RPC-like, as are queries sent to database servers by database clients. Although both of these examples are remote calls, they are not really RPC protocols. They lack the generalization and standardization of RPC calls; for example, the protocols used by the Web server and the database server cannot be shared, even though they are made over the same network-level protocol.
To be useful, an RPC protocol should exhibit the following qualities: