OSF DCE Application Development Guide--Introduction and Style Guide

OSF DCE Application Development Guide—Introduction and Style Guide
Since the client in this model is looking for a specific server, imports will be done
directly from the server entries. The only exception to this rule would be where two or
more instances of a server were active on the same host, and it was indifferent to the
client as to which one it is bound to. The entries for the multiple same-host servers then
could be put into a group entry, and binding imports done from the group.
5.12.3 Access By Objects
Servers operate on or manage multiple objects. Clients use these objects (via the servers)
as resources. For each such resource, the server creates a separate namespace entry and
exports its binding information there, distinguishing each object entry with its (the
object’s) own object UUID.
An example of this model is the printer service that was previously described. Clients
will import directly from the name entry of the resource they want to use. For this kind
of application, there will generally be more namespace entries than active servers, since
each server presumably manages more than one object. If the name entries have been set
up correctly and the servers have properly registered the object UUIDs they created,
there will be no difficulty in routing any partial binding to the correct server (namely, the
server that manages the object or resource specified).
5.12.4 Summary of Binding Models
Although the name service allows other approaches, we recommend that whenever
possible you use the object-oriented scheme to organize your namespace entries. There
are at least two good reasons for doing so. First, it is easy to administer; at the simple
entry level, things really are simple. Second, this is the most flexible foundation for
building other more complicated access models using group entries and profiles.
The separate name entries in your namespace should contain bindings that will
unambiguously resolve to specific server instances. Since interface UUIDs are often
offered by more than one server, more information than just an interface UUID is needed
in order to give an RPC with a partial binding the required specificity. Object UUIDs
provide this extra information. When using object UUIDs to distinguish bindings in this
way, servers must take care to preserve their uniqueness across name entries.
Finally, profile entries allow clients to walk through a specified search path of namespace
entries and yet be completely ignorant of the actual names themselves. While name
independence may not be desirable for an object-based or resource-based distributed
application, it can be a powerful mechanism when used with other models.
As you are setting up the namespace organization for your application, remember that
there is not a direct exact mapping from names to bound servers. Different names, once
imported from, may resolve to identical bindings if the partial bindings were exported on
the same interface, from the same host, and not otherwise distinguished from each other
by object UUIDs. It is the application developer’s responsibility to tailor an application’s
export and import procedures so that this mapping behaves as intended.
5 22 Tandem Computers Incorporated 124246