About NDSThese discussions should familiarize you with basic NDS concepts.
Familiarity with NDS concepts helps you understand the issues you will be
dealing with in your code. If you are already familiar with these concepts,
skip to the detailed source code listing and explanations.

Introduction to NDSNDS is a Directory Service. Directory Services have been around for several
years, but mostly in the enterprise environment. A Directory Service allows you
to easily manage your network resources. Simply put, the NDS Directory is a
database of objects that represent network resources, such as network users,
servers, printers, print queues, and applications. (For more information about
NDS objects, see the NDS schema documentation. You can freely download the NDS
schema documentation from WWW.developer.novell.com) The NDS Directory can be
described as a hierarchal tree.

The NDS Directory is stored as a set of database files on a server. A
NetWare server stores these files on volume SYS. If no file system volumes are
present, the server stores the NDS database files in an NDS installation
subdirectory. The NDS Directory can be replicated on multiple servers.

The NDS TreeThe NDS tree can be thought of as a distributed database that contains
directory information about objects. That is, the database contains objects and
the attributes, or properties, that describe those objects. Each NDS tree
maintains its own database of objects. Because it is a distributed database,
the database is usually contained on more than one server.

The information in an NDS tree does not describe the physical layout of the
network. It usually describes the logical organization of the business. The NDS
tree is usually organized into subtrees that reflect the different departments
and units in the company. In turn, those subtrees contain the resources within
the different departments.

Figure 1 shows an example NDS tree.

Objects in the NDS TreeThe NDS tree is made up of objects. These objects represent network
entities and are of two basic types: Leaf objects and container objects. In the
tree representation, container objects can hold leaf objects and other
container objects. Container objects are Country objects, Organization objects,
or Organizational Unit objects. Leaf objects usually represent a network
resource such as a user or a printer and can hold no other object.

Figure 2 shows an example of an NDS tree with the appropriate
objects.

If Acme used the Country Organizational Unit to organize its tree by
country, the country organizational unit would be located between the root and
the Organization objects.

Figure 3 shows an NDS tree that has a Country object.

An object's name context is a list of these containers between the object
and [Root]. This context, or name, describes its position in the NDS tree.