OSF DCE Application Development Guide--Introduction and Style Guide
OSF DCE Application Development Guide—Introduction and Style Guide
• An operation number
Note that the server runtime itself maintains only a very limited set of relationships:
interface identifier/type UUID/manager EPV and object UUIDs/type UUIDs. It is
especially worth noting that the runtime maintains no relationships between the
protocol-address bindings it has created and any of the other information. The server
merely advertises the relationships it wants to export in a name service and registers
them in the endpoint map. Bindings are exported and registered along with interface
identifiers and, possibly object UUIDs.
When the exported and registered information is used by clients to find the server, client
calls arriving at the server endpoints should contain interface identifier/object UUID
pairs that the server can, in fact, service, although the RPC mechanism itself can provide
no guarantee of this. This means that name service and endpoint map operations, while
they are not, strictly speaking, a required part of an RPC call, usually play an important
role in constructing bindings.
The indirect mapping from object UUID to type UUID to EPV (and hence to the
manager called) also gives the server some flexibility in organizing its resources based
on object UUIDs. This is explained in Section 4.1.3.
4.1.2 Client Binding Model
To make a call, the client needs a compatible binding: that is, one that offers the interface
and version desired, uses a mutually supported protocol sequence, and if requested, is
associated with a specific object UUID.
Clients typically find compatible bindings by making calls to RPC API routines that
search the name service. Typically, the client specifies the interface and object UUIDs
desired, and the runtime takes responsibility for finding bindings with protocol sequences
that it can use.
For each binding that the client imports, the runtime provides a server binding handle
that refers to the binding information maintained by the client runtime. This includes the
protocol sequence and address information for the server host and possibly includes an
object UUID.
Once the client has found a compatible binding, it makes a call using the binding handle
for that binding. When the call is made, the client runtime has available to it the binding
information and any object UUID referred to by the binding handle. Also available in
the stub code are the interface identifier of the interface on which the call was made, and
the operation number of the routine being called. Recall that the last three items of this
information—the object UUID/interface identifier/operation number—are precisely what
the server needs to route the call to a specific manager operation.
4− 6 Tandem Computers Incorporated 124246