目次 | 前の項目 | 次の項目 JNDI API


1. はじめに

ディレクトリサービスは、ユーザ、マシン、ネットワーク、サービス、およびアプリケーションに関するさまざまな情報へのアクセスを提供することによって、イントラネットおよびインターネットにおいて重要な役割を果たします。その性質上、ディレクトリサービスには、人間が理解できる名前空間を提供するネーミング機能が組み込まれており、さまざまなエンティティの処理および識別を容易に行うことができます。

企業のコンピューティング環境は通常、複合名の名前空間のさまざまな部分を表すいくつかのネーミング機能で構成されています。たとえば、企業内のさまざまな組織のトップレベルのネーミング機能として、Internet Domain Name System (DNS) が使用される場合があります。一方、その組織自体は、LDAP、NDS、NIS などのディレクトリサービスを使用している可能性があります。ユーザの観点から見ると、複合名で構成される 1 つの名前空間があるように見えます。複合名の例として、URL を挙げることができます。 URL は、複数のネーミング機能の名前空間にまたがっています。ディレクトリサービスを使用するアプリケーションでは、このユーザの観点をサポートしなければなりません。

ディレクトリサービス API は、特定のディレクトリサービスまたはネームサービスの実装から独立しているだけでなく、複数のネーミング機能を介してディレクトリオブジェクトにシームレスにアクセスすることができます。 このため、多くの場合、ディレクトリサービス API を使用すると、Java TM アプリケーションを効率的に開発することができます。実際、すべてのアプリケーションから独自のオブジェクトを名前空間に接続できます。このネーミング機能を使用して、Java アプリケーションから、任意の型のオブジェクトの検出および取り出しを行うことができます。

エンドユーザは、論理名前空間を使用して、ネットワーク内のオブジェクトの検出および識別を簡単に行うことができます。

ディレクトリサービスの開発者は、サービスプロバイダ機能を使用して、クライアントを変更しないで各実装を組み込むことができます。

Java Naming and Directory InterfaceTM (JNDI) は、ディレクトリおよびネーミング機能を Java アプリケーションに提供する API です。JNDI は、特定のディレクトリサービス実装に依存しないように定義されています。したがって、さまざまなディレクトリに共通の方法でアクセスできます。

次に、よく使用される JNDI の機能の簡単な例を 2 つ示します。

プリンタにアクセスするアプリケーションには、対応するプリンタオブジェクトが必要です。この対応付けは、次のようにして行います。

prt = (Printer) building7.lookup("puffin");
prt.print(document);

プリンタオブジェクトの構築に必要な情報の検索は、すべて JNDI が行います。

組織のディレクトリに格納されているユーザの電話番号をアプリケーションから検索する場合は、次のように指定します。

String[] attrs = {"workPhone", "cellPhone", "faxNumber"};
bobsPhones = directory.getAttributes("cn=Bob, o=Widget, c=US", attrs);

また「Widget」という組織に「Bob」という名前のユーザが複数存在する場合は、次のようにすれば、組織のディレクトリを検索して正しい「Bob」を見つけることができます。

bob = directory.search("o=Widget, c=US", "(cn=Bob)", searchctls);

このドキュメントでは、JNDI のアーキテクチャおよびインタフェースについて説明します。


目次 | 前の項目 | 次の項目
Copyright ©1997-1999 Sun Microsystems, Inc. All Rights Reserved.