OSF DCE Application Development Guide--Introduction and Style Guide
Introduction to DCE Application Programming
1.5.2.1 Object UUIDs in Bindings
Object UUIDs are often used in the DCE RPC binding mechanism. The details of RPC
binding are explained in Section 1.5.5, and more thoroughly in Chapter 4. It all comes
down to this: clients import only partial bindings from the namespace. These will carry
them only as far as the endpoint mapper service of the dced on the destination server’s
host; it is dced’s job to resolve the binding with a dynamic endpoint.
This means that some registration of bindings must be done by a server with the endpoint
mapper. The minimum two items that have to be registered are interface UUIDs and
bindings (the latter of which contains the server’s dynamically allocated endpoints).
With this information available, the endpoint mapper can inspect the incoming RPCs
interface UUIDs, select one of the endpoints that was registered under them, and resolve
the partial bindings. In addition, a server can register its object UUIDs with its endpoint
mapper. This allows lookups of endpoints by object UUID rather than interface UUID;
the advantage is that object UUIDs are much more specific than interface UUIDs, which
may be registered by multiple servers at the same host.
1.5.2.2 Making Object-UUID/Type-UUID Associations
To group together objects into types, the server makes an RPC library call repeatedly to
associate whatever objects it expects will appear in incoming RPCs with a type UUID.
The association is made between each of the expected incoming object UUIDs and the
type UUID. The following is an example:
rpc_object_set_type(obj_uuid, type_uuid, &status);
A type UUID is nothing but a special kind of object UUID. Type in this context refers to
a group of ordinary object UUIDs that have all been associated with another specially
generated common object UUID, which can then be used to identify that group of objects
collectively.
The type UUIDs in turn are associated with the entry points of manager modules in the
server when the server registers with DCE. An incoming RPC with a typed object UUID
in its binding will be automatically vectored by the server’s runtime to the appropriate
associated type manager.
Note that it is not necessary to call rpc_object_set_type( ) at all if you intend to register
only one set of manager routine implementations per interface.
1.5.2.3 Summary of Mechanisms that Rely on Object UUIDs
The type UUIDs and the type manager vectoring mechanism have nothing to do with the
use of the object UUIDs themselves as lookups for the host endpoint mapper. The type
manager vectoring occurs after object UUID binding happens, at the server. Note also
124246 Tandem Computers Incorporated 1− 17










