Java Naming and Directory Interface è quell’insieme di API che forniscono l’accesso a servizi generici di Naming o Directory attraverso la rete.
Consentono, alla applicazione che ne abbia bisogno, di ottenere oggetti o dati tramite il loro nome o di ricercare oggetti o dati mediante l’uso di attributi a loro associati.
Ad esempio tramite JNDI è possibile accedere ad informazioni relative ad utenti di rete, server o workstation, sottoreti o servizi generici ( Figura ).
Come per JDBC le API JNDI non nascono per fornire accesso in modo specifico ad un particolare servizio, ma costituiscono un set generico di strumenti in grado di interfacciarsi a servizi mediante “driver” rilasciati dal produttore del servizio e che mappano le API JNDI nel protocollo proprietario di ogni specifico servizio.
Tali driver vengono detti “Service Providers” e forniscono accesso a protocolli come LDAP, NIS, Novell NDS oltre che ad una gran quantità di servizi come DNS, RMI o CORBA Registry.