Naming, Location and Binding

When a procedure or function is called which is remote, there must be some mechanism to bind the call to the appropriate instance of the procedure. There may be many servers that implement this particular procedure. There are three choices for when the binding is done:
  1. It can be at compile time. The location of the procedure is compiled into the client.
  2. It can be at load time. When the program is linked and loaded to run, the programmer or system indicate which set of remote instances are the ones this application will use.
  3. It can be at call time. When the client reaches the call to the remote procedure, the decision is made which instance to bind to.
Sophisticated RPC systems define one of the base types of the interface language to be an ;SPM_quot;instance;SPM_quot;. This allows clients and servers to pass instances of clients and servers amongst each other. It makes the definition of the interface to the Binding service itself cleaner. It is the first step towards providing some notion of inheritance in an RPC system. The location service has itself to be located. There are several approaches: This last case is complex. The idea is that every host that implements a particular service advertises the fact, and this is made known since all services include the location mechanism for that service (by inheritance).