(57)【要約】【課題】情報にアクセスするためのリクエストの負荷を軽減する。【解決手段】複数のオブジェクトについての属性を第１の概要カタログを前記第２の概要カタログに格納しておく。第１の概要カタログを前記第２の概要カタログと関連付け、それにより前記第１の概要カタログおよび前記第２の概要カタログを結合し、同じ属性情報を保持する。【選択図】図４
2007213592.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを記憶する少なくとも１つの記憶装置およびオペレーティングシステムを実行するプロセッサを有するデータ処理システムにおけるコンピュータ実行方法において、
ファイルの問い合わせから得られる情報を記憶するためのオブジェクトの選択のクラスを前記オペレーティングシステムにより提供するステップと、
ファイルのグループにアクセスして前記ファイルから選択の情報を取得するステップと、
前記記憶装置中のオブジェクトの選択のクラスの第１のオブジェクトの中に前記選択の情報を記憶するステップと、
第１のオブジェクトについて問い合わせを行って前記第１のオブジェクトに記憶された前記選択の情報の一部分を取得するステップと、
前記記憶装置中の、オブジェクトの選択のクラスの第２のオブジェクトの中に前記一部分を記憶するステップと
を実行することを特徴とするコンピュータ実行方法。
【請求項２】
請求項１に記載のコンピュータ実行方法において、前記ファイルのグループにアクセスするステップは当該ファイルのグループについて問い合わせを行って前記ファイルから前記選択の情報を取得するステップを有することを特徴とするコンピュータ実行方法。
【請求項３】
請求項１に記載のコンピュータ実行方法において、前記記憶装置中のオブジェクトの選択のクラスの第１のオブジェクトの中に前記選択の情報を記憶するステップは、さらに、前記ファイルのグループの中の各ファイルについて前記第１のオブジェクトの中に別のエントリを記憶するステップを有し、各エントリは前記ファイルから得られる選択の情報を保持することを特徴とするコンピュータ実行方法。
【請求項４】
請求項１に記載のコンピュータ実行方法において、前記記憶装置中のオブジェクトの選択のクラスの第１のオブジェクトの中に前記選択の情報を記憶するステップは、さらに、前記第１のオブジェクト中のエントリについて前記第２のオブジェクトの中に別のエントリを記憶するステップを有することを特徴とするコンピュータ実行方法。
【請求項５】
請求項１に記載のコンピュータ実行方法において、さらに、前記ファイルのグループの中の各ファイルについての、前記ファイルにアクセス可能とするためのアクセス情報を前記第１のオブジェクトの中に記憶するステップを実行することを特徴とするコンピュータ実行方法。
【請求項６】
請求項１に記載のコンピュータ実行方法において、さらに、前記ファイルのグループの中の各ファイルについての、前記ファイルにアクセス可能とするためのアクセス情報を前記第２のオブジェクトの中に記憶するステップを実行することを特徴とするコンピュータ実行方法。
【請求項７】
ファイルを記憶する少なくとも１つの記憶装置およびオペレーティングシステムを実行するプロセッサを有するデータ処理システムにおけるコンピュータ実行方法において、
前記オペレーティングシステムにおいて概要カタログのデータのタイプを定義するステップと、
前記概要カタログのデータのタイプを操作するための関数を提供するステップと、
ファイルのグループにアクセスして前記ファイルから属性情報を取得する取得するステップと、
前記提供された関数を使用して、前記ファイルのアクセスにより種痘された属性情報を第１の概要カタログの中に記憶し、そこでは、前記第１の概要カタログは各ファイルについてのエントリを有し、各前記エントリは前記ファイルから取得された属性情報を保持しているステップと、
前記ファイルのグループの各ファイルについて前記ファイルにアクセスするための女王を前記第１の概要カタログの中に記憶するステップと、
前記第１の概要カタログについて問い合わせを行って、前記ファイルのグループについての、前記第１の概要カタログ中に既往された選択の属性情報を取得するステップと、
前記第１の概要カタログについての問い合わせにより取得された選択の属性情報を、前記記憶装置上の第２の概要カタログのデータタイプの第２の概要カタログの中に記憶するステップと
を実行することを特徴とするコンピュータ実行方法。
【請求項８】
請求項７に記載のコンピュータ実行方法において、前記ファイルのグループにアクセスするステップは、前記ファイルのグループについて問い合わせを行って前記ファイルから属性情報を取得するステップを有することを特徴とするコンピュータ実行方法。
【請求項９】
請求項７に記載のコンピュータ実行方法において、さらに、前記第１の概要カタログの中に記憶されたファイルのグループ中のファイルの１つにアクセスするための情報を使用して前記ファイルにアクセスするステップをさらに実行することを特徴とするコンピュータ実行方法。
【請求項１０】
請求項７に記載のコンピュータ実行方法において、さらに、前記第２の概要カタログの中に記憶されたファイルのグループ中のファイルの１つにアクセスするための情報を使用して前記ファイルにアクセスするステップをさらに実行することを特徴とするコンピュータ実行方法。
【請求項１１】
複数のコンピュータシステムを有する分散システムであって、各コンピュータシステムが少なくとも１つの記憶装置および少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは分散オペレーティングシステムを実行する分散システムにおけるコンピュータ実行方法において、
前記分散オペレーティングシステムにおいて概要カタログのデータのタイプを定義するステップと、
第１の概要カタログおよび第２の概要カタログを提供するステップであって、そこでは、前記第１の概要カタログおよび第２の概要カタログは異なる複数のオブジェクトから得られる属性情報を保持しているステップと、
前記第１の概要カタログを前記第２の概要カタログと関連付け、それにより前記第１の概要カタログおよび前記第２の概要カタログを結合し、同じ属性情報を保持するステップと
を実行することを特徴とするコンピュータ実行方法。
【請求項１２】
分散オペレーティングシステムを実行する複数のコンピュータシステムおよびファイルを記憶する複数の記憶装置を有する分散システムにおけるコンピュータ実行法において、
分散オペレーティングシステムを使用して、概要カタログのオブジェクトの属性を示し、複数の概要カタログのオブジェクトについて処理するための関数を定義する概要カタログのオブジェクトのクラスを定義するステップと、
前記概要カタログのオブジェクトのクラスのインスタンスを生成するステップと、
ファイルについての問い合わせを実行するステップと、
前記概要カタログオブジェクトを使用して前記問い合わせの結果を記憶するステップと
をお実行することを特徴とするコンピュータ実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、一般に、データ処理システムに関し、具体的には、データ処理システム内における概要カタログ（サマリー・カタログ）の使用に関する。
【背景技術】
【０００２】
従来のほとんどの分散システムでは、遠隔地に配置されたファイルに関する情報を発見することは困難である。従来のシステムの多くは、このような情報を発見するための手段を設けているが、この手段は、特に扱いにくいものである。とりわけ、この手段は、時間を浪費し、分散システム内に多くの通信を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
さらに、これらのシステムの多くでは、このような情報を格納する周知の場所といったものはない。このような周知の場所を設けているシステムにおいて、この情報にアクセスするためのリクエストの負荷は、非常に大きなものとなり、また、情報へのアクセスを得るために競合するプロセス間の調整が、複雑なものとなる。
【０００４】
従来のデータベース・システムのあるものは、データベース内に含まれる内容をインデックスするメカニズムを備えている。例えば、従来のデータベース・システムのいくつかは、データベース内のインデックスとして機能する逆リストを備えている。他のデータベース・システムは、データベースから選択された情報を保持するビュー（すなわち、仮想テーブル）を備えている。しかし、これらの従来のデータベース・システムのいずれも、システム・レベルのオブジェクトへの広範囲な様式で、このような技術を利用していない。
【課題を解決するための手段】
【０００５】
本発明の一形態は、ファイルを記憶する少なくとも１つの記憶装置およびオペレーティングシステムを実行するプロセッサを有するデータ処理システムにおけるコンピュータ実行方法において、ファイルの問い合わせから得られる情報を記憶するためのオブジェクトの選択のクラスを前記オペレーティングシステムにより提供するステップと、ファイルのグループにアクセスして前記ファイルから選択の情報を取得するステップと、前記記憶装置中のオブジェクトの選択のクラスの第１のオブジェクトの中に前記選択の情報を記憶するステップと、第１のオブジェクトについて問い合わせを行って前記第１のオブジェクトに記憶された前記選択の情報の一部分を取得するステップと、前記記憶装置中の、オブジェクトの選択のクラスの第２のオブジェクトの中に前記一部分を記憶するステップとを実行することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、ファイルの属性を複数の概要カタログに格納し、複数の概要カタログを関連付けることにより、大きな仮想の１つの概要カタログが実現される。これにより、分散システムの各コンピュータに対してファイルの問い合わせを行う必要がなくなり、情報（ファイル、オブジェクト等）にアクセスするためのリクエストの負荷が軽減する。
【発明を実施するための最良の形態】
【０００７】
この発明の好ましい実施例は、概要カタログのデータ構造体の使用をサポートするものである。特に、この実施例は、このような構造体の定義および構造体上で操作される関数セットを備えている。各概要カタログは、オブジェクト（後に定義する）から得られる、選ばれた属性リストを保持する。概要カタログは、オブジェクトおよび予め定められたオブジェクト・セット内のオブジェクトの属性を高速に突き止めるための簡単な使用と効率的なメカニズムを提供する。概要カタログは、問合せ結果を保持することもできる。一方、概要カタログは、問合せ以外のメカニズムによって生成されることも可能である。
【０００８】
概要カタログが単なる専用化されたデータベースでないことが分かるであろう。概要カタログは、分散形態において機能し、概要カタログ内からのオブジェクトに直接アクセスするための手段を提供する。さらに、概要カタログは、実世界の変化に追従し、ソース・オブジェクトとの一貫性を維持するためのメカニズムを内部に構築しておくこともできる。
【０００９】
この実施例において、概要カタログはオブジェクトである。オブジェクトとして、概要カタログに関して、問合せが行われ、概要カタログは問合せ結果を作成する。一方、問合せ結果を、別の概要カタログに格納してもよい。したがって、概要カタログは、「再帰的」（リカーシブ）な性質を有する。また、概要カタログは、そこで実行される他の処理（例えば、一般にオブジェクト上で実行される処理）を備えていてもよい。概要カタログはレプリケート（複製）され、分散システム上に分散される複数のコピーが生成される。さらに、概要カタログとこの概要カタログのオリジナルであるソース・オブジェクトとの間の一貫性を維持するために、概要カタログは「収集者」を備えることもできる。
【００１０】
この実施例は、オブジェクト指向型の環境において実施される。しかし、この発明がオブジェクト指向型環境における実現に制限されるものでないことはいうまでもない。むしろ、この発明は、非オブジェクト指向型環境に適した他の実施例で実施することもできる。
【００１１】
概要カタログ・オブジェクトの詳細について説明する前に、この実施例に関連したいくつかの概念を最初に紹介する。このような概念の一つは、「オブジェクト」という概念である。オブジェクトは、データを保持する論理的な構造であり、関数へのポインタを保持してもよい（データ上を操作される、以下の「インタフェース」の説明を参照）。この実施例において、オブジェクトは、ある特定の構造を有するインスタンス・データとして、「属性」を保持する（オブジェクトは他のデータを保持することもできる）。その不活性状態ないし閉鎖状態において、オブジェクトは、ファイルとして永続的に格納される。
【００１２】
この実施例に密接に関連するもう一つの概念は、「インタフェース」という概念である。インタフェースは、論理的に関係した関数のグループであって、名前をもつものである。インタフェースは、関係した関数のグループ用のシグネチャ（例えば、パラメータ）を指定する。インタフェースは、関数を実現するコードを備えていない。関数を実現するコードは、オブジェクトに備えられている。インタフェースのインスタンス用のコードを備えているオブジェクトは、そのインタフェースを「サポートする」と言われる。インタフェースをサポートするオブジェクトにより提供されるコードは、そのシグネチャ、およびそのインタフェース内で指定された暗黙のセマンティクスに従わなければならない。
【００１３】
また、「モニカ」という概念が、この発明に関連している。形式的には、モニカは、マイクロソフト社（ワシントン州のレッドモンド）によって開発されたオブジェクト・リンキング・アンド・エンベッディング（ＯＬＥ：Ｏｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｉｎｇ）２．０  プロトコルによって提供されるような、標準化されたＩＭｏｎｉｋｅｒインタフェースをサポートするオブジェクトである。非形式的には、モニカは、オブジェクトが実行状態にされるように、オブジェクトへ「結びつける」（バインドする）手段である引数ポインタである。バインドは、モニカがオブジェクトへの実際のメモリ・ポインタを参照し、提供するオブジェクトのロードを認める。換言すると、モニカは、そのモニカがポイントするオブジェクトによってサポートされる関数を開始させる能力を備える。モニカによってサポートされるＩＭｏｎｉｋｅｒインタフェースは、そのモニカがポイントするオブジェクトへバインドするための関数を提供する。
【００１４】
図１は、分散システムの一例を示している。分散システム１０は、この実施例の実施に適したものである。分散システム１０は、多くの異なるコンポーネントを相互接続するための相互接続メカニズム１２を含んでいる。これらのコンポーネントには、ワークステーション１４、１６、１８および２０、プリンタ２２および２４、ならびに補助記憶装置２６および２８が含まれる。分散システム１０は単なる一例であって、この発明は、異なるコンポーネントを有する他の環境においても実現することができる。
【００１５】
ワークステーション１４、１６、１８および２０は、メモリ３０、３２、３４および３６をそれぞれ備えている。メモリ３０、３２、３４および３６のそれぞれは、分散オペレーティング・システム３８のコピーを含んでいる。分散オペレーティング・システム３８は、概要カタログを定め、かつ、概要カタログ上で処理を行うための資源（リソース）を備えている。メモリ３０、３２、３４および３６は、他のオブジェクトも保持する。さらに、付加的なオブジェクトは、補助記憶装置２６および２８に記憶することもできる。
【００１６】
概要カタログは、ソース・オブジェクトのセットからコピーされた、選ばれた属性値を保持する。概要カタログは、分散システム１０のネーム空間の情報に対する問合せ速度を向上させる手段を備えている。概要カタログは、分散システム１０上で高い利用度を有し、分散システム内におけるリソース発見のための中心的役割をもつ。以下では、まず、概要カタログの構造に焦点を合わせた説明を行い、続いて、概要カタログの生成、アクセス、更新およびレプリケートを行う方法に焦点を合わせた説明を行う。
【００１７】
分散システム１０における各概要カタログは、永続的に記憶されたオブジェクトである。オペレーティング・システム３８は、概要カタログ用にユニークなオブジェクトのクラスを定義する。概要カタログ・クラスのためのクラス定義により、概要カタログ・オブジェクトのコンポーネント（構成要素）が特定される。概要カタログ・クラスのオブジェクトは、その概要カタログ・オブジェクトを操作する関数を含んだインタフェースをサポートする。このインタフェースは、概要カタログを生成および更新する情報を収集する関数（すなわち、「収集者」）を含んでいる。一つの概要カタログ・オブジェクトが、複数の収集者をサポートすることもできる。ソース・オブジェクトの変化が概要カタログに反映するように、収集者は、概要カタログを周期的に再構成するために使用されてもよい。
【００１８】
上述したように、分散システム１０上での概要カタログの利用度を高めるために、概要カタログはレプリケートされる。収集はレプリケーション（複製）の一種と見ることができるが、明確化のために、以下では、収集とレプリケーションを分けて説明することを試みる。この収集からレプリケーションを分離しようとする試みは、この２つのプロセスの相互関係によって複雑になる。概要カタログの各コピーは、この特許出願の優先権主張の基礎のなる米国出願とともに米国に出願された「レプリケーション・ファシリティ」という出願に示されたのと同様のレプリケーション・メカニズムを用いて、一致させてもよい。この「レプリケーション・ファシリティ」という米国出願は、同一出願人により出願されている。このレプリケーション・メカニズムを用いて、概要カタログの一つのコピー内の変化を、概要カタログの他のコピーに反映させてもよい。これにより、概要カタログのコピー間の一貫性が維持される。概要カタログとそのオリジナルであるソース・オブジェクトとの間の一貫性は、収集者によって維持されてもよい。収集およびレプリケーションについては、後に詳述する。
【００１９】
図２は、概要カタログ４０のプライマリなコンポーネントを示す機能ブロック図である。概要カタログ４０は、オブジェクトのソース・セットからコピーされた属性の値を保持する行テーブル・コンポーネント４２を含んでいる。概要カタログ４０は、コンフィグレーションの属性コンポーネント４４も含んでいる。コンフィグレーションの属性コンポーネント４４は、属性、概要カタログ４０のための定義問合せ、およびメンテナンス・スケジュールを保持する。概要カタログの第３のメイン・コンポーネントは、レプリケーション管理データ・コンポーネント４６である。このレプリケーション管理データ・コンポーネント４６は、概要カタログのレプリケーション・プロセスにおいて役に立つデータを保持する。レプリケーション管理データは、概要カタログ・オブジェクトによりサポートされるインタフェースによって使用される。
【００２０】
図３は、概要カタログ４０の行テーブル・コンポーネント４２を示す詳細なブロック図である。行テーブル・コンポーネントは、行５２、５３および５４、ならびに列４３、４４、４５、４６、４７、４８、４９、５０および５１を備えたテーブルとして構成されている。行５２、５３および５４は、この行テーブルのデータのオリジナルであるソース・オブジェクトのセットの各オブジェクトのために提供される。各行は、列４３、４４、４５、４６、４７、４８、４９、５０および５１を含んでいる。列４３は、その行をユニークに識別するための行ＩＤを保持する。列４４は、その行に関連したオブジェクトの論理パス名を保持する。論理パス名は、システム１０の分散ネーム空間において可視的である。列４５は、収集者ＩＤを保持する。収集者ＩＤは、その行を生成した収集者をユニークに識別するものである。上述したように、単一の概要カタログが、複数の収集者を持つことができる。収集者の詳細については、後述する。列４６は、行のシーケンス番号（ＳＱＮ：ＳｅＱｕｅｎｃｅ  Ｎｕｍｂｅｒ）を保持する。シーケンス番号は、行テーブル４２の各行に昇順に割り当てられる。このシーケンス番号の役割は、後に詳述される。
【００２１】
列４７は、その行を生成するために属性が収集されたスコープ（範囲）を識別する。各スコープは、概要カタログ内に収集するための候補となる分散ネーム空間のオブジェクトの部分木を定める。収集するスコープを識別するのは、概要カタログ４０のコンフィグレーション属性４４である。列４８および４９は、ソース・オブジェクトから求められる属性値を保持する。図３に示す例では、列４８は属性１と関連し、列４９は属性２と関連する。概要カタログがこのような２つの列のみを含む必要がないことはいうまでもない。むしろ、概要カタログは、このような列を一つだけ含んでもよいし、選択的に、このような列を２以上含んでもよい。列が提供される属性（例えば、列４８および４９）は、列セットによって指定される（後に詳述する）。
【００２２】
列５０は、状態を示すステータス・フィールドを保持する。この実施例においては、ステータス・フィールドは、ある機能を実現するためのビットマップをして機能する。例えば、このフィールドの１ビットは、この行が消去されるかどうかを示している。列５１は、その行に関連したソース・オブジェクトへのリンクを保持する。リンクは、概要カタログを介してそのオブジェクトに直接アクセスするための手段を提供する。
【００２３】
概要カタログの生成は、概要カタログのオブジェクト・クラスのインスタンスを単に生成することを伴う。図４は、概要カタログを生成する処理を示すフローチャートである。まず、概要カタログ・クラスのオブジェクトが生成される（ステップ７０）。ステップ７０の概要カタログ・クラスのオブジェクト生成において、多くのコンフィグレーション・パラメータ（すなわち、属性）が指定される。このコンフィグレーション・パラメータは、コンフィグレーション属性コンポーネント４４（図２）のメタ・データとして格納される。コンフィグレーション・パラメータは、例えば、概要カタログの名前、スコープ、問合せ制限および列セットを含んでいる。
【００２４】
スコープは、簡単に上述したものである。このスコープは、分散ネーム空間におけるパス名を指定する。分散ネーム空間は、木構造である。したがって、パス名は、問合せが適用されるべき部分木のルート・ノードを識別するものである。
複数のスコープが、論理ＯＲ演算によって論理的に定義されることもできる。
【００２５】
問合せ制限は、スコープ内のオブジェクトに対する制限を指定する。この制限に合致するスコープのオブジェクトは、概要カタログ内に収集される。例えば、問合せ制限は、“Ｊｏｎｅｓ  ”という名前をもつ人の個人データを保持するオブジェクトに、問合せを制限する。
【００２６】
列セットは、概要カタログ内に収集されるべき実際のオブジェクトの属性のセットを指定する。図３に示す概要カタログの例では、列セットは、属性１および属性２を含んでいる。
【００２７】
他の多くのコンフィグレーション・パラメータを、図４のステップ７０の概要カタログ・オブジェクトの生成において与えることもできる。これらのコンフィグレーション・パラメータを、コンフィグレーション属性コンポーネント４４（図２）のメタ・データとしても格納される。コンフィグレーション・パラメータは、概要カタログの行テーブル内に組み込まれるべき問合せ結果（すなわち、属性）を識別する情報を含むこともできる。さらに、コンフィグレーション・パラメータは、メンテナンス・モードおよびメンテナンス・スケジュールを含むこともできる。メンテナンス・モードは、概要カタログが、そのオリジナルであるソース・オブジェクトに関連して、増大的に更新されるべきかどうかを指定する。メンテナンス・スケジュールは、概要カタログがどの程度の頻度で更新されるべきかを指定する。メンテナンス・スケジュールは、概要カタログが決して更新されるべきでないこと、ある時間ユニット数の経過後に更新されるべきこと（すなわち、増大的に）、またはある特定の時間に更新されるべきことを示すこともできる。他のコンフィグレーション情報が与えられてもよい。
【００２８】
カタログのファイル構造は、オペレーティング・システム３８のファイル・システムによって生成され、概要カタログを保持する（図４のステップ７２）。カタログ構造は、この特許出願の基礎となる米国出願とともに米国に出願された「ファイル・システムにおけるオブジェクトの効率的記憶」に詳細に示されている。この出願は、本特許出願と同一出願人によるものである。
【００２９】
コンフィグレーション・パラメータは、問合せ結果が提供されているかどうかを判定するためにチェックされる（ステップ７４）。問合せ結果が提供されている場合には、この問合せ結果がカタログに取り入れられる（ステップ７６）。問合せ結果が提供されていない場合には、問合せ結果は、カタログにすぐには取り入れられない。概要カタログの収集コードは、概要カタログ４０内に組み込まれたデータを収集するためのものである。次に、システム１０は、増大的なメンテナンス・モードが概要カタログに指定されているかどうかをチェックする（ステップ７８）。増大的なメンテナンス・モードは、生成される概要カタログが、ソース・オブジェクトと一貫性を維持するために増大的に更新されるべきであることを意味する。したがって、この場合には、概要カタログが生成され（ステップ８０）、そして収集により増大的に更新される。特に、列セットによって指定された列（すなわち、属性）の値を生成するために、スコープおよび制限が再度適用される。メンテナンス・スケジュールは、いつ収集を行うべきかを指定する。収集は、発生した変化を集めることのみを行う。収集は、変化しなかった情報を集めることはしない。収集は、そのスコープの変化の原因となる。より一般的には、収集は、コンフィグレーションの変化に直ちに適応する（後に詳述）。そうでなければ、概要カタログは、自動的にかつ増大的に、収集により更新されない（ステップ８２）。
【００３０】
概要カタログの生成は、一例について検討することによって、よりよく理解することができる。概要カタログが、概要カタログ・クラスのオブジェクトのインスタンスを生成する多くの異なった方法（例えば、明示のリクエスト、レプリケーション等）で生成可能であることは、この技術分野の専門家ならば理解できるであろう。図５の例は、概要カタログを生成する一つのアプローチの例示にすぎない。図５は、３つのオブジェクト８４、８６および８８、ならびにこれらのオブジェクトの問合せに起因するデータを保持するために形成されるデータ・コンポーネント４２を示している。オブジェクト８４、８６および８８は、それぞれに関連するデータを保持する。オブジェクト８４、８６および８８のそれぞれは、フィールド９０、９２、９４および９６を含んでいる（オブジェクト９０に関連するフィールドのリファレンスに注意）。フィールド９０は、人の名（名前）を保持する。フィールド９２は、人の姓を保持する。フィールド９４は、人の職業を保持し、フィールド９６は、人の年齢を保持する。オブジェクト８４、８６および８８は、すべて“Ｓｍｉｔｈ”という同じ姓のフィールド９２を有する。
【００３１】
定義問合せは、問合せがそのスコープに適用するオブジェクト・セットを指定する。スコープは、このオブジェクト・セットがオブジェクト８４、８６および８８を含んでいること、ならびに追加オブジェクトを含むかもしれないことを指定する。問合せ制限は、問合せが、“Ｓｍｉｔｈ”と等しい姓フィールドを有するオブジェクトに興味があることを示している。この問合せの列セットは、この問合せが次の属性、すなわち名前、職業および年齢に興味があることを示している。続いて、この問合せは、オブジェクト８４、８６および８８に適用され、問合せ結果が、概要カタログ４０の行テーブル４２に格納される（行テーブルの一部のみが、図５に示されていることに注意）。列９１は名前の属性値を保持し、列９３は職業の属性値を保持し、列９５は年齢の属性値を保持する。エントリ８５はオブジェクト８８と関連し、エントリ８７はオブジェクト８６と関連し、エントリ８９はオブジェクト８４と関連するものである。オブジェクト８４、８６および８８がそれぞれ保持する列９１、９３および９５の属性値は、適切なエントリの列に格納され、図５に示す行テーブル４２の部分を生成する。
【００３２】
概要カタログ４０は、概要カタログ・オブジェクトによってサポートされるシステム定義のインタフェースの関数を呼び出すことにより、アクセスされる。概要カタログは、分散システム１０のユーザだけでなく、オペレーティング・システム３８によっても使用されることもできる。概要カタログの性質を与えると、問合せは、分散ネーム空間の大部分に広がるが、分散システム１０上の低いトラフィックにより素早い返答が得られる。
【００３３】
オブジェクトへの直接アクセスが、概要カタログ４０にアクセスすることにより得られる。図６は、概要カタログを介してオブジェクトに直接アクセスを行うために実行される処理のフローチャートである。概要カタログは、アクセスが望まれるオブジェクトへのリンクを得るためにアクセスされる（図６のステップ９７）。リンクは、分散ネーム空間内のオブジェクトへのアドレスまたはパス名である。オペレーティング・システム３８（図１）は、オブジェクトのこのようなアドレスまたはパス名をモニカに変換する標準関数を含んでいる。このようにして、ステップ９８において、リンクがモニカに変換され、続いて、モニカはオブジェクトへのバインドのために使用される（ステップ９９）。
【００３４】
上述したように、概要カタログは、分散システム１０のノードに渡ってレプリケートされる。この実施例で使用されるレプリケーション・ファシリティは、概要カタログの複製を行うだけでなく、概要カタログの複数のコピー（すなわち、マルチマスタ・レプリケーション）を一致させることも行う。一致とは、あるオブジェクトが、変化したオブジェクトになされた変化を反映するように、あるオブジェクトと変化したオブジェクトとを一致させることをいう。例えば、オブジェクトのリモート・コピーが変化し、オブジェクトのローカル・コピーがその変化を反映するように更新されていないと仮定する。一致の処理は、オブジェクトのローカル・コピーが、オブジェクトのリモート・コピーが変化したのと同様の方法で変化するように、オブジェクトのこれらの２つのコピーを一致させることを伴う。ここで使用される術語「レプリケーション」は、オブジェクトの複数のコピーが分散システム１０上に分散されるようにオブジェクトを複製するだけでなく、オブジェクトのこれらのコピーを一致させることもいう。
【００３５】
オブジェクトのディスジョイント・セットから構成される２つの概要カタログ（すなわち、２つのディスジョイント・スコープ）を、相互にレプリケートすることもできる。その結果は、これらの２つの概要カタログのマージとなる。このようなマージは、行、問合せ、内容インデックスをマージすることになるが、スコープまたはスケジュールのマージすることにはならない。このマージ機能により、分散システムは、全体の概要カタログを、最小のネットワーク・トラフィックによって効率的に生成することができる。
【００３６】
２つの概要カタログを一つの概要カタログにマージすることは、一つの概要カタログが複数の収集者をどのように有するかの良い例を示す。第１の概要カタログは、サーバＡにある全ドキュメントをカバーするスコープを有すると仮定する。第２の概要カタログは、サーバＢにある全ドキュメントをカバーするスコープを有すると仮定する。これらの概要カタログのそれぞれは、それに関連した一つの収集者を有する。この２つの概要カタログを一致させ、マージしたときに、結果のマージした概要カタログは、サーバＡのドキュメント用の第１の収集者およびサーバＢのドキュメント用の第２の収集者を有する。
【００３７】
図１に示す分散システムにおいて、概要カタログの個別コピーは、ワークステーション１４、１６、１８および２０に存在するようにレプリケートされる。このレプリケーションは、概要カタログの利用度を高め、その概要カタログの任意の一つのコピーのロードをバランスさせるのに役に立つ。概要カタログを、上記「レプリケーション・ファシリティ」という出願に示されているものと同様のメカニズムを用いてレプリケートしてもよい。
【００３８】
概要カタログの複製の詳細について述べる前に、いくつかの関連する術語について紹介する。「オブジェクト・セット」は、レプリケーションのためにグループ化されたオブジェクトの集合である。オブジェクト・セットは、分散ネーム空間からの単一のオブジェクトまたは部分木全体を含む。オブジェクト・セットは、レプリケーションをリクエストするパーティによって指定される。「レプリカ・セット」は、それぞれがオブジェクト・セットのローカル・コピーを所有する分散システム内のシステムの集合である。「レプリカ」は、レプリカ・セットの一つの要素である。
【００３９】
概要カタログのレプリケーションにおいて実行される処理のフローチャートが、図７に示されている。まず、リモート・サイトにおける概要カタログのコピーのレプリケーション・リクエストが、ローカルの概要カタログで受信される（ステップ１００）。このリクエストに応答して、変化するエントリのリストが、クラス指定の一致者（すなわち、概要カタログ・クラスに特定の一致者）によってリモート概要カタログから得られる（ステップ１０１）。変化するエントリのリストは、収集者ごとに得られる。上述したように、概要カタログ４０の行テーブル４２の各行は、その行の関連する収集者を識別する列４５（図３）に収集者ＩＤを保持する。シーケンス番号（ＳＱＮ）の値は、列４６の各行に保持される。シーケンス番号の値は、関連するエントリが、いつ最後に変化したかを示している。したがって、ある指定された収集者ＩＤを有するリモート概要カタログの各行は、検査され、そのエントリの列４６に保持されるシーケンス番号が、最終時の変化が指定された収集者用のローカル概要カタログに送られたときを指定する連続値よりも大きいかどうかが判定される。これは、リモート概要カタログに関連する行を有する各収集者に対して実行される。続いて、ローカル概要カタログは、クラス指定の一致者によってリモート概要カタログと一致させられる（ステップ１０２）。
【００４０】
この実施例において、収集者の存在しない概要カタログ内の行は、消去される。行は、いくつかの場合においてその収集者を失う。第１に、収集者のスコープが、行の情報をもはや収集しないように、再定義される場合である（すなわち、スコープが、その行と関連したソース・オブジェクトからの情報をもはや収集しないように再定義される）。第２に、レプリカ・セットのレプリケーション・トポロジーが、２つのレプリカ間のレプリケーション・パスがもはや存在しなくなるように、変化する場合である。第３に、長期間、収集者によって何の変化も生成されず、その結果、収集者は、もはやアクティブでないと信じられる場合である。この後者の場合において、この実施例は、その行が他の概要カタログによって活性なものと思われていないことを確かめるために、その存在を周期的に通知するメカニズムを、各概要カタログのために備えている。このメカニズムは、以下に詳述される。
【００４１】
この実施例のアプローチは、収集サイクル中に達成できない装置上のオブジェクトに関する情報が、パージされることを防いでいることが分かるであろう。例えば、収集サイクル中に分散システムに直接アクセスできない、接続が遮断された装置上に保持される情報は、パージされない。ある収集者が、このような情報のために存在し、したがって、この収集者と関連した行は、消去されない。
【００４２】
各概要カタログは、概要カタログの行テーブル４２のＩＤを有する各収集者についての状態を保持し、上述の問題のいくつかを解決する。各レプリカが収集者テーブル１０４に複数のエントリを有することが可能なことが分かるであろう。例えば、エントリが、ディレクトリ・サービス・オブジェクトから情報を収集するレプリカの収集者のために、収集者テーブル１０４内に設けられる。また、個別のエントリが、非ディレクトリ・サービス・オブジェクトから情報を収集する同じレプリカの他の収集者のために設けられる。
【００４３】
図８は、収集者テーブル１０４  のフォーマットを示している。収集者テーブル１０４は、行テーブル４２（図３）内に自身の行を有する各収集者用のエントリ１２２および１２４を含んでいる。エントリ１２２および１２４のそれぞれは、収集者テーブル１０４の行を構成する。収集者テーブル１０４は、多くの列１０６、１０８、１１０、１１２、１１４、１１６、１１８および１２０も含んでいる。列のそれぞれは、エントリ１２２および１２４の各フィールドの値を保持する。
【００４４】
列１０６は、収集者のＩＤを保持する。列１０８は、論理パス名を保持する。この論理パス名は、収集者を例示する概要カタログの装置に関連するパス名である。列１１０は、収集者を例示する概要カタログ・オブジェクトの時期番号を保持する。この時期番号は、概要カタログがまだ活性状態であることを示すシーケンス番号である。各概要カタログは、周期的にそのフィールドをインクリメントし、概要カタログの活性状態を維持する。
【００４５】
列１１２は、ステータス・フィールドを保持する。ステータス・フィールドは、概要カタログのメンテナンスにおいて使用される。ステータス・フィールドは、４つの可能な値の一つであると仮定することができる。値“ＯＫ”は、その行に関連した収集者を例示する概要カタログが活性状態であることを示す。値“ＥＸＰＩＲＥＤ”は、そのエントリの列１１０の時期番号が進められず、したがって満了していることを示す。値“ＦＬＵＳＨＥＤ”は、その収集者に関連した行が概要カタログ４０の行テーブル４２からフラッシュされたことを示す。最後に、値“ＦＬＵＳＨ  ＰＥＮＤＩＮＧ”は、フラッシュが進行中であるか、または行われようとしていることを示す。
【００４６】
列１１４は、満了時刻の値を保持する。ステータス列１１２が値“ＯＫ”を保持する場合には、新しい時期番号が報告されないならば、概要カタログが暗黙に消去されるとみなされる時刻を、満了時刻は保持する。一方、列１１２に保持されるステータス・フィールドが値“ＥＸＰＩＲＥＤ”を保持する場合には、列１１４に保持される満了時刻は、“ＦＬＵＳＨ  ＰＥＮＤＩＮＧ”状態に遷移が行われるときを示す。列１１２のステータス・フィールドが値“ＦＬＵＳＨＥＤ  ”を保持する場合には、列１１４に保持される満了時刻は、エントリが収集者テーブル１０４から消去される時刻を示す。
【００４７】
列１１６は、最高値（ＨＷＭ：Ｈｉｇｈ  Ｗａｔｅｒ  Ｍａｒｋ）のシーケンス番号を保持する。この最高値のシーケンス番号は、収集者から受信される最も高いシーケンス番号である。最高値のシーケンス番号は、一致の対象であるせるパートナが、問合せを必要とする新しい変化エントリを有するかどうかを判定するために用いられる。この値が、図７に関連した上記説明におけるレプリケーション・プロセスにおいて使用される。
【００４８】
列１１８は、消去最高値を保持する。消去最高値は、収集者から消去エントリのために受信された最も高いシーケンス番号である。最後に、列１２０は、フラッシュされた消去最高値を保持する。フラッシュされた消去最高値は、消去されている収集者の最後の消去エントリのシーケンス番号を記録する。
【００４９】
フラッシュされたエントリと、消去としてマークされたエントリとの間の相違は、フラッシュ・エントリが概要カタログ・テーブルから消去されているのに対し、消去としてマークされたエントリは消去としてマークされているにすぎず、消去されていない点である。フラッシュされたエントリおよび消去としてマークされたエントリは、次のようにして使用される。ある行の収集者が、実際のソース・オブジェクトがもはやその行に対して存在しないことを検出する。この場合に、その対応する行は、消去されるべきである。これを消去すると、他のレプリカに伝達しなければならない変更が生じるので、その行を消去することはできず、その行は消去としてマークされる。概要カタログに対するユーザの問合せは、消去としてマークされた行をフィルタリングするように増大される。ある時間の経過後、消去としてマークされた行は、実際に消去、すなわち“ＦＬＵＳＨＥＤ”される。上述した最高値は、レプリカが、ソース・レプリカが消去としてマークされた行であって、そのデスティネーション・レプリカがまだ受信していない行のいくつかをすでにフラッシュしたケースを識別することを可能にする。
【００５０】
一致は、行テーブル・データだけでなく、メタ・データ（すなわち、概要カタログ４０によって保持される他のデータ）に対しても発生する。スコープ・コンフィグレーション、問合せ制限および収集者スケジュールのようなタイプのメタ・データは、一致させられない。メタ・データの一致は、収集者ごとにも発生する。
【００５１】
この実施例のアプローチは、概要カタログを更新するのに必要な情報の送信を最小にするという点で効率的である。さらに、この実施例は、ユーザに、オブジェクトを更新するのに必要な回数と、そのような更新に必要な計算資源とをバランスさせるオプションを提供する。
【００５２】
この発明について、好ましい実施例に従って説明したが、特許請求の範囲に記載されたこの発明の範囲から逸脱することなく、様々な変更および具体化が可能であることはいうまでもない。例えば、この発明を、非分散環境においても実現することもできる。
【図面の簡単な説明】
【００５３】
【図１】この発明の好ましい実施例を実施するために適した分散システムのブロック図である。
【図２】この発明の好ましい実施例に従って作成された概要カタログの機能ブロック図である。
【図３】図２の概要カタログの行テーブルの詳細なブロック図である。
【図４】この発明の好ましい実施例における、概要カタログの構造を生成するために実行される処理を示すフローチャートである。
【図５】この発明の好ましい実施例において、概要カタログのデータ部分がオブジェクトの問合せからどのように生成されるかの例を示す。
【図６】この発明の好ましい実施例において、概要カタログを介して直接、オブジェクトにアクセスするために実行される処理のフローチャートである。
【図７】この発明の好ましい実施例において、概要カタログが、レプリケーション・メカニズムを用いてどのようにレプリケートされるかを示すフローチャートである。
【図８】この発明の好ましい実施例において、収集者テーブルの一例のフォーマットを示す。
【符号の説明】
【００５４】
１０  分散システム
１２  相互接続メカニズム
１４、１６、１８、２０  ワークステーション
３０、３２、３４、３６  メモリ
３８  分散オペレーティング・システム
４０  概要カタログ
４２  行テーブル
４４  コンフィグレーション属性
４６  レプリケーション管理データ
【図１】
2007213592.tif 000003
【図２】
2007213592.tif 000004
【図３】
2007213592.tif 000005
【図４】
2007213592.tif 000006
【図５】
2007213592.tif 000007
【図６】
2007213592.tif 000008
【図７】
2007213592.tif 000009
【図８】
2007213592.tif 000010