1.1.1. Remote procedure call

RPC enables a program running on one workstation to execute functions on a remote workstation. RPC works by providing stub functions on the calling workstation that pack the inputs to the function into a data block and transmit it over a network connection to the remote workstation. The remote workstation unpacks the function input data, executes the function as normal, then packs up the function outputs to return over the network to the caller.

Subsystems involved in RPC

The RPC standard mandates that other subsystems are used:

  • The workstation making the call connects to the other workstation using a port mapper, a process (typically called portmap) that acts as a connection manager. The workstation acting as an RPC server must register itself with the port mapper when it is ready to accept requests.

  • Data is transferred over the network using TCP/IP.

  • Data is transferred using a data formatting standard called eXternal Data Representation (XDR).

Accessing an RPC server

Initially, there must be three processes when an RPC client connects to its server:

  • the port mapper

  • the RPC server (the Multi-ICE server)

  • the RPC client (the Multi-ICE DLL).

The port mapper and the RPC server must be running on the same computer, and the RPC client must be in network contact with both processes:

  1. When the server starts, it attempts to connect to the local portmap service to pass on its connection details. This state is shown in Figure 1.1.

    Figure 1.1. RPC server contacts local portmap

  2. When the local portmap service is aware of the RPC server, it can pass on the details to a client process such as the Multi-ICE DLL. The DLL connects to the portmap process requesting the Multi-ICE server details. This step is shown in Figure 1.2.

    Figure 1.2. RPC client asks portmap for RPC server details

  3. The RPC client and the RPC server can connect to each other directly. This is the state shown in Figure 1.3.

    Figure 1.3. RPC client connects to RPC server directly

When the client and server are connected, the portmap process is no longer involved in RPC activity. When the RPC server quits, however, the server must inform the portmap service that it is no longer able to service requests.

Copyright © 1998-2002 ARM Limited. All rights reserved.ARM DUI 0154B