Site home page
Get alerts when Linktionary is updated
Book updates and addendums
Get info about the Encyclopedia of Networking and Telecommunicatons, 3rd edition (2001)
Download the electronic version of the Encyclopedia of Networking, 2nd edition (1996). It's free!
Contribute to this site
Electronic licensing info
RPC (Remote Procedure Call)
Note: Many topics at this site are reduced versions of the text in "The Encyclopedia of Networking and Telecommunications." Search results will not be as extensive as a search of the book's CD-ROM.
A procedure is a software routine that runs in a computer. A procedure call is a request by one procedure to another procedure for some service. This is relatively easy when both procedures are running in the same computer. A remote procedure call is a request made by a process in one computer to another computer across a network. RPCs are a form of middleware. Other forms of middleware are discussed under "Middleware and Messaging."
Client/server applications use RPCs as shown in the following illustration. If you think of a client/server application as a program that has been split, a server can run the data access portion because it is closest to the data, and the client can run the portion that presents the data to the user and interacts with the user. In this arrangement, the RPC can be viewed as the component that reintegrates the split portions of the program over the network. RPCs are sometimes called coupling mechanisms. See"Client/Server Computing"
Illustration (see book)
The stub portion of the program allows the procedure call to operate remotely. It translates a call into a remote request and sends it over the network. It also receives remote responses and makes them appear to applications as if they were local responses.
RPCs tend to operate in real time because the calling program usually waits until it receives a response from the called program. In this respect, RPCs are synchronous. RPCs are required in applications in which a procedure should not continue until it receives the information it needs from the remote system. In contrast, MOM (message-oriented middleware) is an asynchronous interprocess communication scheme that uses store-and-forward messaging concepts.
Historically, RPC techniques were investigated as early as 1976 by B. J. Nelson at XEROX PARC. Sun Microsystems popularized the technique with its SunSoft's ONC (Open Network Computing) remote procedure calls (SunRPCs). Millions of systems running NFS (Network File System) use the ONC RPC libraries. The IETF documented the technique in 1988 with the publication of RFC 1057 (RFC 1831, listed next, is more recent). Following is a list of relevant RFCs.
Alternatives to RPCs are discussed under "Middleware and Messaging" and "Distributed Object Computing." For example, CORBA (Common Object Request Broker Architecture) operates over an ORB (object request broker) architecture that provides better support for a variety of applications, programming languages, and computing platforms. CORBA and other technologies also support messaging, which operates in a more "relaxed" mode than the request-and-wait mode of RPC.
Java is an example of distributed object computing technology. Java applications are capable of running in any Java-enabled device, no matter what platform. RMI (Remote Method Invocation) allows Java applications to invoke methods on Java applications running on other computers. Invoking a method is like asking another program to do something.
XML (Extensible Markup Language) has become a standard for exchanging data across any platform. XML-RPC is a new specification that allows remote procedure calls using HTTP as the transport and XML as the encoding. The mechanism itself is designed for simplicity, but XML allows for the coding of very complex procedures and data structures. The UserLand Software Web site listed on the related entries page has useful information on XML-RPC. Microsoft's SOAP (Simple Object Access Protocol) implements remote procedures via HTTP, with information in XML format.
RFC 2188 (AT&T/Neda's Efficient Short Remote Operations [ESRO], September 1997) describes an RPC service that is designed specifically for wireless networks. The ESRO protocol provides reliable connectionless remote operation services on top of UDP with minimum overhead.
Copyright (c) 2001 Tom Sheldon and Big Sur Multimedia.