Java Naming and Directory Interface
JNDI est une API Java de connexion à des annuaires, notamment des annuaires LDAP.
Présentation[modifier | modifier le code]
JNDI signifie Java Naming and Directory Interface, cette API permet :
- d’accéder à différents services de nommage ou de répertoire de façon uniforme ;
- d'organiser et rechercher des informations ou des objets par nommage (java naming and directory interface) ;
- de faire des opérations sur des annuaires (java naming and directory interface) tels que :
Usages[modifier | modifier le code]
Java EE[modifier | modifier le code]
JNDI est très utilisée dans l'univers des serveurs d'applications Java et fait partie de l'ensemble des APIs Java EE où il permet de lier un nom (par exemple 'base/sql/login') à une information.
JNDI utilise principalement les packages :
- javax.naming.*
- javax.naming.directory.*
Concepts[modifier | modifier le code]
Un service de nommage permet d'associer un nom à un objet. Cette association est nommée binding. Un ensemble d'associations nom/objet est nommé un contexte.
Ce contexte est utilisé lors de l'accès à un élément contenu dans le service.
Il existe deux types de contexte :
- Contexte racine
- Sous contexte
Un sous-contexte est un contexte relatif à un contexte racine.
Par exemple, c:\ est un contexte racine dans un système de fichiers de type Windows. Le répertoire windows est un sous contexte du contexte racine (C:\windows) qui est dans ce cas nommé sous répertoire.
Dans DNS, com est un contexte racine et test est un sous contexte (test.com)
Utilisation[modifier | modifier le code]
Pour pouvoir utiliser un service de nommage, il faut tout d'abord obtenir un contexte racine qui va encapsuler la connexion au service.
À partir de ce contexte, il est possible de réaliser plusieurs opérations :
- bind : associer un objet avec un nom
- rebind : modifier une association
- unbind : supprimer une association
- lookup : obtenir un objet à partir de son nom
- list : obtenir une liste des associations
Toutes les opérations possèdent deux versions surchargées attendant respectivement :
- Un objet de type Name : cet objet encapsule une séquence ordonnée de un ou plusieurs éléments (l'intérêt de cette classe est de permettre la manipulation individuelle de chaque élément).
- Une chaîne de caractères : elle contient la séquence
Architecture[modifier | modifier le code]
Contexte initial[modifier | modifier le code]
LDAP[modifier | modifier le code]
Les concepts JNDI et LDAP diffèrent[1] beaucoup et les noms des méthodes disponibles peuvent entrainer des confusions.
Voir aussi[modifier | modifier le code]
Liens externes[modifier | modifier le code]
- (en) Site officiel de JNDI
- (fr) Explications et utilisation de JNDI
- (fr) Pourquoi utiliser JNDI ?
- (fr) Uniformiser le déploiement avec JNDI