JNDI

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

JNDI jest to specjalna usługą nazewniczą i katalogową uruchamianą w serwerach aplikacji. Jej obecność wymagana jest przez specyfikacje JEE. Ze względu na te wymagania każdy serwer aplikacji musi dostarczać własną usługę katalogową i zazwyczaj jest ona dość mocno z nim zintegrowana. Jej zadaniem jest przechowywanie obiektów i ich hierarchii w formie skatalogowanej. Serwer aplikacji korzystający z JNDI wiąże określoną przez programistę nazwę z fizycznym obiektem i przechowuje go w repozytorium, a klient znając tę nazwę może za pomocą JNDI wyszukać taki obiekt i wywołać na nim odpowiednie metody. Obiekty takie mogą być wykorzystywane przez aplikacje znajdujące sie na tym samym serwerze aplikacji, bądĽ z zupełnie innego miejsca poprzez sieć za pomocą protokołu CORBA lub RMI. W katalogu takim przechowywane mogą być różnego rodzaju zasoby. Mogą to być obiekty typu DataSource umożliwiające połączenie z bazą danych, różnego rodzaju zasoby JMS służące do obsługi komunikacji z użyciem kolejek, czy też obiekty EJB (session bean, entity bean). Wszystkie te obiekty będą bardziej szczegółowo omówione w kolejnych rozdziałach. Poza usługami nazewniczymi dostarczanymi wraz z serwerami aplikacji istnieją inne implementacje tych usług zgodne z interfejsem programistycznym JNDI, które można wykorzystać we własnych aplikacjach. Do najbardziej znanych tych implementacji można zaliczyć tą opartą na usłudze katalogowej LDAP, czy tez opartą o płaskie pliki. Znając ten interfejs programistyczny nie ma również przeszkód aby napisać własną implementację usługi nazewniczej JNDI. Należy w takim przypadku zaimplementować odpowiednia klasę, która będzie obsługiwała operacje zgodne z API JNDI, takie jak, dodawanie, usuwanie, przeszukiwanie, czy tez pobieranie obiektów i zamieniała je na operacje na wewnętrznym repozytorium. Za przykład można tu przytoczyć bazodanową implementacje JNDI. W takim przypadku zewnętrzne wywołania API JNDI będą musiały być zamienione na operacje SQL na bazie danych.

Połączenie z usługą JNDI
Pobranie obiektu z JNDI

powrót
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz