RAD Namespace

The RAD namespace acts as a gatekeeper by associating a name with each object, dispatching requests to the proper object, and providing meta-operations that enable the client to make queries about what objects are available and what interfaces they implement.

A RAD server may provide access to several objects that in turn expose a variety of different components of the system or even third-party software. A client merely knowing that interfaces exist, or even that a specific interface exists, is not sufficient. A simple, special-purpose client needs some way to identify the object implementing the correct interface with the correct behavior, and an adaptive or general-purpose client needs some way to determine what functionality the RAD server has made available to it.

RAD organizes the server objects it exposes in a namespace. Much like files in a file system, objects in the RAD namespace have names that enable clients to identify them, can be acted upon or inspected using that name, and can be discovered by browsing the namespace. You can see the namespace either as the place one goes to find objects or as the intermediary that sits between the client and the objects it accesses. Either way, it is central to interactions between a client and the RAD server.

RAD uses a structured namespace, as shown in RAD Object Naming Conventions. An object's name consists of a mandatory reverse-dotted domain combined with a non-empty set of key-value pairs. Two names are considered equal if they have the same domain and the same set of keys, and each key has been assigned the same value.

Some situations call for referring to groups of objects. In these situations, use a glob-style pattern or a regex style pattern. For more information, see Sophisticated RAD Searches in C in Remote Administration Daemon Client User's Guide.