So far, we’ve discussed JNDI only in the context of naming services. Now it’s time to turn to directory services. At its root, a directory is merely a naming service whose objects have attributes as well as names. Programming for a directory service, such as an LDAP directory, is roughly as hard as programming for a relational database.
As we’ve seen, a binding in JNDI is an association between a name and an object. While this association is sufficient for some naming services, a directory service needs to be able to associate more than just a name with an object. Attributes associate specialized data with an object. In JNDI, an object with attributes as well as a name is called a directory entry.
We’ve been talking about the filesystem as though it were a naming system because that is how Sun’s filesystem provider implements it. But if you think about it, a filesystem is really a directory system; files and directories have attributes like permissions, user IDs, and group IDs (we just can’t get at these attributes using Sun’s filesystem provider).
JNDI’s directory services interface. It extends
Context and provides modified methods that
support operations involving attributes. Like a
DirContext encapsulates a set of
name-to-object bindings. In addition, a
DirContext contains a
javax.naming.directory.Attributes object for each bound object that holds the attributes and values for ...