Remote procedure call

RPCremote procedure callsremotingasynchronous remote procedure callsRPC-likecomputingInterprocess Communicationremoteremote callsremote invocation
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.wikipedia
262 Related Articles

Distributed computing

distributeddistributed systemsdistributed system
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.
There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.

Bruce Jay Nelson

Bruce NelsonBruce J. Nelson
Bruce Jay Nelson is generally credited with coining the term "remote procedure call" in 1981.
Bruce Jay Nelson (January 19, 1952 – September 19, 1999) was an American computer scientist best known as the inventor of the remote procedure call concept for computer network communications.

Open Network Computing Remote Procedure Call

ONC RPCOpen Network ComputingSunRPC
The first popular implementation of RPC on Unix was Sun's RPC (now called ONC RPC), used as the basis for Network File System (NFS).
Open Network Computing (ONC) Remote Procedure Call (RPC) is a remote procedure call system.

Inter-process communication

interprocess communicationIPCinterapplication communication
RPCs are a form of inter-process communication (IPC), in that different processes have different address spaces: if on the same host machine, they have distinct virtual address spaces, even though the physical address space is the same; while if they are on different hosts, the physical address space is different.

Stub (distributed computing)

stub
A stub in distributed computing is a piece of code that converts parameters passed between client and server during a remote procedure call (RPC).

Marshalling (computer science)

marshallingmarshalmarshalled
Marshalling is used within implementations of different remote procedure call (RPC) mechanisms, where it is necessary to transport data between processes and/or between threads.

Interface description language

IDLinterface definition languagecall semantics
Most of these use an interface description language (IDL) to let various platforms call the RPC.
IDLs are commonly used in remote procedure call software.

Distributed object communication

remote method invocationRMIremote invocation
In the object-oriented programming paradigm, RPC calls are represented by remote method invocation (RMI).
Invoking a method on a remote object is known as remote method invocation (RMI) or remote invocation, and is the object-oriented programming analog of a remote procedure call (RPC).

RC 4000 multiprogramming system

MonitorNucleusRC 4000
Remote procedure calls used in modern operating systems trace their roots back to the RC 4000 multiprogramming system, which used a request-response communication protocol for process synchronization.
Note that messages had an implicit "return path" for every message sent, making the semantics more like a remote procedure call than Mach's completely I/O-based system.

RPyC

RPyC (pronounced are-pie-see), or Remote Python Call, is a Python library for remote procedure calls (RPC), as well as distributed computing.

Newcastle Connection

One of the earliest practical implementations was in 1982 by Brian Randell and colleagues for their Newcastle Connection between UNIX machines.
A match would divert such a reference through to the new software, which then used remote procedure calls to the remote machine.

Per Brinch Hansen

Brinch HansenBrinch Hansen, PerEdison
In 1978, Per Brinch Hansen proposed Distributed Processes, a language for distributed computing based on "external requests" consisting of procedure calls between processes.
Later in 1978, Brinch Hansen published the Distributed Processes language concept, proposing the use of remote procedure calls to synchronize processes running across a microcomputer network.

D-Bus

DBusGDBusD-Bus Server
is a software bus, an inter-process communication (IPC), and a remote procedure call (RPC) mechanism that allows communication between multiple computer programs (that is, processes) concurrently running on the same machine.

Java remote method invocation

RMIJava RMIRemote Method Invocation
In the 1990s, with the popularity of object-oriented programming, the alternative model of remote method invocation (RMI) was widely implemented, such as in Common Object Request Broker Architecture (CORBA, 1991) and Java remote method invocation.
In computing, the Java Remote Method Invocation (Java RMI) is a Java API that performs remote method invocation, the object-oriented equivalent of remote procedure calls (RPC), with support for direct transfer of serialized Java classes and distributed garbage-collection.

XML-RPC

XMLRPCXML RPCXML/RPC service
XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism.

Request–response

request-responserequestrequest-reply
This is a form of client–server interaction (caller is client, executor is server), typically implemented via a request–response message-passing system.

PARC (company)

Xerox PARCPARCPalo Alto Research Center
This was soon followed by "Lupine" by Andrew Birrell and Bruce Nelson in the Cedar environment at Xerox PARC.
The Association for Computing Machinery (ACM) Software System Award recognized the Alto system in 1984, Smalltalk in 1987, InterLisp in 1992, and the remote procedure call in 1994.

Internet Communications Engine

IceZeroC Ice
The Internet Communications Engine, or Ice, is an open-source RPC framework developed by ZeroC.

Unmarshalling

Hence, unmarshalling is generally used in the receiver end of the implementations of Remote Method Invocation (RMI) and Remote Procedure Call (RPC) mechanisms to unmarshal transmitted objects in an executable form.

JSON-RPC

JSON IPCJSON RPC
JSON-RPC is a remote procedure call protocol encoded in JSON.

Common Object Request Broker Architecture

CORBAOMG IDLCORBA IDL
In addition to providing users with a language and a platform-neutral remote procedure call (RPC) specification, CORBA defines commonly needed services such as transactions and security, events, time, and other domain-specific interface models.

Apache Thrift

ThriftThrift (protocol)
It forms a remote procedure call (RPC) framework and was developed at Facebook for "scalable cross-language services development".

Operating system

operating systemsOScomputer operating system
This means that computers running dissimilar operating systems can participate in a common network for sharing resources such as computing, files, printers, and scanners using either wired or wireless connections.

DCE/RPC

DCE/RPC, short for "Distributed Computing Environment / Remote Procedure Calls", is the remote procedure call system developed for the Distributed Computing Environment (DCE).

Web Application Messaging Protocol

WAMP
WAMP is a WebSocket subprotocol registered at IANA, specified to offer routed RPC and PubSub.