(57)【要約】【課題】分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給するレプリケーション・ファシリティを提供する。【解決手段】本発明の方法は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含む多数のコンピュータ・システムを有している分散型システムにおいて、ファイルのツリーに編成された複数のファイルを供給し、ファイルのコピーが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて一つのコンピュータ・システムの記憶装置に記憶される単一のファイルをレプリケートし、ファイルのサブツリーのコピーが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて一つのコンピュータ・システムの記憶装置に記憶される、ファイルのツリーから、多重段階のファイルのサブツリーをレプリケートする段階を具備する。【選択図】図５
2007299431.tif 000002
【特許請求の範囲】
【請求項１】
レプリケーション・ファシリティ及びそれぞれが記憶装置を含む多数のコンピュータ・システムを有している分散型システムにおいて、ファイルのツリーに編成された複数のファイルを供給し、前記ファイルのコピーが別の前記コンピュータ・システムの記憶装置に記憶されるように前記レプリケーション・ファシリティを用いて一つの前記コンピュータ・システムの記憶装置に記憶される単一の前記ファイルをレプリケートし、ファイルのサブツリーのコピーが別の前記コンピュータ・システムの前記記憶装置に記憶されるように前記レプリケーション・ファシリティを用いて一つの前記コンピュータ・システムの前記記憶装置に記憶される、前記ファイルのツリーから、多重段階のファイルの前記サブツリーをレプリケートする段階を具備することを特徴とする方法。
【請求項２】
前記ファイルのコピーが前記分散型システムの多数のコンピュータ・システムの中の他のコンピュータ・システムの記憶装置に記憶されるように前記レプリケーション・ファシリティを用いて前記単一ファイルをレプリケートする段階を更に具備することを特徴とする請求項１に記載の方法。
【請求項３】
前記サブツリーのコピーが多数のコンピュータ・システムの中の他のコンピュータ・システムの前記記憶装置に記憶されるように前記レプリケーション・ファシリティを用いて前記サブツリーをレプリケートする段階を更に具備することを特徴とする請求項１に記載の方法。
【請求項４】
前記レプリケートされているサブツリーは、少なくとも三段階のファイルを含むことを特徴とする請求項３に記載の方法。
【請求項５】
それぞれがファイルを記憶する記憶装置を含んでいる複数のコンピュータ・システムと、前記ファイルのネームのツリー構造として前記システムのネーム空間を管理するネーム空間管理プログラムと、多重段階の前記ネーム空間のサブツリーをレプリケートするレプリケーション・ファシリティとを備えていることを特徴とする分散型システム。
【請求項６】
リコンサイラ・ファシリティ及び多数のコンピュータ・システムを有している分散型システムにおいて、一つの前記コンピュータ・システムのファイルの第１のコピー及び別の該コンピュータ・システムの前記ファイルの第２のコピーを供給し、最後に一致されて以来前記ファイルの前記第１のコピーに対してなされたあらゆる変更を前記ファイルの前記第２のコピーが組み込むように前記リコンサイラ・ファシリティを用いて該ファイルの該第１のコピーを該ファイルの該第２のコピーと一致させ、一つの前記コンピュータ・システムの一群のファイルの第１のコピー及び別の該コンピュータ・システムの一群のファイルの第２のコピーを供給し、最後に一致されて以来前記一群のファイルの前記第１のコピーに対してなされたあらゆる変更を前記一群のファイルの前記第２のコピーが組み込むように前記リコンサイラ・ファシリティを用いて該一群のファイルの該第１のコピーを該一群のファイルの該第２のコピーと一致させる段階を具備することを特徴とする方法。
【請求項７】
前記一群のファイルの前記第１のコピーを前記一群のファイルの前記第２のコピーと一致させる段階は、該一群のファイルの該第１のコピーの各ファイルを該一群のファイルの該第２のコピーの対応しているファイルと対基準により一対で一致させる段階を更に含んでいることを特徴とする請求項６に記載の方法。
【請求項８】
レプリケーション・ファシリティ及びそれぞれが記憶装置を含んでいる多数のコンピュータ・システムを有している分散型システムにおいて、第１の前記コンピュータ・システムの前記記憶装置に記憶される一群のファイルの第１のコピーを供給し、第２の前記コンピュータ・システムの前記記憶装置に記憶される前記一群のファイルの第２のコピーを供給し、前記一群のファイルの前記第１のコピーの前記一群のファイルに対して変更を行い、事象の発生により前記一群のファイルの前記第２のコピーへ前記変更を伝搬し、前記一群のファイルの前記第１のコピーの前記一群のファイルに対して追加の変更を行い、別の事象の発生により前記一群のファイルの前記第２のコピーへ前記追加の変更を伝搬する段階を具備することを特徴とする方法。
【請求項９】
前記事象は、所定の時限の経過であることを特徴とする請求項８に記載の方法。
【請求項１０】
前記別の事象も、所定の時限の経過であることを特徴とする請求項８に記載の方法。
【請求項１１】
前記事象は、前記変更を受け取るための前記第２のコンピュータ・システムによる要求であることを特徴とする請求項８に記載の方法。
【請求項１２】
前記別の事象は、前記追加の変更を受け取るための前記第２のコンピュータ・システムによる要求であることを特徴とする請求項８に記載の方法。
【請求項１３】
前記一群のファイルの前記第２のコピーが前記一群のファイルの前記第１のコピーに対してなされた前記変更を組み込むように該一群のファイルの該第２のコピーを該一群のファイルの該第１のコピーと一致させる段階を更に含むことを特徴とする請求項８に記載の方法。
【請求項１４】
前記一群のファイルの前記第２のコピーが前記一群のファイルの前記第１のコピーに対してなされた前記追加の変更を組み込むように該一群のファイルの該第２のコピーを該一群のファイルの該第１のコピーと一致させる段階を更に含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
レプリケーション・ファシリティ及びそれぞれが記憶装置を含むコンピュータ・システムを有している分散型システムにおいて、前記コンピュータ・システムの前記記憶装置に、ネームを有している、ファイルを記憶し、前記記憶されたファイルの前記ネームの論理的編成からなる分散型ネーム空間を供給し、前記ファイルの選択された部分を保持している新しいファイルを生成するために前記レプリケーション・ファシリティを用いてそのネームが前記分散型ネーム空間の一部を形成しかつ一つの前記コンピュータ・システムの前記記憶装置に記憶された一群のファイルの選択された部分をレプリケートする段階を具備することを特徴とする方法。
【請求項１６】
前記分散型システムの前記コンピュータ・システムの少なくとも部分にわたり前記新しいファイルを分散すべく前記新しいファイルをレプリケートする段階を更に具備することを特徴とする請求項１５に記載の方法。
【請求項１７】
第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、前記第１のコンピュータ・システムに記憶される所与のクラスの一組のファイルの第１のコピーを供給し、前記第２のコンピュータ・システムに記憶される前記所与のクラスの前記一組のファイルの第２のコピーを供給し、前記所与のクラスのファイルだけを一致させるクラス特定リコンサイラを用いて前記一組のファイルの前記第１のコピーを前記一組のファイルの前記第２のコピーと一致させる段階を具備することを特徴とする方法。
【請求項１８】
前記一組のファイルの前記第１のコピーに対して変更を行い、クラスに関係なくファイルを一致させるクラス独立リコンサイラを用いて前記一組のファイルの前記第１のコピーを前記一組のファイルの前記第２のコピーと一致させる段階を更に含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
専用レプリケーション機構及びそれぞれが記憶装置を含んでおり処理を実行するためのコンピュータ・システムを有している分散型システムにおいて、一つの前記コンピュータ・システム上でアプリケーション・プログラムを実行し、前記アプリケーション内にてそれぞれがファイルをアクセスすることを許容される処理のリストを維持している一組のファイルをリプリケートすべく前記専用レプリケーション機構に対して要求を行い、前記ファイルをアクセスすることを許容される前記処理のリストを、各ファイルに対して、レプリケートすることなく新しい組のファイルを生成すべく前記専用レプリケーション機構を用いて前記一組のファイルをレプリケートする段階を具備することを特徴とする方法。
【請求項２０】
第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、前記第１のコンピュータ・システムでファイルのコレクションを供給し、前記ファイルのコレクションを前記第２のコンピュータ・システムへレプリケートするための要求に応じて、前記コレクションの全ての前記ファイルがレプリケートされるべきかまたはされるべきでないかを決定し、前記コレクションの全ての前記ファイルがレプリケートされるべきであると決定されるならば、前記コレクションのレプリカが前記第２のコンピュータ・システムで供給されるように該コレクションの全ての該ファイルをレプリケートし、前記コレクションの全ての前記ファイルがレプリケートされるべきでないと決定されるならば、前記コレクションの前記ファイルの全てをレプリケートしない段階を具備することを特徴とする方法。
【請求項２１】
第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、前記第１のコンピュータ・システムの一群のファイルの第１のコピーを供給し、前記第２のコンピュータ・システムの前記一群のファイルの第２のコピーを供給し、前記一群のファイルの前記第１のコピーに対して変更を行い、それぞれが前記一群のファイルの前記第１のコピーの前記ファイルをアクセスしかつ読取るためのアクセス権を有するエージェントを該一群のファイルの該第１のコピーに対して供給し、前記一群のファイルの前記第２のコピーを前記一群のファイルの前記第１のコピーと一致させるために前記第２のコンピュータ・システムでリコンサイラを供給し、前記一群のファイルの前記第１のコピーの前記ファイルをアクセスしかつ読取るべく限定された権限を前記リコンサイラに賦与するプロクシを、該一群のファイルの該第１のコピーの前記エージェントから該リコンサイラへ賦与し、前記一群のファイルの前記第１のコピーに対してなされた前記変更が前記一群のファイルの前記第２のコピーに対してなされるように前記リコンサイラを用いて該一群のファイルの該第２のコピーを該一群のファイルの該第１のコピーと一致させる段階を具備することを特徴とする方法。
【請求項２２】
分散型システムにおいて、前記分散型システムの非均質ファイル・システムを供給し、前記ファイル・システムのファイルへのアクセスを管理すべく各ファイル・システムに対して記憶管理プログラムを供給し、第１の組のファイルを第２の組のファイルと一致させるための要求に応じて、該第１の組のファイルを保持する前記ファイル・システムに対する前記記憶管理プログラムにより該第１の組のファイルへのアクセスを賦与し、かつ該第２の組のファイルを保持する前記ファイル・システムに対する前記記憶管理プログラムにより該第２の組のファイルへのアクセスを賦与し、前記第１の組のファイル及び前記第２の組のファイルを保持しているそれぞれのファイル・システムの前記記憶管理プログラムの制御の下で第１のファイル・セットを第２のファイル・セットと一致させる段階を具備することを特徴とする方法。
【請求項２３】
前記ファイル・システムに記憶されるファイルの各コピーは、前記記憶管理プログラムによって記憶特定識別子が供給されることを特徴とする請求項２２に記載の方法。
【請求項２４】
各記憶管理プログラムは、そのファイル・システムの前記ファイルへ変更を報告することを特徴とする請求項２２に記載の方法。
【請求項２５】
前記変更は、ファイルの消去を含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記変更は、ファイルの改名を含むことを特徴とする請求項２４に記載の方法。
【請求項２７】
前記変更は、前記分散型システムのファイルの移動を含むことを特徴とする請求項２４に記載の方法。
【請求項２８】
前記変更は、変更記録簿へ報告されかつ前記一致させる段階は、該変更記録簿を用いて実行されることを特徴とする請求項２４に記載の方法。
【請求項２９】
ファイルの各コピーは、固有の識別子に割り当てられかつ前記一致させる段階は、どのファイルが一致させられるのかを決定するために識別子を比較することを含むことを特徴とする請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関し、より特定的には、分散型システム内で用いられるレプリケーション・ファシリティ（replication facilities）に関する。
【背景技術】
【０００２】
レプリケーション・ファシリティは、多数の異なる形式のソフトウェア・プロダクトに供給されている。例えば、レプリケーション・ファシリティは、データベース・プロダクト（database products ）、ネットワーク・ディレクトリー・サービス・プロダクト（network directory service products）、及びグループウェア・プロダクト（groupware products）に組み込まれている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、通常のレプリケーション・ファシリティの多くは、何をそれらがレプリケート（replicate ）できるかについて制限される。例えば、多くの通常のレプリケータは、一形式の論理構造（例えば、ファイル）をレプリケートできるだけである。更に、通常のレプリケータは、一度にレプリケートされうる論理的構造の量について制限される。特に、多くの通常のレプリケータは、一度に一つのファイルだけをレプリケートできる。
【０００４】
本発明の目的は、上記従来のレプリケーション・ファシリティにおける問題点に鑑み、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給するレプリケーション・ファシリティを提供することである。
【０００５】
本発明の他の目的は、分散型環境の分散型ネーム空間内であらゆるサブツリーをレプリケートすることができるレプリケーション・ファシリティを提供することである。
【０００６】
本発明の別の目的は、多重マスターの、弱く一貫するレプリケーションを供給するレプリケーション・ファシリティを提供することである。
【０００７】
本発明の更なる目的は、公開レプリケーションと専用レプリケーションの両方を支援するレプリケーション・ファシリティを提供することである。
【課題を解決するための手段】
【０００８】
本発明の上記目的は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含む多数のコンピュータ・システムを有している分散型システムにおいて、ファイルのツリーに編成された複数のファイルを供給し、ファイルのコピーが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて一つのコンピュータ・システムの記憶装置に記憶される単一のファイルをレプリケートし、ファイルのサブツリーのコピーが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて一つのコンピュータ・システムの記憶装置に記憶される、ファイルのツリーから、多重段階のファイルのサブツリーをレプリケートする段階を具備する方法によって達成される。
【０００９】
本発明の方法において、ファイルのコピーが追加のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて単一ファイルをレプリケートする段階を更に具備するように構成してもよい。
【００１０】
本発明の方法において、サブツリーのコピーが追加のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いてサブツリーをレプリケートする段階を更に具備するように構成してもよい。
【００１１】
本発明の方法において、レプリケートされているサブツリーは、少なくとも三段階のファイルを含むように構成してもよい。
【００１２】
また、上述した本発明の目的は、それぞれがファイルを記憶する記憶装置を含んでいる複数のコンピュータ・システムと、ファイルのネームのツリー構造としてシステムのネーム空間を管理するネーム空間管理プログラムと、ネーム空間のサブツリーを含んでいるあらゆるファイルをレプリケートするレプリケーション・ファシリティとを備えている分散型システムによっても達成される。
【００１３】
更に、上述した本発明の目的は、リコンサイラ・ファシリティ及び多数のコンピュータ・システムを有している分散型システムにおいて、一つのコンピュータ・システムのファイルの第１のコピー及び別のコンピュータ・システムのファイルの第２のコピーを供給し、最後に一致されて以来ファイルの第１のコピーに対してなされたあらゆる変更をファイルの第２のコピーが組み込むようにリコンサイラ・ファシリティを用いてファイルの第１のコピーをファイルの第２のコピーと一致させ、一つのコンピュータ・システムの一群のファイルの第１のコピー及び別のコンピュータ・システムの一群のファイルの第２のコピーを供給し、最後に一致されて以来一群のファイルの第１のコピーに対してなされたあらゆる変更を一群のファイルの第２のコピーが組み込むようにリコンサイラ・ファシリティを用いて一群のファイルの第１のコピーを一群のファイルの該第２のコピーと一致させる段階を具備する方法によっても達成される。
【００１４】
本発明において、一群のファイルの第１のコピーを一群のファイルの第２のコピーと一致させる段階は、一群のファイルの第１のコピーの各ファイルを一群のファイルの第２のコピーの対応しているファイルと対基準により一対で一致させる段階を更に含むように構成してもよい。
【００１５】
本発明の上述した目的は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含んでいる多数のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムの記憶装置に記憶される一群のファイルの第１のコピーを供給し、第２のコンピュータ・システムの記憶装置に記憶される一群のファイルの第２のコピーを供給し、一群のファイルの第１のコピーのファイルの少なくとも一つに対して変更を行い、事象の発生により一群のファイルの第２のコピーへ変更を伝搬し、一群のファイルの第１のコピーのファイルの少なくとも一つに対して追加の変更を行い、別の事象の発生により一群のファイルの第２のコピーへ追加の変更を伝搬する段階を具備する方法によっても達成される。
【００１６】
本発明において、事象は、所定の時限の経過であるように構成してもよい。
【００１７】
本発明において、別の事象も、所定の時限の経過であるように構成してもよい。
本発明において、事象は、変更を受け取るための第２のコンピュータ・システムによる要求であるように構成してもよい。
【００１８】
本発明において、別の事象は、追加の変更を受け取るための第２のコンピュータ・システムによる要求であるように構成してもよい。
【００１９】
本発明において、一群のファイルの第２のコピーが一群のファイルの第１のコピーに対してなされた変更を組み込むように一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させる段階を更に含むように構成してもよい。
【００２０】
本発明において、一群のファイルの第２のコピーが一群のファイルの第１のコピーに対してなされた追加の変更を組み込むように一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させる段階を更に含むように構成してもよい。
【００２１】
上述した本発明の目的は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含むコンピュータ・システムを有している分散型システムにおいて、コンピュータ・システムの記憶装置に、ネームを有している、ファイルを記憶し、記憶されたファイルのネームの論理的編成からなる分散型ネーム空間を供給し、ファイルの選択された部分を保持している新しいファイルを生成するためにレプリケーション・ファシリティを用いてそのネームが分散型ネーム空間の一部を形成しかつ一つのコンピュータ・システムの記憶装置に記憶された一群のファイルの選択された部分をレプリケートする段階を具備する方法によっても達成される。
【００２２】
本発明において、分散型システムのコンピュータ・システムの少なくとも部分にわたり新しいファイルを分散すべく新しいファイルをレプリケートする段階を更に具備するように構成してもよい。
【００２３】
また、上記本発明の目的は、第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムに記憶される所与のクラスの一組のファイルの第１のコピーを供給し、第２のコンピュータ・システムに記憶される所与のクラスの一組のファイルの第２のコピーを供給し、所与のクラスのファイルだけを一致させるクラス特定リコンサイラを用いて一組のファイルの第１のコピーを一組のファイルの第２のコピーと一致させる段階を具備する方法によっても達成される。
【００２４】
本発明において、一組のファイルの第１のコピーに対して変更を行い、クラスに関係なくファイルを一致させるクラス独立リコンサイラを用いて一組のファイルの第１のコピーを一組のファイルの第２のコピーと一致させる段階を更に含むように構成してもよい。
【００２５】
更に、本発明の上記目的は、専用レプリケーション機構及びそれぞれが記憶装置を含んでおり処理を実行するためのコンピュータ・システムを有している分散型システムにおいて、一つのコンピュータ・システム上でアプリケーション・プログラムを実行し、アプリケーション内にてそれぞれがファイルをアクセスすることを許容される処理のリストを維持している一組のファイルをリプリケートすべく専用レプリケーション機構に対して要求を行い、ファイルをアクセスすることを許容される処理のリストを、各ファイルに対して、レプリケートすることなく新しい組のファイルを生成すべく専用レプリケーション機構を用いて一組のファイルをレプリケートする段階を具備する方法によっても達成される。
【００２６】
本発明の上記目的は、第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムでファイルのコレクションを供給し、ファイルのコレクションを第２のコンピュータ・システムへレプリケートするための要求に応じて、コレクションの全てのファイルがレプリケートされるべきかまたはされるべきでないかを決定し、コレクションの全てのファイルがレプリケートされるべきであると決定されるならば、コレクションのレプリカが第２のコンピュータ・システムで供給されるようにコレクションの全てのファイルをレプリケートし、コレクションの全てのファイルがレプリケートされるべきでないと決定されるならば、コレクションのファイルの全てをレプリケートしない段階を具備する方法によっても達成される。
【００２７】
また、本発明の上述した目的は、第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムの一群のファイルの第１のコピーを供給し、第２のコンピュータ・システムの一群のファイルの第２のコピーを供給し、一群のファイルの第１のコピーに対して変更を行い、それぞれが一群のファイルの第１のコピーのファイルをアクセスしかつ読取るためのアクセス権を有するエージェントを一群のファイルの第１のコピーに対して供給し、一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させるために第２のコンピュータ・システムでリコンサイラを供給し、一群のファイルの第１のコピーのファイルをアクセスしかつ読取るべく限定された権限をリコンサイラに賦与するプロクシを、一群のファイルの第１のコピーのエージェントからリコンサイラへ賦与し、一群のファイルの第１のコピーに対してなされた変更が一群のファイルの第２のコピーに対してなされるようにリコンサイラを用いて一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させる段階を具備する方法によっても達成される。
【００２８】
更に、本発明の目的は、分散型システムにおいて、分散型システムの非均質ファイル・システムを供給し、ファイル・システムのファイルへのアクセスを管理すべく各ファイル・システムに対して記憶管理プログラムを供給し、第１の組のファイルを第２の組のファイルと一致させるための要求に応じて、第１の組のファイルを保持するファイル・システムに対する記憶管理プログラムにより第１の組のファイルへのアクセスを賦与し、かつ第２の組のファイルを保持するファイル・システムに対する記憶管理プログラムにより第２の組のファイルへのアクセスを賦与し、第１の組のファイル及び第２の組のファイルを保持しているそれぞれのファイル・システムの記憶管理プログラムの制御の下で第１のオブジェクト・セットを第２の組のオブジェクトと一致させる段階を具備する方法によっても達成される。
【００２９】
本発明において、ファイル・システムに記憶されるファイルの各コピーは、記憶管理プログラムによって記憶特定識別子が供給されるように構成してもよい。
【００３０】
本発明において、各記憶管理プログラムは、そのファイル・システムのファイルへ変更を報告するように構成してもよい。
【００３１】
本発明において、変更は、ファイルの消去を含むように構成してもよい。
本発明において、変更は、ファイルの改名を含むように構成してもよい。
【００３２】
本発明において、変更は、分散型システムのファイルの移動を含むように構成してもよい。
【００３３】
本発明において、変更は、変更記録簿へ報告されかつ一致させる段階は、変更記録簿を用いて実行されるように構成してもよい。
【００３４】
本発明において、ファイルの各コピーは、固有の識別子に割り当てられかつ一致させる段階は、どのファイルが一致させられるのかを決定するために識別子を比較することを含むように構成してもよい。
【００３５】
（作用）
本発明の好ましい実施例の第１の観点によれば、レプリケーション・ファシリティ及びそれぞれが記憶装置を含む多数のコンピュータ・システムを有している分散型システムにおいて方法が実行される。この方法では、複数のファイルが供給されかつツリー（木）に編成される。ファイルの単一のものは、ファイルのオリジナル・コピーよりも、ファイルのコピーが異なるコンピュータシステムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いてレプリケートされる。多重レベルのファイルのサブツリーもレプリケートされる。サブツリーは、一つのコンピュータ・システムの記憶装置に初め記憶されている。レプリケーションは、サブツリーのコピー及びそのファイルが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて実行される。
【００３６】
本発明の別の観点によれば、ファイルの第１のコピーは、一つのコンピュータ・システムに供給される。ファイルの第２のコピーは、別のコンピュータ・システムに供給される。ファイルの第１のコピーは、リコンサイラ・ファシリティ（reconciler facility ）を用いてファイルの第２のコピーと一致される。リコンシリエーション（reconciliation）は、ファイルの第２のコピーがファイルの第１のコピーになされたあらゆる変更（changes ）を含むことを確実にする。一群のファイルの第１のコピーは、一つのコンピュータ・システムに供給され、そして一群のファイルの第２のコピーは、別のコンピュータ・システムに供給される。リコンサイラ・ファシリティは、最後に一致されていらい一群のファイルの第２のコピーが一群のファイルの第１のコピーになされたあらゆる変更を含むように一群のファイルの第１のコピーを一群のファイルの第２のコピーと一致させるべく用いられる。
【００３７】
本発明の更なる観点によれば、一群のファイルの第１のコピーは、第１のコンピュータ・システムの記憶装置に記憶される。一群のファイルの第２のコピーは、第２のコンピュータ・システムの記憶装置に記憶される。変更は、一群のファイルの第１のコピーのファイルの少なくとも一つに対してなされる。変更は、事象の発生によりファイルの第２の群へ伝達される。追加の変更は、一群のファイルの第１のコピーのファイルの少なくとも一つに対してなされ、そしてこれらの変更は、別の事象の発生により一群のファイルの第２のコピーへも伝達される。
【００３８】
本発明の別の観点によれば、一群のファイルの第１のコピーは、第１のコンピュータ・システムの記憶装置に記憶される。一群のファイルの第２のコピーは、第２のコンピュータ・システムの記憶装置に記憶される。一群のファイルの第１のコピーに対してなされたあらゆる変更は、変更が一群のファイルの第２のコピーに対してなされうるように第２のコンピュータ・システムへ増加的に送られる。
【００３９】
本発明の追加の観点によれば、記憶装置の一つに記憶されるファイルの第１のセットは、レプリケートされるべく特定される。フィルタは、ファイルの第１のセットのどのファイルがレプリケートされるべきかを決定するために特定される。フィルタによって特定されたファイルは、ファイルの第２のセットを生成すべくレプリケーション・ファシリティを用いてレプリケートされる。
【００４０】
本発明の更なる観点によれば、ネームを有しているファイルは、分散型システムのコンピュータ・システムの記憶装置に記憶される。分散型ネーム空間は、供給される。分散型ネーム空間は、記憶されたファイルのネームの論理的編成（logical organization）を含む。ネーム空間の一群のファイル選択された部分は、ファイルの選択された部分を保持している新しいファイルを生成すべくレプリケートされる。
【００４１】
本発明の更なる観点によれば、所与クラスの一セットのファイルの第１のコピーは、第１のコンピュータ・システムに記憶される。一セットのファイルの第２のコピーは、第２のコンピュータ・システムに記憶される。一セットのファイルの第１のコピーは、所与クラスのファイルだけを一致するクラス特定リコンサイラ（class-specific reconciler ）を用いて一セットの第２のコピーと一致される。ファイルは、クラスに編成される、持続オブジェクト（persistent objects）として記憶されうる。オフジェクト及びクラスは、後述する。
【００４２】
本発明の別の観点によれば、アプリケーション・プログラムは、分散型システムのコンピュータ・システムの一つで実行される。一セットのファイルをレプリケートすべく、要求がアプリケーション・プログラム内で専用レプリケーション機構に対してなされる。ファイルのそれぞれは、ファイルをアクセスすることが許される処理の一覧表を維持する。一セットのファイルは、ファイルをアクセスすることが許される処理の一覧表をレプリケートしないでファイルの新しいセットを生成すべく専用レプリケーション機構（private replication mechanism ）を用いてレプリケートされる。
【００４３】
本発明の更なる観点によれば、一群のファイルの第１のコピーは、第１のコンピュータ・システムに供給され、そして一群のファイルの第２のコピーは、第２のコンピュータ・システムに供給される。変更は、一群のファイルの第１のコピーに対してなされる。エージェントは、一群のファイルの第１のコピーに対して供給される。各エージェントは、一群のファイルの第１のコピーにおけるファイルをアクセスしかつ読取るためのアクセス権を有する。リコンサイラ（reconciler）は、一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させるために第２のコンピュータ・システムで供給される。プロクシ（proxy ）は、一群のファイルの第１のコピーのエージェントからリコンサイラへ与えられる。プロクシは、一群のファイルの第１のコピーにおけるファイルをアクセスしかつ読取るために限定された権限（limited authority ）をリコンサイラに与える。次に、リコンサイラは、一群のファイルの第１のコピーに対してなされた変更が一群のファイルの第２のファイルにもなされるようにリコンサイラを用いて一群のファイルの第２のコピーを一群のファイルの第１にコピーと一致させる。
【００４４】
本発明の最後の観点によれば、方法は、分散型システムにおいて実施される。
この方法では、非均質ファイル・システム（heterogeneous file systems）が分散型システムに供給される。それに保持されるファイルへのアクセスを管理するために、記憶管理プログラム（storage manager ）が各ファイル・システムに対して供給される。ファイルの第１のセットをファイルの第２のセットと一致させるための要求に応じて、ファイルの第１のセットを保持するファイル・システムに対する記憶管理プログラムによってアクセスがファイルの第１のセットへ与えられ、かつファイルの第２のセットを保持するファイル・システムに対する記憶管理プログラムによってアクセスがファイルの第２のセットへ与えられる。第１のオブジェクト・セットは、ファイルの第１のセット及びファイルの第２のセットを保持するそれぞれのファイル・システムの記憶管理プログラムの制御の下で第２のオブジェクト・セットと一致させられる。
【発明の効果】
【００４５】
本発明の方法は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含む多数のコンピュータ・システムを有している分散型システムにおいて、ファイルのツリーに編成された複数のファイルを供給し、ファイルのコピーが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて一つのコンピュータ・システムの記憶装置に記憶される単一のファイルをレプリケートし、ファイルのサブツリーのコピーが別のコンピュータ・システムの記憶装置に記憶されるようにレプリケーション・ファシリティを用いて一つのコンピュータ・システムの記憶装置に記憶される、ファイルのツリーから、多重段階のファイルのサブツリーをレプリケートする段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給し、かつ多重マスターの弱一貫性のレプリケーションを供給することができる。
【００４６】
本発明の分散型システムは、それぞれがファイルを記憶する記憶装置を含んでいる複数のコンピュータ・システムと、ファイルのネームのツリー構造としてシステムのネーム空間を管理するネーム空間管理プログラムと、ネーム空間のサブツリーを含んでいるあらゆるファイルをレプリケートするレプリケーション・ファシリティとを備えているので、分散型環境の分散型ネーム空間内であらゆるサブツリーをレプリケートすることが可能である。
【００４７】
本発明の方法は、リコンサイラ・ファシリティ及び多数のコンピュータ・システムを有している分散型システムにおいて、一つのコンピュータ・システムのファイルの第１のコピー及び別のコンピュータ・システムのファイルの第２のコピーを供給し、最後に一致されて以来ファイルの第１のコピーに対してなされたあらゆる変更をファイルの第２のコピーが組み込むようにリコンサイラ・ファシリティを用いてファイルの第１のコピーをファイルの第２のコピーと一致させ、一つのコンピュータ・システムの一群のファイルの第１のコピー及び別のコンピュータ・システムの一群のファイルの第２のコピーを供給し、最後に一致されて以来一群のファイルの第１のコピーに対してなされたあらゆる変更を一群のファイルの第２のコピーが組み込むようにリコンサイラ・ファシリティを用いて一群のファイルの第１のコピーを一群のファイルの該第２のコピーと一致させる段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給する。
【００４８】
本発明の方法は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含んでいる多数のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムの記憶装置に記憶される一群のファイルの第１のコピーを供給し、第２のコンピュータ・システムの記憶装置に記憶される一群のファイルの第２のコピーを供給し、一群のファイルの第１のコピーのファイルの少なくとも一つに対して変更を行い、事象の発生により一群のファイルの第２のコピーへ変更を伝搬し、一群のファイルの第１のコピーのファイルの少なくとも一つに対して追加の変更を行い、別の事象の発生により一群のファイルの第２のコピーへ追加の変更を伝搬する段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給する。
【００４９】
本発明の方法は、レプリケーション・ファシリティ及びそれぞれが記憶装置を含むコンピュータ・システムを有している分散型システムにおいて、コンピュータ・システムの記憶装置に、ネームを有している、ファイルを記憶し、記憶されたファイルのネームの論理的編成からなる分散型ネーム空間を供給し、ファイルの選択された部分を保持している新しいファイルを生成するためにレプリケーション・ファシリティを用いてそのネームが分散型ネーム空間の一部を形成しかつ一つのコンピュータ・システムの記憶装置に記憶された一群のファイルの選択された部分をレプリケートする段階を具備するので、分散型環境の分散型ネーム空間内であらゆるサブツリーをレプリケートすることが可能である。
【００５０】
本発明の方法は、第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムに記憶される所与のクラスの一組のファイルの第１のコピーを供給し、第２のコンピュータ・システムに記憶される所与のクラスの一組のファイルの第２のコピーを供給し、所与のクラスのファイルだけを一致させるクラス特定リコンサイラを用いて一組のファイルの第１のコピーを一組のファイルの第２のコピーと一致させる段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給する。
【００５１】
本発明の方法は、専用レプリケーション機構及びそれぞれが記憶装置を含んでおり処理を実行するためのコンピュータ・システムを有している分散型システムにおいて、一つのコンピュータ・システム上でアプリケーション・プログラムを実行し、アプリケーション内にてそれぞれがファイルをアクセスすることを許容される処理のリストを維持している一組のファイルをリプリケートすべく専用レプリケーション機構に対して要求を行い、ファイルをアクセスすることを許容される処理のリストを、各ファイルに対して、レプリケートすることなく新しい組のファイルを生成すべく専用レプリケーション機構を用いて一組のファイルをレプリケートする段階を具備するので、多重マスターの、弱一貫性のレプリケーションを供給し、公開レプリケーションと専用レプリケーションの両方を支援するという効果を奏する。
【００５２】
本発明の方法は、第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムでファイルのコレクションを供給し、ファイルのコレクションを第２のコンピュータ・システムへレプリケートするための要求に応じて、コレクションの全てのファイルがレプリケートされるべきかまたはされるべきでないかを決定し、コレクションの全てのファイルがレプリケートされるべきであると決定されるならば、コレクションのレプリカが第２のコンピュータ・システムで供給されるようにコレクションの全てのファイルをレプリケートし、コレクションの全てのファイルがレプリケートされるべきでないと決定されるならば、コレクションのファイルの全てをレプリケートしない段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給し、多重マスターの、弱一貫性のレプリケーションを供給する。
【００５３】
本発明の方法は、第１のコンピュータ・システム及び第２のコンピュータ・システムを有している分散型システムにおいて、第１のコンピュータ・システムの一群のファイルの第１のコピーを供給し、第２のコンピュータ・システムの一群のファイルの第２のコピーを供給し、一群のファイルの第１のコピーに対して変更を行い、それぞれが一群のファイルの第１のコピーのファイルをアクセスしかつ読取るためのアクセス権を有するエージェントを一群のファイルの第１のコピーに対して供給し、一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させるために第２のコンピュータ・システムでリコンサイラを供給し、一群のファイルの第１のコピーのファイルをアクセスしかつ読取るべく限定された権限をリコンサイラに賦与するプロクシを、一群のファイルの第１のコピーのエージェントからリコンサイラへ賦与し、一群のファイルの第１のコピーに対してなされた変更が一群のファイルの第２のコピーに対してなされるようにリコンサイラを用いて一群のファイルの第２のコピーを一群のファイルの第１のコピーと一致させる段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給し、多重マスターの、弱一貫性のレプリケーションを供給する。
【００５４】
本発明の方法は、分散型システムにおいて、分散型システムの非均質ファイル・システムを供給し、ファイル・システムのファイルへのアクセスを管理すべく各ファイル・システムに対して記憶管理プログラムを供給し、第１の組のファイルを第２の組のファイルと一致させるための要求に応じて、第１の組のファイルを保持するファイル・システムに対する記憶管理プログラムにより第１の組のファイルへのアクセスを賦与し、かつ第２の組のファイルを保持するファイル・システムに対する記憶管理プログラムにより第２の組のファイルへのアクセスを賦与し、第１の組のファイル及び第２の組のファイルを保持しているそれぞれのファイル・システムの記憶管理プログラムの制御の下で第１のオブジェクト・セットを第２の組のオブジェクトと一致させる段階を具備するので、分散型環境におけるファイルまたはファイルの部分のレプリケーションを供給し、多重マスターの、弱一貫性のレプリケーションを供給する。
【発明を実施するための最良の形態】
【００５５】
本発明の好ましい実施例は、分散型環境（distributed environment ）で用いられるレプリケーション・ファシリティを提供する。レプリケーション・ファシリティは、システムの分散型ネーム空間における存続オブジェクト（persistent objects）のあらゆるツリーの弱一貫レプリケーション（weakly consistent replication ）を支援する。レプリケーション・ファシリティは、単独オブジェクト（single objects）をレプリケート（模写、複製：replicate ）しうるか、または多重オブジェクトを含む論理的構造（logical structures）をレプリケートしうる。レプリケーション・ファシリティは、オブジェクトの局所コピー（local copies）をオブジェクトの遠隔コピー（remote copies ）と一致させる。リコンシリエーション（一致、reconciliation）は、オブジェクトの局所セットにおける各オブジェクトが局所オブジェクトの遠隔セットにおける（それに）対応するオブジェクトと一致させられるように一対様式基準（a pair-wise basis ）で発生する。リコンシリエーションは、非均質ファイル・システム（heterogeneous file systems）にわたって発生しうる。
【００５６】
図１は、本発明の好ましい実施例を実行するのに適当な分散型システム１０を示す。分散型システム１０は、多数の異なるデータ処理資源を相互接続する、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、または他の相互接続機構のような、相互接続機構１２を含む。データ処理資源は、ワークステーション１４、１６、１８及び２０、プリンタ２２及び２４、そして二次記憶装置２６及び２８を含む。ワークステーション１４、１６、１８及び２０のそれぞれは、各々メモリ３０、３２、３４及び３６を含む。メモリ３０、３２、３４及び３６のそれぞれは、分散型オペレーティング・システム３８のコピーを保持する。各ワークステーション１４、１６、１８及び２０は、個別のファイル・システムを実行しうる。
【００５７】
当業者は、本発明が図１に示す構成以外の構成で実施しうるということに注目するであろう。図１に示す分散型システム１０は、単に説明のために企図したものであり、本発明を限定するものではない。例えば、相互接続機構１２は、個別のネットワーク・オペレーティング・システムを実行している多数のネットワークを一緒に相互接続しうる。
【００５８】
本発明の好ましい実施例は、ユーザ及びシステム管理責任者に存続“オブジェクト”をレプリケートさせる。このコンテキストにおいて、オブジェクトは、少なくとも一つのデータ・フィールド（data field）を保持する論理的構造である。類似な特性（similar properties）及び共通な意味（コモン・セマンティクス：common semantics）を有するオブジェクトの群は、オブジェクト・クラス（object classes）に編成される。多数の異なるオブジェクト・クラスが分散型システム１０について規定されうる。本発明の好ましい実施例は、オブジェクトを採用するけれども、当業者は、本発明がオブジェクト指向型環境だけに限定されない；それよりも、本発明は、非オブジェクト指向型環境においても実施されうるということに注目するであろう。本発明は、オブジェクトのレプリケーションに限定されない；それよりも、ファイルやファイル・ディレクツリーズ（file directories）のような、論理的構造のレプリケーションを支援することがより一般化される。
【００５９】
オペレーティング・システム３８は、本発明の好ましい実施例で用いられるオブジェクトを記憶するためのファイル・システムを含む。オブジェクトは、分散型ネーム空間１９に編成される（図２参照）。分散型ネーム空間１９は、オペレーティング・システム３８のファイル・システムに記憶されたオブジェクト・ネーム２１から形成された論理的ツリー式構造（logical tree-like structure ）である。分散型ネーム空間１９は、システム１０の名前付きオブジェクト（named objects ）の中で階層を示す（図１参照）。
【００６０】
本発明の好ましい実施例のレプリケーション・ファシリティは、オブジェクトが分散型システムにわたって分散されうるようにオブジェクトのデュプリケーション（複写：duplication ）に対して供給するだけでなく、オブジェクトの多重コピーのリコンシリエーション（即ち、マルチマスター・レプリケーション：multimaster replication ）に対しても供給する。リコンシリエーションは、オブジェクトが変更されたオブジェクトに対してなされた変更を反映するように、オブジェクトを変更されたオブジェクトとリコンサイルする（一致させる) ことを意味する。例えば、オブジェクトの遠隔コピーが変更されかつオブジェクトの局所コピーがその変更を反映すべくまだ更新されていないものと仮定する。各オブジェクトは、分散型ファイル・システム内にコンテント（内容）を有するだけでなくネーム（名前）及び位置をも有する。リコンシリエーションは、オブジェクトの局所コピーがオブジェクトの遠隔コピーが変更された方法と同様なファッションで変更されるようにオブジェクトの二つのコピーを一致させることを含む。ここで用いられるように、項目“レプリケーション”は、オブジェクトの多重コピーが分散型システム１０にわたって分散されるようにオブジェクトをデュプリケーティングする（複写する）ことだけを意味するのではなく、オブジェクトのコピーのリコンシリエーション（一致）をも意味する。
【００６１】
以下により詳細に本発明の好ましい実施例を説明する前に、以下で参照される２〜３のキー・コンセプトを導入することは、有益である。“オブジェクト・セット（ｏｂｊｅｃｔ  ｓｅｔ）”は、レプリケーションに対して一緒にグループ化されるオブジェクトのコレクション（ｃｏｌｌｅｃｔｉｏｎ）である。オブジェクト・セットは、単一のオブジェクトまたはオブジェクトのサブツリーを含みうる。オブジェクト・セットは、レプリケーションを要求するユーザまたは管理責任者によって特定される。“レプリカ・セット（ｒｅｐｌｉｃａ  ｓｅｔ）”は、対照的に、それぞれがオブジェクト・セットの局所コピーを所有するシステムのコレクションであり、“レプリカ（ｒｅｐｌｉｃａ）”は、レプリカ・セットの構成部材（ｍｅｍｂｅｒ）である。横たわっている物理的記憶システム（ｕｎｄｅｒｌｙｉｎｇ  ｐｈｙｓｉｃａｌ  ｓｔｏｒａｇｅ  ｓｙｓｔｅｍ）（例えば、オブジェクトを記憶すべく採り入れられたファイル・システムの形式）からレプリケーション・ファシリティを防護（隔離）する（ｉｎｓｕｌａｔｅ）ためにかつ拡張性を供給するために、本発明の好ましい実施例は、レプリケートされたオブジェクト記憶のアブストラクション（ａｂｓｔｒａｃｔｉｏｎ  ：抽象）（ＲｅｐｌＳｔｏｒｅ）を採用する。ＲｅｐｌＳｔｏｒｅ・アブストラクションは、レプリケーション・ファシリティに非均質ファイル・システムにわたって適用されることを許容する。ＲｅｐｌＳｔｏｒｅは、レプリケーション・ファシリティーズを支援すべく横たわっている物理的記憶システムに対して支援されなければならない一群のインタフェースを表わす。特に、ＲｅｐｌＳｔｏｒｅインタフェースを支援するオブジェクト記憶（ｏｂｊｅｃｔ  ｓｔｏｒｅｓ）に存在するこれらのオブジェクトだけがレプリケートされうる。インタフェースは、論理的に関連した機能の一名前付き群（ａ  ｎａｍｅｄ  ｇｒｏｕｐ）である。インタフェースは、インタフェースによって供給された一群の関連機能に対する（パラメータのような）シグネチャ（ｓｉｇｎａｔｕｒｅｓ）を特定する。インタフェースは、機能を実行するコード（符号）を供給しない；それよりも、機能を実行するためのコードがオブジェクトによってまたは他の実施（ｏｔｈｅｒ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎｓ）によって供給される。インタフェースの瞬間に対してコードを供給するオブジェクトは、インタフェースを“支援する”と言われる。インタフェースを支援するオブジェクトによって供給されるコードは、インタフェース内で特定されたシグネチャに従わなければならない。それゆえに、上述した実施例では、オブジェクト・セットでオブジェクトを記憶するオブジェクト記憶は、オブジェクト・セットがレプリケートされるためにＲｅｐｌＳｔｏｒｅインタフェースを支援しなければならない。ＲｅｐｌＳｔｏｒｅインタフェースの実行（実施）は、ファイル・システンのそれぞれにわたってレプリケーションを支援するために分散型システム１０内のファイル・システムのそれぞれに対して供給される。
【００６２】
各ＲｅｐｌＳｔｏｒｅは、局所ボリューム上のレプリケートされたオブジェクトを識別するための機構を供給する。この機構は、レプリケーティド・オブジェクト（replicated object ）ＩＤ（ＲＯＢＩＤ）である。ＲＯＢＩＤは、識別及びレプリケートされているオブジェクトについての他の情報をエンキャプスレート（encapsulate ：密閉）するアブストラクションである。ＲｅｐｌＳｔｏｒｅは、ＲＯＢＩＤｓを直列化し（serializing ）かつ非直列化する（deserializing ）ためのルーチンを支援する。オブジェクトのＲＯＢＩＤは、多数の動作を実行する機構を供給する。例えば、オブジェクトは、ＲＯＢＩＤに包含された情報を用いて記憶装置から検索されうる。更に、オブジェクトの構成要素ネーム（component name）は、そのＲＯＢＩＤから導出されうる。
【００６３】
各ＲｅｐｌＳｔｏｒｅは、レプリケーティド記憶変更記録簿（replicated storage change log ）４０を維持する（図３参照）。変更記録簿４０は、オブジェクト・セットのオブジェクトに対してなされた変更を特定する多数の変更項目４２を含む。各変更項目４２は、形式フィールド（type field）４４、変更されたオブジェクトに対する直列化されたＲＯＢＩＤフィールド４６、変更が発生した時間（局所時間）を示す時間フィールド（time field）４８、及び変更に対応付けられたＲＩＢを保持するレプリケーション情報ブロック（ＲＩＢ）フィールド５０を含む。ここの述べられた実施例では、形式フィールド４４内で特定されうる五つの形式の変更が存在する。これらの変更は、消去（deletion）、生成（creation）、変更（modification）、改名（renaming）、及び移動（moving）である。消去は、オブジェクトが消去されるときに発生する。生成は、オブジェクトが生成されるときに発生する。変更は、オブジェクトの内容（contents）がある方法で変更されるときに発生する。改名は、オブジェクトの構成要素ネームが変更されるときに発生し、そして移動は、オブジェクトがシステムの分散型ネーム空間の新しいペアレント（new parent）の下で移動されるときに発生する。
【００６４】
カーソル４９は、変更項目４２のリストへのインデックス（索引、指標）として作用する変更記録簿４０内で維持される。カーソル４９は、変更項目４２のリストでマーカ（marker）として作用する。加えて、変更記録簿は、多重カーソルを含みうる。カーソル４９は、タイム・スタンプ（時刻表示：time stamp）の形を取りうる。カーソル４９は、例えば、ある時点の後で発生した変更の開始を識別しうる。
【００６５】
レプリケートされているオブジェクト・セットのあらゆるオブジェクトは、ＲＩＢ５１でスタンプされる（図４参照）。ＲＩＢ５１は、三つのフィールドを有する：オリジネータ・フィールド（originator field）５３、変更識別子フィールド（change identifier field ）５５、及びプロパゲータ・フィールド（propagator field）５７。オリジネータ・フィールド５３は、オブジェクトへの最後の変更が発生したところを特定する。変更識別子フィールド５５は、対照的に、オリジネータ・フィールド５３内で識別されたオリジネータに関するオブジェクトへの最後の変更を識別する。最後に、プロパゲータ・フィールド５７は、局所側へ変更を送ったパーティの識別を特定する。オブジェクトが論理的に変更されるときには、オブジェクトに対応付けられたＲＩＢ５１は、オリジネータ及びプロパゲータとして局所側を反映すべく変更される。変更識別子は、適当にスタンプされる。
【００６６】
レプリケーションは、負荷平衡（load balancing）及び可用性（availability）を供給することにおいて分散型システム１０に対して有用である。レプリケーションは、オブジェクトのいずれか一つのコピー上に負荷を制限すべく分散型システム１０にわたって記憶されたオブジェクトの一つ以上のコピーを有することによって負荷平衡を供給する。レプリケーションは、重要なオブジェクトの多重コピーをシステム１０にわたって分散されることを許容することによって可用性を向上する。向上した可用性は、システムの障害許容力を増大する。特に、システム１０にわたって分散された重要なオブジェクトのコピーを有することによって、ユーザは、オブジェクトへのアクセスを妨げるかまたは制限するシステム内の故障によって影響されなくなる。向上した可用性は、システムの性能をも向上する。
【００６７】
本発明の好ましい実施例は、オペレーティング・システム３８の部分であるレプリケーション・ファシリティ５４（図５参照）に具体的に表されている。それにもかかわらず、当業者は、本発明のレプリケーション・ファシリティが、図形ユーザインタフェースを含んでいる、他の環境においても実行されうることを注目するであろう。図５に示すように、レプリケーション・ファシリティ４２は、三つの主機能構成要素を含んでいる：複写構成要素５６、リコンサイラ構成要素５８及び制御構成要素６０。レプリケーション・ファシリティ５４は、デュプリケーションに対して複写構成要素５６を用いる。加えて、レプリケーション・ファシリティ５４は、それらが互いに一貫していることを確実にすべくリコンサイラ構成要素５８を用いてオブジェクト・セットのコピーを一致させる。このリコンシリエーションは、分散型システム１０にわたるオブジェクトの一貫した視点（consistent view ）を保証する。
【００６８】
制御構成要素６０により及ぼされた（ｅｘｅｒｔｅｄ）制御の一つのレベルは、レプリケーションが呼び出された方法に関する。レプリケーションは、手動的または自動的に呼び出されうる。手動呼出しは、レプリケートすべく明示的な要求がユーザまたは他のパーティによってなされることを要求する。ユーザまたは他のパーティは、オブジェクト・セット及びレプリケーションの宛先を特定しなければならない。宛先は、各レプリケーション・サイクルに対して特定されない：それよりも、レプリカ接続（ｒｅｐｌｉｃａ  ｃｏｎｎｅｃｔｉｏｎ）が最初に特定される。レプリカ接続は、レプリケーションに含まれるべき二つのレプリカとオブジェクト・セットを識別する。対照的に、自動呼出しは、ある一定の事象６７（図６参照）または（事象の形式として解釈されうる）ある一定時間の経過によって始動（トリガー）される。レプリケーションは、固定された時間間隔で発生すべく予め計画されうる。制御機構により及ぼされる制御の別の観点は、レプリケーションを呼び出しうるものに関する。レプリケーションは、適正特権パーティ（ａｐｐｒｏｐｒｉａｔｅｌｙ  ｐｒｉｖｉｌｅｇｅｄ  ｐａｒｔｙ）によって呼び出されうる。本発明の好ましい実施例は、二つの形式のレプリケーションを供給する：公開レプリケーション及び専用レプリケーション。公開レプリケーションは、オブジェクトの“公開”コピーを生成すべく適正特権パーティズによってのみ実行されうる処理を意味する。公開レプリケーションでは、生成されるオブジェクト・セットのコピーのそれぞれは、一貫性を維持すべく他のコピーと協同（協働）する。公開コピーを記憶するネーム空間のノードは、全体として、公開レプリカ・セットを形成し、そしてセットのメンバ（ｍｅｍｂｅｒｓ）は、コピーの間で一貫性を維持すべく状態情報（ｓｔａｔｅ  ｉｎｆｏｒｍａｔｉｏｎ）を保つ。オブジェクト上のアクセス制限は、保存される。オブジェクト・セットの公開コピーで発生する変更は、他の公開コピーと一致させられる。
【００６９】
専用レプリケーションは、オブジェクト・セットの専用コピーを生成する処理を意味する。専用コピーは、非管理責任者を含む、あらゆるパーティによって生成されうる。レプリケーティド・セットの全てのメンバが、コピーの間の一貫性を維持すべく状態情報を保つのではない。専用レプリケーションは、以下に詳細に説明する。
【００７０】
多数の構成要素は、本発明の好ましい実施例におけるレプリケーション処理で役割をする。図６は、公開レプリケーション処理で重要な役割をしうる構成要素を示す図である。オブジェクト・レプリケーション・エージェント（ＯＲＡｓ）６２及び６４は、レプリケーションのための自動支援（automatic support ）を供給すべくオブジェクト・セットが記憶されるノードのためにエージェントとして作用するレプリケータ・オブジェクト（replicator objects）である。分散型システムの各機械は、それ自体のＯＲＡを有する。ＯＲＡｓ６２及び６４は、遠隔クライアントのためになされた要求を提供する遠隔手続き呼出しサーバ（remote procedure call （ＲＰＣ）servers ）として作用しうるかまたは類似な役割を提供する他の形式の高信頼通信機構（reliable communication mechanisms ）で代替的にありうる。個別のＯＲＡ６４（６２）は、局所オブジェクトに対して提供され、別のＯＲＡ６４は、公開レプリケーション処理の対応する遠隔オブジェクトに対して提供される。局所ＯＲＡ６２は、ＲｅｐｌＳｔｏｒｅ  ＤＬＬ６６及びＲｅｐｌＳｔｏｒｅ  Ｍａｎａｇｅｒ  ＤＬＬ６５のローディングを司る。ＲｅｐｌＳｔｏｒｅ  Ｍａｎａｇｅｒ６５は、ＲｅｐｌＳｔｏｒｅ６６へのアクセスの調整を司る。クライアントは、所与の物理的記憶システムに対して適当なＲｅｐｌＳｔｏｒｅ６６をロードすべくＲｅｐｌＳｔｏｒｅ  Ｍａｎａｇｅｒ６５を呼出す。ＯＲＡｓ６２及び６４は、それらに局所オブジェクト記憶（装置）からレプリケートされている全てのオブジェクトを読取らせかつ書込ませる特権のレベルを有する。ＯＲＡｓ６２及び６４は、公開レプリカ（public replicas ）を維持する他のＯＲＡｓと変更を交換すべく要求に応答することを司る。
【００７１】
リコンサイラ６８も公開レプリケーション処理で役割をする。それは、局所オブジェクト・セットを対応する遠隔オブジェクトと一致させるべく局所ＯＲＡ６２に対するカウンターパート（counterpart ）として作用する。リコンサイラ６８は、局所ＯＲＡ６２によって呼び出されかつリコンサイル（一致）されるべきオブジェクトを開くことを司る。二つの形式のリコンサイラ・オブジェクトがリコンサイラ６８によって呼び出されうる。特に、クラス特定リコンサイラ７０またはディフォールト（即ち、クラス独立：class-independent ）リコンサイラ７２が呼び出されうる。クラス特定リコンサイラ７０は、レプリケーションでクラス特定要求を有するオブジェクトを一致させる。クラス特定リコンサイラ７０は、一クラスのオブジェクトに対してのみ適用される。クラス独立リコンサイラ７２は、それらのクラスの如何に係わらずオブジェクトを一致させる。多重クラス独立リコンサイラがシステム１０で利用可能でありうる。例えば、各オブジェクト・セットは、それ自体のクラス独立リコンサイラを有しうる。全てのレプリカ・セットは、クラス特定リコンサイラが利用不可能であるときにはいつでも呼び出されるそれ自体のクラス独立リコンサイラに対応付けられうる。最後に、上述したように、事象６７は、レプリケーションをトリガ（始動）する役割をしうる。
【００７２】
図８は、本発明の好ましい実施例におけるレプリケーションに対して実行されるステップのフローチャートである。最初に、遠隔オブジェクト・セットに対する変更記録簿４０（図３参照）に対してアクセスが獲得される（図８のステップ７４）。特に、局所オブジェクト・セットが遠隔オブジェクト・セットと一致させられるときには、局所ＯＲＡ６２（図６参照）は、遠隔手続き呼出し機構（ｒｅｍｏｔｅ  ｐｒｏｃｅｄｕｒｅ  ｃａｌｌ  ｍｅｃｈａｎｉｓｍ  ）を介して遠隔ＯＲＡ６４と接触する。局所ＯＲＡ６２は、変更記録簿４０へのアクセスを獲得すべく遠隔ＯＲＡ６４と接触する。次に、カーソル４９（図３参照）は、変更記録簿で生成される（図８のステップ７６）。特に、局所ＯＲＡ６２は、オブジェクト・セット間の最後のリコンシリエーションの時間を示しているタイム・スタンプを記憶し、そして次にカーソル４９として用いられるべくこのタイム・スタンプを遠隔ＯＲＡ６４へ渡す。次に、遠隔ＯＲＡ６４は、このタイム・スタンプをカーソルとして遠隔変更記録簿４０へ渡す。カーソルは、最後のリコンシリエーションの後でタイム・スタンプを有する変更記録簿の項目を識別し、それゆえに、（項目は、）このレプリケーション・サイクルに対して関係がある。
【００７３】
そして、変更項目の一覧表（リスト）は、最後のリコンシリエーションの後で発生した変更に対する変更項目を識別すべく、カーソルを用いて遠隔変更記録簿から得られる。遠隔ＯＲＡ６４は、遠隔ＯＲＡが局所ＯＲＡで発生した変更を局所ＯＲＡ６２へパス・バックしない（即ち、遠隔ＯＲＡがＲＩＢｓのオリジネータ・フィールド５３を検査する）ことを保証すべく変更項目４２のそれぞれのＲＩＢｓ５１を予備選択（screen）し、かつ局所ＯＲＡから伝送された変更に対する変更項目（即ち、遠隔ＯＲＡがＲＩＢｓのプロパゲータ・フィールド５７を検査する）が送られないことを保証すべくＲＩＢｓを検査する。結果として得られた（合成）変更項目は、それらが持続的に記憶される局所ＯＲＡ６２へパス・バックされる。局所ＯＲＡ６２は、変更項目のＲＯＢＩＤｓによって識別されたオブジェクト上でネーム空間リコンシリエーション（ステップ８０）及び内容リコンシリエーション（ステップ８２）を実行すべくリコンサイラ６８を用いる。特に、リコンサイラ５６は、遠隔オブジェクト・セットで変更した各オブジェクトを局所オブジェクト・セットの対応するオブジェクトと一致させる。遠隔オブジェクトに対してなされたあらゆる変更は、対応する局所オブジェクトに対してなされる。クラス特定リコンサイラ７０またはクラス独立リコンサイラ７２が用いられるかどうかは、ソース（即ち、オブジェクトの遠隔コピー）に依存する。クラス特定リコンサイラ７０は、もしオブジェクトの遠隔コピーがそのようなリコンサイラを要求するときにのみ用いられる。
【００７４】
ネーム空間リコンシリエーションは、内容変更に限定されないかまたはシステム特性に対応付けられない変更項目に記録されたあらゆる変更に対して実行される。そのような変更は、生成、消去、移動、及び改名を含む。ネーム空間リコンシリエーションは、対応している遠隔オブジェクトに対して記憶された情報に関して局所オブジェクトのＲＯＢＩＤｓによって取得可能な情報を比較することによって発生する。ネーム・レゾルーション・コンフリクト（ネーム解像矛盾：name resolution conflicts ）を解決するための多くの異なる方法が本発明内で用いられうる。本発明の好ましい実施例は、しかしながら、規則（rules ）を採用する。ネーム空間矛盾（namespace conflicts ）を解決すべく本発明の好ましい実施例によって用いられる第１の規則は、先の変更にわたる最後の変更を選択することである。第１のネームを有すべく一つの側でオブジェクトが移動／改名され、そして異なるネームを有すべく同じオブジェクトが別の側へ移動または改名されるときに、オブジェクトが最後の変更に対応付けられたネームを仮定（想定）するように最後に発生される変更が選ばれる。第２の規則は、ネーム空間衝突を解決すべく用いられる。ネーム空間衝突は、二つの異なるオブジェクトが生成され、移動され、または同じネームを有すべく改名されるときに発生する。第２の規則は、オブジェクトが生成され、移動され、または改名されたうちのいずれであっても、最初は、局所側のオブジェクトに対して選択されたネームであることを特定する。
【００７５】
内容リコンシリエーション（図８のステップ８０を参照）は、局所オブジェクトが遠隔オブジェクトに対してなされた変更を含むように局所オブジェクトの内容を遠隔オブジェクトに一致させることを含む。変更記録簿の変更を検査することによって、局所オブジェクトは、遠隔オブジェクトと同じ内容を有すべく変更されうる。レプリケーション中、変更は、一つのレプリカから別のものへ伝搬される。レプリケーションは、オブジェクト・セットの最初のコピーに対してなされた変更がオブジェクト・セットの第２のコピーになされるということにおいて“一方通行”である。オブジェクト・セットの第２のコピーに対してなされた変更をオブジェクト・セットの第１のコピーへ複写するための即時反作用（ｉｍｍｅｄｉａｔｅ  ｒｅｃｉｐｒｏｃａｌ  ａｃｔｉｏｎ）が存在しない。しかしながら、オブジェクト・セットの第１のコピーへのそのような伝搬は、実行されうる。このレプリケーションの一方通行性質を与えて、各レプリカは、レプリカに対してオブジェクト・セットの局所コピーがどのように更新するのかを監視し、カーソルは、共同変更記録簿に維持される。リコンシリエーション中の各交換の完了で、二つのレプリカは、カーソル情報を交換する。
【００７６】
公開レプリケーションは、多数の機密保護イッシュー（発行：ｉｓｓｕｅｓ）をポーズ（主張：ｐｏｓｅｓ）する。一般に、リコンサイラは、レプリケーションを実行するためにオブジェクトを更新できなければならない。クラス独立リコンサイラは、信用システム処理であり、それゆえに、機密保護リスクをポーズしない。しかしながら、クラス特定リコンサイラは、信用システム処理ではない、それゆえに機密保護スレット（脅威：ｔｈｒｅａｔ）をポーズする。この機密保護ジレンマを緩和することを援助すべく、本発明の好ましい実施例は、“プロクシズ（ｐｒｏｘｉｅｓ）”を利用する。プロクシ（ｐｒｏｘｙ）は、異常な特権（ｅｘｔｒａｏｒｄｉｎａｒｙ  ｐｒｉｖｉｌｅｇｅｓ）を有することなく明確な動作を実行するワーカー処理（ｗｏｒｋｅｒ  ｐｒｏｃｅｓｓｅｓ）または遠隔処理を許容するデリゲーション・チケット（ｄｅｌｅｇａｔｉｏｎ  ｔｉｃｋｅｔ）である。プロクシは、許可しているパーティ（ｇｒａｎｔｉｎｇ  ｐａｒｔｙ）の資格（ｃｒｅｄｅｎｔｉａｌｓ）をパッケージ（ｐａｃｋａｇｅ）しかつ遠隔オブジェクトへのアクセスを求めているパーティにそれらを貸す。アクセスを求めているパーティは、許可しているパーティに取って換わりかつ必要なオブジェクトをアクセスする。これらの資格は、暗号化されうる。図７は、本発明の好ましい実施例においてプロクシを利用すべく実行されるステップのフローチャートである。レプリケーション処理中、遠隔ＯＲＡ６４（図６）は、局所リコンサイラ６８にプロクシを与える（図７のステップ８４）。上述したように、このプロクシは、局所リコンサイラへ遠隔ＯＲＡによって許可されるべきアクセス権及び適当な資格を含む。リコンサイラ６８は、遠隔側へ資格を送る（図７のステップ８６）。換言すると、リコンサイラ６８は、遠隔側へプロクシを贈る。遠隔側は、資格を検査し、そしてもし資格が有効であるならば、問題のオブジェクト・セットの遠隔コピー内のオブジェクトへの限定付きアクセスを許可する（ステップ８８）。リコンサイラ６８は、オブジェクト・セットの遠隔オブジェクトへのアクセスを獲得する（ステップ８０）。しかしながら、局所リコンサイラのアクセス範囲は、相応なリコンシリエーションを実行するために必要なものだけに限定される。本発明は、排他的にプロクシを用いることに限定されないということに注目すべきでる。各ＯＲＡをアクセス権を許可する共通アクセス群のメンバにするような、セキュア・アクセス（ｓｅｃｕｒｅ  ａｃｃｅｓｓ）を許可するあらゆる技法が許容可能である。
【００７７】
上記説明の大部分は、公開レプリケーションに集中している。専用レプリケーションは、公開レプリケーションに類似であるが、しかし多数の相違点を含む。専用レプリケーションでは、変更の源（ソース）は、どのオブジェクトがデュプリケート（複写）または変更されたかという記録を維持しない。ソースで維持される状態情報が存在しない。ソースは、変更が発生したことを忠告することを司らない。従って、公開レプリケーションに対して要求される資源は、要求されない。これらの特徴は、レプリケーションの手動制御が望ましい場合、またはオブジェクト・セットの公開コピーを維持する経費が保証されない場合に専用レプリケーションを特に適切にする。
【００７８】
本発明は、その好ましい実施例を参照して記述されたが、当業者は、添付した特許請求の範囲に規定される本発明の範囲から逸脱することなく、形式及び詳細における種々の変更がなされうるということに注目するであろう。例えば、本発明は、オブジェクト指向型環境にて実行される必要がなく、かつ図１に示すような分散型システム構成で単独で実施される必要もない。更に、ＲＰＣ機構以外の通信機構が、遠隔相互作用に対して用いられうるし、プロクシズ以外の機密保護機構が採用されうる。
【図面の簡単な説明】
【００７９】
【図１】本発明の好ましい実施例を実施するのに適当な分散型システムのブロック図である。
【図２】本発明の好ましい実施例による分散型システムに対する分散型ネーム空間の図である。
【図３】本発明の好ましい実施例に用いられる変更記録簿のブロック図である。
【図４】本発明の好ましい実施例に用いられるレプリケーション情報ブロック（ＲＩＢ）のブロック図である。
【図５】本発明の好ましい実施例に用いられるレプリケーション・ファシリティの機能構成要素（functional componets）を示しているブロック図である。
【図６】本発明の好ましい実施例における公開レプリケーション（public replication）で役割をする構成要素の相互作用を示す図である。
【図７】本発明の好ましい実施例におけるレプリケーションの間に機密保護を供給すべく実行されるステップを示すフローチャートである。
【図８】本発明の好ましい実施例におけるレプリケーションで実行されるステップのフローチャートである。
【符号の説明】
【００８０】
３８  オペレーティング・システム
５４  レプリケーション・ファシリティ
５６  複写構成要素
５８  リコンサイラ構成要素
６０  制御構成要素
【図１】
2007299431.tif 000003
【図２】
2007299431.tif 000004
【図３】
2007299431.tif 000005
【図４】
2007299431.tif 000006
【図５】
2007299431.tif 000007
【図６】
2007299431.tif 000008
【図７】
2007299431.tif 000009
【図８】
2007299431.tif 000010