Computer networks often contain numerous resources, varying in type, size, and use. These resources include computers and peripheral devices. In order to consistently identify such resources and facilitate their use by users, networks provide directory services. Directories normally contain information about the resources, (i.e., email addresses on the network). Ideally, a directory service will hide the physical implementation of the network it is provided on, representing the various resources of the network in a consistent manner. This has the advantage of allowing users to address any resource on a network without knowledge of the actual physical configuration of the network, the resource, or its connection to the network.
One of the most important directory services in use today is the Lightweight Directory Access Protocol (LDAP). The LDAP directory service model is based on entries. Each entry in LDAP comprises a collection of attributes. In turn, each attribute consists of a type and one or more values. The type of an attribute identifies the format of the data contained in the values of that attribute. Thus, an attribute with the type “mail”, for example, might contain one or more email addresses in its value fields. In addition to attributes, each entry also has a unique name, called a “distinguished name”. The distinguished name makes possible unambiguous references to the entry.
Entries in an LDAP directory service are organized in a tree structure. Under the protocol, data may be stored in any arbitrary fashion, as long as a tree structure is maintained. Presently, there are no well-defined protocols for structuring Directory Information Trees (DITs). This may not be a problem for an application that sets up its own directory and populates it from scratch, since the application can define the structure of its DIT in any manner. When an application has to work with an existing directory, however, it will have to first become familiar with the DIT structure in use. And this may prove to be a daunting task, especially in the case of large and complex directories.
Aside from the issue of familiarizing new applications with existing directory structures, there is also the problem of imposing standard structures throughout a directory. Presently, if an organization wishes to impose such a standard, it must do so through an administrator who would need to manually maintain the structure of the DIT each time an entry is added, deleted, or modified.
Accordingly, there exists a need for a method and system for managing a directory so that when entries are created in the directory, the rest of the defining structure can be built automatically.