(57)【要約】【課題】エントリがいかなる特定場所にも物理的に存在する必要がなく、かつエントリに関する情報を用いてエントリをビュー内に階層的に配置する方法で、エントリを階層的にナビゲートするための技術を提供すること。【解決手段】本発明は、エントリがいかなる特定場所にも物理的に存在することを必要とせずに、ディレクトリ・サーバがエントリを階層的にナビゲートすることを容易化する、ディレクトリ・ビューを提供する。これらのエントリは、エントリに関する情報を用いて、ディレクトリ・ビューに階層に入れられる。1組のビューを与えられたユーザは、これらのビューの内、必要なエントリに達するために最も適切な1つを用いて、ナビゲートすることができる。ディレクトリ・サーバ内でのビュー検索は、フィルタ書き換え処理により行うことができる。
2005516280.tif 000002
【特許請求の範囲】
【請求項１】
異種のディレクトリ・エントリを含んだディレクトリ・サーバ内で、当該エントリを階層的にナビゲートする方法であって、
1つ以上のディレクトリ・ビューを作成するステップと、
当該エントリに関する情報を用いて、当該ディレクトリ・ビューを階層に編成するステップと、
当該ディレクトリ・ビューの内、当該エントリにナビゲートするために最も適切な1つを用いるステップと、
を有する方法。
【請求項２】
当該エントリが、いかなる特定場所にも物理的に存在する必要がない、請求項1の方法。
【請求項３】
当該ディレクトリ・サーバが、平坦なディレクトリ情報ツリーを有してもよい、請求項1の方法。
【請求項４】
当該ディレクトリ・ビューの存在が、当該ディレクトリ・サーバのクライアントに透過であり、かつ、
当該クライアントが、当該ディレクトリ・ビューを用いるための当該ディレクトリ・ビューに関する特別な知識を有する必要がない、
請求項1の方法。
【請求項５】
当該ディレクトリ・ビューの各々が、通常のエントリで始まる、請求項1の方法。
【請求項６】
当該ディレクトリ・ビューの各々が、フィルタ属性を含む特定のオブジェクト・クラスに属し、当該フィルタ属性が、当該ビューを記述するフィルタを含んでいる、請求項1の方法。
【請求項７】
階層的なディレクトリ構造が容易に得られるように、当該フィルタ属性が当該ビューから省略される、請求項6の方法。
【請求項８】
当該ディレクトリ・ビューの各々が、当該ビューのサブセットを提供するサブビューを有する、請求項1の方法。
【請求項９】
当該サブビューが、当該ディレクトリ・ビューとは異なる複数のサブジェクト領域を有する、請求項8の方法。
【請求項１０】
ディレクトリ・エントリと、
各ビューが当該ビューを記述するフィルタを含んでいる、ディレクトリ・ビューの階層と、
を含むディレクトリ・サーバ内で、当該ディレクトリ・ビュー階層内の当該ビューを、所与のフィルタを用いて検索する方法であって、
当該ビュー階層の最上位のビューである親のサブツリー検索となるように、当該所与のフィルタを書き換えるステップと、
当該書き換えられたフィルタを用いて、当該サブツリー検索を行うステップと、
を有する方法。
【請求項１１】
当該ディレクトリ・エントリが、いかなる特定場所にも物理的に存在する必要がない、請求項10の方法。
【請求項１２】
当該ディレクトリ・サーバが、平坦なディレクトリ情報ツリーを有する、請求項10の方法。
【請求項１３】
当該ビューの存在が、当該ディレクトリ・サーバのクライアントに透過であり、かつ、
当該クライアントが、当該ビューを用いるための当該ビューに関する特別な知識を必要としない、
請求項10の方法。
【請求項１４】
当該ディレクトリ・ビューの各々が、通常のエントリで始まる、請求項10の方法。
【請求項１５】
当該ディレクトリ・ビューの各々が、フィルタ属性を含んでいる特定のオブジェクト・クラスに属し、当該フィルタ属性が、当該ディレクトリ・ビューを記述するフィルタを含んでいる、請求項10の方法。
【請求項１６】
階層的なディレクトリ構造が容易に得られるように、当該フィルタ属性が当該ディレクトリ・ビューから省略される、請求項10の方法。
【請求項１７】
当該ディレクトリ・ビューの各々が、当該ビューのサブセットを提供するサブビューを有する、請求項10の方法。
【請求項１８】
当該サブビューが、当該ディレクトリ・ビューとは異なるサブジェクト領域を有する、請求項17の方法。
【請求項１９】
当該書き換えステップが、
(a) 当該ビューと、当該ビューのすべての先祖ビューとから、フィルタを収集して、第一サブフィルタを形成するステップと、
(b) 前記検索がサブツリー検索でない場合、すべての子孫ビューからフィルタをすべて収集して、第二サブフィルタを形成するステップと、
(c) 1レベル検索の場合は当該ビューのすべての子が検索内に含まれ、またはサブツリー検索の場合は当該ビューのすべての子孫が含まれるように、第三サブフィルタを加えるステップと、
(d) ステップ (a)〜(c) から得られた当該サブフィルタと当該所与のフィルタとを結合させて、当該書き換えられたフィルタを作るステップと、
をさらに含む、請求項10の方法。
【請求項２０】
ステップ (a) が、
(1) 最上位のビューから開始して、下方に作用するステップと、
(2) ステップ (a) で、論理AND演算子を用いて、各フィルタを当該第一サブフィルタに加えるステップと、
(3) 当該階層を下方に移動し、かつステップ (2) に行き、遂に当該ビューを実現するステップと、
をさらに有する、
請求項19の方法。
【請求項２１】
ステップ (b) が、
(1) 当該階層が終わるまで当該階層の下方に作用するステップと、
(2) ステップ (b) で、論理AND演算子と論理NOT演算子を用いて、各フィルタを当該第二サブフィルタに加えるステップと、
(3) 当該ビューのすべてのサブビューの精査が完了するまで、ステップ (2) を繰り返すステップと、
をさらに有する、請求項19の方法。
【請求項２２】
ステップ (c) が、
(1) サブツリー検索の場合は、
論理OR演算子と、
当該子孫ビューの特有の属性の構成要素を含め、かつ当該ビューの特有の属性を除外するフィルタと、
を用いるステップと、
(2) 1レベルの検索の場合は、
論理OR演算子と、
当該子ビューの特有の属性の構成要素を含め、かつ当該ビューのすべての子ビューに特有な相対的な属性を、論理NOT演算子を用いて除外するフィルタと、
を用いるステップと、
(3) ベース検索の場合は、「objectclass=nsview」フィルタ（「nsview」は当該ビューの前記オブジェクト・クラスである）を用いるステップと、
をさらに有する、請求項19の方法。
【請求項２３】
ステップ (d) が、
(1) ステップ (c) から当該の第三サブフィルタを、論理AND演算子を用いて前記所与の検索フィルタに結合させるステップと、
(2) ステップ (a) から得られた当該第一サブフィルタと、ステップ (b) から得られた当該第二サブフィルタとを、論理AND演算子を用いて前記所与の検索フィルタに結合させるステップと、
(3) ステップ (1) とステップ (2) とから得られたフィルタを、論理演算子ORを用いて結合させるステップと、
をさらに有する、請求項19の方法。
【請求項２４】
前記フィルタの書き換えが、フィルタを単純に連結させるステップ (d) のみ行えばよいように、ステップ (a)、（b）、(c) から得られた当該サブフィルタをキャッシュしてもよい、請求項19の方法。
【請求項２５】
複数のディレクトリ・エントリと、
当該ディレクトリ・エントリの階層的なナビゲーションを容易化する1組のディレクトリ・ビューと、
を有する、異種のディレクトリ情報を管理するためのディレクトリ・サーバ。
【請求項２６】
当該ディレクトリ・エントリが、いかなる特定場所にも物理的に存在する必要がない、請求項25のディレクトリ・サーバ。
【請求項２７】
平坦なディレクトリ情報ツリーをさらに有する、請求項25のディレクトリ・サーバ。
【請求項２８】
フィルタを書き換えることにより当該ディレクトリ・ビューを検索する手段、をさらに有する、請求項27のディレクトリ・サーバ。
【請求項２９】
当該ディレクトリ・ビューの存在が、当該ディレクトリ・サーバのクライアントに透過であり、かつ
当該クライアントが、当該ディレクトリ・ビューを用いるための当該ディレクトリ・ビューに関する特別な知識を有する必要がない、
請求項25のディレクトリ・サーバ。
【請求項３０】
当該ディレクトリ・ビューの各々が、通常のエントリで始まる、請求項25のディレクトリ・サーバ。
【請求項３１】
当該ディレクトリ・ビューの各々が、フィルタ属性を含む特定のオブジェクト・クラスに属し、当該フィルタ属性が、当該ディレクトリ・ビューを記述するフィルタを含んでいる、請求項25のディレクトリ・サーバ。
【請求項３２】
階層的なディレクトリ構造が容易に得られるように、当該フィルタ属性が当該ビューから省略される、請求項25のディレクトリ・サーバ。
【請求項３３】
当該ディレクトリ・ビューの各々が、当該ディレクトリ・ビューのサブセットを提供するサブビューを有する、請求項25のディレクトリ・サーバ。
【請求項３４】
当該サブビューが、当該ディレクトリ・ビューとは異なるサブジェクト領域を有する、請求項33のディレクトリ・サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体として、ディレクトリ・サービスに関する。より具体的には、この発明は、ディレクトリ・サーバ・ビューを作成し、かつこれらのディレクトリ・サーバ・ビューを用いてディレクトリ・サーバ内のエントリをナビゲートする、システムと方法に関する。
【背景技術】
【０００２】
ディレクトリ・サービスとは、組織内の人々と資源に関する情報の構造化されたリポジトリであって、組織内の管理とコミュニケーションを容易化するものである。ローカル・エリア・ネットワーク (LAN) 上、またはワイド・エリア・ネットワーク (WAN) 上では、ディレクトリ・サービスは、ユーザ、ソフトウエア、ハードウエア、および各々に割り当てられている様々な権利と方策などの、ネットワークのあらゆる側面を識別する。この結果、アプリケーションは、特定の資源がどこに物理的に配置されているのかを認識することなく情報にアクセスし、かつユーザは、基礎を成すネットワークのトポロジとプロトコルを意識することなく相互作用を行う。
【０００３】
異種ネットワークがディレクトリ情報を共有できるように、国際電気通信連合 （ITU: International Telecommunications Unions) は、「X.500」と呼ばれる共通構造を提案してきている。X.500は、「ホワイト・ページ (white pages)」、「ノウボット (Knowbot)」、および「フーイズ (whois)」などの電子ディレクトリ・サービスを含む1組の規格である。しかしながら、X.500が複雑で、かつシームレスなインターネット支援を欠くることから、LDAP (Lightweight DirectORy Access Protocol) が開発された。LDAPは、インターネット技術特別調査委員会 (IETF) の後援の下、進化し続けている。
【０００４】
LDAPは、America Online社（ネットスケープ・ディレクトリ・サーバ（登録商標））など多くの企業により採用されてきており、かつディレクトリ・サービスの事実上の規格になっている。LDAPとの互換性がある他の提供品には、Novell社のノベル・ディレクトリ・サービス (NDS: Novell Directory Services)（登録商標）と、Microsoft社のアクティブ・ディレクトリ (Active Directory)（登録商標）が含まれる。Netscape製品とNovell製品は、Windows NT（登録商標）用とUnix（登録商標）プラットフォーム用のものが入手可能である。ノベル・ディレクトリ・サービスは、Novellプラットフォーム上でも動作する。Microsoft社のアクティブ・ディレクトリは、Microsoft Windows 2000（登録商標）の不可欠な部分であり、かつ他のシステム上で走るディレクトリ・サービスとはインターフェイス可能だが、他のプラットフォームでは利用できない。
【０００５】
ディレクトリ・サービスは、集中型または分散型の格納場所に格納されている情報エントリの、追加、更新、および検索を行う標準的な方法なので、様々なエリアで多用されてきている。例えば、LDAPを用いれば、LDAP規格との互換性があるどのクライアントも、同じLDAP規格との互換性がある、どのディレクトリ・サーバとも通信することができる。
【０００６】
しかしながら、ディレクトリ・サーバの展開には、ユーザの選択が、平坦なディレクトリ情報ツリーまたは階層的なディレクトリ情報ツリーの何れかに限定されてしまうという問題がある。一方では、平坦なディレクトリ情報ツリーを作成することをユーザが選択する場合、ディレクトリ内のエントリをナビゲートすることが不便になってしまう。他方では、ディレクトリのナビゲートに有効な階層的なディレクトリ情報ツリーを作成することをユーザが選択する場合、階層を変化させる必要に応じることが不便になってしまう。
【０００７】
ディレクトリ内のエントリを移動させることを必要とせずに、エントリにマッピングされた任意の階層を作成できるディレクトリ・サーバを設けることが有利であろう。
【０００８】
ディレクトリ・サーバの構造変化をどれも、ディレクトリ・サーバのどのクライアントにも透過に保つことも有利であろう。
【０００９】
構造化されたディレクトリ情報ツリーが、ディレクトリ・サーバ内で容易に得られるようにすることも有利であろう。
【発明の開示】
【課題を解決するための手段】
【００１０】
本発明の好ましい実施例は、エントリがいかなる特定場所にも物理的に存在する必要がなく、かつエントリに関する情報を用いてエントリをビュー内に階層的に配置する方法で、エントリを階層的にナビゲートするための技術を提供する。1組のディレクトリ・ビューを与えられたユーザは、これらのディレクトリ・ビューの内、必要なエントリに到達するためにもっとも効果的な1つを用いて、ナビゲートすることができる。
【００１１】
本発明の好ましい一実施例の場合、ディレクトリ・ビューを作成しかつ用いることによって、ディレクトリ・サーバ内でエントリを階層的にナビゲートする方法が示されている。これらのエントリは、いかなる特定場所にも物理的に存在する必要がない。ディレクトリ・サーバは、平坦なディレクトリ情報ツリーを有していてもよい。ディレクトリ・ビューの存在は、ディレクトリ・サーバのクライアントには透過なので、クライアントは、ディレクトリ・ビューを用いるためのディレクトリ・ビューに関する特別な知識を有する必要がない。
【００１２】
ディレクトリ・ビューの各々は、通常のエントリで始まる。この好ましい方法は、以下のステップを有する。
・ディレクトリ・ビューを１つ以上作成するステップ。
・エントリに関する情報を用いて、これらのディレクトリ・ビューを階層に編成するステップ。
・これらのディレクトリ・ビューの内、エントリにナビゲートするために最適な1つを用いるステップ。
【００１３】
ディレクトリ・ビューの各々は、フィルタ属性を含む特定のオブジェクト・クラスに属する。このフィルタ属性には、ビューを記述するフィルタが含まれている。階層的なディレクトリ構造が容易に得られるように、このフィルタ属性をビューから省略してもよい。ディレクトリ・ビューの各々は、これらのビューのサブセットを提供するサブビューを有してもよい。これらのサブビューは、ディレクトリ・ビューとは異なるサブジェクト領域を有してもよい。
【００１４】
別の好ましい実施例の場合、フィルタを書き換えることにより、ディレクトリ・サーバ内のディレクトリ・ビューを検索する方法が提供される。この方法は、以下のステップを有する。
・所与のフィルタを書き換えて、ビュー階層内の最上位のビューである親のサブツリーと検索とするステップ。
・このサブツリー検索を、この書き換えられたフィルタを用いて行うステップ。
【００１５】
この方法の場合、ディレクトリ・エントリは、いかなる特定場所にも物理的に存在する必要はない。ディレクトリ・サーバは、平坦なディレクトリ情報ツリーを有してもよい。これらのビューの存在は、ディレクトリ・サーバのクライアントには透過なので、クライアントはビューを用いるためのビューに関する特別な知識を必要としない。ディレクトリ・ビューの各々は、通常のエントリで始まる。ディレクトリ・ビューの各々は、フィルタ属性を含む特定のオブジェクト・クラスに属する。このフィルタ属性には、ディレクトリ・ビューを記述するフィルタが含まれている。階層的なディレクトリ構造が容易に得られるように、フィルタ属性をディレクトリ・ビューから省略してもよい。ディレクトリ・ビューの各々は、これらのビューのサブセットを提供するサブビューを有してもよい。このサブビューは、ディレクトリ・ビューとは異なるサブジェクト領域を有してもよい。
【００１６】
幾つかの実施例の場合、上記に示した方法での書き換えステップは、以下のステップをさらに有する。
(a) この最上位のビューと、このビューのすべての先祖ビューからフィルタを収集して、第一サブフィルタを形成するステップ。
(b) この検索がサブツリー検索ではない場合、すべての子孫ビューからフィルタをすべて収集して、第二サブフィルタを形成するステップ。
(c) 1レベル検索の場合はビューのすべての子が検索内に含まれ、またはサブツリー検索の場合はビューのすべての子孫が含まれるように、第三サブフィルタを加えるステップ。
(d) ステップ (a)〜(c) から得られたサブフィルタと所与のフィルタとを結合させて、書き換えられたフィルタを作るステップ。
【００１７】
ステップ (a) は、以下のステップをさらに有する。
(1) 最上位のビューから開始して、下方に作用するステップ。
(2) 論理AND演算子を用いて、ステップ (a) の第一サブフィルタに各フィルタを加えるステップ。
(3) 階層を下方に移動し、かつステップ (2) に行き、遂にビューを実現するステップ。
【００１８】
ステップ (b) は、以下のステップをさらに有する。
(1) 階層が終わるまで、階層の下方に作用するステップ。
(2) 論理AND演算子と論理NOT演算子を用いて、(b) の第二サブフィルタに各フィルタを加えるステップ。
(3) ビューのすべてのサブビューの精査が完了するまで、ステップ (2) を繰り返すステップ。
【００１９】
ステップ (c) は、以下のステップをさらに有する。
(1) サブツリー検索の場合は、論理OR演算子と、子孫ビューに特有な属性の構成要素を含めかつビューに特有な属性を除外するフィルタと、を用いるステップ。
(2) 1レベル検索の場合、
論理OR演算子と、
子ビューに特有な属性の構成要素を含め、かつビューのすべての子ビューに特有な相対的な属性を論理NOT演算子を用いて除外するフィルタと、
を用いるステップ。
(3) ベース検索の場合、「objectclass=nsview」フィルタ（「nsview」は、ビューのオブジェクト・クラスである）を用いるステップ。
【００２０】
ステップ (d) は、以下のステップをさらに有する。
(1) ステップ (c) から得られた第三サブフィルタを、論理AND演算子を用いて所与の検索フィルタに結合するステップ。
(2) ステップ (a) から得られた第一サブフィルタとステップ (b) から得られた第二サブフィルタとを、論理AND演算子を用いて所与の検索フィルタに結合させるステップ。
(3) ステップ (1) とステップ (2) から得られたフィルタを、論理OR演算子を用いて結合させるステップ。
【００２１】
フィルタの書き換えが、フィルタを単純に連結させるステップ (d) のみを行えばよいように、ステップ (a)、(b)、(c) から得られたサブフィルタをキャッシュしてもよい。
【００２２】
本発明の別の好ましい実施例の場合、ディレクトリ情報を管理するためのディレクトリ・サーバが設けられる。このディレクトリ・サーバは、以下を有する。
・複数のディレクトリ・エントリ。
・ディレクトリ・エントリの階層的なナビゲーションを容易化する1組のディレクトリ・ビュー。
【００２３】
これらのディレクトリ・エントリは、いかなる特定場所にも物理的に存在する必要はない。ディレクトリ・サーバは、平坦なディレクトリ情報ツリーをさらに含んでもよい。ディレクトリ・サーバは、フィルタを書き換えることによりディレクトリ・ビューを検索する手段を、さらに含んでもよい。ディレクトリ・ビューの存在はディレクトリ・サーバのクライアントには透過なので、このクライアントは、ディレクトリ・ビューを用いるためのディレクトリ・ビューに関する特別な知識を有する必要はない。ディレクトリ・ビューの各々は、通常のエントリで始まる。ディレクトリ・ビューの各々は、フィルタ属性を含む特定のオブジェクト・クラスに属する。このフィルタ属性には、ディレクトリ・ビューを記述するフィルタが含まれている。階層的なディレクトリ構造が容易に得られるように、フィルタ属性をビューから省略してもよい。ディレクトリ・ビューの各々は、ディレクトリ・ビューのサブセットを提供するサブビューを有してもよい。これらのサブビューは、ディレクトリ・ビューとは異なるサブジェクト領域を有してもよい。
【発明を実施するための最良の形態】
【００２４】
ディレクトリ・サーバ・ビューとは、エントリがいかなる特定場所にも物理的に存在する必要がなく、かつエントリに関する情報を用いてエントリをビュー階層内に配置する方法によって、エントリを階層的にナビゲートする技術のことである。1組のビューがディレクトリ上で実現されていれば、ユーザはこれらのビューの内、必要なエントリに達するために最も適切な1つを用いて、ナビゲートすることができる。
【００２５】
例えば、ユーザのターゲット・エントリが、マウンテン・ビュー (Mountain View) にあるものである場合、最も適切なビューは、おそらく、ロケーションに基づく情報を利用して下方へナビゲートし始めるビューである。しかしながら、このターゲット・エントリがある組織に関する事柄である場合、組織ビューが最適かも知れない。両方のビューは、ディレクトリ・サーバ内に同時に存在し、かつ同じ組のエントリ内で動作する。これらのディレクトリ構造のバージョンを表示する際のこれらのビューの問題は、異なるものである。
【００２６】
したがって、ディレクトリ・サーバ・ビューは、仮想的なディレクトリ情報ツリーとして見なすことができる。ディレクトリ・サーバに、本発明のディレクトリ・ビューを展開させれば、平坦なディレクトリ情報ツリー以外のいかなるディレクトリ構造も不要となる。
【００２７】
1組の階層を作成する方法の1つは、ディレクトリに内在する、階層を利用する能力を用いることである。以下の好ましい実施例の場合、ビューを実現させる、ディレクトリ固有の特徴、すなわちディレクトリの階層的なディレクトリ情報ツリーと、ディレクトリのフィルタによる検索能力とが用いられる。
【００２８】
各ビューは、「nsContainer」または「organizationalunit」オブジェクトなどの通常のエントリで始まる。このエントリは、
(1) オブジェクト・クラスns-viewが、エントリがディレクトリ・ビューであることを特定していること、
(2) 属性が、ns-view-filterであること、
などの特定の特徴を必須とする。
【００２９】
ビューは、親ビューのサブセットを提供するサブビューを有してもよい。従来のエントリをビュー内に含めるという制約はない。しかしながら、必要な属性を移植させる特定の論理をおそらく用いて、ビュー内で作成されたエントリを最上位のビューである親に切り換え、目標とされているビュー内にこの属性が現れるようにさせることが考えられ得るであろう。階層的な編成が容易に得られるように、ビューは ns-view-filter 属性を省略してもよい。この場合、ビュー処理は、このビュー上の１レベル検索に対して発生しない。
【００３０】
図1を参照すると、例示的なディレクトリ・ビューの階層が示されている。この階層は、親ビュー101を有し、親ビュー101は、ns-view-filter (l=CA) を有している。親ビュー101には、ns-view-filter (l=Mountain View) を有するビュー102と、ns-view-filter (l=San Jose) を有するビュー103との、2つのサブビューが含まれている。
【００３１】
ns-view-filter属性は、管理者により作成された、ビューを記述するフィルタを含んでいることが予想される。例えば、ロケーションに基づいたビューの最上部は「c=USA」という値を有し、かつ組織に基づいたビューは「&(dc=netscape)(dc=com)」という値を有してもよい。
【００３２】
ビュー上で検索が行われる際は、検索処理が始まる前にこの検索は書き換えられる。検索のベースは、ディレクトリ・ビューを参照しなければならず、さもなければ、ビュー処理が生じてはならないことに留意されたい。検索は、ビュー階層内の最上位のビューが親となるように書き換えられる。検索タイプは、サブツリー検索となるように書き換えられる。検索フィルタが書き換えられて正確な検索が行われると、ビューが実現する。
【００３３】
図2を参照すると、フィルタを書き換えるための以下のステップが示されている。
・ステップ201：ビューと、このビューのすべての先祖ビューからフィルタを収集して、サブフィルタを形成する。
・ステップ202：この検索がサブツリー検索ではない場合、すべての子孫ビューからフィルタをすべて収集して、別のサブフィルタを形成する。
・ステップ203：1レベル検索の場合は、ビューのすべての子ビューが検索に含まれるようにさらなるフィルタを加え、またはサブツリー検索の場合は、ビューのすべての子孫が含まれるように、さらなるフィルタを加える。
・ステップ204：ステップ201〜203から得られたフィルタを所与のフィルタに結合させて、書き換えられたフィルタを作る。
【００３４】
図3は、処理ステップ201のステップをさらに示している。
・ステップ301：最上位のビューから開始して、下方に作用する。
・ステップ302：論理AND演算子を用いて、各フィルタをサブフィルタに加える。
・ステップ303：この階層を下方に移動して、かつステップ302に行き、遂にビューを実現する。
【００３５】
図4は、処理ステップ202のステップをさらに示している。
・ステップ401：階層が終わるまで、階層の下方に作用する。
・ステップ402：論理AND演算子と論理NOT演算子を用いて、各フィルタをサブフィルタに加える。
・ステップ403：ビューのすべてのサブビューの精査が完了するまで、ステップ402を繰り返す。
【００３６】
図5は、処理ステップ203のステップをさらに示している。
・ステップ501：サブツリー検索の場合、論理OR演算子と、当該子孫ビューに特有の属性 (DN) の構成要素を含めかつビューのDNを除外するフィルタと、を用いる。
・ステップ502：1レベル検索の場合、論理OR演算子と、子ビューのDNの構成要素を含めかつ論理NOTを用いてビューのすべての子ビューのRDNを除外するフィルタと、を用いる。
・ステップ503：ベース検索の場合、「objectclass=nsview」フィルタを用いる。
【００３７】
図6は、処理ステップ204のステップをさらに示している。
・ステップ601：ステップ203から得られたサブフィルタを、論理AND演算子を用いて所与の検索フィルタに結合させる。
・ステップ602：ステップ201とステップ202から得られたサブフィルタを、論理AND演算子を用いて所与の検索フィルタに結合させる。
・ステップ603：ステップ601とステップ602から得られたフィルタを、論理OR演算子を用いて結合させる。
【００３８】
この方法を用いれば、ディレクトリ・ツリーがどのように配列されていようと、またはビューがいかに複雑であろうと、いかなる検索も、ディレクトリ・ツリーの特定のビューに順応できるように書き換え可能となることが理解できる。
【００３９】
ビューは、ディレクトリ・ツリー内におけるそれら自体の配置を認識しているので、特定のブランチに適用可能であることにも留意されたい。例えば、ユーザが依然、構造化されたディレクトリ情報ツリーを用いている場合、ローカリティに基づいたビューは「ou=sales」の下に配置してもよいので、販売員をロケーションにより見つけ出すことができる。
【００４０】
このシステム設計により、サーバの呼び出し期間全体に渡って、たとえ変化するとしても本質的に頻繁には変化しないフィルタのキャッシングが可能となる。これらのフィルタをキャッシュしてしまえば、検索動作の間、ビューのすべての子孫を分析して、これらの子孫をフィルタに加える必要がなくなる。キャッシュ可能なフィルタには、ステップ201〜204から得られるフィルタが含まれる。このことにより、検索の間に行うべき唯一の作業は、ステップ204のみとなる。これは、当業者には既知のように、フィルタを単純に連結するものである。
【００４１】
本発明の明白な特徴の1つは、ディレクトリ・サーバ・ビューが、他のどのエントリにも似ており、かつ、ディレクトリ・サーバ・ビューの階層が、他のどの階層にも似ていることである。ビューは「ビューである」という事実は、クライアント・アプリケーションには透過なので、ビューを用いるためのビューに関する特別な知識は必要ではない。この属性の意味は、これらのビューを既存のインストレーション内で作用させることができ、かつこれらのビューを、既存のカスタム・クライアント、およびディレクトリ・サーバと同梱のコマンドライン・ユーティリティなどのサード・パーティのベンダ・クライアントも同様に使用できるということである。
【００４２】
新たなビューを加えたり、または既存のビュー階層を再編成することが容易なので、ディレクトリ情報ツリーが平坦で、かつビューが1組になっていることは、管理者が、もはや、企業の再編成、および自分達がディレクトリ内に作成する作業に関する懸念を抱く必要がないことを意味する。
【００４３】
これまでに示された例はすべて、ロケーションなどの1つのサブジェクト領域を、サブビューが階層的に掘り下げてゆくことに類似しているが、ビューのサブジェクトを切り換えることが同様に容易となるであろうことを示唆している。例えば、ロケーションに基づいたビューは、都市レベルでは、デパート、建物、および場合によっては、お気に入りの飲み物に対してさえもビューの選択を提示することにより、継続させることができる。
【００４４】
本明細書に開示されているディレクトリ・ビューは、ユーザが問題を解決する多くの機会を広げることにより、ディレクトリ・サーバ・ベンダーの価値を高める。本発明を用いれば、ユーザは平坦なディレクトリ情報ツリーと1組のビューしか必要としなくても、ディレクトリ・ナビゲーションが容易なものになり、かつ階層的なディレクトリ情報ツリーを変化させるには別のビューを加えなければならないユーザの問題が解決される。本発明は、さらに、ディレクトリ・エントリをビューするための方法を複数提供するので、作業慣行を静的モデルよりも柔軟なものにさせる。
【００４５】
本発明は、ステートレス・ネットワーク内の（ビジネス、娯楽、情報、またはそれ以外のものに関連しているかを問わない）セッションへの割り込みを継続させたいと望む者なら誰でも利用できる他の自動化されたツールにより具現化してもよい。
【００４６】
本明細書では、本発明は好ましい実施例を参照して説明されているが、本明細書に説明されている適用例を、本発明の精神と範囲から逸脱することなく他の適用例に置き換えてもよいことを、当業者は容易に認識するであろう。
【００４７】
したがって、本発明は請求項のみにより制限されるべきである。
【図面の簡単な説明】
【００４８】
【図１】ディレクトリ・ビューの階層のサンプルを示すブロック図である。
【図２】ビュー検索時のフィルタを書き換えるステップを示すフローチャートである。
【図３】図2のステップ201の詳細を示すフローチャートである。
【図４】図2のステップ202の詳細を示すフローチャートである。
【図５】図2のステップ203の詳細を示すフローチャートである。
【図６】図2のステップ204の詳細を示すフローチャートである。
【符号の説明】
【００４９】
101…ns-view-filter (l=CA) を有する親ビュー
102…ns-view-filter (l=Mountain View) を有するビュー
103…ns-view-filter (l=San Jose) を有するビュー
【図１】
2005516280.tif 000003
【図２】
2005516280.tif 000004
【図３】
2005516280.tif 000005
【図４】
2005516280.tif 000006
【図５】
2005516280.tif 000007
【図６】
2005516280.tif 000008
【手続補正書】
【提出日】平成15年5月15日(2003.5.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
異種のディレクトリ・エントリを含んだディレクトリ・サーバ内で、当該エントリを階層的にナビゲートする方法であって、
1つ以上のディレクトリ・ビューを作成するステップと、
当該エントリに関する情報を用いて、当該ディレクトリ・ビューを階層に編成するステップと、
当該エントリに対し最も適切な当該ディレクトリ・ビューの1つを用いる当該エントリに階層的にナビゲートするステップと、
を有する方法。
【請求項２】
当該エントリが、いかなる特定場所にも物理的に存在する必要がない、請求項1の方法。
【請求項３】
当該ディレクトリ・サーバが、平坦なディレクトリ情報ツリーを有してもよい、請求項1の方法。
【請求項４】
当該ディレクトリ・ビューの存在が、当該ディレクトリ・サーバのクライアントに透過であり、かつ、
当該クライアントが、当該ディレクトリ・ビューを用いるための当該ディレクトリ・ビューに関する特別な知識を有する必要がない、
請求項1の方法。
【請求項５】
当該ディレクトリ・ビューの各々が、通常のエントリで始まる、請求項1の方法。
【請求項６】
当該ディレクトリ・ビューの各々が、フィルタ属性を含む特定のオブジェクト・クラスに属し、当該フィルタ属性が、当該ビューを記述するフィルタを含んでいる、請求項1の方法。
【請求項７】
階層的なディレクトリ構造が容易に得られるように、当該フィルタ属性が当該ビューから省略される、請求項6の方法。
【請求項８】
当該ディレクトリ・ビューの各々が、当該ビューのサブセットを提供するサブビューを有する、請求項1の方法。
【請求項９】
当該サブビューが、当該ディレクトリ・ビューとは異なる複数のサブジェクト領域を有する、請求項8の方法。
【請求項１０】
ディレクトリ・エントリと、
各ビューが当該ビューを記述するフィルタを含んでいる、ディレクトリ・ビューの階層と、
を含むディレクトリ・サーバ内で、当該ディレクトリ・ビュー階層内の当該ビューを、所与のフィルタを用いて検索する方法であって、
当該ビュー階層の最上位のビューである親のサブツリー検索となるように、当該所与のフィルタを書き換えるステップと、
当該書き換えられたフィルタを用いて、当該サブツリー検索を行うステップと、
を有する方法。
【請求項１１】
当該ディレクトリ・エントリが、いかなる特定場所にも物理的に存在する必要がない、請求項10の方法。
【請求項１２】
当該ディレクトリ・サーバが、平坦なディレクトリ情報ツリーを有する、請求項10の方法。
【請求項１３】
当該ビューの存在が、当該ディレクトリ・サーバのクライアントに透過であり、かつ、
当該クライアントが、当該ビューを用いるための当該ビューに関する特別な知識を必要としない、
請求項10の方法。
【請求項１４】
当該ディレクトリ・ビューの各々が、通常のエントリで始まる、請求項10の方法。
【請求項１５】
当該ディレクトリ・ビューの各々が、フィルタ属性を含んでいる特定のオブジェクト・クラスに属し、当該フィルタ属性が、当該ディレクトリ・ビューを記述するフィルタを含んでいる、請求項10の方法。
【請求項１６】
階層的なディレクトリ構造が容易に得られるように、当該フィルタ属性が当該ディレクトリ・ビューから省略される、請求項10の方法。
【請求項１７】
当該ディレクトリ・ビューの各々が、当該ビューのサブセットを提供するサブビューを有する、請求項10の方法。
【請求項１８】
当該サブビューが、当該ディレクトリ・ビューとは異なるサブジェクト領域を有する、請求項17の方法。
【請求項１９】
当該書き換えステップが、
(a) 当該ビューと、当該ビューのすべての先祖ビューとから、フィルタを収集して、第一サブフィルタを形成するステップと、
(b) 前記検索がサブツリー検索でない場合、すべての子孫ビューからフィルタをすべて収集して、第二サブフィルタを形成するステップと、
(c) 1レベル検索の場合は当該ビューのすべての子が検索内に含まれ、またはサブツリー検索の場合は当該ビューのすべての子孫が含まれるように、第三サブフィルタを加えるステップと、
(d) ステップ (a)〜(c) から得られた当該サブフィルタと当該所与のフィルタとを結合させて、当該書き換えられたフィルタを作るステップと、
をさらに含む、請求項10の方法。
【請求項２０】
ステップ (a) が、
(1) 最上位のビューから開始して、下方に作用するステップと、
(2) ステップ (a) で、論理AND演算子を用いて、各フィルタを当該第一サブフィルタに加えるステップと、
(3) 当該階層を下方に移動し、かつステップ (2) に行き、遂に当該ビューを実現するステップと、
をさらに有する、
請求項19の方法。
【請求項２１】
ステップ (b) が、
(1) 当該階層が終わるまで当該階層の下方に作用するステップと、
(2) ステップ (b) で、論理AND演算子と論理NOT演算子を用いて、各フィルタを当該第二サブフィルタに加えるステップと、
(3) 当該ビューのすべてのサブビューの精査が完了するまで、ステップ (2) を繰り返すステップと、
をさらに有する、請求項19の方法。
【請求項２２】
ステップ (c) が、
(1) サブツリー検索の場合は、
論理OR演算子と、
当該子孫ビューの特有の属性の構成要素を含め、かつ当該ビューの特有の属性を除外するフィルタと、
を用いるステップと、
(2) 1レベルの検索の場合は、
論理OR演算子と、
当該子ビューの特有の属性の構成要素を含め、かつ当該ビューのすべての子ビューに特有な相対的な属性を、論理NOT演算子を用いて除外するフィルタと、
を用いるステップと、
(3) ベース検索の場合は、「objectclass=nsview」フィルタ（「nsview」は当該ビューの前記オブジェクト・クラスである）を用いるステップと、
をさらに有する、請求項19の方法。
【請求項２３】
ステップ (d) が、
(1) ステップ (c) から当該の第三サブフィルタを、論理AND演算子を用いて前記所与の検索フィルタに結合させるステップと、
(2) ステップ (a) から得られた当該第一サブフィルタと、ステップ (b) から得られた当該第二サブフィルタとを、論理AND演算子を用いて前記所与の検索フィルタに結合させるステップと、
(3) ステップ (1) とステップ (2) とから得られたフィルタを、論理演算子ORを用いて結合させるステップと、
をさらに有する、請求項19の方法。
【請求項２４】
前記フィルタの書き換えが、フィルタを単純に連結させるステップ (d) のみ行えばよいように、ステップ (a)、（b）、(c) から得られた当該サブフィルタをキャッシュしてもよい、請求項19の方法。
【請求項２５】
複数のディレクトリ・エントリと、
当該ディレクトリ・エントリの階層的なナビゲーションを容易化する1組のディレクトリ・ビューと、
当該ディレクトリ・エントリに階層的にナビゲートするナビゲーション手段と、
を有する、異種のディレクトリ情報を管理するためのディレクトリ・サーバ。
【請求項２６】
当該ディレクトリ・エントリが、いかなる特定場所にも物理的に存在する必要がない、請求項25のディレクトリ・サーバ。
【請求項２７】
平坦なディレクトリ情報ツリーをさらに有する、請求項25のディレクトリ・サーバ。
【請求項２８】
フィルタを書き換えることにより当該ディレクトリ・ビューを検索する手段、をさらに有する、請求項27のディレクトリ・サーバ。
【請求項２９】
当該ディレクトリ・ビューの存在が、当該ディレクトリ・サーバのクライアントに透過であり、かつ
当該クライアントが、当該ディレクトリ・ビューを用いるための当該ディレクトリ・ビューに関する特別な知識を有する必要がない、
請求項25のディレクトリ・サーバ。
【請求項３０】
当該ディレクトリ・ビューの各々が、通常のエントリで始まる、請求項25のディレクトリ・サーバ。
【請求項３１】
当該ディレクトリ・ビューの各々が、フィルタ属性を含む特定のオブジェクト・クラスに属し、当該フィルタ属性が、当該ディレクトリ・ビューを記述するフィルタを含んでいる、請求項25のディレクトリ・サーバ。
【請求項３２】
階層的なディレクトリ構造が容易に得られるように、当該フィルタ属性が当該ビューから省略される、請求項25のディレクトリ・サーバ。
【請求項３３】
当該ディレクトリ・ビューの各々が、当該ディレクトリ・ビューのサブセットを提供するサブビューを有する、請求項25のディレクトリ・サーバ。
【請求項３４】
当該サブビューが、当該ディレクトリ・ビューとは異なるサブジェクト領域を有する、請求項33のディレクトリ・サーバ。
【国際調査報告】
2005516280.tif 000009
2005516280.tif 000010
2005516280.tif 000011