目次 | 前へ | 次へ |
ディレクトリサービスは、ネットワーク環境内のユーザーやリソースに関するさまざまな種類の情報へのアクセスを提供します。また、ネーミングシステムを使用して、これらの情報を表現するディレクトリオブジェクトの識別および体系化が行われます。ディレクトリオブジェクトによって、属性と値が関連付けられます。したがって、ディレクトリサービスを使用すれば、情報を階層化することができ、人間が理解できる名前とディレクトリオブジェクトをマッピングできます。
あらゆるコンピューティングシステムの基本機能は、名前がオブジェクトに関連付けられており、オブジェクトをその名前を指定して検出するための手段であるネームサービスです。従来のシステムでは、多くの場合、ネームサービスは単体では機能しません。通常は、ファイルシステム、ディレクトリサービス、データベース、デスクトップ、メールシステム、スプレッドシート、カレンダなど、その他のサービスと統合されます。たとえば、ファイルシステムには、ファイルとディレクトリ用のネームサービスが組み込まれています。また、スプレッドシートには、セルとマクロ用のネームサービスが組み込まれています。
企業のコンピューティング環境は通常、いくつかのネームサービスで構成されています。たとえば、一部のネームサービスでは、組織、物理サイト、ユーザー、コンピュータなどの、企業内の共通エンティティーの名前を付けるためのコンテキストが提供されます。また、ファイルサービス、メールサービス、プリンタサービスなどのサービスを提供するアプリケーションにも、ネームサービスが組み込まれます。ユーザーの観点から見ると、これらのネームサービスの間には、使用目的に応じて論理的な関係が存在します。たとえば、ファイル、メール、アポイントカレンダなどのさまざまなサービスへの名前の付け方については、ユーザーのコンテキストで考えるのが自然です。また、ユーザーについては、通常は企業の部署のコンテキストで決定します。これらの関係を考慮して実用的にネームサービスを配置すれば、わかりやすい名前を作成できます。
すべての名前は、命名規約と呼ばれるいくつかの構文規則によって生成されます。基本名とは、命名規約で定義されている、名前の分割不可能なコンポーネントのことです。
複合名は、命名規約に従って構成れた、0 個以上の基本名のシーケンスを表します。
たとえば、UNIX のパス名では、基本名は左から右に並べられ、スラッシュ (「/」) 文字で区切られています。UNIX のパス名 usr/local/bin
は、usr
、local
、および bin
という、基本名のシーケンスを表す複合名です。また、インターネットの Domain Name System (DNS) の名前の場合は、右から左に並べられた基本名がドット (.) で区切られています。そのため、DNS 名の sales.Example.COM は、COM
、Example
、および sales
という、基本名のシーケンスを表す複合名です。
基本名のオブジェクトとの関連付けは、バインディングと呼ばれます。
コンテキストとは、その状態が個別の基本名とのバインディングのセットであるオブジェクトのことです。すべてのコンテキストには、命名規約が関連付けられています。コンテキストでは、オブジェクトを返すルックアップ (解決) 操作が行われます。また、名前のバインドとアンバインド、バインドされた名前の一覧表示などの操作が行われることもあります。コンテキストオブジェクト内の基本名は、同じ型のほかのコンテキストオブジェクトにバインドできます。このコンテキストはサブコンテキストと呼ばれ、複合名を生成します。
複合名の解決は、連続した各コンテキスト内の連続した各基本コンポーネントを検索することによって進められます。この複合名の解決は、UNIX ファイルの名前付けの方法と類似しています。UNIX のディレクトリはコンテキストに相当し、UNIX のパス名は複合名に相当します。
ネーミングシステムとは、同じ型の (同じ命名規約を持つ) コンテキストの接続されたセットのことであり、同一のセマンティクスを持つ同じ操作のセットを提供します。
合成名は、複数のネーミングシステムにまたがる名前です。合成名では、0 個以上のコンポーネントが順番に並んでいます。各コンポーネントは、各ネーミングシステムの名前空間の名前です。
たとえば、example.eng:/export/home/john/.signature
という名前は、ホスト名前空間のホスト名 example.eng と、UNIX ファイル名前空間のファイル名 /export/home/john/.signature
で構成された合成名の表現です。別の例として、http://www.example.org/public/index.html
というインターネット URL があります。これは、「URL スキーム ID」名前空間のスキーム ID である http、Web サーバーが実行されているマシンの DNS 名である www.example.org
、およびファイル名前空間のファイル名である public/index.html
で構成された合成名の表現です。
すべての名前が何らかのコンテキストを基準に解釈され、すべてのネーミング操作がコンテキストオブジェクトに対して実行されます。クライアントは、初期コンテキストオブジェクトを取得して、開始時に名前の解決を行います。
ネーミングシステムの主要な機能は、名前とオブジェクトのマッピングです。任意の型のオブジェクトをマッピングできます。ディレクトリオブジェクトは、コンピューティング環境内のさまざまな情報を表すために使用される特定の型のオブジェクトです。ディレクトリオブジェクトには、属性を関連付けることができます。属性は、1 つの識別子といくつかの値で構成されます。
ディレクトリオブジェクトでは、属性の作成、追加、削除、およびディレクトリオブジェクトに関連付けられている属性の変更を行う操作が行われます。ディレクトリオブジェクトをネーミングコンテキストでもあるようにした場合は、ディレクトリ情報のツリーを表すことができます。ここで、内部ノードはネーミングコンテキストのように動作するだけでなく、属性も含まれます。
合成名前空間の例に、いくつかの項目を示します。
Uniform Resource Locator (URL) は、構文が、URL の定義で決定される特殊な合成名です。JNDI のクライアントから、URL を使用して任意の型のオブジェクトを参照できます。たとえば、クライアントは nfs://nfs.example.com/export/jndi/src/README
を使用して、Network File System (NFS) プロトコルを使用してアクセスされているファイルオブジェクトを参照できます。同様に、クライアントは ldap://ldap.example.com/cn=Emily,ou=marketing
という URL を使用して、LDAP サーバー内のディレクトリオブジェクトに対するディレクトリ操作を実行できます。
通常は、合成名をサポートするときに、合成名を処理するための合成名構文とユーティリティーを JNDI に定義します。この結果、JNDI のクライアントから、複数の名前空間にまたがる名前が使用されているオブジェクトを参照できます。