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: