Example Applications

In this section we discuss a few examples of applications in which Remote Procedure Call has been used effectively at CERN.

Remote File access

Remote file and database access was one of the earliest uses of RPC. The Sun Network File System, for instance, is implemented using the Sun XDR RPC system [4]. At CERN, the Valet-Plus VME-based test system [10] uses RPC running over ethernet to access files on minicomputers and mainframes.

Remote Graphics

In another RPC application, an active monitoring program may call GKS standard graphics primitives, which are executed on a remote workstation. In this case, a more complex server had to be written to handle a pool of server processes and windows in order to provide a rapid response to the creation and deletion of many independent client programs.

Remote software task management Load/Start/Control

In this case, RPC allows a co-ordinating computer to perfome the management functions needed to set up and start the software in a large data acquisition system.

Each machine has a small server which allows the co-ordinating machine to start and stop programs and to interact with them.The level of complexity of the server depends on the machine: on a VAX, the server can start processes and load images for them to run [12], while on a simple monotask embedded M68020 processor, the server simply allows the coordinator access to memory locations (for program loading),the task's registers (for program starting) and the local tables (for system configuration).

Attached processor farms are managed in a similar way. The same control program as runs on a local processor on VMEbus will run equally well on a VAX attached by ethernet, as the functions it uses to control the processors and interrogate their state are available by RPC.

Other Examples

Other examples of the use of RPC in experiments at CERN include: remote monitoring program control, remote FASTBUS access, remote error logging, remote terminal interaction with processors in VMEbus, the submission of operating system commands from embedded microprocessors, and many less general functions.

It is important to realise that the client-server relationship only applies to one call. In fact a program which is a server from one point of view may also be a client of another facility. A client may call back routines within the client it is serving.

(picture ommitted): RPC allows software modules responsible for different areas to call each other irrespective of processor boundaries.

(Back) (To Summary) (More >> )