With the emergence of the Internet and distributed object technologies, naming services have become essential elements in distributed system architectures. Naming Services make possible communication, data exchange and co-operation among different distributed objects by providing name-to-object resolution. Moreover, naming services provide foundation for more evolved services such as Directory Services and Trading Services.
Naming services provide objects from a request which has a name as an argument. A naming server manages a hierarchical structure of objects, and provide navigation facilities over a logical graph naming of contexts (figure 1).
In addition, a directory server manages a collection of attributes for each registered object. Attributes hold characteristics of objects and allow servers to provide client with powerful search and filtering mechanisms on attributes, hence on objects. Clients specify search criteria with their requests, and get in return a list of objects which match those criteria.
Naming and directory services can be viewed as special address books which are distributed across the network and which provide information on distributed objects. Objects may be of different types such as for example IP adresses from the Domain Name Service (DNS) [ref 5], CORBA Interoperable Object References (IOR) [ref 6], corporate directory entries from an LDAP database (Lightweight Directory Access Protocol) [ref 7], or personal directory entries from a personal address book.
The list of attributes along with their types depend on the type of registered objects. For example, in case of an address book, e-mail and phone-number are attributes of a person entry; in case of a network-printer directory service, printing-quality (laser vs. dot-matrix) is an attribute for a printer entry; in case of a user profile, prefered-colors and languages are attributes for a particular user service.
Combining objects with attributes allows servers to provide each time an adapted service. Trading Services benefit from these features and provide users with features to discover and access to new services according to their types and characteristics.
Figure 1 - Graph of Naming Contexts
Even if many naming servers have already been implemented for a while such as Domain Naming Service (DNS), Network Information System (NIS), or CORBA naming service (COS), LDAP is a new emerging naming and directory service.
The main interest of LDAP consists of flexibility. All current naming services can be implemented with this protocol. The structure of an LDAP service is based on a hierarchy of entries made of attributes and bound objects. The lookup of objects and the search according to filters on attributes provide with convenient accesses [ref 8]. Access controls are supplied by identification and authentication.
Interesting features of LDAP include the support of Referrals Contexts. This special type of entry is used to forward requests to other naming servers on the network when the current server cannot provide with the requested object. With referrals, different naming spaces from different naming servers can be linked together (figure 2). Referral entries also allow to share data among several users and make easier global updates on distributed databases.
We have chosen LDAP protocol as a reference for the Personal Naming and Directory Service (PNDS).
Figure 2 - Referral vs. Referred Context
[Section 3] [Table of contents]