A distributed directory service for an on-line services network comprises multiple,
separate services, referred to as "Directory Service Providers," running on respective
groups of application servers. Each Directory Service Provider stores and provides
access to a respective hierarchical directory structure, with nodes of the directory
structures representing the various on-line services and other content entities
which may be accessed by end users of the network. Junction point nodes are used
to provide user-transparent links between the different directory structures, so
that the directory structures appear to end users as a single, hierarchical directory.
A common application program interface (API) is implemented by all Directory Service
Providers, allowing client applications running on computers of end users to access
the different directory structures using a common set of software methods. Data
items that are shared by multiple nodes, such as icon bitmaps and sound files,
are optionally stored by the Directory Service Providers within a shared database
(separately from the nodes), and are accessed via special API methods. Various
forms of node filtering, including language-based filtering and access rights filtering,
are performed by the Directory Service Providers to determine which nodes to show
to end users.