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