目次 | 前へ | 次へ

4. 基本概念

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

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

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

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

すべての名前は、命名規約と呼ばれるいくつかの構文規則によって生成されます。基本名とは、命名規約で定義されている、名前の分割不可能なコンポーネントのことです。

複合名は、命名規約に従って構成れた、0 個以上の基本名のシーケンスを表します。

たとえば、UNIX のパス名では、基本名は左から右に並べられ、スラッシュ (「/」) 文字で区切られています。UNIX のパス名 usr/local/bin は、usrlocal、および bin という、基本名のシーケンスを表す複合名です。また、インターネットの Domain Name System (DNS) の名前の場合は、右から左に並べられた基本名がドット (.) で区切られています。そのため、DNS 名の sales.Example.COM は、COMExample、および 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 で構成された合成名の表現です。

すべての名前が何らかのコンテキストを基準に解釈され、すべてのネーミング操作がコンテキストオブジェクトに対して実行されます。クライアントは、初期コンテキストオブジェクトを取得して、開始時に名前の解決を行います。

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

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

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

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

合成名前空間の例

以後の文章で、この図について説明しています
  • 複数のネーミングシステムを 1 つの合成名前空間で表現できます。この例の場合は、DNS がグローバルネーミングシステムとして使用されています。ここから、NDS と LDAP が分岐しています。
  • 各名前空間にはネーミングコンテキストを表す内部ノードがあり、これはディレクトリオブジェクトでもある可能性があります。また、任意の型のオブジェクトをリーフノードにすることができます。
  • InitialContext は、さまざまなネーミングおよびディレクトリシステム内の役立つ開始コンテキストへのバインディングを含むように構成されています。
  • アプリケーションは合成名前空間を参照するだけです。アプリケーションからは、ここに配置されている任意のネーミングシステムにバインドされている任意の型のオブジェクトにアクセスできます。
  • サービスは、JNDI 内の最上級のメンバーとして表示される独自の名前空間を組み込むことができます。
  • 任意のディレクトリサービスを追加でき、これらのディレクトリサービスには、クライアントアプリケーションを変更しなくてもアクセスできます。

4.3 URL と合成名

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 のクライアントから、複数の名前空間にまたがる名前が使用されているオブジェクトを参照できます。

4.4 イベント

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

目次 | 前へ | 次へ


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.