CS 551: Distributed Operating Systems
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)
- "A remote procedure call (RPC) is an interprocess communication
that resembles a normal procedure call.
- "An RPC is a client/server communication mechanism, in which the
called procedure takes the role of the server, and the
caller takes the role of the client"
(Leopol01)
- The RPC stubs are the "local representatives for the remote
program parts"
- The stub is "a local procedure that manages the communication
on behalf of its client or server. Thus the client or
server communicates with the stub, and not directly with
the other site."
- The client stub "must first transmit the request to the server
using lower-level communication mechanisms such as sockets.
Then it waits for the server's reply, and finally it returns
to the client. ... the stub "must pack the input parameters
into one or several messages, and unpack the output
parameters afterwards." This is "referred to as
marshaling and unmarshaling, respectively."
- "On the server side, the mechanism is similar."
(Leopol01)
- Note that RPC operates at a higher level than sockets
- The rendezvous construct in Ada is similar to RPC
- "For stub generation, the programmer describes the server
procedures in a specific interface definition
language (IDL), puts the description into a file, and
invokes a kind of compiler. Both the IDL and its compiler
are system dependent."
(Leopol01)
- A "way to speed up RPC is the use of asynchrony. In
asynchronous RPC, as in non-blocking message passing,
the call returns immediately after having issued the
request. Later it invokes a second function to complete
the call."
(Leopol01)
Comments: