本明細書で説明する多くの機能ユニットをモジュールと名づけているが、これはそれらの導入の仕方が独立であることを特に強調するためである。例えば、汎用のVLSI回路やゲート・アレイ、或いは論理チップ、トランジスタ、その他の個別のコンポーネントなど、直ぐ入手できる半導体で構成されているハードウェアとしてモジュールが導入されてもよい。モジュールはまた、フィールドでプログラム可能なゲート・アレイ、プログラム可能なアレイ・ロジック、プログラム可能な論理装置など、プログラム可能なハードウェア装置で導入されていても良い。
モジュールはまた、いろいろな種類のプロセッサを実行させるためのソフトウェアで導入されていても良い。実行可能なコードの或る識別されたモジュールは、例えばオブジェクト、プロシージャ、又は機能としてまとめられるような一つ以上の物理的又は論理的な、コンピュータ命令のブロックを含んでいても良い。それでも、或る識別されたモジュールの実行可能ユニットは、互いに物理的に一緒に位置づけられる必要はなく、異なる位置に記憶された、異なる命令を含んでいても良い。これらは論理的に互いに一緒にされると、そのモジュールを構成し、そのモジュールのために記述された目的を達成する。
実際、実行可能コードのモジュールは、単一の命令、又は多くの命令からなっていてもよく、幾つかの異なるコード・セグメント、幾つかの異なるプログラム、幾つかのメモリ装置にまたがっていても良い。同様に、動作可能データは、ここではモジュール内で取り上げられ、説明されていてもよく、また任意の適当なタイプのデータ構造中に組み込まれ、任意の適当な形式で実施されても良い。この動作データは、単一のデータ・セットとして集められていても、異なる記憶装置や異種のメモリ装置といった異なる位置にわたって分散されていても良いし、また、少なくとも部分的には単に電子的な信号としてのみシステムやネットワーク上に存在していても良い。
更に、モジュールは、ソフトウェア及び1個若しくはそれ以上のハードウェア装置の組み合わせとして導入されていても良い。例えば、モジュールが、メモリ装置上に記憶されたソフトウェア実行可能コードといった組み合わせで実施されても良い。他の実施例では、モジュールは、一組の動作データ上で動作するプロセッサといった組み合わせであっても良い。更に他の例では、モジュールは、伝送回路を通る電子的信号の組み合わせで実施されてもよい。
この明細書全般で、「一実施例」「ある実施例」又はそれらと同様な用語で示すことは、その実施例に関連して説明する特徴、構造、若しくは特性が、本発明の少なくとも一つの実施例に含まれることを意味する。従って、「一実施例では」、「ある実施例では」及びこの明細書中で用いる同様の用語は、必ずしも全て同じ実施例を示すものではない。
更に、本発明で説明する特徴、構造、及び特性は、一つ以上の実施例で任意の適当な態様で組み合わされても良い。以下の説明では、多くの特定の詳細が提供される。例えば、プログラミング、ソフトウェア・モジュール、ユーザの選択、ネットワークのやりとり、データベースの質問、データベース構造、データベース、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等々の例であり、これらで本発明を完全に理解することができる。他の例では、良く知られた構造、材料又は動作を詳細には示していないが、これは本発明を分かりにくくしないためである。
図1は、複数のクライアント、即ちノード104ないし110に通信チャネルを介して接続されたグリッド・サーバ102を含むグリッド・システム100を示す。図示のグリッド・システム100は、ローカル・エリア・ネットワーク(LAN)に似ており、通信チャネル112は、一実施例ではイーサネット(登録商標)、通信チャネル、ワイヤレス通信チャネル、又は他の等価な通信チャネルであってよい。同様に、通信チャネル112は種々のタイプの通信チャネルの組み合わせを含んでいても良い。図示のグリッド・システム100が1個のグリッド・サーバ102と4個のクライアント104ないし110を含んでいるが、このグリッド・システムはもっと少ない又はもっと多くのクライアント104ないし110、1個よりも多いサーバ102を有する種々の組み合わせのネットワーク構成の組み合わせ、或いは代替のサーバ構成を含んでいても良い。ある別の実施例では、グリッド・システム100はまた図3を参照して説明するサブスクリプション・マネジャ(図示せず)を含んでいてもよい。一実施例では、グリッド・サーバ102はグリッド・システム100のサブスクリプション・マネジャとして同時に作用する。
グリッド・システム100は、一実施例で、グリッド・アプリケーションを実行するように構成される。グリッド・アプリケーションは、特定の目的を一緒に達成するワーク・アイテムの集合である。例えば、あるグリッド・アプリケーションは天気予報や株式市場の進展など、非常に複雑な数学的計算を決定してもよい。あるグリッド・アプリケーションはまた、大規模なマルチメディア動作を処理しても良い。他の実施例では、あるグリッド・アプリケーションが、かなりで多様な量のデータについてデータ・バックアップ動作を実行しても良い。本発明が無数の他のグリッド・アプリケーションや機能に適用されるかもしれないが、以下の説明はグリッド・コンピューティング環境内でのデータ・バックアップ動作に焦点を当てている。
一つのグリッド・アプリケーションは複数のジョブに分割されても良いし、単一のユニットのワークであっても良い。一つのグリッド・アプリケーションのうち幾つかのジョブは、一つ若しくはより多くの種々のノード104ないし110上で、同時に、逐次的に、又は共依存的に(co-dependently)実行されても良い。各ノード104ないし110は、あるグリッド・アプリケーションを実行するためのグリッド・システム100に或るパフォーマンス資源を割り当てても良い。クライアント104ないし110によって利用できるようにされるこれらのパフォーマンス資源は、プロセッサの能力、プロセッサの容量、記憶容量、又はメモリ容量、及び他の同様の資源を含んでも良い。一実施例では、クライアント104ないし110は、グリッド・アプリケーションの実行のために、グリッド・システム100に全体のプロセッサ能力、記憶容量又はメモリ容量の特定の量をグリッド・システム100の専用にしても良い。
各クライアント104ないし110は、特定のグリッド・アプリケーションに於ける各クライアント104ないし110の役割に従って、ソース・クライアント又はターゲット・クライアントとして働く。例えば、クライアント104ないし110がグリッド・アプリケーションを開始する場合、クライアント104ないし110はソース・クライアントとして働く。或いは、クライアント104ないし110が、遠隔で開始されるグリッド・アプリケーションを実行するのにローカルのパフォーマンス・ソースとして利用できるようにする場合には、クライアント104ないし110はターゲット・クライアントとして働く。例えば、グリッド・バックアップ動作の場合は、ソース・クライアントは一つ以上のターゲット・クライアント上にバックアップ・データ・ファイルを有しているかもしれないが、そのようなときターゲット・クライアントは、バックアップ・グリッド動作のためにグリッド・システム100に、利用可能な記憶部を割り当てる。
図2は、図1のグリッド・システム100中のクライアント記憶部200の一実施例を示す。図示の例では、特定のクライアント104ないし110上の記憶部200が使用済み記憶部202およびフリー記憶部204を含むかもしれない。使用済み記憶部202は、オペレーティング・システム・ファイル206、アプリケーション・プログラム・ファイル208、データ・ファイル210などを含む、データを記憶する電子的な記憶スペースである。フリー記憶部204は、クライアント104ないし110による動作ないし記憶のために、特別に使用されない電子的記憶スペースである。
フリー記憶部204は、一実施例では、オーバーフロー記憶部212、利用可能記憶部214、及び割り当て済み記憶部216を含んでいてもよい。オーバーフロー記憶部212は、Windows (登録商標)オペレーティング・システム中のページ・ファイルに似て、アプリケーション・プログラムの実行のためにリザーブされた記憶スペースであってもよい。割り当て済み記憶部216はグリッド・アプリケーションの実行及びグリッド・データの記憶のためにグリッド・システム100の専用にしても良い。その割り当て済み記憶部216は、以下の説明を通して詳細に説明するであろう。利用可能記憶部214は、オーバーフロー記憶部212又は割り当て済み記憶部216のいずれかとしては現在使用されていない記憶スペースであっても良く、クライアント104ないし110による将来の使用のためにリザーブされている。
図2は特定のタイプの使用済み記憶部202及びフリー記憶部204を示すが、グリッド・システム100上の特定のクライアント104ないし110の記憶部200は、サイズ、容量、利用の仕方、可用性、特にグリッド・システム100専用の割り当て済み記憶部216の量も変えても良い。また特定のクライアント104ないし110の記憶部200は、使用済み記憶部202及びフリー記憶部204及びその細分割したものの量及び割り当てに関して時間の経過とともに変わっても良い。一実施例では、その割り当て済み記憶部216は、クライアント104ないし110上の記憶部200全体に対し最小であってもよい。その代わりに、割り当て済み記憶部216は、オーバーフロー記憶部212を除くフリー記憶部204の全てを含んでいてもよい。その場合はクライアント104ないし110は、上述のような利用可能記憶部214を持たないことになろう。
図3は、図1のグリッド・システム100に幾つかの点で似たグリッド・システム300の他の実施例を示す。図示のグリッド・システム300は、グリッド・システム300の種々の他のコンポーネント間の通信チャネルを提供するインターネット302を介して動作する。図示のグリッド・システム300はまた、図1のグリッド・システムに似たネットワーク・システム304、306をも含み、これらが図3のグリッド・システム300中のサブシステムを構成する。更には、このグリッド・システム300はインターネットに直接結合され、その点でローカル・ネットワークの一部を構成しない他のクライアント308、310を含む。
グリッド・システム300はまた、以下で詳細に説明するサブスクリプション・マネジャ312を含んでいても良い。代わりに、サブスクリプション・マネジャ312は、グリッド・システム300中で他のネットワーク・システム304、306に接続されていても良い。更なる実施例では、これらのグリッド・システム300は複数のサブスクリプション・マネジャ312を有し、夫々が独立に定義されたサブスクリプション・グループを管理するようになっていても良い。
上述のとおり、他の同様のグリッド・システム構成が、図1や図2のグリッド・システム100、300の代わりに、或いはそれに加えて用いられていても良い。以下の説明で、グリッド・システム100、300のいずれかを参照するときは、特にグリッド・システム100、300の一つを除外すると断らない限り、グリッド・システム100、300の一方又は両方を指すものと理解されたい。
図4はグローバル・シーケンス・マネジャ400の一実施例を示す。図示のグローバル・シーケンス・マネジャ400は、一実施例においては、グリッド・システム100上でのデータ・バックアップ動作を管理する。一実施例では、グローバル・シーケンス・マネジャ400は中央処理装置(CPU)402、ローカル記憶装置404、ユーザ・インターフェイス406、ネットワーク・インターフェイス408、メモリ410、及びグローバル・シーケンス管理装置412を含む。CPU402はグローバル・シーケンス・マネジャ400中の動作を実行するように概略構成される。ユーザ・インターフェイス406は、一実施例では、ユーザがグローバル・シーケンス・マネジャ400と相互作用するのを許容するように構成される。この相互作用には、ユーザからのデータ及びコマンドを入力し、ユーザに出力データを伝送(通信)するのを許容することを含む。このネットワーク・インターフェイス408は、一実施例では、グリッド・システム100の通信チャネル112上でのグローバル・シーケンス・マネジャ400のネットワーク通信を促進するように構成される。
ローカルのメモリ410は、一実施例では、グリッド・バックアップ動作と関連して使用され得るような幾つかのデータ及びメタデータのファイルを記憶するように構成される。代替実施例では、これらのデータ及びメタデータのファイルの幾つか又は全てがローカル記憶装置404に複製(replicate)されても良い。更なる実施例では、これらのデータ及びメタデータのファイルの一つ又は全てがメモリ410よりもローカル記憶装置404に排他的に記憶されても良い。他の実施例では、これらのデータ及びメタデータのファイルの一つ又は全てがグリッド・システム100上の分散された記憶部に記憶されていても良い。ここでの説明で「ファイル」に言及しているが、本発明は他の電子的メモリや記憶構造を用い、実質上同じ態様で動作するものと理解されたい。ここでデータ・ファイル若しくはメタデータ・ファイルと言及するのは、これも他の電子的メモリや記憶構造にも等しく言及しているものと理解されたい。
特に、メモリ410は、グローバル・クライアント・プロファイル414、ソース・クライアント・プロファイル416、ソース・データ・レコード418、ターゲット・データ・レコード420、データ・アセンブリ・レコード422、及びグローバル・バックアップ・ログ424を記憶しても良い。グローバル・クライアント・プロファイル414は、一実施例で、ネットワーク・プロファイルを記憶するように構成されるが、更にデフォルトのクライアント・プロファイルを記憶していても良い。グローバル・クライアント・プロファイル414は、図6で詳細に説明する。ソース・クライアント・プロファイル416は、一実施例で、ユニークなクライアント・プロファイルを記憶するように構成され、更に別の実施例では、データ・ユニット・プロファイルを記憶しても良い。ソース・クライアント・プロファイル216は、図7で詳細に説明する。
ソース・データ・レコード418は、一実施例では、1個若しくはそれ以上のターゲット・クライアントに記憶されている、バックアップ・データ・ファイルに関するメタデータ若しくはその一部を記憶するように構成される。同様に、ターゲット・データ・レコード420は、一実施例で、1個若しくはそれ以上のターゲット・クライアントに記憶されている、バックアップ・データ・ファイルに関するメタデータ若しくはその一部を記憶するように構成される。1個のファイル若しくはその一部のためのソース・データ・レコード418及びターゲット・データ・レコード420は、バックアップ・ファイルについての同様の、若しくは部分的に複製されたメタデータを含んでいても良い。ソース・データ・レコード418及びターゲット・データ・レコード420は図8及び図9で、夫々詳細に説明する。
データ・アセンブリ・レコード422は、一実施例では、単一のバックアップ・ファイルに関する幾つかのパケットの情報がアセンブルされるべき順序についての情報を記憶するように構成される。その結果、復元されるバックアップ・ファイルは、元々バックアップされたファイルに記憶されていた情報を正確に記憶する。このデータ・アセンブリ・レコード422については、図10で詳細に説明する。グローバル・バックアップ・ログ424は、一実施例では、バックアップ・ヒストリを記憶するように構成される。このバックアップ・ヒストリは、或る期間にわたって一つ以上のグローバル・バックアップ・グリッド・アプリケーションの動作を記録している。このようにして、グローバル・バックアップ・ログ424は、バックアップ・ヒストリのレビューをし易くし、また所与のバックアップ・グリッド・アプリケーションの実行前に存在していたグリッド、若しくはクライアントの状況の復元をし易くする。
グローバル・シーケンス管理装置412は、一実施例では、グリッド・システム100上のデータ・バックアップ動作をし易くするように構成される。グローバル・シーケンス管理装置412は、特定のソース・クライアントにより開始されるバックアップ及び復元動作の実行を管理することができる。図示のグローバル・シーケンス管理装置412は、クライアント・リクエスト・モジュール426、シーケンス・モジュール428、グローバル・プロファイル管理モジュール430、パケット記憶モジュール432、パケット取出しモジュール434、データ・アセンブリ・モジュール436、圧縮モジュール438、暗号化モジュール440、冗長化モジュール442を含む。
一実施例では、クライアント・リクエスト・モジュール426は、1個若しくはそれ以上のファイルをバックアップするために、ソース・クライアントからのリクエストを処理するように構成される。クライアント・リクエスト・モジュール426は、ソース・クライアントからバックアップされるべきデータを受取るように更に構成されていても良い。シーケンス・モジュール428は、一実施例では、バックアップ・データが記憶されてもよいような1個若しくはそれ以上のターゲット・クライアントを識別する非トランスペアレントなシーケンス・キーを発生するように構成される。この非トランスペアレントなシーケンス・キーは、バックアップ・データのセキュリティのレベルを提供するように、排他的に記憶され且つグローバル・シーケンス・マネジャによってアクセス可能である。このシーケンス・キーの非トランスペアレントな性質は、そのユニークさに関連し、ならびにその発生、アクセス可能性及び複製(duplication)の排他性に関係する。
例えば、グローバル・シーケンス・マネジャ400は、ソース・クライアントからのデータを複数のターゲット・クライアント上にバックアップするために、当該データのパケット若しくはその一部を複数のターゲット・クライアントの各々に記憶しても良い。ソース・クライアントからのデータの一部がリモート・ターゲット・クライアントのローカル記憶装置上に記憶されても良いので、グローバル・シーケンス・マネジャ400にのみ知られた順序で、幾つかの異なるターゲット・クライアント上にバックアップ・データ・パケットを記憶することによって、一つのレベルのデータ・セキュリティが提供されても良い。このようにして、データの一部が特定のターゲット・クライアント上でアクセス可能であったとしても(バックアップ・データを暗号化して、第2層のセキュリティを追加してもよい)、要求元のソース・クライアントに元々記憶されていたデータを実質的に若しくは完全に再アセンブルするのは非常に困難であるか、或いは不可能でさえある。その結果、異なるターゲット・クライアント上に記録されるデータのこれらの部分のサイズが小さくなるにつれて、データ・セキュリティのレベルが増加することになる。
グローバル・プロファイル管理モジュール430は、一実施例では、グリッド・システム100中に接続された個々のネットワークのためのプロファイルを含む、デフォルトの、ユニークなクライアント・プロファイルの管理をし易くする。一実施例では、グローバル・プロファイル管理モジュール430は、ユーザが上述のグローバル・クライアント・プロファイル414及びソース・クライアント・プロファイル416を定義するのを許容する。これらは、図6及び図7を参照して夫々もっと詳しく説明する。
パケット記憶モジュール432は、一実施例で、ソース・クライアントから1個若しくはそれ以上のターゲット・クライアントにバックアップ・データを記録するようにグリッド・システム100中で構成される。一実施例では、パケット記憶モジュール432は、バックアップ・データをターゲット・クライアントに記憶する前に、当該バックアップ・データを等しいサイズ若しくは不均等なサイズのパケットに細分割してもよい。別の実施例では、パケット記憶モジュール432は、シーケンス・モジュール428により発生される非トランスペアレントなシーケンス・キーに従って、1個若しくはそれ以上のターゲット・クライアント上にバックアップ・データ・パケットを記憶しても良い。別の実施例では、パケット記憶モジュール432は、バックアップ・データが圧縮モジュール438により圧縮され、暗号化モジュール440を介して暗号化され、或いは冗長化モジュール442により複製されるの許容した後、ターゲット・クライアント上にそのバックアップ・データを記憶しても良い。複製されたデータの場合、パケット記憶モジュール432はまた非トランスペアレントなシーケンス・キーに従って、複製されたバックアップ・データを記憶しても良い。一実施例では、パケット記憶モジュール432はまた1個若しくはそれ以上のソース・データ・レコード418、ターゲット・データ・レコード420、及びデータ・アセンブリ・レコード422のうちの1個若しくはそれ以上を生成し或いは記憶するように構成されていても良い。
パケット取出しモジュール434は、一実施例では、バックアップ・データ・パケット又はその複製(copy)を、そのパケットが記憶され得るようなターゲット・クライアントから取出すように構成されても良い。一実施例では、パケット取出しモジュール434は、バックアップ・データ・パケットをターゲット・クライアント上に予め記憶するようにパケット記憶モジュール432により使用されたのと同じ若しくは似たような非トランスペアレントなシーケンス・キーを用いていても良い。
データ・アセンブリ・モジュール436は、一実施例では、複数のバックアップ・データ・パケットを、細分割前の元データ・ファイルのフォーマットに、同一でないなら、似ている、或る理解可能なフォーマットにアセンブルするように構成されていても良い。一実施例では、データ・アセンブリ・モジュール436は、元データがパケットに細分割され且つターゲット・クライアントに記憶された時点の近傍で作成される、データ・アセンブリ・レコード422に従って復元されるデータをアセンブルしてもよい。
上述のとおり、圧縮モジュール438、暗号化モジュール440、及び冗長化モジュール442は、夫々バックアップ・データを、そのデータが1個若しくはそれ以上のターゲット・クライアントに記憶される前に、修正しても良い。同様に、圧縮モジュール438、暗号化モジュール440、及び冗長化モジュール442は、そのデータを、解凍、解読等により元のフォーマットに復元するように独立に若しくは一緒に使用されても良い。
図5は、グリッド・システム100中でソース・クライアント若しくはターゲット・クライアントのいずれかとして動作しても良いクライアント500の一実施例を示す。図4のグローバル・シーケンス・マネジャ400のように、クライアント500はCPU502、ローカル記憶装置504、ユーザ・インターフェイス506、ネットワーク・インターフェイス508、及びメモリ510を含む。図示のクライアント500はまたローカル・シーケンス管理装置512を含む。クライアント500のCPU502、ユーザ・インターフェイス506、及びネットワーク・インターフェイス508は、グローバル・シーケンス・マネジャ400のCPU402、ユーザ・インターフェイス406、及びネットワーク・インターフェイス508とほぼ同様のものである。ローカル記憶装置504は図2の記憶装置200に似たものであり、一実施例では、図2に示すように分割されても良い。例えば、一実施例では、ローカル記憶装置504は、使用済み記憶部202(オペレーティング・システム・ファイル206、アプリケーション・プログラム・ファイル208、及びデータ・ファイル210を含む)並びにフリー記憶部204(オーバーフロー記憶部12、利用可能記憶部214、及び割り当て済み記憶部216を含む)を含んでいても良い。
メモリ510は、一実施例では、グリッド・バックアップ動作と関連して使用されても良い幾つかのデータ・ファイル及びメタデータ・ファイルを記憶するように構成される。代替実施例では、これらのデータ・ファイル及びメタデータ・ファイルの幾つか若しくは全部がローカル記憶装置504に複製される。別の実施例では、これらのデータ・ファイル及びメタデータ・ファイルの一つ若しくは全部がメモリ510ではなく、ローカル記憶装置504に排他的に記憶されても良い。他の実施例では、これらのデータ・ファイル及びメタデータ・ファイルのうちの一つ若しくは全部がグリッド・システム100上の分散された記憶部に記憶されても良い。
メモリ510は、一実施例では、グローバル・クライアント・プロファイル514、ソース・クライアント・プロファイル516、ターゲット・データ・レコード518、ローカル・ソース・ログ520、及びローカル・ターゲット・ログ522を記憶していても良い。グローバル・クライアント・プロファイル514は、グローバル・シーケンス・マネジャ400のグローバル・クライアント・プロファイル414にほぼ似ており、一実施例で、一方が他方のコピーであっても良い。同様に、ソース・クライアント・プロファイル516はグローバル・シーケンス・マネジャ400のソース・クライアント・プロファイル416に略似ており、一実施例では一方が他方のコピーであっても良い。似たようにして、ターゲット・データ・レコード518はグローバル・シーケンス・マネジャ400の
ターゲット・データ・レコード420に略似ており、一実施例では、一方が他方のコピーであっても良い。ローカル・ソース・ログ520及びローカル・ターゲット・ログ522は夫々グローバル・バックアップ・ログ424に似ているが、クライアント500でユニークなのはソース・クライアント若しくはターゲット・クライアントとしてのその能力である。一実施例では、クライアント500及びグローバル・シーケンス・マネジャ400は、例えば単一のクライアント104ないし110に含まれていても良い。
ローカル・シーケンス管理装置512は、一実施例では、グリッド・システム100上のデータ・バックアップ及び復元動作を開始し、促進するように構成される。一つの特定の実施例では、クライアント500がソース・クライアントとして働き、クライアント500のローカル記憶装置504上に元々記憶されていたデータ・ファイルをバックアップするバックアップ・グリッド・アプリケーションを開始しても良い。グローバル・シーケンス・マネジャ400の管理下で、ローカル・シーケンス管理装置512は、グリッド・システム100中の1個若しくはそれ以上のリモートのターゲット・クライアント104ないし110にローカル・ファイルをバックアップしても良い。同様に、クライアント500がソース・クライアントとして働き、適切なターゲット・クライアント104ないし110からバックアップ・データ・パケットを復元するように復元グリッド・アプリケーションを開始するようにしても良い。代替実施例では、クライアント500がターゲット・クライアントとして働き、リモートのソース・クライアント104ないし110上に元々記憶されているファイルのバックアップ・コピー若しくはその一部を記憶してもよい。その場合は、バックアップ・データを記憶するためにクライアント500がローカル記憶装置504中の割り当て済み記憶部216を使用していても良い。
図示のローカル・シーケンス管理装置512は、データ・バックアップ・モジュール524、データ復元モジュール526、ローカル・プロファイル管理モジュール528、及びユニーク・データ識別子発生モジュール530を含む。一実施例では、データ・バックアップ・モジュール524は、グローバル・シーケンス・マネジャ400に対するデータ・バックアップ・リクエストを送るように構成される。一実施例では、データ・バックアップ・モジュール524が、フル・バックアップ若しくは部分的バックアップ(増分バックアップや、差分バックアップ等を含む)といった種々のタイプのバックアップをリクエストしても良い。バックアップ・リクエストは、クライアント500を介するユーザ・リクエスト、若しくはローカル・ネットワーク若しくはグリッド・システム100を介するアドミニストレータ・リクエストに応答して呼び出されても良い。代わりに、バックアップ・リクエストが、例えば週単位で増分するバックアップ・プロシージャなど、スケジュールされたイベントに応答して、或いは記憶部利用設定ポイントなど非同期のイベントに応答して呼び出されても良い。代わりに、バックアップ・リクエストは、クライアント500上、又はグリッド・システム100中で生じる特定の活動やイベントなど、トリガとなるイベントに応答して呼び出されても良い。
データ復元モジュール526は、一実施例では、グロ−バル・シーケンス・マネジャ400にデータ復元リクエストを送るように構成される。データ・バックアップ・リクエストに似て、データ復元リクエストは、ユーザ・リクエスト、記憶障害、若しくはローカル・アプリケーション・プログラムを含む、1個若しくはそれ以上の手動若しくは自動の入力に応答して呼び出される。ローカル・プロファイル管理モジュール528は、グローバル・シーケンス管理装置412のグローバル・プロファイル管理モジュール430に似ている。一実施例では、ローカル・プロファイル管理モジュール528は、ローカル・プロファイル管理モジュール528が在るクライアント500に特有のユニークなソース・クライアント・プロファイル516を作成し、若しくは記憶する。他の実施例では、ローカル・プロファイル管理モジュール528が、特定のデータ・ユニットに特有のユニークなソース・クライアント・プロファイル516を作成し、若しくは記憶しても良い。
ユニーク・データ識別子(UDI)発生モジュール530は、一実施例では、クライアント500上に在っても良い夫々、元の(非バックアップの)ユニークなデータごとにユニット・データ識別子(UDI)を発生するように構成される。例えば、UDI発生モジュール530は、クライアント500上の各データ・ファイル若しくはその一部ごとにユニーク・データ識別子(UDI)を作成し、割り当てても良い。他の実施例では、UDI発生モジュール530は、グローバル・シーケンス管理装置412上に在って、データ・ファイルの一部であってもよい各データ・パケットごとにユニーク・データ識別子(UDI)を割り当てても良い。このユニーク・データ識別子(UDI)は、特定のデータ・ユニット、ファイル、パケット若しくはその一部のバックアップ・コピーが特定のターゲット・クライアント若しくは1組のターゲット・クライアント上に既にバックアップされているか否かを決定するのに使用されてもよい。もしそうであれば、グローバル・シーケンス管理装置412は、グリッド・システム100に利用できる記憶スペースを保存しても良い。この保存は、データ・ユニットの元のコピーが互いに異なる複数のソース・クライアントから発生したとしても、同じデータ・ユニットの複製バックアップ・コピーを作成するのではなく、既に存在するバックアップ・コピーを参照することによって行われる。
一実施例では、ローカル・シーケンス管理装置512及びグローバル・シーケンス管理装置412が単一の装置上に在っても良い。例えば、大きなローカル・ネットワークの一部でなく、直接接続されたクライアント308、310が、必要に応じともにクライアント500及びグローバル・シーケンス・マネジャ400として動作しても良い。他の実施例では、クライアント500は、グローバル・シーケンス・マネジャ400にデータ・パケットを送る前に、それらをパケット化し、圧縮し、暗号化し、複製するなどのための必要なモジュールとともに構成されていても良い。他の実施例では、クライアント500若しくはグローバル・シーケンス・マネジャ400中のモジュールは、グリッド・システム100中の幾つかの装置に分散されていても良い。
図6は、図4及び図5のグローバル・クライアント・プロファイル414、514に略似たグローバル・クライアント・プロファイル600の一実施例を示す。一実施例では、グローバル・クライアント・プロファイル600は、グローバル・シーケンス・マネジャ400及びクライアント500の一方又はその両方に記憶される。図示のグローバル・クライアント・プロファイル600は、ネットワーク識別子フィールド602、ネットワーク割り当てフィールド604、クライアント識別子フィールド606、クライアント・パケット圧縮フィールド608、クライアント・パケット冗長化フィールド610、クライアント・パケット暗号化フィールド612、クライアント・バックアップ近接性フィールド614、クライアント・パケット近接性フィールド616、クライアント記憶フィールド618、クライアント・プロセッサ・フィールド620、クライアント帯域フィールド622、クライアント同期フィールド624、及びクライアント・オート・アーカイブ・フィールド626を含む。
ネットワーク識別子フィールド602は、一実施例では、グリッド・システム300中で、例えば図3のネットワーク・システム304のような特定のネットワーク・システムのためのネットワーク識別子を記憶するように構成される。ネットワーク割り当てフィールド604は、一実施例では、グリッド・システム300に専用のネットワーク・パフォーマンス資源を示すネットワーク割り当てパラメータを記憶しても良い。例えば、ネットワーク割り当てフィールド604が、グリッド・システム300専用で、バックアップ・グリッド・アプリケーションに利用できるネットワーク帯域の割合を示すネットワーク帯域割り当てパラメータを記憶しても良い。
クライアント識別子フィールド606は、一実施例では、クライアント名若しくはクライアント番号などクライアント識別パラメータを記憶するように構成されても良い。一実施例では、グリッド・システム100に接続された各クライアント500は、ユニークなクライアント名によって識別されても良い。他の実施例では、クライアント識別フィールド606に記憶されたクライアント識別パラメータが、ネットワーク識別フィールド602に記憶されたネットワーク識別パラメータを採用しても良い。
一実施例では、クライアント・バックアップ近接性パラメータ614が、バックアップ・データが記憶されるターゲット・クライアント及びソース・クライアント間の、最短又は最長の距離など、地理的限界を示しても良い。他の実施例では、クライアント・パケット近接性パラメータ616が、バックアップ・データを記憶する幾つかのターゲット・クライアント間の最短又は最長の距離を示しても良い。このようにして、クライアント・バックアップ近接性パラメータ614及びクライアント・パケット近接性パラメータ616は、一つのパケットのアクセス可能性が、別のデータ・パケットのアクセス可能性とほぼ独立にされても良いことを保証する。例えば、ソース・クライアントは、クライアント・バックアップ近接性パラメータ614を調整することによって、そのソース・クライアントと同じ首都圏領域、州、又は国にはないターゲット・クライアントにバックアップ・データを記憶するようにリクエストしても良い。
クライアント・バックアップ近接性パラメータ614及びクライアント・パケット近接性パラメータ616を、一実施例では、マイルやキロメータなど、物理的距離を示しても良い。ノード104ないし110の間の距離は、例えば全地球測位システム(GPS)座標を用いて計算又は予測しても良い。代りに、これらのパラメータを論理的距離で示してもよい。例えば、クライアント・バックアップ近接性パラメータ614及びクライアント・パケット近接性パラメータ616が、ソース・クライアントのインターネット・プロトコル(IP)アドレスを参照し、別のネットワーク若しくはサブネット中のターゲット・クライアント上にそのバックアップ・パケットが記憶されるように指定しても良い。他の実施例では、クライアント・バックアップ近接性パラメータ614及びクライアント・パケット近接性パラメータ616が、或るノード104ないし110を、バックアップ・データ・パケットを記憶するべきノード若しくは記憶しないノードを包括的に若しくは限定的に指定しても良い。
クライアント・パケット圧縮フィールド608、クライアント・パケット冗長化フィールド610、及びクライアント・パケット暗号化フィールド612は、夫々、デフォルトの圧縮、冗長化、及び暗号化のパラメータを記憶するように構成されても良い。これらのパラメータは、圧縮のタイプ、暗号化のレベル、若しくは冗長化のレベルを示し、例えば、デフォルト・パラメータとして使用されても良い。同様に、クライアント・バックアップ近接性フィールド614及びクライアント・パケット近接性フィールド616が、デフォルトの近接性パラメータを記憶するように構成されても良い。
クライアント記憶フィールド618は、一実施例では、グリッド・システム100専用のクライアント記憶のデフォルト量を定義するデフォルト・クライアント記憶割り当てパラメータを記憶するように構成されても良い。同様に、クライアント・プロセッサ・フィールド620及びクライアント帯域フィールド622が、一実施例では、グリッド・システム100に専ら関係するプロセッサ性能及び帯域を示しても良い。一実施例では、これらのパラメータの各々を量的な数値によって示してもよい。他の実施例では、これらのパラメータの各々を、利用可能な全性能のうちの割合として表すことができる。
クライアント同期フィールド624は、一実施例では、クライアント同期パラメータを記憶するように構成されても良い。このパラメータは、グローバル・シーケンス・マネジャ400上のグローバル・クライアント・プロファイル600が、クライアント500上のグローバル・クライアント・プロファイル514又はソース・クライアント・プロファイル516にどの程度の頻度で同期すべきかを示す。この同期は、一実施例では、単一ステップのプロセスであってよい。代替実施例では、クライアント500上のグローバル・クライアント・プロファイル514及びグローバル・シーケンス・マネジャ400上のソース・クライアント・プロファイル416を同期させるための追加のステップを含んでも良い。好ましくは、グローバル・クライアント・プロファイル600の複数のコピーがクライアント500及びグローバル・シーケンス・マネジャ400上に存在するなら、これらのコピーは、クライアント500及びグローバル・シーケンス・マネジャ400の両方に正確な情報を提供するのに必要な頻度だけ同期される。
クライアント・オート・アーカイブ・フィールド626は、一実施例では、クライアント・データ・ファイルがどの程度の頻度でバックアップされるべきかを示すクライアント・オート・アーカイブ・パラメータを記憶しても良い。他の実施例では、クライアント・オート・アーカイブ・パラメータが、所与の刺激に応答して実行されるべきバックアップのタイプ、即ちフルか、増分的か、或いは他のタイプのバックアップか、を示してもよい。
図7は、図4及び図5のソース・クライアント・プロファイル416、516に実質的に良く似たソース・クライアント・プロファイル700の一実施例を示す。一実施例では、ソース・クライアント・プロファイル700が、グローバル・シーケンス・マネジャ400及びクライアント500の一方又は両方に記憶されても良い。図示のソース・クライアント・プロファイル700は、ソース・クライアント識別子フィールド702、ユニーク・データ識別子(UID)フィールド704、データ・ソース位置フィールド706、データ・パケット圧縮フィールド708、データ・パケット冗長化フィールド710、データ・パケット暗号化フィールド712、データ・バックアップ近接性フィールド714、データ・パケット近接性フィールド716、データ同期フィールド718、及びデータ・シーケンス・キー・フィールド720を含む。
ソース・クライアント識別子フィールド702は、一実施例では、グローバル・クライアント・プロファイル600のクライアント識別子フィールド606に略似たものである。ユニーク・データ識別子(UDI)フィールド704は、一実施例では、特定のデータ・ユニットに対応するユニーク・データ識別子(UDI)を記憶するように構成されても良い。データ・ソース位置フィールド706は、一実施例では、ユニーク・データ・フィールド(UDI)704に記憶されたUDIにより識別される、ソース・クライアント上の元のデータ・ユニットのファイル位置を識別するように構成されても良い。
データ・パケット圧縮フィールド708、データ・パケット冗長化フィールド710、及びデータ・パケット暗号化フィールド712は、グローバル・クライアント・プロファイル600のクライアント・パケット圧縮フィールド608、クライアント・パケット冗長化フィールド610、及びクライアント・パケット暗号化フィールド612に似ている。しかし、一実施例では、ソース・クライアント・プロファイル700中のこれらのフィールド708、710、712は、特定のソース・クライアント上のデータ・ユニットの全てに対しデフォルトのパラメータを記憶するというより、ユニーク・データ識別子(UDI)により識別された各データ・ユニットのための実際のパラメータを記憶しても良い。代替例として、これらのフィールド708、710、712は、全てのデータ・ユニットのための同じパラメータを記憶しても良いし、またグローバル・クライアント・プロファイル600中の各フィールド608、610、612と同じパラメータを記憶しても良い。同様にデータ・バックアップ近接性フィールド714及びデータ・パケット近接性フィールド716は、グローバル・クライアント・プロファイル600の近接性フィールド614及び616と似ている。しかし、ソース・クライアント・フィールド700中のこれらのフィールド714、716は、上述のフィールド708、710、712と似たように、各データ・ユニットごとに特定される、ユーザが定義したパラメータを記憶しても良い。
好ましくは、ソース・クライアント・プロファイル700の複数のコピーがクライアント500及びグローバル・シーケンス・マネジャ400の両方に存在する場合は、その両方に正確な情報を提供するためにこれらのコピーが、必要な頻度で同期されることになろう。このデータ同期フィールド718は、一実施例では、クライアント同期パラメータを記憶するように構成されても良い。このクライアント同期パラメータは、グローバル・シーケンス・マネジャ400上のソース・クライアント・プロファイル416が、クライアント500上のソース・クライアント・プロファイル516とどの程度の頻度で同期されるべきかを示す。このデータ同期フィールド718及びそのパラメータは、グローバル・クライアント・プロファイル600のクライアント同期フィールド及びそのパラメータに似たものであってよい。適用可能ならば、ソース・クライアント・プロファイル700はまたグローバル・クライアント・プロファイル600の少なくとも一部と同期されても良い。
データ・シーケンス・キー・フィールド720は、一実施例では、特定のデータ・ユニットのための非トランスペアレントなシーケンス・キーを記憶するように構成される。上述のとおり、このシーケンス・キーは、グローバル・シーケンス管理装置412のシーケンス・モジュール428によって発生されても良い。代替例では、データ・シーケンス・キー・フィールド720は、実際のシーケンス・キーではなく、発生刺激(stimulus)キーを記憶しても良い。このようにして、実際のシーケンス・キーは、クライアント500上でなく、グローバル・シーケンス・マネジャ400上にのみ記憶されても良い。他の実施例では、その非トランスペアレントなシーケンス・キーは、グリッド・システム100のどこにも記憶されなくても良く、むしろシーケンス・モジュール428によって発生刺激キーを用いて発生されても良い。非トランスペアレントなシーケンス・キーは、それが必要なときごとに、少なくともこの発生刺激キーを用いることによって発生される。このシーケンス・モジュール428はまた、必要時にこのシーケンス・キーを発生するために、発生刺激キーと関連して、ユニーク・データ識別子(UDI)、データ・ソース位置パラメータ、ソース・クライアント識別子パラメータ、或いは1個若しくはそれ以上の他のパラメータを使用しても良い。
図8は、図4のソース・データ・レコード418にほぼ似たソース・データ・レコード800の一実施例を示す。一実施例では、ソース・データ・レコード800は、グローバル・シーケンス・マネジャ400上に排他的に記憶される。図示のソース・データ・レコード800は、ユニーク・データ識別子(UDI)フィールド802、パケット識別子フィールド804、及び一つ以上のターゲット識別子フィールド806ないし810を含む。一実施例では、ソース・データ・レコード800は、各バックアップ・データ・パケットが記憶される種々のターゲット・クライアントを識別する。
UDIフィールド802は、一実施例では、バックアップ・データ・ファイルのユニーク・データ識別子(UDI)を記憶するように構成される。パケット識別子フィールド804は、一実施例では、バックアップ・データ・ファイルに属する特定のデータ・パケットのためのパケット識別子を記憶するように構成される。ターゲット識別子フィールド806ないし810は、一実施例では、バックアップ・データ・パケットのコピーが記憶されているターゲット・クライアントに対応するターゲット識別子を夫々記憶するように構成される。何個のターゲット・クライアントが同じデータ・パケットのコピーを記憶するかに依って、複数のターゲット識別子806ないし810が、ソース・・データ・レコード800に追加されても良い。代替実施例では、ユニーク・データ識別子(UDI)がバックアップ・データ・ファイル全体よりも特定のデータ・パケットを識別してもよい。この場合、ソース・データ・レコード800は、元のファイル、データ・パケット及びデータ・パケットの各バックアップ・コピーの位置を示す等価な手段を使用しても良い。
図9は、図4及び図5のターゲット・データ・レコード420、518に良く似たターゲット・データ・レコード900の一実施例を示す。一実施例では、ターゲット・データ・レコード900が、グローバル・シーケンス・マネジャ400及びクライアント500の一方若しくは両方に記憶されても良い。図示のターゲット・データ・レコード900は、ユニーク・データ識別子(UDI)フィールド902、パケット識別子フィールド904、パケット・サイズ・フィールド906、及びターゲット位置フィールド908を含む。
UDIフィールド902は、一実施例では、バックアップ・データ・ファイルのユニーク・データ識別子(UDI)を記憶するように構成される。パケット識別子フィールド904は、一実施例では、そのバックアップ・データ・ファイルに属する或る特定のデータ・パケットのためのパケット識別子を記憶するように構成される。パケット・サイズ・フィールド906は、一実施例では、パケットのサイズを示すためにパケット・サイズ・パラメータを記憶するように構成される。ターゲット位置フィールド908は、一実施例では、バックアップ・データ・パケットが記憶されるターゲット・クライアント上の記憶位置を示すように構成される。このようにして、ターゲット・データ・レコード900は、復元動作中、ソース・クライアントのためのリクエストされたバックアップ・データ・パケットの復元を促進することができる。代替実施例では、ユニーク・データ識別子(UDI)が、バックアップ・データ・ファイル全体ではなく、特定のデータ・パケットを識別しても良い。この場合、ターゲット・データ・レコード900は、元のファイル、データ・パケット、そのパケットのサイズ、及びターゲット・クライアント上のバックアップ・コピーの位置を示すための等価な手段を使用しても良い。
図10は、図4のデータ・アセンブリ・レコード422に実質的に似たデータ・アセンブリ・レコード1000の一実施例を示す。一実施例では、データ・アセンブリ・レコード1000は、グローバル・シーケンス・マネジャ400に排他的に記憶される。このデータ・アセンブリ・レコード1000は、ユニーク・データ識別子(UDI)フィールド1002及び1個若しくはそれ以上のパケット・フィールド1004a-mないし1010a-mのテーブルを含む。
UDIフィールド1002は、一実施例では、バックアップ・データ・ファイルのユニーク・データ識別子を記憶するように構成される。パケット識別子フィールド1004aないし1004mは、一実施例では、そのバックアップ・データ・ファイルに属する第1のデータ・パケットの複製コピーに対するパケット識別子を記憶するように構成される。同様に、パケット識別子フィールド1006aないし1006mは、一実施例では、そのバックアップ・データ・ファイルに属する第2のデータ・パケットのコピーに対するパケット識別子を記憶するように構成される。同様に、パケット識別子フィールド1008aないし1008mは、一実施例では、そのバックアップ・データ・ファイルに属する第3のデータ・パケットのコピーに対するパケット識別子を記憶するように構成される。このパターンは、そのバックアップ・データ・ファイルに属する最後のパケットのコピーに対するパケット識別子を記憶するパケット識別子フィールド1010aないし1010mまで続く。代替実施例では、ユニーク・データ識別子(UDI)が、バックアップ・データ・ファイル全体ではなく、特定のデータ・パケットを識別しても良い。この場合、データ・アセンブリ・レコード1000は、元ファイル及びデータ・パケットのアセンブルする順序を示す等価な手段を用いても良い。
これから説明する図式的なフローチャートは、論理的なフローチャートである。厳密な意味では、ここで示した順序及び名づけたステップは本発明のプロセスの一実施例を示す。機能、論理、効果に於いて等価な他のステップ及びプロセスも考えられる。更に、ここで使用したフォーマットや記号は、そのプロセスの論理ステップを説明するために与えられており、そのプロセスの範囲を制限しないものと理解される。同様に、種々の矢印のタイプ、線のタイプが、このフローチャートでは使用されているが、その対応するプロセスの範囲を制限しないものと理解される。実際、ある矢印や他のコネクタがそのプロセスの論理フローだけを示すのに使用されても良い。例えば、一つの矢印は、そこで示すプロセスの列挙したステップ相互間の特定されていない間隔の待機期間若しくはモニタ期間を示しても良い。
図11及び図12は、グリッド・システム100上にデータをバックアップするのに用いられ得るバックアップ方法1100の一実施例を示す。図示のバックアップ方法1100は、3個ほどの区域に分けられる。各区域はグリッド・システム100の特定のコンポーネントに生じるようなサブプロセスを示す。しかし、そのバックアップ方法1100は、3個のサブプロセスに分けられ、一つの特定のコンポーネントで生じるようなラベルが付されているが、この説明は一つの特定のコンポーネントにサブプロセスを制限しようと意図するものではない。実際、バックアップ方法1100の中で示した諸ステップの多くはグリッド・システム100中の種々のコンポーネントにより実行されても良い。更に、単一のサブプロセスの全てのステップが単一のコンポーネントによって実行されねばならないという訳ではない。同様に、単一のコンポーネントが異種のサブルーチンからの種々のステップを実行しても良い。
図示のバックアップ方法1100は、ステップ1102で始まり、ステップ1104で、バックアップされるべきデータ・ユニットに対しユニーク・データ識別子(UDI)を発生する。その後、ステップ1106で、ソース・クライアントがグローバル・シーケンス・マネジャにバックアップ・リクエストを送る。ステップ1110で、グローバル・シーケンス・マネジャ400がソース・クライアントからそのバックアップ・リクエストを受取る。一実施例では、そのバックアップ・リクエストが、バックアップされるべきデータ・ユニットのユニーク・データ識別子(UDI)を含む。代わりに、そのユニーク・データ識別子(UDI)が別個に送られても良い。
ステップ1112に於いて、グローバル・シーケンス・マネジャ400は、そのユニーク・データ識別子(UDI)を用いて、データ・ユニットのバックアップ・コピーがグリッド・システム100中に既に存在しているかを調べる。そのユニーク・データ識別子(UDI)に対応するデータのバックアップ・コピーが既に存在するのでなければ、図12のステップ1202に進み、グローバル・シーケンス・マネジャ400が、データ・リクエストをソース・クライアントに送り、バックアップすべきデータ・ユニットのコピーをリクエストする。図12のステップ1204で、ソース・クライアントがそのデータ・リクエストを受け取り、その後ステップ1206で、そのデータ・ユニットのコピーをグローバル・シーケンス・マネジャ400に送る。図示の実施例で、グローバル・シーケンス・マネジャ400はソース・クライアントからデータ・ユニットを受け取り(ステップ1208)、そのデータ・ユニットを必要な数のデータ・パケットに細分割し(ステップ1210)、ユニークな、非トランスペアレントのシーケンス・キーをそのデータ・ユニットのために発生する(ステップ1210)。
そこで、グローバル・シーケンス・マネジャ400が、その非トランスペアレントなシーケンス・キーに従ってターゲット・クライアントにバックアップ・データ・パケットを記憶する(ステップ1212)。各データ・ユニット又はその部分ごとに、グローバル・シーケンス・マネジャ400は、クライアント500及びデータ・ユニットと関係する適切なプロファイル(図6、図7のグローバル・クライアント・プロファイル600、ソース・クライアント・プロファイル700)、及びレコード(図8ないし図9のソース・データ・レコード800、ターゲット・データ・レコード900、データ・アセンブリ・レコード1000)を生じ、修正ないし更新する(ステップ1214)。それから、グローバル・シーケンス・マネジャ400は、データ・バックアップ確認をソース・クライアントに送り、そのバックアップ動作が成功裏に完了したことを示す(ステップ1216)。ソース・クライアントは、グローバル・シーケンス・マネジャ400からデータ・バックアップ確認を受取る(ステップ1220)と、もっと多くのデータ・ユニットがバックアップされる必要があるかを調べる(ステップ1222)。もしあれば、図示のバックアップ方法は次のデータ・ユニットのために新しいユニーク・データ識別子(UDI)を発生する(図11のステップ1104)。もしなければ、図示のバックアップ方法が終了する(ステップ1224)。
ここで図11のステップ1112に説明を戻すと、もしもグローバル・シーケンス・マネジャ400が、グリッド・システム100上にそのデータ・ユニットのバックアップ・コピーが既に存在すると決定した場合は、グローバル・シーケンス・マネジャ400がその存在するバックアップをソース・クライアントに知らせる(ステップ1114)。図示のバックアップバックアップ方法1100は、上述のとおりに続けられる。他の実施例では、グローバル・シーケンス・マネジャ400が、ソース・クライアントに、その存在するバックアップを知らせる前に、適切なプロファイル(600、700)若しくはレコード(800、900、1000)を生じ若しくは修正してもよい。
図13ないし図16は、グリッド・システム100上にデータを復元するように使用されても良い復元方法1300の実施例を示す。図示の復元方法1300は、3個ほどの区域に分けられる。各区域は、グリッド・システム100の特定のコンポーネントに生じるようなサブプロセスを示す。しかし、その復元方法1300は、3個のサブプロセスに分けられ、一つの特定のコンポーネントで生じるようなラベルが付されているが、この説明は一つの特定のコンポーネントにサブプロセスを制限しようと意図するものではない。実際、復元方法1300の中で示した諸ステップの多くは、グリッド・システム100中の種々のコンポーネントにより実行されても良い。更に、単一のサブプロセスの全てのステップが単一のコンポーネントによって実行されねばならないという訳ではない。同様に、単一のコンポーネントが異種のサブルーチンからの種々のステップを実行しても良い。
図示の復元方法1300は、図13のブロック1302で開始する。ソース・クライアントがデータ復元リクエストをグローバル・シーケンス・マネジャ400に送る(ステップ1304)。一実施例では、その復元リクエストが、復元しようとするバックアップ・データ・ユニットのユニーク・データ識別子(UDI)を含む。代わりにユニーク・データ識別子(UDI)が別個に伝送されても良い。グローバル・シーケンス・マネジャ400は、データ復元リクエストを受取る(ステップ1308)と、そのリクエストされたデータ・ユニットのバックアップ・データ・パケットをどのターゲット・クライアントが記憶しているかを調べるために、対応するソース・データ・レコード800にアクセスすることができる(ステップ1310)。代替実施例では、グローバル・シーケンス・マネジャ400は、そのリクエストされたデータ・ユニットのバックアップ・データ・パケットをどのターゲット・クライアントが記憶しているかを調べるために、対応するソース・クライアント・プロファイル700にアクセスし、そのシーケンス・キーを再発生することができる(ステップ1310)。
それから、グローバル・シーケンス・マネジャ400は、パケット・リクエストを適切なターゲット・クライアントに送る(ステップ1312)。上述のとおり、各データ・パケットの複製コピーが1個若しくはそれ以上のターゲット・クライアントに記憶されても良い。図示の実施例では、各ターゲット・クライアントがグローバル・シーケンス・マネジャ400からパケット・リクエストを受取る(ステップ1318)。グリッド・システム100が幾つかの独立に管理されるネットワーク及びクライアントを含むとすれば、幾つかのターゲット・クライアントは、リクエスト時にオフラインであっても利用できなくても良い。幾つかの利用可能なターゲット・クライアントは、グリッド資源として以前は使用されていた再クレームされた記憶スペースを有していても良い。これにより、グリッド・システム100には利用できていなかった、バックアップ・データ・パケットのコピーを破壊したり作ったりすることができる。
もしそのリクエストされたパケットが利用可能でないと、その利用可能なターゲット・クライアントが決定すれば(図14のステップ1402)、ターゲット・クライアントは、グローバル・シーケンス・マネジャ400にその喪失したパケットのことを知らせる(ステップ1404)。そのパケット喪失に応答して、グローバル・シーケンス・マネジャ400は、そのリクエストされたデータ・パケットのコピーを有する他のターゲット・クライアントが利用可能かを調べる(ステップ1408)。もし他のターゲット・クライアントが利用可能であるならば、グローバル・シーケンス・マネジャ400は、その利用可能なターゲット・クライアントにパケット・リクエストを送る(ステップ1312)。そして上述したとおりの復元方法1300が続く。もしそのリクエストされたパケットが利用可能と、その利用可能なターゲット・クライアントが決定すれば(ステップ1402)、そのターゲット・クライアントは、そのリクエストされたパケットをグローバル・シーケンス・マネジャ400に送る(ステップ1410)。すると、グローバル・シーケンス・マネジャ400は、その利用可能なターゲット・クライアントからそのリクエストされたパケットを受取る(ステップ1414)。
特定のデータ・パケットが利用可能であるか否かに関して、グローバル・シーケンス・マネジャ400は、リクエストされたデータ・ユニットに対し追加のデータ・パケットが必要か、利用できるかを決定する(図15のステップ1502)。もし、もっとパケットが必要であれば、グローバル・シーケンス・マネジャ400は、その必要なパケット・リクエストを、その対応するターゲット・クライアントに送る(ステップ1312)。そして上述したとおりの復元方法1300が続く。
一旦、全てのデータ・パケットがリクエストされ、もし利用可能ならそのターゲット・クライアントから受取られると、グローバル・シーケンス・マネジャ400は、そのリクエストされたデータ・パケットのどれかが欠けているか、喪失したか、破壊されたか、或いは利用不可能かを調べても良い(ステップ1504)。一実施例では、グローバル・シーケンス・マネジャ400が、この欠けているパケットの冗長なコピーをアクセスするために、グローバル・クライアント・プロファイル600、及びソース・クライアント・プロファイル700に夫々記憶されたクライアント・パケット冗長化パラメータ610及びデータ・パケット冗長化パラメータ710を参照しても良い。
グローバル・シーケンス・マネジャ400は、十分な数のパケットが、元のデータの全てもしくは一部をアセンブルするよう取出されたか調べる(ステップ1506)。もし十分な数のパケットが利用可能なら、グローバル・シーケンス・マネジャ400はデータを、一実施例では、データ・アセンブリ・レコード1000を用いてアセンブルし(ステップ1508)、そのデータをソース・クライアントに送る。そこでソース・クライアントは、グローバル・シーケンス・マネジャ400から部分的に若しくは完全にアセンブルされたデータを受取る(ステップ1514)。
もし、幾つかのデータがバックアップ及び復元動作中に喪失したり利用できなくなったりしたならば、データが完全に若しくは十分に再構成されているかをソース・クライアントが決定する(図16のステップ1602)。もしデータが十分に再構成されているなら、ソース・クライアントは、追加のデータ・ユニットを復元する必要があるかを決定する(ステップ1612)。もしそうであれば、後続のデータ復元リクエストをグローバル・シーケンス・マネジャ400に送るステップ1304に戻る。そして上述したとおりの復元方法1300が続く。
もし、リクエストされたデータが十分に再構成されていないと、ソース・クライアントが決定すれば(ステップ1602)、ソース・クライアントは、グローバル・シーケンス・マネジャ400からの残りのデータ・パケットを反復的にリクエストする(ステップ1604)。グローバル・シーケンス・マネジャ400は、復元しようとする全ての試みが行われたかどうかを決定する(ステップ1608)。もしそうでなければ、後続のパケット・リクエストをターゲット・クライアントに送るというステップ1312の前に、所定の遅延期間、待機しても良い(ステップ1610)。代替例では、グローバル・シーケンス・マネジャ400が、所定の遅延期間ではなく、ランダムな遅延期間、待機しても良い(ステップ1610)。例えば、一実施例では、グローバル・シーケンス・マネジャ400が、24時間、待機しても良い。他の実施例では、グローバル・シーケンス・マネジャ400が、次の労働日の始まる時刻まで待機してから、その後のパケット・リクエストを送る(ステップ1312)のでも良い。これまで利用できなかったターゲット・クライアントが、この遅延期間の間に、グリッド・システム100に利用できるようになるかもしれない。
図示の復元方法1300は、リクエストされたデータ・ユニットが完了するまで又は全ての復元の試みが行われるまで、上述のとおり続く。データ復元の試みの全てが行われ、且つデータがまだ完了していない場合は、グローバル・シーケンス・マネジャ400は、喪失データのこと、及び行われた試みのことをソース・クライアントに知らせる。ソース・クライアントは、グローバル・シーケンス・マネジャ400から喪失データの知らせを受取る(ステップ1618)。そしてその説明した復元方法1300が終了する(ステップ1620)。
上述のバックアップ方法1100及び復元方法1300に関連して、グリッド・システム100は、クライアント104ないし110が、そのグリッド・システム100のバックアップ機能及び復元機能をアクセスするための対価を支払うようにするためにクライアント・サブスクリプション・プログラムを管理するのに必要なコンポーネントを含むかもしれない。一実施例では、図3のサブスクリプション・マネジャ312が、このタイプのクライアント・サブスクリプション・システムを管理するよう構成されても良い。クライアント・サブスクリプション・システムは、多数のソース・クライアント及びターゲット・クライアントを許容しても良い。クライアントごとのサブスクリプション料金は、記憶しようとするデータの量、ソース・クライアントが必要とするバックアップの信頼性及びアクセス可能性、グリッド・システム専用のローカル・クライアント・パフォーマンス資源の量、並びに時間あたりの割り当て資源の一貫性に依存しても良い。グリッド・システム100のパフォーマンスに影響する他の要素をも、特定のクライアント104ないし110ごとの料金を決定するのに使用しても良い。
サブスクリプション・マネジャ312は、一実施例では、ユーザの料金を決定するプロセスに於いて、収集され、使用され、若しくは発生された情報を管理し、サービスのレベルを制御し、そのサービスの利用を制御し、グリッド・アプリケーションに関連する、顧客若しくは企業からの又は顧客若しくは企業への、パフォーマンス資源の貢献度を制御するなどのことを行う装置である。
一実施例では、サブスクリプション・マネジャ312は、少なくとも二つの目的に資する。第1に、サブスクリプション・マネジャ312は、ユーザによるグリッド資源の使用度合い及びユーザによるパフォーマンス資源のグリッドに対する貢献度合いの一方若しくは両方に基づいて、ユーザに課されるユーザ料金を決定することができる。第2に、サブスクリプション・マネジャ312は、グリッド・システム100及びグリッド資源へのアクセス、使用、使用のレベル等を制御することができる。サブスクリプション・マネジャ12は、またここで説明した自律的な(オートノミック)ポリシに基づいて、グリッド・システムへのクライアント・パフォーマンス資源の割り当て、貢献の度合い等を制御することもできる。
グリッド・システム100への種々のクライアント104ないし110のサブスクリプションを管理するために、サブスクリプション・マネジャ312は、クライアント・プロファイル、グローバル・プロファイル、及び顧客プロファイルを作成し、記憶することができる。一実施例では、サブスクリプション・マネジャ312のグローバル・プロファイルは、特定の顧客のためのユーザ料金を決定するために、パフォーマンス資源割り当て及び使用に関する情報を含んでも良い。
一実施例では、顧客プロファイルは、グローバル・プロファイルを特定の顧客に関係付ける情報を含む。顧客プロファイルは、クライアント・パフォーマンス資源割り当てについての情報及びローカルに呼び出されるグリッド・アプリケーションについての情報を含む、特定の顧客についての情報を総合しても良い。顧客プロファイルは、或る顧客が課される全体の料金を決定するのに使用されても良い。同様に、一実施例では、サブスクリプション・マネジャ312中のクライアント・プロファイルが、特定のクライアント104ないし110に対応する情報を含んでも良い。
一実施例では、サブスクリプション・マネジャ312は、一つのグリッド・アプリケーションについてクライアント104ないし110によるグリッド・システム100の、瞬間的な使用、平均的な使用、最大の使用、最小の使用、予定の使用、リザーブした使用、ピークの使用など、その中の1つ若しくは複数の使用に基づいて、ユーザ料金を決定する。他の実施例では、サブスクリプション・マネジャ312は、クライアント104ないし110によるグリッド・システム100へのクライアント・パフォーマンス資源の割り当てを追跡しても良い。サブスクリプション・マネジャ312が、瞬間的なレベル、平均的なレベル、最大のレベル、最小のレベル、予定のレベル、リザーブしたレベル、ピークのレベルなど、その中の一つ若しくは複数の、貢献したレベルを追跡しても良い。更に別の実施例では、サブスクリプション・マネジャ312が、上記に挙げた一つ以上のファクタの組み合わせを追跡しても良い。
他の実施例では、サブスクリプション・マネジャ312が、グローバル・オートノミック・マネジャによる又はクライアント104ないし110によるオートノミック・ポリシの実行をモニタし、制御しても良い。例えば、ある企業がバックアップ取出しグリッド・アプリケーションのためにグリッド・システム100に加入しても良い。コスト・ダウンのために、或る企業は、各々の結合されたクライアント104ないし110からグリッド・システム100にパフォーマンス資源を貢献することを決定しても良い。もしもユーザが特定のクライアントの割当て済みのパフォーマンス資源を再利用すると決定し、その貢献度をゼロに減らすならば、サブスクリプション・マネジャ312は、そのクライアント・プロファイル、及び顧客プロファイルを変更して、適当な料金を決定しても良い。サブスクリプション・マネジャ312のグローバル・プロファイルによれば、グリッド・システム100のグローバル・オートノミック・マネジャは、パフォーマンス資源割当てのための上下の閾値を維持しても良い。
他の実施例では、クライアント104ないし110又はグローバル・オートノミック・マネジャによりリクエストされたポリシの変更をサブスクリプション・マネジャ312が制御しても良い。サブスクリプション・マネジャ312の顧客プロファイルは、クライアント104ないし110のグリッド・アプリケーションの使用や資源割当てのある種の変更を抑えても良い。例えば、クライアント・プロファイルは、顧客が所定の請求期間に生じる総コストに制限を設けても良い。サブスクリプション・マネジャ312は、もしもこれらの制限を越えるなら、クライアント104ないし110による使用を阻止しても良い。
本発明は、その精神や基本的特性から逸脱することなく他の特定の態様で実施されても良い。上述の実施例は全ての点で説明用としてのみ考慮すべきであって、制限を加えるべきものではない。従って、本発明の範囲は上述の説明よりも特許請求の範囲によって示されるべきである。特許請求の範囲の意味するところとその等価な範囲内の全ての変更は本発明の範囲内に包含されるべきである。