Implementing remote procedure calls with DECnet

The ''Remote Procedure Call'' (RPC) has recently become an important communication model for distributed systems. The basic idea behind remote procedure calls is that a process running on one machine can ''call'', using standard procedure calling semantics, another routine that executes on a different machine. A message-passing mechanism is used to transfer parameters between the caller and the called routine. In this paper, we describe a remote procedure call system we have implemented that uses DECnet as the underlying message-passing mechanism. Our system is highly reliable, reasonalbly efficient, and supports some advanced features such as asynchronous remote procedures. The described system is currently part of a distributed accelerator-control system containing VMS, Micro-VMS, and VAXELN nodes. It could also be extended to any other system that supports DECnet. Topics discussed include the system design, parameter-passing protocol, error detection and recovery, and performance.