Remote procedure call (RPC) is a technology that allows a computer
program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding
the details for this remote interaction. That is, the programmer would write essentially the same code whether the subroutine is
local to the executing program, or remote. When the software in question is written using object-oriented principles, RPC may be referred to as remote invocation or remote
method invocation.
Note that there are many different technologies commonly used to accomplish this which are often incompatible, such as
ONC RPC and DCE/RPC.
History and origins
The idea of RPC goes back at least as far as 1976, when it was described in RFC 707. One of the first business uses of RPC was
by Xerox under the name "Courier" in 1981. The first popular implementation of RPC on
Unix was Sun's RPC (now called ONC
RPC), used as the basis for Sun's NFS. ONC RPC is still widely
used today on several platforms.
Another early Unix implementation was Apollo Computer's Network Computing System
(NCS). NCS later was used as the foundation of DCE/RPC in the OSF's Distributed Computing
Environment (DCE). A decade later Microsoft adopted DCE/RPC as the basis of their
Microsoft RPC (MSRPC) mechanism, and implemented DCOM atop it. Around the same time (mid-90's), Xerox
PARC's ILU, and the Object Management Group's CORBA, offered another RPC paradigm based on distributed objects with an
inheritance mechanism.
Message passing
RPC is an easy and popular paradigm for implementing the client-server model of distributed computing. An RPC is
initiated by the client sending a request message to a known remote server in order to execute a specified
procedure using supplied parameters. A response is returned to the client where the application continues along with its process.
There are many variations and subtleties in various implementations, resulting in a variety of different (incompatible) RPC
protocols. While the server is processing the call, the client is blocked.
Standard contact mechanisms
In order to allow servers to be accessed by differing clients, a number of standardized RPC systems have been created. Most of
these use an interface description language (IDL) to allow various
platforms to call the RPC.
The IDL files can then be used to generate code to interface between the client and server. The most common tool used for this
is RPCGEN.
Other RPC analogues
RPC analogues found elsewhere
Web services RPC
- Further information: Web service#Styles_of_use
References
- RFC 1057 - Specifies version 1 of ONC RPC
- RFC 1831 - Specifies version 2 of ONC RPC
- Remote Procedure Calls (RPC) A
tutorial on ONC RPC by Dr Dave Marshall of Cardiff University
See also
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)