PreviousNext

General Policies

The Style Guide embodies a variety of basic assumptions. These form the basis for a set of high-level policy recommendations that cross the boundaries of the specific services discussed in later topics. These are as follows:

· Servers are generalized providers of the services specified by their published (IDL) interfaces. That is, servers should encapsulate the services they provide in such a way that naive clients, with no knowledge of the specifics of server implementation, can successfully make use of these services via the remote interfaces. In this sense, servers are much like libraries. One should not assume that clients will be written by someone with knowledge of server internals. Where appropriate, define wrapper routines for the IDL operations to shield developers from binding handles and other RPC peculiarities.

· Servers should make their resources known to clients using standard mechanisms. In particular, they should export their bindings according to the recommended service models, use name and endpoint services rather than fixed bindings and well-known endpoints, and associate exported objects with UUIDs.

· Clients and servers should be portable, using DCE provided mechanisms instead of operating system and transport-dependent mechanisms. For example, data streams should be communicated via the RPC pipe mechanism rather than socket calls. The Application Environment Specification/Distributed Computing is the definitive guide to application portability using the DCE mechanisms.

· Distributed applications make greater administrative demands than nondistributed ones. Clients and servers need to be written with an eye to minimizing and simplifying administrative tasks. This means, for example, that

- Applications need to be as configuration and location independent as possible. In particular, this means giving careful thought to the use of name services for advertising and finding resources.

- Applications require both local and DCE identities and privileges. They should follow the recommended models for acquiring and maintaining these privileges and identities.

- Servers should be administratively interoperable; that is, they should behave like the standard DCE servers, exporting the recommended management interfaces, exporting ACL managers, logging errors and messages, and providing for the standard startup and shutdown mechanisms.

· Distributed security is inherently more complex than local system security (you can't just "lock the door"). Applications should follow the recommended security policies rigorously.

· Clients and servers should follow the recommended internationalization guidelines to ensure character set interoperability.