JNDI ( Java Naming and Directory Interface )
JNDIは、ネーミングサービスが名前を付けて管理する「もの」にアクセスするための標準的なインターフェースを規定したAPIですが、これだとちょっと分かり辛いため、JNDIに[オブジェクトや属性]を[名前]で検索 (lookup)した場合、JNDIは応答として対象の[オブジェクトや属性]を提供してくれる仕組みと考えてください。
ネーミングサービス
ネーミングサービスとは、「名前」と「オブジェクト(DBなど)」を紐づけて格納できるサービスのことです。ネーミングサービスを利用は
1.「名前」と「オブジェクト(DBなど)」を紐づける「登録」
2.「名前」をキーに検索して「オブジェクト(DBなど)」を得る。
が主な利用になります。
代表的なものではDNS(Domain Name Service)があります。
DNSは名前[www.yahoo.co.jp]から属性[183.79.217.124]を検索してくれます。
ディレクトリサービス
ディレクトリサービスは,ネーミングサービスに加えて,各オブジェクトの属性をもつことができ,属性による検索をサポートする。代表的な例に,LDAP(Lightweight Directory Access Protocol)があります。
ネーミングサービス内ではツリー構造で整理されています。
JavaEEサーバに内蔵されているネーミングサービスは、図1のようなツリー構造になっています。
オブジェクトを格納する箱を「コンテキスト」と呼びます。またツリー構造のトップに位置するコンテキストを「イニシャルコンテキスト」と呼びます。
ネーミングサービスとは,文字列で表される名前と,特定のオブジェクトとの対応 を扱うサービスである. 代表的な操作は,登録と参照である.登録は,名前とオブジ ェクトを対応させることであり,参照は,名前から対応するオブジェクトを得ること である. 代表的な例に,DNS(Domain Name Service)や NIS(Network Information Service)などがある.また,分散オブジェクト技術においても,リモートのオブジ ェクトはアドレスで参照できないため,最初にネーミングサービスにより,オブジェ クトのリファレンスを得てから利用するのが一般的である.また,名前空間は,階層 構造をもつことができる.代表的な例は,UNIX のファイルシステムである. 2.1.2 ディレクトリサービス ディレクトリサービスは,上記の基本的なネーミングサービスに加えて,各オブジ ェクトが属性をもつことができ,属性による検索をサポートする.代表的な例に, LDAP(Lightweight Directory Access Protocol)や NDS(Novell Directory Service) がある.例えば,上記のサービスでは,企業の組織図に対応したディレクトリから, 名前や電話番号で従業員を検索することができる