- Remote procedure call
Remote procedure call (RPC) is an
Inter-process communicationtechnology that allows a computer programto cause a subroutineor 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-orientedprinciples, 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 RPCand 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
Xeroxunder the name "Courier" in 1981. The first popular implementation of RPC on Unixwas 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/RPCin the OSF's Distributed Computing Environment(DCE). A decade later Microsoftadopted 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.
RPC is an obvious and popular
paradigmfor implementing the client-servermodel 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 implementation, resulting in a variety of different (incompatible) RPC protocols. While the server is processing the call, the client is blocked (it waits until the server has finished processing until resuming execution).
An important difference between remote procedure calls and local calls is that remote calls can fail because of unpredictable network problems. Also, callers generally must deal with such failures without knowing whether the remote procedure was actually invoked.
Idempotentprocedures (those which have no additional effects if called more than once) are easily handled, but enough difficulties remain that code which calls remote procedures is often confined to carefully written low-level subsystems.
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
Other RPC analogues
RPC analogues found elsewhere:
Java Remote Method Invocation(Java RMI) API provides similar functionality to standard UNIX RPC methods.
XML-RPCis an RPC protocol which uses XMLto encode its calls and HTTPas a transport mechanism.
* Microsoft .NET Remoting offers RPC facilities for distributed systems implemented on the Windows platform.
RPyCimplements RPC mechanisms in Python, with support for asynchronous calls.
CORBAprovides remote procedure invocation through an intermediate layer called the "Object Request Broker"
Web services RPC
Local Procedure Call
Remote function call
*RFC 1057 - Specifies version 1 of ONC RPC
*RFC 1831 - Specifies version 2 of ONC RPC
* [http://www.cs.cf.ac.uk/Dave/C/node33.html Remote Procedure Calls (RPC)] — A tutorial on ONC RPC by Dr Dave Marshall of Cardiff University
Wikimedia Foundation. 2010.
Look at other dictionaries:
Remote Procedure Call — Удалённый вызов процедур (или Вызов удалённых процедур) (от англ. Remote Procedure Call (RPC)) класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых… … Википедия
Remote Procedure Call — (RPC, sinngemäß „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von Interprozesskommunikation. Sie ermöglicht den Aufruf von Funktionen in anderen Adressräumen. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen… … Deutsch Wikipedia
Remote Procedure Call — RPC (Remote Procedure Call) est un protocole permettant de faire des appels de procédures sur un ordinateur distant à l aide d un serveur d applications. Ce protocole est utilisé dans le modèle client serveur et permet de gérer les différents… … Wikipédia en Français
Remote Procedure Call — Remote Procedure Call, RPC … Universal-Lexikon
Remote procedure call — En informatique et en télécommunication, RPC (Remote Procedure Call) est un protocole réseau permettant de faire des appels de procédures sur un ordinateur distant à l aide d un serveur d applications. Ce protocole est utilisé dans le modèle… … Wikipédia en Français
remote procedure call — noun 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… … Wiktionary
Remote procedure call — … Википедия
Remote Procedure Call — Abbreviated RPC. A set of procedures used to implement client/server architecture in distributed programming. RPC describes how an application initiates a process on another network node and how it retrieves the appropriate result. RPCs… … Dictionary of networking
DCE Remote Procedure Call — Saltar a navegación, búsqueda DCE Remote Procedure Call o bien DCE RPC es un sistema de llamada a procedimiento remoto del conjunto de software OSF DCE. DCE RPC no debe confundirse con DCE el cual es un conjunto de servicios que incluye DCE… … Wikipedia Español
Open Network Computing Remote Procedure Call — (ONC RPC) is a widely deployed remote procedure call system. ONC was originally developed by Sun Microsystems as part of their Network File System project, and is sometimes referred to as Sun ONC or Sun RPC. ONC is considered lean and mean , but… … Wikipedia