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


4. 基本概念

ディレクトリサービスでは、ネットワーク環境内のユーザおよびリソースについてのさまざまな情報に対するアクセスが提供されます。また、ネーミングシステムを使用して、これらの情報を表現するディレクトリオブジェクトの識別および体系化が行われます。ディレクトリオブジェクトによって、属性と値が関連付けられます。したがって、ディレクトリサービスを使用すれば、情報を階層化することができ、人間が理解できる名前とディレクトリオブジェクトをマッピングすることができます。

4.1 ネーミング -- 基本となる機能

あらゆるコンピューティングシステムの基本機能は、ネームサービスです。 ネームサービスによって、名前とオブジェクトを関連付け、名前を基にしてオブジェクトを検出する方法が提供されます。従来のシステムでは、多くの場合、ネームサービスは単体では機能しません。通常は、ファイルシステム、ディレクトリサービス、データベース、デスクトップ、メールシステム、スプレッドシート、カレンダなど、その他のサービスと統合されます。たとえば、ファイルシステムには、ファイルとディレクトリ用のネームサービスが組み込まれています。 また、スプレッドシートには、セルとマクロ用のネームサービスが組み込まれています。

企業のコンピューティング環境は通常、いくつかのネームサービスで構成されます。たとえば、一部のネームサービスでは、組織、物理サイト、ユーザ、コンピュータなどの、企業内の共通エンティティの名前を付けるためのコンテキストが提供されます。また、ファイルサービス、メールサービス、プリンタサービスなどのサービスを提供するアプリケーションにも、ネームサービスが組み込まれます。ユーザの観点から見ると、これらのネームサービスの間には、使用目的に応じて論理的な関係が存在します。たとえば、ファイル、メール、アポイントカレンダなど、さまざまなサービスの名前は、通常はユーザのコンテキストで決定します。また、ユーザについては、通常は企業の部署のコンテキストで決定します。これらの関係を考慮して実用的にネームサービスを配置すれば、わかりやすい名前を作成することができます。

すべての名前は、ネーミング規約と呼ばれるいくつかの構文規則によって生成されます。基本名とは、名前の各コンポーネントのことです。 ネーミング規約の定義を参照してください。

複合名とは、ネーミング規約に従って合成した 0 個以上の基本名のシーケンスのことです。

たとえば、UNIX のパス名の場合、左から右に並べられた基本名が、スラッシュ (/) で区切られています。usr/local/bin という UNIX のパス名は、usrlocal、および bin という、3 つの基本名のシーケンスで構成される複合名です。また、インターネットの Domain Name System (DNS) の名前の場合は、右から左に並べられた基本名がドット (.) で区切られています。DNS 名の sales.Wiz.COM は、COMWizsales という基本名のシーケンスで構成される複合名です。

基本名とオブジェクトの関連付けは、バインディング (またはバインド) と呼ばれます。

コンテキストとは、いくつかの基本名とバインドされているオブジェクトのことです。すべてのコンテキストには、ネーミング規約が関連付けられています。コンテキストでは、オブジェクトを返すルックアップ (解決) 操作が行われます。 また、名前のバインドとアンバインド、バインドされた名前の一覧表示などの操作が行われることもあります。コンテキストオブジェクト内の基本名は、同じ型のほかのコンテキストオブジェクトにバインドできます。 このコンテキストはサブコンテキストと呼ばれ、複合名を生成します。

複合名は、各連続するコンテキストのそれぞれ連続する基本的なコンポーネントが順次ルックアップされて解決されます。この複合名の解決は、UNIX ファイルの名前付けの方法と類似しています。 UNIX のディレクトリはコンテキストに相当し、UNIX のパス名は複合名に相当します。

ネーミングシステムは、同じネーミング規約が関連付けられ、同じ型のコンテキストの集合で、各コンテキストは相互に接続されています。 また、同じセマンティクスを持ち、同じ操作を行います。

名前空間は、ネーミングシステム内のすべての名前の集合です。

複合名は、複数のネーミングシステムにまたがる名前です。複合名では、0 個以上のコンポーネントが順番に並んでいます。各コンポーネントは、各ネーミングシステムの名前空間の名前です。

たとえば、jurassic.eng:/export/home/jdoe/.signature という名前は、複合名です。 つまり、ホスト名前空間の jurassic.eng というホスト名、および UNIX ファイル名前空間の /export/home/jdoe/.signature というファイル名で構成されています。また、http://www.oon.org/public/index.html というインターネット URL も複合名です。 「URL スキーマ ID」名前空間のスキーマ ID である http、Web サーバが稼動しているマシンの DNS 名である www.moon.org、およびファイル名前空間の public/index.html というファイル名で構成されます。

すべての名前は特定のコンテキストに関連付けて解釈され、すべてのネーミング操作は特定のコンテキストオブジェクト上で実行されます。クライアントは、初期コンテキストオブジェクトを取得して、開始時に名前の解決を行います。

4.2 ディレクトリオブジェクト

ネーミングシステムの主要な機能は、名前とオブジェクトのマッピングです。任意の型のオブジェクトをマッピングできます。「ディレクトリオブジェクト」は、コンピューティング環境内のさまざまな情報を表現するために使用される特定の型のオブジェクトです。ディレクトリオブジェクトには、属性を関連付けることができます。属性は、1 つの識別子といくつかの値で構成されます。

ディレクトリオブジェクトでは、属性の作成、追加、削除、およびディレクトリオブジェクトに関連付けられている属性の変更を行う操作が行われます。ディレクトリオブジェクトをネーミングコンテキストと見なすと、ディレクトリ情報をツリー構造で表現できます。 この場合、内部ノードはネーミングコンテキストに対応し、内部ノードには属性も含まれます。

次の複合名前空間の例に、いくつかの項目を示します。

複合名前空間の例

4.3 URL と複合名

Uniform Resource Locator (URL) は、構文が、URL の定義で決定される特殊な複合名です。JNDI のクライアントから、URL を使用して任意の型のオブジェクトを参照できます。たとえば、nfs://nfs.sun.com/export/jndi/src/README という複合名を使用して、Network File System (NFS) プロトコルでアクセスしなければならないファイルオブジェクトも参照できます。また、ldap://ldap.widget.com/cn=Jonathan,ou=marketing という URL を使用して、LDAP サーバのディレクトリオブジェクトに対してディレクトリ操作を実行できます。

通常は、複合名をサポートするときに、複合名を処理するための複合名構文とユーティリティを JNDI に定義します。この結果、JNDI のクライアントから、複数の名前空間にまたがる名前が使用されているオブジェクトを参照することができます。

4.4 イベント

コンピューティング環境内でネームサービスまたはディレクトリサービスの重要性が増すほど、サービスの変更を管理するための管理および監視ツールが必要になります。これらのツールおよびその他のアプリケーションを使用する場合は、従来の要求および応答型の対話を拡張する必要があります。 つまり、非同期通知モデルの対話によって、アプリケーションとサービスの変更との関連を登録する必要があります。


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