OSF DCE Application Development Guide--Introduction and Style Guide

Binding
4.1.3 Call Routing
Once the server and client have taken all the necessary steps to set up server and client
side relationships, the call mechanism can use them to construct a complete binding and
call routing when the call is made. When the client makes a call with a binding that
lacks an endpoint (typically the case for bindings imported from the name service), the
endpoint is acquired from the endpoint mapper on the target host. The endpoint mapper
finds a suitable endpoint by searching the local endpoint map for a binding that provides
the requested interface UUID, and if requested, object UUID.
The endpoint map interface and protocol information must match in order for an
endpoint to be found, but an object UUID match may not be required. A server can
provide a default UUID match by registering the nil UUID. Calls with a nil or
unmatched object UUID will get the default endpoint.
Once an endpoint is selected, a call can be routed to one of the endpoints being used by a
compatible server instance. The server can unambiguously select the correct interface
and operation by using the interface identifier and operation number contained in the
call. Recall, however, that the RPC mechanism makes it possible for a server to
implement multiple managers for an interface. Hence it may be necessary to select the
correct manager. Manager selection is based on the object UUID contained in the call.
The selection mechanism depends on two of the relationships established by the server:
the object UUID/type UUID mapping and the interface ID/type UUID/manager UUID
mapping.
For routing, the server provides a default path by registering a default manager for the nil
type UUID. Calls containing the nil object UUID, or any UUID for which the server has
not set another type UUID, will be directed to the default manager.
Once the manager is selected, the call is dispatched via the selected manager EPV using
the operation number contained in the call.
4.1.4 Routing Policy
There are many ways in which clients and servers can arrange the details of binding
among themselves, including: how bindings are exported and imported, whether object
UUIDs are used, and how object-type mappings are established. High-level resource
policy issues relating to the name service and endpoint mapper are discussed in Chapter
5. In the present chapter, some of the lower-level routing policy questions that arise from
the binding model itself will be discussed. These, in fact, have a substantial impact on
how the namespace is used by applications.
124246 Tandem Computers Incorporated 47