Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


17

Java Naming and Directory Interface (JNDI)



Das Java Naming and Directory Interface dient dazu, auf beliebige Namens- und Verzeichnisdienste zuzugreifen.

Ein Namensdienst liefert zu einem bestimmten Namen ein genau ein oder kein Objekt. Der Domain Name Service (DNS) ist ein solcher Dienst: Zu einem Host-Namen (z.B. www.dpunkt.de) liefert er die IP-Adresse (194.120.34.150). Ein Name dient also dazu, ein beliebiges Objekt genau zu identifizieren.

Ein Verzeichnisdienst stellt die Informationen in einer hierarchischen Struktur zur Verfügung. Ein einfaches Beispiel ist das Dateisystem auf Unix: Unter dem Wurzelknoten / steht ein Baum aus Verzeichnissen. Ein weiteres Beispiel ist das Lightweight Directory Access Protocol (LDAP), mit dem typischerweise auf Benutzerdaten in einem Verzeichnis-Server zugegriffen wird. Die Daten sind dabei hierarchisch strukturiert, beispielsweise in Abteilungen und Unterabteilungen. Ein einzelnes Objekt wird dabei durch einen eindeutigen Namen gekennzeichnet. In einem Dateisystem ist dies der Pfadname (z. B. /usr/bin/tcsh), bei LDAP der sogenannte Distinguished Name oder kurz DN, der den Pfad zu einem Objekt eindeutig bezeichnet (z. B. uid=jheid, ou=Mitarbeiter, o=FH-Heilbronn, c=DE).

Neben einem Objekt für einen Namen kann ein Dienst auch eine Referenz zurückliefern. Diese Referenz liefert die Adresse zu dem Objekt (beispielsweise eine URL), wobei das Objekt auch außerhalb des ursprünglichen Dienstes liegen kann.

Alle erforderlichen Parameter für den Zugriff sind bei JNDI in einem Exemplar des Interface Context enthalten. Unter einem Kontext versteht man eine Menge von Bindungen zwischen Namen und Objekten. So liefert der Kontext /usr eine Liste aller Namen der Dateien und Verzeichnisse unter diesem Verzeichnis. Ein Unterverzeichnis wird in diesem Zusammenhang als Subkontext bezeichnet. Bei LDAP ist also beispielsweise o=FH-Heilbronn ein Subkontext von c=DE.

Für den Zugriff auf einen Dienst mit der JNDI-Schnittstelle werden neben dem eigentlichen API (JNDI-API) entsprechende Service-Implementierungen benötigt, also beispielsweise für den Zugriff auf LDAP. Die Sammlung der Interfaces, die ein neuer Service-Provider zu implementieren hat, nennt sich bei JNDI Service Provider Interface (JNDI-SPI). Tabelle 17.1 führt einige Provider auf. Der Tabelle kann auch entnommen werden, ob ein Provider mit J2SE 1.4 mitgeliefert wird oder separat zu beziehen ist.

Tabelle 17.1: Die JNDI-Service-Provider
Service-Providerin J2SE 1.4
Lightweight Directory Access Protocol (LDAP)Ja
COS Naming (Zugriff auf Corba)Ja
RMI RegistryJa
Domain Name Service (DNS)Ja
Network Information Service (NIS)Nein
Directory Services Markup Language (DSML)Nein
File SystemNein
NovellNein
Windows Registry (kommerziell)Nein

Seit [1.4]Version 1.4 ist JNDI Teil von J2SE - für ältere Java-Versionen oder für zusätzliche Service-Provider kann man bei Sun unter Verweishttp://java.sun.com/products/jndi/ die entsprechenden Erweiterungen herunterladen. Hier findet sich auch der in Abbildung 17.1 gezeigte JNDI-Browser, mit dem man grafisch auf verschiedene Dienste zugreifen kann.

Abbildung 17.1: JNDI-Browser mit LDAP-Abfrage
Abbildung 17.1


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.