(57)【特許請求の範囲】
【請求項１】
複数のターゲット・クライアントにまたがってデータをバックアップするための方法にして、
グローバル・シーケンス・マネジャによって、ソース・クライアントからバックアップされるべきデータを受取るステップと、
前記グローバル・シーケンス・マネジャによって、前記データを複数のバックアップ・データ・パケットに分割するステップと、
前記グローバル・シーケンス・マネジャによって、前記複数のバックアップ・データ・パケットが前記ソース・クライアントから前記複数のターゲット・クライアントに記憶される順序で配列された前記複数のバックアップ・データ・パケットの各々のためのパケット識別子から成る、非トランスペアレントなシーケンスを発生するステップとを含み、
前記非トランスペアレントなシーケンスは、ユニークであり且つ前記グローバル・シーケンス・マネジャに対し排他的にアクセス可能であり、
前記グローバル・シーケンス・マネジャによって、前記非トランスペアレントなシーケンスに従って前記複数のバックアップ・データ・パケットを前記複数のターゲット・クライアントに記憶するステップを更に含み、
前記グローバル・シーケンス・マネジャ、前記ソース・クライアント及び前記複数のターゲット・クライアントはグリッド・コンピューティング・システムを形成するように編成され、
前記グローバル・シーケンス・マネジャによって、前記複数のターゲット・クライアント上にバックアップされた前記複数のバックアップ・データ・パケットを取出すステップと、
前記グローバル・シーケンス・マネジャによって、前記取り出された複数のバックアップ・データ・パケットを前記パケット識別子の前記非トランスペアレントなシーケンスに従って順次にアセンブルするステップとを更に含む、方法。
【請求項２】
前記複数のバックアップ・データ・パケットを前記複数のターゲット・クライアント上に記憶する前に、前記グローバル・シーケンス・マネジャによって、各バックアップ・データ・パケットごとに一の冗長化バックアップ・データ・パケットを作成するとともに、前記グローバル・シーケンス・マネジャによって、前記冗長化データ・パケットを前記非トランスペアレントなシーケンスに従って前記複数のターゲット・クライアントのうちの１つに記憶するステップを更に含む、請求項１に記載の方法。
【請求項３】
請求項１及び２の何れかに記載された方法の各ステップを、コンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グリッド・コンピューティングに関し、より詳細にはグリッド・コンピューティング・システムで複数のクライアントにまたがってデータをバックアップすることに関する。
【背景技術】
【０００２】
グリッド・コンピューティングは、コンピュータ産業では比較的新しいテクノロジである。今日の多くのグリッド・コンピューティング・システムは、複数の相互接続されたコンピュータないしノードが、単一のマシーンでは行うことができないような計算問題など、大型のグリッド・アプリケーションに関し互いに協働するのを許容するように設計されている。そのような圧倒的な量の計算処理をうまく管理するために、そのような計算問題を幾つかの小さい管理しやすいジョブに分割してもよい。多くのパーソナル・コンピュータ又はビジネス・コンピュータにつきものの、或いはやむを得ず生じるような遊休処理時間があるので、グリッド・アプリケーションのこのタイプの分散処理が部分的に可能である。
【０００３】
これまで十分に実施されてこなかったグリッド・コンピューティングの一つの視点は、データ・バックアップ・アプリケーションの領域にある。これまでのデータ・バックアップ設備は大きな、スタンドアローンのデータ・バックアップ装置を用いて実施されている。実際にも全産業でデータセンタを作ることに熱心であり、これによって情報を記憶し、情報をバックアップし、情報を利用できるようにしている。この記憶された情報の可用性を増すために、データセンタは冗長性やエラー検出訂正のコードないし機能をしばしば用いている。このようなデータセンタは、データを記憶することのみに資する専用のデータ記憶装置の大きなバンクを用いるようにこれまで設計され、操作されている。残念ながら、従来のデータ記憶技法や装置は一般に非常に高価で、購入しにくいほどであり、その結果そのような技法の広汎な使用を制限している。
【０００４】
グリッド・コンピューティングに関する他の課題は、個別の又はネットワーク化されたコンピュータに対する大容量記憶装置の普及度（pervasiveness）である。多くの会社や家庭は、少なくとも今日の米国では、一つ以上のコンピュータを使用し、それらが１日のうち常時ではなくても頻繁にインターネットに接続されている。これらの多くの個人用又は商用のコンピュータは、その全体の能力のうち２％ないし２０％をおそらく使用しているだけで、その記憶能力を十分活用していない。このことは、これらのコンピュータで利用することができる記憶装置のサイズでは、例えば４０ないし１００ギガバイトの記憶装置で３２ないし９８ギガバイトの記憶スペースが使用されていないか十分活用されていないことを意味する。もっと低い能力の装置でさえ、数ギガバイトの記憶スペースが使用されないままかもしれない。全部では、何百万ドル（おそらく何十億ドル）に相当する記憶能力が毎日使用されないでいる。
【０００５】
本発明の背景に関する更なる課題は、データ・バックアップ操作に対する十分な記憶能力の必要性である。コンパクト・ディスクやフロッピー（登録商標）・ディスクなど、低コストの取外し可能媒体のための記憶能力が、時代とともに大きく伸びて来ているが、完全な又は部分的なバックアップに必要な記憶スペースは単一の取外し可能媒体の装置で利用することができるスペースを、多くの場合に越えることになる。同様に、幾つかの取外し可能媒体の装置上にバックアップ・データを記憶するのに含まれる時間、労力、経済的コストは、一般的に利用できないほど高い。これは、データをバックアップするための高容量の記憶を必要とし、グリッド・コンピューティングの能力及び大量の存在する不使用の又は使用不十分な記憶スペースと相俟って、グリッド・ベースのデータ・バックアップを導入する必要性が存在することを示唆する。
【０００６】
従って、グリッド・コンピューティング・システム上で好適にバックアップし、機能を復元する装置、システム及び方法に対する需要がある。有利なことに、このような装置、システム、及び方法は、専用のデータセンタに現在依存しているのを克服するとともに、利用可能な、使用されていない記憶能力とグリッド・コンピューティング技法とを利用する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、今日の技術水準に応じて開発された。そして特に今日利用できるグリッド・コンピューティング・システムによって完全には解決されていない従来技術の課題及び要求に応じて開発された。従って、本発明はグリッド・コンピューティング上の複数のクライアントにまたがってデータをバックアップするための装置、システム及び方法を提供するために開発され、上述した従来技術の課題の全部又は多くを克服する。
【課題を解決するための手段】
【０００８】
本発明の好適な実施例では、グリッド・コンピューティング・システム上の複数のクライアントにまたがってデータをバックアップするための装置は、グリッド・コンピューティング・システム上の複数のクライアントにまたがってデータをバックアップするのに必要なステップを機能的に実行するように構成された複数のモジュールを含む論理ユニットを具備する。ここで説明する実施例に於けるこれらのモジュールは、クライアント・リクエスト・モジュール、シーケンス・モジュール、グローバル・プロファイル管理モジュール、パケット記憶モジュール、パケット取出し（retrieval）モジュール、データ・アセンブリ・モジュール、圧縮モジュール、データ暗号化モジュール、及び冗長化モジュールを含む。
【０００９】
本発明によれば、複数のクライアントにまたがってデータをバックアップするためのシーケンス管理装置が提供される。そのシーケンス管理装置には、ソース・クライアントからバックアップされるべきデータを受取るように構成されたクライアント・リクエスト・モジュールと、複数のターゲット・クライアントの非トランスペアレントなシーケンスを発生するように構成されたシーケンス・モジュールと、その非トランスペアレントなシーケンスに従って複数のターゲット・クライアント上にデータを記憶するように構成されたパケット記憶モジュールとが設けられる。
【００１０】
他の視点から本発明を見ると、複数のクライアントにまたがってデータをバックアップするための方法が提供される。そのバックアップ方法は、ソース・クライアントからバックアップされるべきデータを受取るステップと、複数のターゲット・クライアントの非トランスペアレントなシーケンスを発生するステップと、その非トランスペアレントなシーケンスに従って複数のターゲット・クライアント上にデータを記憶するステップとを含む。
【００１１】
更に他の視点から本発明を見ると、複数のクライアントにまたがってデータをバックアップするようにコンピュータを動作させるコンピュータ可読記憶媒体が提供される。そのコンピュータ可読記憶媒体には、ソース・クライアントからバックアップされるべきデータを受取り、複数のターゲット・クライアントの非トランスペアレントなシーケンスを発生するステップと、その非トランスペアレントなシーケンスに従って複数のターゲット・クライアント上にデータを記憶するステップとを含むバックアップ方法をコンピュータに実行させるように構成されたコンピュータ可読コードを含む。
【００１２】
グリッド・コンピューティング・システム上で複数のクライアントにまたがってデータをバックアップするシステムが提供される。このシステムが実施されるのは、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、ローカル・エリア・ネットワーク及びワイド・エリア・ネットワークの組み合わせ、一つ又は複数のワイヤレス・ネットワーク、インターネット・ベースのグリッド・コンピューティング・ネットワーク、或いはその他のグリッド・コンピューティング環境である。特にこのシステムは、一実施例では、グローバル・シーケンス・マネジャと、ソース・クライアントと、一つ若しくは複数のターゲット・クライアントと、これらのコンポーネント相互間での通信を許容する通信インフラストラクチャとを含む。
【００１３】
このシステムは、ここで説明するグリッド・システムのバックアップ及び復元機能を使用して、グリッド・コンピューティング・システムに接続された各クライアントのサブスクリプション料金(fee subscription) を管理するように構成されたサブスクリプション・マネジャを更に含んでいても良い。
【００１４】
クライアントはまたグリッド・コンピューティング・システム上の複数のクライアントにまたがってデータをバックアップするように提供される。一実施例では、そのクライアントには、ロジック回路が設けられ、これはグリッド・コンピューティング・システム上で複数のクライアントにまたがってデータをバックアップするのに必要な諸ステップを実行するように構成された複数のモジュールを含む。上述の実施例に於けるこれらのモジュールは、データ・バックアップ・モジュールと、データ復元モジュールと、ローカル・プロファイル管理モジュールと、ユニーク・データ識別子発生モジュールとを含む。
【００１５】
また、グリッド・コンピューティング・システム上の複数のクライアントにまたがってデータをバックアップする本発明の方法が提供される。開示された実施例に於けるこのプロセスは、説明される装置及びシステムの動作に関し、上記の機能を実行するのに必要な諸ステップを実質的に含む。一実施例では、ソース・クライアントからバックアップされるデータを受取るステップと、複数のターゲット・クライアントの非トランスペアレントなシーケンスを発生するステップとを含む。
【００１６】
このプロセスはまたそのバックアップ・データを記述するメタデータ情報を管理するステップと、そのデータをバックアップ・データ・パケットに細分割するステップと、ユニーク・データ識別子（ＵＤＩ）を用いてバックアップ・データを識別するステップと、クライアント・サブスクリプションを管理するステップと、クライアント・パフォーマンス資源の割り当てをトラックするステップと、ここで説明するような他の必要な付帯的で有益なステップとを含む。
【００１７】
本発明の一実施例は、グリッド・コンピューティング・システムに於ける幾つかのターゲット・クライアントの間で大量のバックアップ・データが分散され記憶されるのを効果的に許容する。本発明の他の実施例ではまた、大きなデータセンタを必要とすることなくデータがバックアップされるのを許容する。本発明の更に他の実施例では、データを複数のパケットに細分割し、非トランスペアレントなシーケンスに従ってターゲット・クライアント上にバックアップ・データ・パケットを記憶することによって、バックアップ・データのための追加的なセキュリティを効果的に提供する。
【００１８】
本明細書中では特徴、利点、もしくはそれらに類する用語で言及することが、本発明に関して実現されるような特徴及び利点の全てを本発明の単一の実施例に於いて実現しなければならないことを暗示するのではない。むしろ、特徴や利点に言及した用語は、或る実施例に関連して説明する特徴、利点、又は特性が、本発明の少なくとも一つの実施例に含まれることを意味すると理解されたい。
【００１９】
本発明を他の視点から見ると、シーケンス管理装置に関連して、複数のクライアントにまたがってデータをバックアップするためのクライアントが提供される。このクライアントは、シーケンス管理装置と通信するように構成されたネットワーク・インターフェイスと、割り当てられた記憶域を定義するように構成された記憶部と、ユニーク・データ識別子及び非トランスペアレントなシーケンスを用いてバックアップ動作を管理するように構成されたクライアント・バックアップ管理装置とを含む。
【００２０】
このクライアントは、データのためのバックアップ動作を開始し、そのデータのためのユニークなデータ識別子を発生するように構成されるソース・クライアントであっても良い。同様に、このクライアントは、シーケンス管理装置からのデータ記憶リクエストに応答して、その割り当てられた記憶域にそのデータの少なくとも一部を記憶するように構成されたターゲット・クライアントであっても良い。
【００２１】
本発明を更に他の視点から見ると、複数のクライアントにまたがってデータをバックアップするためのシステムが提供される。このシステムが含むものは、ネットワーク通信チャネルと、そのネットワーク通信チャネルに結合され、データ・バックアップ動作を開始するように構成されたソース・クライアントと、そのネットワーク通信チャネルに結合され、そのデータの少なくとも一部を記憶するように構成された複数のターゲット・クライアントと、そのネットワーク通信チャネルに結合され、非トランスペアレントなシーケンスに従って複数のターゲット・クライアント上にそのデータを記憶するように構成されたグローバル・シーケンス・マネジャとである。
【００２２】
そのグローバル・シーケンス・マネジャは、ユニーク・データ識別子に対応するデータの単一のコピーを記憶するように構成され、そして当該データの単一のコピーをそのデータが記憶されるべき第１のソース・クライアント及びそのデータの同じコピーが記憶されるべき第２のソース・クライアントに写像するように構成される。このシステムは、ソース・クライアント及び複数のターゲット・クライアントの各々についての契約上のサブスクリプション（a contractual subscription）を管理するように構成されたサブスクリプション・マネジャを含んでも良い。このグローバル・シーケンス・マネジャ及びサブスクリプション・マネジャは、更にソース・クライアントのソース記憶割り当てパラメータを追跡するように構成されていても良い。同様に、グローバル・シーケンス・マネジャ及びサブスクリプション・マネジャは、複数のターゲット・クライアントの各々のターゲット記憶割り当てパラメータを追跡するように構成されても良い。同様に、グローバル・シーケンス・マネジャ及びサブスクリプション・マネジャは、資源割り当てパラメータを追跡するように構成されていても良い。
【００２３】
その資源割り当てパラメータは、ネットワーク割り当てパラメータ、クライアント・プロセッサ・パラメータ、及びクライアント帯域パラメータからなる群から選択されても良い。
【００２４】
本発明を更に他の視点から見ると、グリッド・コンピューティング・システム中で、加入済み（subscribed）クライアントの契約上のサブスクリプションを管理するサブスクリプション・マネジャが提供される。このサブスクリプション・マネジャは、加入済みクライアントと通信するように構成されたネットワーク・インターフェイスと、加入済みクライアントからのグリッド・アプリケーションからのグリッド・アプリケーション開始リクエストを受取るように構成され、グリッド・コンピューティング・システム上のグリッド・アプリケーションを、その加入済みクライアントが開始することができるようにするためのサブスクリプション・モジュールと、クライアント・サブスクリプション料金を計算するように構成され、契約上のサブスクリプションに関連してクライアントのサブスクリプション料金の支払いをリクエストする料金モジュールとを含む。
【００２５】
そのグリッド・アプリケーションは、グリッド・バックアップ・アプリケーションであっても良い。その料金モジュールは、特定の期間にわたる、クライアントの使用履歴に少なくとも部分的に基づいて、クライアント・サブスクリプション料金を計算するように構成される。同様に、その料金モジュールは、グリッド・コンピューティング・システムに割り当てられたクライアント資源を定義するクライアント資源割り当てパラメータに部分的に基づいて、クライアント料金を計算するように構成されても良い。
【００２６】
本発明を更に他の視点から見ると、複数のクライアントにまたがってデータをバックアップするための方法が提供される。そのバックアップ方法は、ソース・クライアントからバックアップすべきデータをリクエストするステップと、複数のデータ・パケットにデータを分割するステップと、複数のターゲット・クライアントの非トランスペアレントなシーケンスを発生するステップと、その非トランスペアレントなシーケンスに従って複数のターゲット・クライアント上にデータ・パケットを記憶するステップと、ソース・クライアントにデータを写像するためにそのデータに対応するユニーク・データ識別子を使用するステップと、複数のターゲット・クライアント上にバックアップされるデータを記述するメタデータ・ファイルを管理するステップと、ソース記憶割り当てパラメータ、ターゲット記憶割り当てパラメータ、ネットワーク割り当てパラメータ、クライアント・プロセッサ・パラメータ及びクライアント帯域幅パラメータのうちの一つである資源割り当てパラメータを追跡するステップと、ソース・クライアント及び複数のターゲット・クライアントの契約上のサブスクリプションを管理するステップとを含む。
【００２７】
本発明を更に他の視点から見ると、複数のクライアントにまたがってデータをバックアップするための装置がここで提供される。この装置は、ソース・クライアントからバックアップされるべきデータを受取る手段と、複数のターゲット・クライアントの非トランスペアレントなシーケンスを発生する手段と、その非トランスペアレントなシーケンスに従って複数のターゲット・クライアントにデータを記憶する手段とを含む。
【００２８】
更に、本発明のここで記す特徴、効果、及び特性は、一つ以上の実施例の適切な態様で組み合わされても良い。当業者は、或る特定の実施例の一若しくはそれ以上の特定の特徴や効果がなくても、本発明が実施できることを理解できよう。他の例では、本発明の全ての実施例には存在しないかもしれないが、或る実施例に於いては追加的な特徴や効果も認められるかもしれない。
【００２９】
本発明のこれらの特徴及び効果は、以下の説明及び特許請求の範囲から十分明瞭になるであろうし、或いは以下で開示する発明を実践することで理解されよう。
【発明を実施するための最良の形態】
【００３０】
本明細書で説明する多くの機能ユニットをモジュールと名づけているが、これはそれらの導入の仕方が独立であることを特に強調するためである。例えば、汎用のＶＬＳＩ回路やゲート・アレイ、或いは論理チップ、トランジスタ、その他の個別のコンポーネントなど、直ぐ入手できる半導体で構成されているハードウェアとしてモジュールが導入されてもよい。モジュールはまた、フィールドでプログラム可能なゲート・アレイ、プログラム可能なアレイ・ロジック、プログラム可能な論理装置など、プログラム可能なハードウェア装置で導入されていても良い。
【００３１】
モジュールはまた、いろいろな種類のプロセッサを実行させるためのソフトウェアで導入されていても良い。実行可能なコードの或る識別されたモジュールは、例えばオブジェクト、プロシージャ、又は機能としてまとめられるような一つ以上の物理的又は論理的な、コンピュータ命令のブロックを含んでいても良い。それでも、或る識別されたモジュールの実行可能ユニットは、互いに物理的に一緒に位置づけられる必要はなく、異なる位置に記憶された、異なる命令を含んでいても良い。これらは論理的に互いに一緒にされると、そのモジュールを構成し、そのモジュールのために記述された目的を達成する。
【００３２】
実際、実行可能コードのモジュールは、単一の命令、又は多くの命令からなっていてもよく、幾つかの異なるコード・セグメント、幾つかの異なるプログラム、幾つかのメモリ装置にまたがっていても良い。同様に、動作可能データは、ここではモジュール内で取り上げられ、説明されていてもよく、また任意の適当なタイプのデータ構造中に組み込まれ、任意の適当な形式で実施されても良い。この動作データは、単一のデータ・セットとして集められていても、異なる記憶装置や異種のメモリ装置といった異なる位置にわたって分散されていても良いし、また、少なくとも部分的には単に電子的な信号としてのみシステムやネットワーク上に存在していても良い。
【００３３】
更に、モジュールは、ソフトウェア及び１個若しくはそれ以上のハードウェア装置の組み合わせとして導入されていても良い。例えば、モジュールが、メモリ装置上に記憶されたソフトウェア実行可能コードといった組み合わせで実施されても良い。他の実施例では、モジュールは、一組の動作データ上で動作するプロセッサといった組み合わせであっても良い。更に他の例では、モジュールは、伝送回路を通る電子的信号の組み合わせで実施されてもよい。
【００３４】
この明細書全般で、「一実施例」「ある実施例」又はそれらと同様な用語で示すことは、その実施例に関連して説明する特徴、構造、若しくは特性が、本発明の少なくとも一つの実施例に含まれることを意味する。従って、「一実施例では」、「ある実施例では」及びこの明細書中で用いる同様の用語は、必ずしも全て同じ実施例を示すものではない。
【００３５】
更に、本発明で説明する特徴、構造、及び特性は、一つ以上の実施例で任意の適当な態様で組み合わされても良い。以下の説明では、多くの特定の詳細が提供される。例えば、プログラミング、ソフトウェア・モジュール、ユーザの選択、ネットワークのやりとり、データベースの質問、データベース構造、データベース、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等々の例であり、これらで本発明を完全に理解することができる。他の例では、良く知られた構造、材料又は動作を詳細には示していないが、これは本発明を分かりにくくしないためである。
【００３６】
図１は、複数のクライアント、即ちノード１０４ないし１１０に通信チャネルを介して接続されたグリッド・サーバ１０２を含むグリッド・システム１００を示す。図示のグリッド・システム１００は、ローカル・エリア・ネットワーク（ＬＡＮ）に似ており、通信チャネル１１２は、一実施例ではイーサネット（登録商標）、通信チャネル、ワイヤレス通信チャネル、又は他の等価な通信チャネルであってよい。同様に、通信チャネル１１２は種々のタイプの通信チャネルの組み合わせを含んでいても良い。図示のグリッド・システム１００が１個のグリッド・サーバ１０２と４個のクライアント１０４ないし１１０を含んでいるが、このグリッド・システムはもっと少ない又はもっと多くのクライアント１０４ないし１１０、１個よりも多いサーバ１０２を有する種々の組み合わせのネットワーク構成の組み合わせ、或いは代替のサーバ構成を含んでいても良い。ある別の実施例では、グリッド・システム１００はまた図３を参照して説明するサブスクリプション・マネジャ（図示せず）を含んでいてもよい。一実施例では、グリッド・サーバ１０２はグリッド・システム１００のサブスクリプション・マネジャとして同時に作用する。
【００３７】
グリッド・システム１００は、一実施例で、グリッド・アプリケーションを実行するように構成される。グリッド・アプリケーションは、特定の目的を一緒に達成するワーク・アイテムの集合である。例えば、あるグリッド・アプリケーションは天気予報や株式市場の進展など、非常に複雑な数学的計算を決定してもよい。あるグリッド・アプリケーションはまた、大規模なマルチメディア動作を処理しても良い。他の実施例では、あるグリッド・アプリケーションが、かなりで多様な量のデータについてデータ・バックアップ動作を実行しても良い。本発明が無数の他のグリッド・アプリケーションや機能に適用されるかもしれないが、以下の説明はグリッド・コンピューティング環境内でのデータ・バックアップ動作に焦点を当てている。
【００３８】
一つのグリッド・アプリケーションは複数のジョブに分割されても良いし、単一のユニットのワークであっても良い。一つのグリッド・アプリケーションのうち幾つかのジョブは、一つ若しくはより多くの種々のノード１０４ないし１１０上で、同時に、逐次的に、又は共依存的に（co-dependently）実行されても良い。各ノード１０４ないし１１０は、あるグリッド・アプリケーションを実行するためのグリッド・システム１００に或るパフォーマンス資源を割り当てても良い。クライアント１０４ないし１１０によって利用できるようにされるこれらのパフォーマンス資源は、プロセッサの能力、プロセッサの容量、記憶容量、又はメモリ容量、及び他の同様の資源を含んでも良い。一実施例では、クライアント１０４ないし１１０は、グリッド・アプリケーションの実行のために、グリッド・システム１００に全体のプロセッサ能力、記憶容量又はメモリ容量の特定の量をグリッド・システム１００の専用にしても良い。
【００３９】
各クライアント１０４ないし１１０は、特定のグリッド・アプリケーションに於ける各クライアント１０４ないし１１０の役割に従って、ソース・クライアント又はターゲット・クライアントとして働く。例えば、クライアント１０４ないし１１０がグリッド・アプリケーションを開始する場合、クライアント１０４ないし１１０はソース・クライアントとして働く。或いは、クライアント１０４ないし１１０が、遠隔で開始されるグリッド・アプリケーションを実行するのにローカルのパフォーマンス・ソースとして利用できるようにする場合には、クライアント１０４ないし１１０はターゲット・クライアントとして働く。例えば、グリッド・バックアップ動作の場合は、ソース・クライアントは一つ以上のターゲット・クライアント上にバックアップ・データ・ファイルを有しているかもしれないが、そのようなときターゲット・クライアントは、バックアップ・グリッド動作のためにグリッド・システム１００に、利用可能な記憶部を割り当てる。
【００４０】
図２は、図１のグリッド・システム１００中のクライアント記憶部２００の一実施例を示す。図示の例では、特定のクライアント１０４ないし１１０上の記憶部２００が使用済み記憶部２０２およびフリー記憶部２０４を含むかもしれない。使用済み記憶部２０２は、オペレーティング・システム・ファイル２０６、アプリケーション・プログラム・ファイル２０８、データ・ファイル２１０などを含む、データを記憶する電子的な記憶スペースである。フリー記憶部２０４は、クライアント１０４ないし１１０による動作ないし記憶のために、特別に使用されない電子的記憶スペースである。
【００４１】
フリー記憶部２０４は、一実施例では、オーバーフロー記憶部２１２、利用可能記憶部２１４、及び割り当て済み記憶部２１６を含んでいてもよい。オーバーフロー記憶部２１２は、Windows （登録商標）オペレーティング・システム中のページ・ファイルに似て、アプリケーション・プログラムの実行のためにリザーブされた記憶スペースであってもよい。割り当て済み記憶部２１６はグリッド・アプリケーションの実行及びグリッド・データの記憶のためにグリッド・システム１００の専用にしても良い。その割り当て済み記憶部２１６は、以下の説明を通して詳細に説明するであろう。利用可能記憶部２１４は、オーバーフロー記憶部２１２又は割り当て済み記憶部２１６のいずれかとしては現在使用されていない記憶スペースであっても良く、クライアント１０４ないし１１０による将来の使用のためにリザーブされている。
【００４２】
図２は特定のタイプの使用済み記憶部２０２及びフリー記憶部２０４を示すが、グリッド・システム１００上の特定のクライアント１０４ないし１１０の記憶部２００は、サイズ、容量、利用の仕方、可用性、特にグリッド・システム１００専用の割り当て済み記憶部２１６の量も変えても良い。また特定のクライアント１０４ないし１１０の記憶部２００は、使用済み記憶部２０２及びフリー記憶部２０４及びその細分割したものの量及び割り当てに関して時間の経過とともに変わっても良い。一実施例では、その割り当て済み記憶部２１６は、クライアント１０４ないし１１０上の記憶部２００全体に対し最小であってもよい。その代わりに、割り当て済み記憶部２１６は、オーバーフロー記憶部２１２を除くフリー記憶部２０４の全てを含んでいてもよい。その場合はクライアント１０４ないし１１０は、上述のような利用可能記憶部２１４を持たないことになろう。
【００４３】
図３は、図１のグリッド・システム１００に幾つかの点で似たグリッド・システム３００の他の実施例を示す。図示のグリッド・システム３００は、グリッド・システム３００の種々の他のコンポーネント間の通信チャネルを提供するインターネット３０２を介して動作する。図示のグリッド・システム３００はまた、図１のグリッド・システムに似たネットワーク・システム３０４、３０６をも含み、これらが図３のグリッド・システム３００中のサブシステムを構成する。更には、このグリッド・システム３００はインターネットに直接結合され、その点でローカル・ネットワークの一部を構成しない他のクライアント３０８、３１０を含む。
【００４４】
グリッド・システム３００はまた、以下で詳細に説明するサブスクリプション・マネジャ３１２を含んでいても良い。代わりに、サブスクリプション・マネジャ３１２は、グリッド・システム３００中で他のネットワーク・システム３０４、３０６に接続されていても良い。更なる実施例では、これらのグリッド・システム３００は複数のサブスクリプション・マネジャ３１２を有し、夫々が独立に定義されたサブスクリプション・グループを管理するようになっていても良い。
【００４５】
上述のとおり、他の同様のグリッド・システム構成が、図１や図２のグリッド・システム１００、３００の代わりに、或いはそれに加えて用いられていても良い。以下の説明で、グリッド・システム１００、３００のいずれかを参照するときは、特にグリッド・システム１００、３００の一つを除外すると断らない限り、グリッド・システム１００、３００の一方又は両方を指すものと理解されたい。
【００４６】
図４はグローバル・シーケンス・マネジャ４００の一実施例を示す。図示のグローバル・シーケンス・マネジャ４００は、一実施例においては、グリッド・システム１００上でのデータ・バックアップ動作を管理する。一実施例では、グローバル・シーケンス・マネジャ４００は中央処理装置（ＣＰＵ）４０２、ローカル記憶装置４０４、ユーザ・インターフェイス４０６、ネットワーク・インターフェイス４０８、メモリ４１０、及びグローバル・シーケンス管理装置４１２を含む。ＣＰＵ４０２はグローバル・シーケンス・マネジャ４００中の動作を実行するように概略構成される。ユーザ・インターフェイス４０６は、一実施例では、ユーザがグローバル・シーケンス・マネジャ４００と相互作用するのを許容するように構成される。この相互作用には、ユーザからのデータ及びコマンドを入力し、ユーザに出力データを伝送（通信）するのを許容することを含む。このネットワーク・インターフェイス４０８は、一実施例では、グリッド・システム１００の通信チャネル１１２上でのグローバル・シーケンス・マネジャ４００のネットワーク通信を促進するように構成される。
【００４７】
ローカルのメモリ４１０は、一実施例では、グリッド・バックアップ動作と関連して使用され得るような幾つかのデータ及びメタデータのファイルを記憶するように構成される。代替実施例では、これらのデータ及びメタデータのファイルの幾つか又は全てがローカル記憶装置４０４に複製(replicate)されても良い。更なる実施例では、これらのデータ及びメタデータのファイルの一つ又は全てがメモリ４１０よりもローカル記憶装置４０４に排他的に記憶されても良い。他の実施例では、これらのデータ及びメタデータのファイルの一つ又は全てがグリッド・システム１００上の分散された記憶部に記憶されていても良い。ここでの説明で「ファイル」に言及しているが、本発明は他の電子的メモリや記憶構造を用い、実質上同じ態様で動作するものと理解されたい。ここでデータ・ファイル若しくはメタデータ・ファイルと言及するのは、これも他の電子的メモリや記憶構造にも等しく言及しているものと理解されたい。
【００４８】
特に、メモリ４１０は、グローバル・クライアント・プロファイル４１４、ソース・クライアント・プロファイル４１６、ソース・データ・レコード４１８、ターゲット・データ・レコード４２０、データ・アセンブリ・レコード４２２、及びグローバル・バックアップ・ログ４２４を記憶しても良い。グローバル・クライアント・プロファイル４１４は、一実施例で、ネットワーク・プロファイルを記憶するように構成されるが、更にデフォルトのクライアント・プロファイルを記憶していても良い。グローバル・クライアント・プロファイル４１４は、図６で詳細に説明する。ソース・クライアント・プロファイル４１６は、一実施例で、ユニークなクライアント・プロファイルを記憶するように構成され、更に別の実施例では、データ・ユニット・プロファイルを記憶しても良い。ソース・クライアント・プロファイル２１６は、図７で詳細に説明する。
【００４９】
ソース・データ・レコード４１８は、一実施例では、１個若しくはそれ以上のターゲット・クライアントに記憶されている、バックアップ・データ・ファイルに関するメタデータ若しくはその一部を記憶するように構成される。同様に、ターゲット・データ・レコード４２０は、一実施例で、１個若しくはそれ以上のターゲット・クライアントに記憶されている、バックアップ・データ・ファイルに関するメタデータ若しくはその一部を記憶するように構成される。１個のファイル若しくはその一部のためのソース・データ・レコード４１８及びターゲット・データ・レコード４２０は、バックアップ・ファイルについての同様の、若しくは部分的に複製されたメタデータを含んでいても良い。ソース・データ・レコード４１８及びターゲット・データ・レコード４２０は図８及び図９で、夫々詳細に説明する。
【００５０】
データ・アセンブリ・レコード４２２は、一実施例では、単一のバックアップ・ファイルに関する幾つかのパケットの情報がアセンブルされるべき順序についての情報を記憶するように構成される。その結果、復元されるバックアップ・ファイルは、元々バックアップされたファイルに記憶されていた情報を正確に記憶する。このデータ・アセンブリ・レコード４２２については、図１０で詳細に説明する。グローバル・バックアップ・ログ４２４は、一実施例では、バックアップ・ヒストリを記憶するように構成される。このバックアップ・ヒストリは、或る期間にわたって一つ以上のグローバル・バックアップ・グリッド・アプリケーションの動作を記録している。このようにして、グローバル・バックアップ・ログ４２４は、バックアップ・ヒストリのレビューをし易くし、また所与のバックアップ・グリッド・アプリケーションの実行前に存在していたグリッド、若しくはクライアントの状況の復元をし易くする。
【００５１】
グローバル・シーケンス管理装置４１２は、一実施例では、グリッド・システム１００上のデータ・バックアップ動作をし易くするように構成される。グローバル・シーケンス管理装置４１２は、特定のソース・クライアントにより開始されるバックアップ及び復元動作の実行を管理することができる。図示のグローバル・シーケンス管理装置４１２は、クライアント・リクエスト・モジュール４２６、シーケンス・モジュール４２８、グローバル・プロファイル管理モジュール４３０、パケット記憶モジュール４３２、パケット取出しモジュール４３４、データ・アセンブリ・モジュール４３６、圧縮モジュール４３８、暗号化モジュール４４０、冗長化モジュール４４２を含む。
【００５２】
一実施例では、クライアント・リクエスト・モジュール４２６は、１個若しくはそれ以上のファイルをバックアップするために、ソース・クライアントからのリクエストを処理するように構成される。クライアント・リクエスト・モジュール４２６は、ソース・クライアントからバックアップされるべきデータを受取るように更に構成されていても良い。シーケンス・モジュール４２８は、一実施例では、バックアップ・データが記憶されてもよいような１個若しくはそれ以上のターゲット・クライアントを識別する非トランスペアレントなシーケンス・キーを発生するように構成される。この非トランスペアレントなシーケンス・キーは、バックアップ・データのセキュリティのレベルを提供するように、排他的に記憶され且つグローバル・シーケンス・マネジャによってアクセス可能である。このシーケンス・キーの非トランスペアレントな性質は、そのユニークさに関連し、ならびにその発生、アクセス可能性及び複製（duplication）の排他性に関係する。
【００５３】
例えば、グローバル・シーケンス・マネジャ４００は、ソース・クライアントからのデータを複数のターゲット・クライアント上にバックアップするために、当該データのパケット若しくはその一部を複数のターゲット・クライアントの各々に記憶しても良い。ソース・クライアントからのデータの一部がリモート・ターゲット・クライアントのローカル記憶装置上に記憶されても良いので、グローバル・シーケンス・マネジャ４００にのみ知られた順序で、幾つかの異なるターゲット・クライアント上にバックアップ・データ・パケットを記憶することによって、一つのレベルのデータ・セキュリティが提供されても良い。このようにして、データの一部が特定のターゲット・クライアント上でアクセス可能であったとしても（バックアップ・データを暗号化して、第２層のセキュリティを追加してもよい）、要求元のソース・クライアントに元々記憶されていたデータを実質的に若しくは完全に再アセンブルするのは非常に困難であるか、或いは不可能でさえある。その結果、異なるターゲット・クライアント上に記録されるデータのこれらの部分のサイズが小さくなるにつれて、データ・セキュリティのレベルが増加することになる。
【００５４】
グローバル・プロファイル管理モジュール４３０は、一実施例では、グリッド・システム１００中に接続された個々のネットワークのためのプロファイルを含む、デフォルトの、ユニークなクライアント・プロファイルの管理をし易くする。一実施例では、グローバル・プロファイル管理モジュール４３０は、ユーザが上述のグローバル・クライアント・プロファイル４１４及びソース・クライアント・プロファイル４１６を定義するのを許容する。これらは、図６及び図７を参照して夫々もっと詳しく説明する。
【００５５】
パケット記憶モジュール４３２は、一実施例で、ソース・クライアントから１個若しくはそれ以上のターゲット・クライアントにバックアップ・データを記録するようにグリッド・システム１００中で構成される。一実施例では、パケット記憶モジュール４３２は、バックアップ・データをターゲット・クライアントに記憶する前に、当該バックアップ・データを等しいサイズ若しくは不均等なサイズのパケットに細分割してもよい。別の実施例では、パケット記憶モジュール４３２は、シーケンス・モジュール４２８により発生される非トランスペアレントなシーケンス・キーに従って、１個若しくはそれ以上のターゲット・クライアント上にバックアップ・データ・パケットを記憶しても良い。別の実施例では、パケット記憶モジュール４３２は、バックアップ・データが圧縮モジュール４３８により圧縮され、暗号化モジュール４４０を介して暗号化され、或いは冗長化モジュール４４２により複製されるの許容した後、ターゲット・クライアント上にそのバックアップ・データを記憶しても良い。複製されたデータの場合、パケット記憶モジュール４３２はまた非トランスペアレントなシーケンス・キーに従って、複製されたバックアップ・データを記憶しても良い。一実施例では、パケット記憶モジュール４３２はまた１個若しくはそれ以上のソース・データ・レコード４１８、ターゲット・データ・レコード４２０、及びデータ・アセンブリ・レコード４２２のうちの１個若しくはそれ以上を生成し或いは記憶するように構成されていても良い。
【００５６】
パケット取出しモジュール４３４は、一実施例では、バックアップ・データ・パケット又はその複製（copy）を、そのパケットが記憶され得るようなターゲット・クライアントから取出すように構成されても良い。一実施例では、パケット取出しモジュール４３４は、バックアップ・データ・パケットをターゲット・クライアント上に予め記憶するようにパケット記憶モジュール４３２により使用されたのと同じ若しくは似たような非トランスペアレントなシーケンス・キーを用いていても良い。
【００５７】
データ・アセンブリ・モジュール４３６は、一実施例では、複数のバックアップ・データ・パケットを、細分割前の元データ・ファイルのフォーマットに、同一でないなら、似ている、或る理解可能なフォーマットにアセンブルするように構成されていても良い。一実施例では、データ・アセンブリ・モジュール４３６は、元データがパケットに細分割され且つターゲット・クライアントに記憶された時点の近傍で作成される、データ・アセンブリ・レコード４２２に従って復元されるデータをアセンブルしてもよい。
【００５８】
上述のとおり、圧縮モジュール４３８、暗号化モジュール４４０、及び冗長化モジュール４４２は、夫々バックアップ・データを、そのデータが１個若しくはそれ以上のターゲット・クライアントに記憶される前に、修正しても良い。同様に、圧縮モジュール４３８、暗号化モジュール４４０、及び冗長化モジュール４４２は、そのデータを、解凍、解読等により元のフォーマットに復元するように独立に若しくは一緒に使用されても良い。
【００５９】
図５は、グリッド・システム１００中でソース・クライアント若しくはターゲット・クライアントのいずれかとして動作しても良いクライアント５００の一実施例を示す。図４のグローバル・シーケンス・マネジャ４００のように、クライアント５００はＣＰＵ５０２、ローカル記憶装置５０４、ユーザ・インターフェイス５０６、ネットワーク・インターフェイス５０８、及びメモリ５１０を含む。図示のクライアント５００はまたローカル・シーケンス管理装置５１２を含む。クライアント５００のＣＰＵ５０２、ユーザ・インターフェイス５０６、及びネットワーク・インターフェイス５０８は、グローバル・シーケンス・マネジャ４００のＣＰＵ４０２、ユーザ・インターフェイス４０６、及びネットワーク・インターフェイス５０８とほぼ同様のものである。ローカル記憶装置５０４は図２の記憶装置２００に似たものであり、一実施例では、図２に示すように分割されても良い。例えば、一実施例では、ローカル記憶装置５０４は、使用済み記憶部２０２（オペレーティング・システム・ファイル２０６、アプリケーション・プログラム・ファイル２０８、及びデータ・ファイル２１０を含む）並びにフリー記憶部２０４（オーバーフロー記憶部１２、利用可能記憶部２１４、及び割り当て済み記憶部２１６を含む）を含んでいても良い。
【００６０】
メモリ５１０は、一実施例では、グリッド・バックアップ動作と関連して使用されても良い幾つかのデータ・ファイル及びメタデータ・ファイルを記憶するように構成される。代替実施例では、これらのデータ・ファイル及びメタデータ・ファイルの幾つか若しくは全部がローカル記憶装置５０４に複製される。別の実施例では、これらのデータ・ファイル及びメタデータ・ファイルの一つ若しくは全部がメモリ５１０ではなく、ローカル記憶装置５０４に排他的に記憶されても良い。他の実施例では、これらのデータ・ファイル及びメタデータ・ファイルのうちの一つ若しくは全部がグリッド・システム１００上の分散された記憶部に記憶されても良い。
【００６１】
メモリ５１０は、一実施例では、グローバル・クライアント・プロファイル５１４、ソース・クライアント・プロファイル５１６、ターゲット・データ・レコード５１８、ローカル・ソース・ログ５２０、及びローカル・ターゲット・ログ５２２を記憶していても良い。グローバル・クライアント・プロファイル５１４は、グローバル・シーケンス・マネジャ４００のグローバル・クライアント・プロファイル４１４にほぼ似ており、一実施例で、一方が他方のコピーであっても良い。同様に、ソース・クライアント・プロファイル５１６はグローバル・シーケンス・マネジャ４００のソース・クライアント・プロファイル４１６に略似ており、一実施例では一方が他方のコピーであっても良い。似たようにして、ターゲット・データ・レコード５１８はグローバル・シーケンス・マネジャ４００の
ターゲット・データ・レコード４２０に略似ており、一実施例では、一方が他方のコピーであっても良い。ローカル・ソース・ログ５２０及びローカル・ターゲット・ログ５２２は夫々グローバル・バックアップ・ログ４２４に似ているが、クライアント５００でユニークなのはソース・クライアント若しくはターゲット・クライアントとしてのその能力である。一実施例では、クライアント５００及びグローバル・シーケンス・マネジャ４００は、例えば単一のクライアント１０４ないし１１０に含まれていても良い。
【００６２】
ローカル・シーケンス管理装置５１２は、一実施例では、グリッド・システム１００上のデータ・バックアップ及び復元動作を開始し、促進するように構成される。一つの特定の実施例では、クライアント５００がソース・クライアントとして働き、クライアント５００のローカル記憶装置５０４上に元々記憶されていたデータ・ファイルをバックアップするバックアップ・グリッド・アプリケーションを開始しても良い。グローバル・シーケンス・マネジャ４００の管理下で、ローカル・シーケンス管理装置５１２は、グリッド・システム１００中の１個若しくはそれ以上のリモートのターゲット・クライアント１０４ないし１１０にローカル・ファイルをバックアップしても良い。同様に、クライアント５００がソース・クライアントとして働き、適切なターゲット・クライアント１０４ないし１１０からバックアップ・データ・パケットを復元するように復元グリッド・アプリケーションを開始するようにしても良い。代替実施例では、クライアント５００がターゲット・クライアントとして働き、リモートのソース・クライアント１０４ないし１１０上に元々記憶されているファイルのバックアップ・コピー若しくはその一部を記憶してもよい。その場合は、バックアップ・データを記憶するためにクライアント５００がローカル記憶装置５０４中の割り当て済み記憶部２１６を使用していても良い。
【００６３】
図示のローカル・シーケンス管理装置５１２は、データ・バックアップ・モジュール５２４、データ復元モジュール５２６、ローカル・プロファイル管理モジュール５２８、及びユニーク・データ識別子発生モジュール５３０を含む。一実施例では、データ・バックアップ・モジュール５２４は、グローバル・シーケンス・マネジャ４００に対するデータ・バックアップ・リクエストを送るように構成される。一実施例では、データ・バックアップ・モジュール５２４が、フル・バックアップ若しくは部分的バックアップ（増分バックアップや、差分バックアップ等を含む）といった種々のタイプのバックアップをリクエストしても良い。バックアップ・リクエストは、クライアント５００を介するユーザ・リクエスト、若しくはローカル・ネットワーク若しくはグリッド・システム１００を介するアドミニストレータ・リクエストに応答して呼び出されても良い。代わりに、バックアップ・リクエストが、例えば週単位で増分するバックアップ・プロシージャなど、スケジュールされたイベントに応答して、或いは記憶部利用設定ポイントなど非同期のイベントに応答して呼び出されても良い。代わりに、バックアップ・リクエストは、クライアント５００上、又はグリッド・システム１００中で生じる特定の活動やイベントなど、トリガとなるイベントに応答して呼び出されても良い。
【００６４】
データ復元モジュール５２６は、一実施例では、グロ−バル・シーケンス・マネジャ４００にデータ復元リクエストを送るように構成される。データ・バックアップ・リクエストに似て、データ復元リクエストは、ユーザ・リクエスト、記憶障害、若しくはローカル・アプリケーション・プログラムを含む、１個若しくはそれ以上の手動若しくは自動の入力に応答して呼び出される。ローカル・プロファイル管理モジュール５２８は、グローバル・シーケンス管理装置４１２のグローバル・プロファイル管理モジュール４３０に似ている。一実施例では、ローカル・プロファイル管理モジュール５２８は、ローカル・プロファイル管理モジュール５２８が在るクライアント５００に特有のユニークなソース・クライアント・プロファイル５１６を作成し、若しくは記憶する。他の実施例では、ローカル・プロファイル管理モジュール５２８が、特定のデータ・ユニットに特有のユニークなソース・クライアント・プロファイル５１６を作成し、若しくは記憶しても良い。
【００６５】
ユニーク・データ識別子（ＵＤＩ）発生モジュール５３０は、一実施例では、クライアント５００上に在っても良い夫々、元の（非バックアップの）ユニークなデータごとにユニット・データ識別子（ＵＤＩ）を発生するように構成される。例えば、ＵＤＩ発生モジュール５３０は、クライアント５００上の各データ・ファイル若しくはその一部ごとにユニーク・データ識別子（ＵＤＩ）を作成し、割り当てても良い。他の実施例では、ＵＤＩ発生モジュール５３０は、グローバル・シーケンス管理装置４１２上に在って、データ・ファイルの一部であってもよい各データ・パケットごとにユニーク・データ識別子（ＵＤＩ）を割り当てても良い。このユニーク・データ識別子（ＵＤＩ）は、特定のデータ・ユニット、ファイル、パケット若しくはその一部のバックアップ・コピーが特定のターゲット・クライアント若しくは１組のターゲット・クライアント上に既にバックアップされているか否かを決定するのに使用されてもよい。もしそうであれば、グローバル・シーケンス管理装置４１２は、グリッド・システム１００に利用できる記憶スペースを保存しても良い。この保存は、データ・ユニットの元のコピーが互いに異なる複数のソース・クライアントから発生したとしても、同じデータ・ユニットの複製バックアップ・コピーを作成するのではなく、既に存在するバックアップ・コピーを参照することによって行われる。
【００６６】
一実施例では、ローカル・シーケンス管理装置５１２及びグローバル・シーケンス管理装置４１２が単一の装置上に在っても良い。例えば、大きなローカル・ネットワークの一部でなく、直接接続されたクライアント３０８、３１０が、必要に応じともにクライアント５００及びグローバル・シーケンス・マネジャ４００として動作しても良い。他の実施例では、クライアント５００は、グローバル・シーケンス・マネジャ４００にデータ・パケットを送る前に、それらをパケット化し、圧縮し、暗号化し、複製するなどのための必要なモジュールとともに構成されていても良い。他の実施例では、クライアント５００若しくはグローバル・シーケンス・マネジャ４００中のモジュールは、グリッド・システム１００中の幾つかの装置に分散されていても良い。
【００６７】
図６は、図４及び図５のグローバル・クライアント・プロファイル４１４、５１４に略似たグローバル・クライアント・プロファイル６００の一実施例を示す。一実施例では、グローバル・クライアント・プロファイル６００は、グローバル・シーケンス・マネジャ４００及びクライアント５００の一方又はその両方に記憶される。図示のグローバル・クライアント・プロファイル６００は、ネットワーク識別子フィールド６０２、ネットワーク割り当てフィールド６０４、クライアント識別子フィールド６０６、クライアント・パケット圧縮フィールド６０８、クライアント・パケット冗長化フィールド６１０、クライアント・パケット暗号化フィールド６１２、クライアント・バックアップ近接性フィールド６１４、クライアント・パケット近接性フィールド６１６、クライアント記憶フィールド６１８、クライアント・プロセッサ・フィールド６２０、クライアント帯域フィールド６２２、クライアント同期フィールド６２４、及びクライアント・オート・アーカイブ・フィールド６２６を含む。
【００６８】
ネットワーク識別子フィールド６０２は、一実施例では、グリッド・システム３００中で、例えば図３のネットワーク・システム３０４のような特定のネットワーク・システムのためのネットワーク識別子を記憶するように構成される。ネットワーク割り当てフィールド６０４は、一実施例では、グリッド・システム３００に専用のネットワーク・パフォーマンス資源を示すネットワーク割り当てパラメータを記憶しても良い。例えば、ネットワーク割り当てフィールド６０４が、グリッド・システム３００専用で、バックアップ・グリッド・アプリケーションに利用できるネットワーク帯域の割合を示すネットワーク帯域割り当てパラメータを記憶しても良い。
【００６９】
クライアント識別子フィールド６０６は、一実施例では、クライアント名若しくはクライアント番号などクライアント識別パラメータを記憶するように構成されても良い。一実施例では、グリッド・システム１００に接続された各クライアント５００は、ユニークなクライアント名によって識別されても良い。他の実施例では、クライアント識別フィールド６０６に記憶されたクライアント識別パラメータが、ネットワーク識別フィールド６０２に記憶されたネットワーク識別パラメータを採用しても良い。
【００７０】
一実施例では、クライアント・バックアップ近接性パラメータ６１４が、バックアップ・データが記憶されるターゲット・クライアント及びソース・クライアント間の、最短又は最長の距離など、地理的限界を示しても良い。他の実施例では、クライアント・パケット近接性パラメータ６１６が、バックアップ・データを記憶する幾つかのターゲット・クライアント間の最短又は最長の距離を示しても良い。このようにして、クライアント・バックアップ近接性パラメータ６１４及びクライアント・パケット近接性パラメータ６１６は、一つのパケットのアクセス可能性が、別のデータ・パケットのアクセス可能性とほぼ独立にされても良いことを保証する。例えば、ソース・クライアントは、クライアント・バックアップ近接性パラメータ６１４を調整することによって、そのソース・クライアントと同じ首都圏領域、州、又は国にはないターゲット・クライアントにバックアップ・データを記憶するようにリクエストしても良い。
【００７１】
クライアント・バックアップ近接性パラメータ６１４及びクライアント・パケット近接性パラメータ６１６を、一実施例では、マイルやキロメータなど、物理的距離を示しても良い。ノード１０４ないし１１０の間の距離は、例えば全地球測位システム（ＧＰＳ）座標を用いて計算又は予測しても良い。代りに、これらのパラメータを論理的距離で示してもよい。例えば、クライアント・バックアップ近接性パラメータ６１４及びクライアント・パケット近接性パラメータ６１６が、ソース・クライアントのインターネット・プロトコル（ＩＰ）アドレスを参照し、別のネットワーク若しくはサブネット中のターゲット・クライアント上にそのバックアップ・パケットが記憶されるように指定しても良い。他の実施例では、クライアント・バックアップ近接性パラメータ６１４及びクライアント・パケット近接性パラメータ６１６が、或るノード１０４ないし１１０を、バックアップ・データ・パケットを記憶するべきノード若しくは記憶しないノードを包括的に若しくは限定的に指定しても良い。
【００７２】
クライアント・パケット圧縮フィールド６０８、クライアント・パケット冗長化フィールド６１０、及びクライアント・パケット暗号化フィールド６１２は、夫々、デフォルトの圧縮、冗長化、及び暗号化のパラメータを記憶するように構成されても良い。これらのパラメータは、圧縮のタイプ、暗号化のレベル、若しくは冗長化のレベルを示し、例えば、デフォルト・パラメータとして使用されても良い。同様に、クライアント・バックアップ近接性フィールド６１４及びクライアント・パケット近接性フィールド６１６が、デフォルトの近接性パラメータを記憶するように構成されても良い。
【００７３】
クライアント記憶フィールド６１８は、一実施例では、グリッド・システム１００専用のクライアント記憶のデフォルト量を定義するデフォルト・クライアント記憶割り当てパラメータを記憶するように構成されても良い。同様に、クライアント・プロセッサ・フィールド６２０及びクライアント帯域フィールド６２２が、一実施例では、グリッド・システム１００に専ら関係するプロセッサ性能及び帯域を示しても良い。一実施例では、これらのパラメータの各々を量的な数値によって示してもよい。他の実施例では、これらのパラメータの各々を、利用可能な全性能のうちの割合として表すことができる。
【００７４】
クライアント同期フィールド６２４は、一実施例では、クライアント同期パラメータを記憶するように構成されても良い。このパラメータは、グローバル・シーケンス・マネジャ４００上のグローバル・クライアント・プロファイル６００が、クライアント５００上のグローバル・クライアント・プロファイル５１４又はソース・クライアント・プロファイル５１６にどの程度の頻度で同期すべきかを示す。この同期は、一実施例では、単一ステップのプロセスであってよい。代替実施例では、クライアント５００上のグローバル・クライアント・プロファイル５１４及びグローバル・シーケンス・マネジャ４００上のソース・クライアント・プロファイル４１６を同期させるための追加のステップを含んでも良い。好ましくは、グローバル・クライアント・プロファイル６００の複数のコピーがクライアント５００及びグローバル・シーケンス・マネジャ４００上に存在するなら、これらのコピーは、クライアント５００及びグローバル・シーケンス・マネジャ４００の両方に正確な情報を提供するのに必要な頻度だけ同期される。
【００７５】
クライアント・オート・アーカイブ・フィールド６２６は、一実施例では、クライアント・データ・ファイルがどの程度の頻度でバックアップされるべきかを示すクライアント・オート・アーカイブ・パラメータを記憶しても良い。他の実施例では、クライアント・オート・アーカイブ・パラメータが、所与の刺激に応答して実行されるべきバックアップのタイプ、即ちフルか、増分的か、或いは他のタイプのバックアップか、を示してもよい。
【００７６】
図７は、図４及び図５のソース・クライアント・プロファイル４１６、５１６に実質的に良く似たソース・クライアント・プロファイル７００の一実施例を示す。一実施例では、ソース・クライアント・プロファイル７００が、グローバル・シーケンス・マネジャ４００及びクライアント５００の一方又は両方に記憶されても良い。図示のソース・クライアント・プロファイル７００は、ソース・クライアント識別子フィールド７０２、ユニーク・データ識別子（ＵＩＤ）フィールド７０４、データ・ソース位置フィールド７０６、データ・パケット圧縮フィールド７０８、データ・パケット冗長化フィールド７１０、データ・パケット暗号化フィールド７１２、データ・バックアップ近接性フィールド７１４、データ・パケット近接性フィールド７１６、データ同期フィールド７１８、及びデータ・シーケンス・キー・フィールド７２０を含む。
【００７７】
ソース・クライアント識別子フィールド７０２は、一実施例では、グローバル・クライアント・プロファイル６００のクライアント識別子フィールド６０６に略似たものである。ユニーク・データ識別子（ＵＤＩ）フィールド７０４は、一実施例では、特定のデータ・ユニットに対応するユニーク・データ識別子（ＵＤＩ）を記憶するように構成されても良い。データ・ソース位置フィールド７０６は、一実施例では、ユニーク・データ・フィールド（ＵＤＩ）７０４に記憶されたＵＤＩにより識別される、ソース・クライアント上の元のデータ・ユニットのファイル位置を識別するように構成されても良い。
【００７８】
データ・パケット圧縮フィールド７０８、データ・パケット冗長化フィールド７１０、及びデータ・パケット暗号化フィールド７１２は、グローバル・クライアント・プロファイル６００のクライアント・パケット圧縮フィールド６０８、クライアント・パケット冗長化フィールド６１０、及びクライアント・パケット暗号化フィールド６１２に似ている。しかし、一実施例では、ソース・クライアント・プロファイル７００中のこれらのフィールド７０８、７１０、７１２は、特定のソース・クライアント上のデータ・ユニットの全てに対しデフォルトのパラメータを記憶するというより、ユニーク・データ識別子（ＵＤＩ）により識別された各データ・ユニットのための実際のパラメータを記憶しても良い。代替例として、これらのフィールド７０８、７１０、７１２は、全てのデータ・ユニットのための同じパラメータを記憶しても良いし、またグローバル・クライアント・プロファイル６００中の各フィールド６０８、６１０、６１２と同じパラメータを記憶しても良い。同様にデータ・バックアップ近接性フィールド７１４及びデータ・パケット近接性フィールド７１６は、グローバル・クライアント・プロファイル６００の近接性フィールド６１４及び６１６と似ている。しかし、ソース・クライアント・フィールド７００中のこれらのフィールド７１４、７１６は、上述のフィールド７０８、７１０、７１２と似たように、各データ・ユニットごとに特定される、ユーザが定義したパラメータを記憶しても良い。
【００７９】
好ましくは、ソース・クライアント・プロファイル７００の複数のコピーがクライアント５００及びグローバル・シーケンス・マネジャ４００の両方に存在する場合は、その両方に正確な情報を提供するためにこれらのコピーが、必要な頻度で同期されることになろう。このデータ同期フィールド７１８は、一実施例では、クライアント同期パラメータを記憶するように構成されても良い。このクライアント同期パラメータは、グローバル・シーケンス・マネジャ４００上のソース・クライアント・プロファイル４１６が、クライアント５００上のソース・クライアント・プロファイル５１６とどの程度の頻度で同期されるべきかを示す。このデータ同期フィールド７１８及びそのパラメータは、グローバル・クライアント・プロファイル６００のクライアント同期フィールド及びそのパラメータに似たものであってよい。適用可能ならば、ソース・クライアント・プロファイル７００はまたグローバル・クライアント・プロファイル６００の少なくとも一部と同期されても良い。
【００８０】
データ・シーケンス・キー・フィールド７２０は、一実施例では、特定のデータ・ユニットのための非トランスペアレントなシーケンス・キーを記憶するように構成される。上述のとおり、このシーケンス・キーは、グローバル・シーケンス管理装置４１２のシーケンス・モジュール４２８によって発生されても良い。代替例では、データ・シーケンス・キー・フィールド７２０は、実際のシーケンス・キーではなく、発生刺激（stimulus）キーを記憶しても良い。このようにして、実際のシーケンス・キーは、クライアント５００上でなく、グローバル・シーケンス・マネジャ４００上にのみ記憶されても良い。他の実施例では、その非トランスペアレントなシーケンス・キーは、グリッド・システム１００のどこにも記憶されなくても良く、むしろシーケンス・モジュール４２８によって発生刺激キーを用いて発生されても良い。非トランスペアレントなシーケンス・キーは、それが必要なときごとに、少なくともこの発生刺激キーを用いることによって発生される。このシーケンス・モジュール４２８はまた、必要時にこのシーケンス・キーを発生するために、発生刺激キーと関連して、ユニーク・データ識別子（ＵＤＩ）、データ・ソース位置パラメータ、ソース・クライアント識別子パラメータ、或いは１個若しくはそれ以上の他のパラメータを使用しても良い。
【００８１】
図８は、図４のソース・データ・レコード４１８にほぼ似たソース・データ・レコード８００の一実施例を示す。一実施例では、ソース・データ・レコード８００は、グローバル・シーケンス・マネジャ４００上に排他的に記憶される。図示のソース・データ・レコード８００は、ユニーク・データ識別子（ＵＤＩ）フィールド８０２、パケット識別子フィールド８０４、及び一つ以上のターゲット識別子フィールド８０６ないし８１０を含む。一実施例では、ソース・データ・レコード８００は、各バックアップ・データ・パケットが記憶される種々のターゲット・クライアントを識別する。
【００８２】
ＵＤＩフィールド８０２は、一実施例では、バックアップ・データ・ファイルのユニーク・データ識別子（ＵＤＩ）を記憶するように構成される。パケット識別子フィールド８０４は、一実施例では、バックアップ・データ・ファイルに属する特定のデータ・パケットのためのパケット識別子を記憶するように構成される。ターゲット識別子フィールド８０６ないし８１０は、一実施例では、バックアップ・データ・パケットのコピーが記憶されているターゲット・クライアントに対応するターゲット識別子を夫々記憶するように構成される。何個のターゲット・クライアントが同じデータ・パケットのコピーを記憶するかに依って、複数のターゲット識別子８０６ないし８１０が、ソース・・データ・レコード８００に追加されても良い。代替実施例では、ユニーク・データ識別子（ＵＤＩ）がバックアップ・データ・ファイル全体よりも特定のデータ・パケットを識別してもよい。この場合、ソース・データ・レコード８００は、元のファイル、データ・パケット及びデータ・パケットの各バックアップ・コピーの位置を示す等価な手段を使用しても良い。
【００８３】
図９は、図４及び図５のターゲット・データ・レコード４２０、５１８に良く似たターゲット・データ・レコード９００の一実施例を示す。一実施例では、ターゲット・データ・レコード９００が、グローバル・シーケンス・マネジャ４００及びクライアント５００の一方若しくは両方に記憶されても良い。図示のターゲット・データ・レコード９００は、ユニーク・データ識別子（ＵＤＩ）フィールド９０２、パケット識別子フィールド９０４、パケット・サイズ・フィールド９０６、及びターゲット位置フィールド９０８を含む。
【００８４】
ＵＤＩフィールド９０２は、一実施例では、バックアップ・データ・ファイルのユニーク・データ識別子（ＵＤＩ）を記憶するように構成される。パケット識別子フィールド９０４は、一実施例では、そのバックアップ・データ・ファイルに属する或る特定のデータ・パケットのためのパケット識別子を記憶するように構成される。パケット・サイズ・フィールド９０６は、一実施例では、パケットのサイズを示すためにパケット・サイズ・パラメータを記憶するように構成される。ターゲット位置フィールド９０８は、一実施例では、バックアップ・データ・パケットが記憶されるターゲット・クライアント上の記憶位置を示すように構成される。このようにして、ターゲット・データ・レコード９００は、復元動作中、ソース・クライアントのためのリクエストされたバックアップ・データ・パケットの復元を促進することができる。代替実施例では、ユニーク・データ識別子（ＵＤＩ）が、バックアップ・データ・ファイル全体ではなく、特定のデータ・パケットを識別しても良い。この場合、ターゲット・データ・レコード９００は、元のファイル、データ・パケット、そのパケットのサイズ、及びターゲット・クライアント上のバックアップ・コピーの位置を示すための等価な手段を使用しても良い。
【００８５】
図１０は、図４のデータ・アセンブリ・レコード４２２に実質的に似たデータ・アセンブリ・レコード１０００の一実施例を示す。一実施例では、データ・アセンブリ・レコード１０００は、グローバル・シーケンス・マネジャ４００に排他的に記憶される。このデータ・アセンブリ・レコード１０００は、ユニーク・データ識別子（ＵＤＩ）フィールド１００２及び１個若しくはそれ以上のパケット・フィールド１００４a-mないし１０１０a-mのテーブルを含む。
【００８６】
ＵＤＩフィールド１００２は、一実施例では、バックアップ・データ・ファイルのユニーク・データ識別子を記憶するように構成される。パケット識別子フィールド１００４ａないし１００４ｍは、一実施例では、そのバックアップ・データ・ファイルに属する第１のデータ・パケットの複製コピーに対するパケット識別子を記憶するように構成される。同様に、パケット識別子フィールド１００６ａないし１００６ｍは、一実施例では、そのバックアップ・データ・ファイルに属する第２のデータ・パケットのコピーに対するパケット識別子を記憶するように構成される。同様に、パケット識別子フィールド１００８ａないし１００８ｍは、一実施例では、そのバックアップ・データ・ファイルに属する第３のデータ・パケットのコピーに対するパケット識別子を記憶するように構成される。このパターンは、そのバックアップ・データ・ファイルに属する最後のパケットのコピーに対するパケット識別子を記憶するパケット識別子フィールド１０１０ａないし１０１０ｍまで続く。代替実施例では、ユニーク・データ識別子（ＵＤＩ）が、バックアップ・データ・ファイル全体ではなく、特定のデータ・パケットを識別しても良い。この場合、データ・アセンブリ・レコード１０００は、元ファイル及びデータ・パケットのアセンブルする順序を示す等価な手段を用いても良い。
【００８７】
これから説明する図式的なフローチャートは、論理的なフローチャートである。厳密な意味では、ここで示した順序及び名づけたステップは本発明のプロセスの一実施例を示す。機能、論理、効果に於いて等価な他のステップ及びプロセスも考えられる。更に、ここで使用したフォーマットや記号は、そのプロセスの論理ステップを説明するために与えられており、そのプロセスの範囲を制限しないものと理解される。同様に、種々の矢印のタイプ、線のタイプが、このフローチャートでは使用されているが、その対応するプロセスの範囲を制限しないものと理解される。実際、ある矢印や他のコネクタがそのプロセスの論理フローだけを示すのに使用されても良い。例えば、一つの矢印は、そこで示すプロセスの列挙したステップ相互間の特定されていない間隔の待機期間若しくはモニタ期間を示しても良い。
【００８８】
図１１及び図１２は、グリッド・システム１００上にデータをバックアップするのに用いられ得るバックアップ方法１１００の一実施例を示す。図示のバックアップ方法１１００は、３個ほどの区域に分けられる。各区域はグリッド・システム１００の特定のコンポーネントに生じるようなサブプロセスを示す。しかし、そのバックアップ方法１１００は、３個のサブプロセスに分けられ、一つの特定のコンポーネントで生じるようなラベルが付されているが、この説明は一つの特定のコンポーネントにサブプロセスを制限しようと意図するものではない。実際、バックアップ方法１１００の中で示した諸ステップの多くはグリッド・システム１００中の種々のコンポーネントにより実行されても良い。更に、単一のサブプロセスの全てのステップが単一のコンポーネントによって実行されねばならないという訳ではない。同様に、単一のコンポーネントが異種のサブルーチンからの種々のステップを実行しても良い。
【００８９】
図示のバックアップ方法１１００は、ステップ１１０２で始まり、ステップ１１０４で、バックアップされるべきデータ・ユニットに対しユニーク・データ識別子（ＵＤＩ）を発生する。その後、ステップ１１０６で、ソース・クライアントがグローバル・シーケンス・マネジャにバックアップ・リクエストを送る。ステップ１１１０で、グローバル・シーケンス・マネジャ４００がソース・クライアントからそのバックアップ・リクエストを受取る。一実施例では、そのバックアップ・リクエストが、バックアップされるべきデータ・ユニットのユニーク・データ識別子（ＵＤＩ）を含む。代わりに、そのユニーク・データ識別子（ＵＤＩ）が別個に送られても良い。
【００９０】
ステップ１１１２に於いて、グローバル・シーケンス・マネジャ４００は、そのユニーク・データ識別子（ＵＤＩ）を用いて、データ・ユニットのバックアップ・コピーがグリッド・システム１００中に既に存在しているかを調べる。そのユニーク・データ識別子（ＵＤＩ）に対応するデータのバックアップ・コピーが既に存在するのでなければ、図１２のステップ１２０２に進み、グローバル・シーケンス・マネジャ４００が、データ・リクエストをソース・クライアントに送り、バックアップすべきデータ・ユニットのコピーをリクエストする。図１２のステップ１２０４で、ソース・クライアントがそのデータ・リクエストを受け取り、その後ステップ１２０６で、そのデータ・ユニットのコピーをグローバル・シーケンス・マネジャ４００に送る。図示の実施例で、グローバル・シーケンス・マネジャ４００はソース・クライアントからデータ・ユニットを受け取り（ステップ１２０８）、そのデータ・ユニットを必要な数のデータ・パケットに細分割し（ステップ１２１０）、ユニークな、非トランスペアレントのシーケンス・キーをそのデータ・ユニットのために発生する（ステップ１２１０）。
【００９１】
そこで、グローバル・シーケンス・マネジャ４００が、その非トランスペアレントなシーケンス・キーに従ってターゲット・クライアントにバックアップ・データ・パケットを記憶する（ステップ１２１２）。各データ・ユニット又はその部分ごとに、グローバル・シーケンス・マネジャ４００は、クライアント５００及びデータ・ユニットと関係する適切なプロファイル（図６、図７のグローバル・クライアント・プロファイル６００、ソース・クライアント・プロファイル７００）、及びレコード（図８ないし図９のソース・データ・レコード８００、ターゲット・データ・レコード９００、データ・アセンブリ・レコード１０００）を生じ、修正ないし更新する（ステップ１２１４）。それから、グローバル・シーケンス・マネジャ４００は、データ・バックアップ確認をソース・クライアントに送り、そのバックアップ動作が成功裏に完了したことを示す（ステップ１２１６）。ソース・クライアントは、グローバル・シーケンス・マネジャ４００からデータ・バックアップ確認を受取る（ステップ１２２０）と、もっと多くのデータ・ユニットがバックアップされる必要があるかを調べる（ステップ１２２２）。もしあれば、図示のバックアップ方法は次のデータ・ユニットのために新しいユニーク・データ識別子（ＵＤＩ）を発生する（図１１のステップ１１０４）。もしなければ、図示のバックアップ方法が終了する（ステップ１２２４）。
【００９２】
ここで図１１のステップ１１１２に説明を戻すと、もしもグローバル・シーケンス・マネジャ４００が、グリッド・システム１００上にそのデータ・ユニットのバックアップ・コピーが既に存在すると決定した場合は、グローバル・シーケンス・マネジャ４００がその存在するバックアップをソース・クライアントに知らせる（ステップ１１１４）。図示のバックアップバックアップ方法１１００は、上述のとおりに続けられる。他の実施例では、グローバル・シーケンス・マネジャ４００が、ソース・クライアントに、その存在するバックアップを知らせる前に、適切なプロファイル（６００、７００）若しくはレコード（８００、９００、１０００）を生じ若しくは修正してもよい。
【００９３】
図１３ないし図１６は、グリッド・システム１００上にデータを復元するように使用されても良い復元方法１３００の実施例を示す。図示の復元方法１３００は、３個ほどの区域に分けられる。各区域は、グリッド・システム１００の特定のコンポーネントに生じるようなサブプロセスを示す。しかし、その復元方法１３００は、３個のサブプロセスに分けられ、一つの特定のコンポーネントで生じるようなラベルが付されているが、この説明は一つの特定のコンポーネントにサブプロセスを制限しようと意図するものではない。実際、復元方法１３００の中で示した諸ステップの多くは、グリッド・システム１００中の種々のコンポーネントにより実行されても良い。更に、単一のサブプロセスの全てのステップが単一のコンポーネントによって実行されねばならないという訳ではない。同様に、単一のコンポーネントが異種のサブルーチンからの種々のステップを実行しても良い。
【００９４】
図示の復元方法１３００は、図１３のブロック１３０２で開始する。ソース・クライアントがデータ復元リクエストをグローバル・シーケンス・マネジャ４００に送る（ステップ１３０４）。一実施例では、その復元リクエストが、復元しようとするバックアップ・データ・ユニットのユニーク・データ識別子（ＵＤＩ）を含む。代わりにユニーク・データ識別子（ＵＤＩ）が別個に伝送されても良い。グローバル・シーケンス・マネジャ４００は、データ復元リクエストを受取る（ステップ１３０８）と、そのリクエストされたデータ・ユニットのバックアップ・データ・パケットをどのターゲット・クライアントが記憶しているかを調べるために、対応するソース・データ・レコード８００にアクセスすることができる（ステップ１３１０）。代替実施例では、グローバル・シーケンス・マネジャ４００は、そのリクエストされたデータ・ユニットのバックアップ・データ・パケットをどのターゲット・クライアントが記憶しているかを調べるために、対応するソース・クライアント・プロファイル７００にアクセスし、そのシーケンス・キーを再発生することができる（ステップ１３１０）。
【００９５】
それから、グローバル・シーケンス・マネジャ４００は、パケット・リクエストを適切なターゲット・クライアントに送る（ステップ１３１２）。上述のとおり、各データ・パケットの複製コピーが１個若しくはそれ以上のターゲット・クライアントに記憶されても良い。図示の実施例では、各ターゲット・クライアントがグローバル・シーケンス・マネジャ４００からパケット・リクエストを受取る（ステップ１３１８）。グリッド・システム１００が幾つかの独立に管理されるネットワーク及びクライアントを含むとすれば、幾つかのターゲット・クライアントは、リクエスト時にオフラインであっても利用できなくても良い。幾つかの利用可能なターゲット・クライアントは、グリッド資源として以前は使用されていた再クレームされた記憶スペースを有していても良い。これにより、グリッド・システム１００には利用できていなかった、バックアップ・データ・パケットのコピーを破壊したり作ったりすることができる。
【００９６】
もしそのリクエストされたパケットが利用可能でないと、その利用可能なターゲット・クライアントが決定すれば（図１４のステップ１４０２）、ターゲット・クライアントは、グローバル・シーケンス・マネジャ４００にその喪失したパケットのことを知らせる（ステップ１４０４）。そのパケット喪失に応答して、グローバル・シーケンス・マネジャ４００は、そのリクエストされたデータ・パケットのコピーを有する他のターゲット・クライアントが利用可能かを調べる（ステップ１４０８）。もし他のターゲット・クライアントが利用可能であるならば、グローバル・シーケンス・マネジャ４００は、その利用可能なターゲット・クライアントにパケット・リクエストを送る（ステップ１３１２）。そして上述したとおりの復元方法１３００が続く。もしそのリクエストされたパケットが利用可能と、その利用可能なターゲット・クライアントが決定すれば（ステップ１４０２）、そのターゲット・クライアントは、そのリクエストされたパケットをグローバル・シーケンス・マネジャ４００に送る（ステップ１４１０）。すると、グローバル・シーケンス・マネジャ４００は、その利用可能なターゲット・クライアントからそのリクエストされたパケットを受取る（ステップ１４１４）。
【００９７】
特定のデータ・パケットが利用可能であるか否かに関して、グローバル・シーケンス・マネジャ４００は、リクエストされたデータ・ユニットに対し追加のデータ・パケットが必要か、利用できるかを決定する（図１５のステップ１５０２）。もし、もっとパケットが必要であれば、グローバル・シーケンス・マネジャ４００は、その必要なパケット・リクエストを、その対応するターゲット・クライアントに送る（ステップ１３１２）。そして上述したとおりの復元方法１３００が続く。
【００９８】
一旦、全てのデータ・パケットがリクエストされ、もし利用可能ならそのターゲット・クライアントから受取られると、グローバル・シーケンス・マネジャ４００は、そのリクエストされたデータ・パケットのどれかが欠けているか、喪失したか、破壊されたか、或いは利用不可能かを調べても良い（ステップ１５０４）。一実施例では、グローバル・シーケンス・マネジャ４００が、この欠けているパケットの冗長なコピーをアクセスするために、グローバル・クライアント・プロファイル６００、及びソース・クライアント・プロファイル７００に夫々記憶されたクライアント・パケット冗長化パラメータ６１０及びデータ・パケット冗長化パラメータ７１０を参照しても良い。
【００９９】
グローバル・シーケンス・マネジャ４００は、十分な数のパケットが、元のデータの全てもしくは一部をアセンブルするよう取出されたか調べる（ステップ１５０６）。もし十分な数のパケットが利用可能なら、グローバル・シーケンス・マネジャ４００はデータを、一実施例では、データ・アセンブリ・レコード１０００を用いてアセンブルし（ステップ１５０８）、そのデータをソース・クライアントに送る。そこでソース・クライアントは、グローバル・シーケンス・マネジャ４００から部分的に若しくは完全にアセンブルされたデータを受取る（ステップ１５１４）。
【０１００】
もし、幾つかのデータがバックアップ及び復元動作中に喪失したり利用できなくなったりしたならば、データが完全に若しくは十分に再構成されているかをソース・クライアントが決定する（図１６のステップ１６０２）。もしデータが十分に再構成されているなら、ソース・クライアントは、追加のデータ・ユニットを復元する必要があるかを決定する（ステップ１６１２）。もしそうであれば、後続のデータ復元リクエストをグローバル・シーケンス・マネジャ４００に送るステップ１３０４に戻る。そして上述したとおりの復元方法１３００が続く。
【０１０１】
もし、リクエストされたデータが十分に再構成されていないと、ソース・クライアントが決定すれば（ステップ１６０２）、ソース・クライアントは、グローバル・シーケンス・マネジャ４００からの残りのデータ・パケットを反復的にリクエストする（ステップ１６０４）。グローバル・シーケンス・マネジャ４００は、復元しようとする全ての試みが行われたかどうかを決定する（ステップ１６０８）。もしそうでなければ、後続のパケット・リクエストをターゲット・クライアントに送るというステップ１３１２の前に、所定の遅延期間、待機しても良い（ステップ１６１０）。代替例では、グローバル・シーケンス・マネジャ４００が、所定の遅延期間ではなく、ランダムな遅延期間、待機しても良い（ステップ１６１０）。例えば、一実施例では、グローバル・シーケンス・マネジャ４００が、２４時間、待機しても良い。他の実施例では、グローバル・シーケンス・マネジャ４００が、次の労働日の始まる時刻まで待機してから、その後のパケット・リクエストを送る（ステップ１３１２）のでも良い。これまで利用できなかったターゲット・クライアントが、この遅延期間の間に、グリッド・システム１００に利用できるようになるかもしれない。
【０１０２】
図示の復元方法１３００は、リクエストされたデータ・ユニットが完了するまで又は全ての復元の試みが行われるまで、上述のとおり続く。データ復元の試みの全てが行われ、且つデータがまだ完了していない場合は、グローバル・シーケンス・マネジャ４００は、喪失データのこと、及び行われた試みのことをソース・クライアントに知らせる。ソース・クライアントは、グローバル・シーケンス・マネジャ４００から喪失データの知らせを受取る（ステップ１６１８）。そしてその説明した復元方法１３００が終了する（ステップ１６２０）。
【０１０３】
上述のバックアップ方法１１００及び復元方法１３００に関連して、グリッド・システム１００は、クライアント１０４ないし１１０が、そのグリッド・システム１００のバックアップ機能及び復元機能をアクセスするための対価を支払うようにするためにクライアント・サブスクリプション・プログラムを管理するのに必要なコンポーネントを含むかもしれない。一実施例では、図３のサブスクリプション・マネジャ３１２が、このタイプのクライアント・サブスクリプション・システムを管理するよう構成されても良い。クライアント・サブスクリプション・システムは、多数のソース・クライアント及びターゲット・クライアントを許容しても良い。クライアントごとのサブスクリプション料金は、記憶しようとするデータの量、ソース・クライアントが必要とするバックアップの信頼性及びアクセス可能性、グリッド・システム専用のローカル・クライアント・パフォーマンス資源の量、並びに時間あたりの割り当て資源の一貫性に依存しても良い。グリッド・システム１００のパフォーマンスに影響する他の要素をも、特定のクライアント１０４ないし１１０ごとの料金を決定するのに使用しても良い。
【０１０４】
サブスクリプション・マネジャ３１２は、一実施例では、ユーザの料金を決定するプロセスに於いて、収集され、使用され、若しくは発生された情報を管理し、サービスのレベルを制御し、そのサービスの利用を制御し、グリッド・アプリケーションに関連する、顧客若しくは企業からの又は顧客若しくは企業への、パフォーマンス資源の貢献度を制御するなどのことを行う装置である。
【０１０５】
一実施例では、サブスクリプション・マネジャ３１２は、少なくとも二つの目的に資する。第１に、サブスクリプション・マネジャ３１２は、ユーザによるグリッド資源の使用度合い及びユーザによるパフォーマンス資源のグリッドに対する貢献度合いの一方若しくは両方に基づいて、ユーザに課されるユーザ料金を決定することができる。第２に、サブスクリプション・マネジャ３１２は、グリッド・システム１００及びグリッド資源へのアクセス、使用、使用のレベル等を制御することができる。サブスクリプション・マネジャ１２は、またここで説明した自律的な（オートノミック）ポリシに基づいて、グリッド・システムへのクライアント・パフォーマンス資源の割り当て、貢献の度合い等を制御することもできる。
【０１０６】
グリッド・システム１００への種々のクライアント１０４ないし１１０のサブスクリプションを管理するために、サブスクリプション・マネジャ３１２は、クライアント・プロファイル、グローバル・プロファイル、及び顧客プロファイルを作成し、記憶することができる。一実施例では、サブスクリプション・マネジャ３１２のグローバル・プロファイルは、特定の顧客のためのユーザ料金を決定するために、パフォーマンス資源割り当て及び使用に関する情報を含んでも良い。
【０１０７】
一実施例では、顧客プロファイルは、グローバル・プロファイルを特定の顧客に関係付ける情報を含む。顧客プロファイルは、クライアント・パフォーマンス資源割り当てについての情報及びローカルに呼び出されるグリッド・アプリケーションについての情報を含む、特定の顧客についての情報を総合しても良い。顧客プロファイルは、或る顧客が課される全体の料金を決定するのに使用されても良い。同様に、一実施例では、サブスクリプション・マネジャ３１２中のクライアント・プロファイルが、特定のクライアント１０４ないし１１０に対応する情報を含んでも良い。
【０１０８】
一実施例では、サブスクリプション・マネジャ３１２は、一つのグリッド・アプリケーションについてクライアント１０４ないし１１０によるグリッド・システム１００の、瞬間的な使用、平均的な使用、最大の使用、最小の使用、予定の使用、リザーブした使用、ピークの使用など、その中の１つ若しくは複数の使用に基づいて、ユーザ料金を決定する。他の実施例では、サブスクリプション・マネジャ３１２は、クライアント１０４ないし１１０によるグリッド・システム１００へのクライアント・パフォーマンス資源の割り当てを追跡しても良い。サブスクリプション・マネジャ３１２が、瞬間的なレベル、平均的なレベル、最大のレベル、最小のレベル、予定のレベル、リザーブしたレベル、ピークのレベルなど、その中の一つ若しくは複数の、貢献したレベルを追跡しても良い。更に別の実施例では、サブスクリプション・マネジャ３１２が、上記に挙げた一つ以上のファクタの組み合わせを追跡しても良い。
【０１０９】
他の実施例では、サブスクリプション・マネジャ３１２が、グローバル・オートノミック・マネジャによる又はクライアント１０４ないし１１０によるオートノミック・ポリシの実行をモニタし、制御しても良い。例えば、ある企業がバックアップ取出しグリッド・アプリケーションのためにグリッド・システム１００に加入しても良い。コスト・ダウンのために、或る企業は、各々の結合されたクライアント１０４ないし１１０からグリッド・システム１００にパフォーマンス資源を貢献することを決定しても良い。もしもユーザが特定のクライアントの割当て済みのパフォーマンス資源を再利用すると決定し、その貢献度をゼロに減らすならば、サブスクリプション・マネジャ３１２は、そのクライアント・プロファイル、及び顧客プロファイルを変更して、適当な料金を決定しても良い。サブスクリプション・マネジャ３１２のグローバル・プロファイルによれば、グリッド・システム１００のグローバル・オートノミック・マネジャは、パフォーマンス資源割当てのための上下の閾値を維持しても良い。
【０１１０】
他の実施例では、クライアント１０４ないし１１０又はグローバル・オートノミック・マネジャによりリクエストされたポリシの変更をサブスクリプション・マネジャ３１２が制御しても良い。サブスクリプション・マネジャ３１２の顧客プロファイルは、クライアント１０４ないし１１０のグリッド・アプリケーションの使用や資源割当てのある種の変更を抑えても良い。例えば、クライアント・プロファイルは、顧客が所定の請求期間に生じる総コストに制限を設けても良い。サブスクリプション・マネジャ３１２は、もしもこれらの制限を越えるなら、クライアント１０４ないし１１０による使用を阻止しても良い。
【０１１１】
本発明は、その精神や基本的特性から逸脱することなく他の特定の態様で実施されても良い。上述の実施例は全ての点で説明用としてのみ考慮すべきであって、制限を加えるべきものではない。従って、本発明の範囲は上述の説明よりも特許請求の範囲によって示されるべきである。特許請求の範囲の意味するところとその等価な範囲内の全ての変更は本発明の範囲内に包含されるべきである。
【図面の簡単な説明】
【０１１２】
【図１】本発明に従うグリッド・システムの一実施例のブロック図である。
【図２】本発明に従うクライアントの記憶装置の一実施例のブロック図である。
【図３】本発明に従うグリッド・システムの他の実施例のブロック図である。
【図４】本発明に従うグローバル・シーケンス・マネジャの一実施例のブロック図である。
【図５】本発明に従うクライアントの一実施例のブロック図である。
【図６】本発明に従うグローバル・クライアント・プロファイルの一実施例のブロック図である。
【図７】本発明に従うソース・クライアント・プロファイルの一実施例のブロック図である。
【図８】本発明に従うソース・データ・レコードの一実施例のブロック図である。
【図９】本発明に従うターゲット・データ・レコードの一実施例のブロック図である。
【図１０】本発明に従うデータ・アセンブリ・レコードの一実施例のブロック図である。
【図１１】本発明に従うバックアップ方法の一実施例の図式図である。
【図１２】本発明に従うバックアップ方法の一実施例の図式図である。
【図１３】本発明に従う復元方法の一実施例の図式図である。
【図１４】本発明に従う復元方法の一実施例の図式図である。
【図１５】本発明に従う復元方法の一実施例の図式図である。
【図１６】本発明に従う復元方法の一実施例の図式図である。
【図１】
0004677412.tif 000002
【図２】
0004677412.tif 000003
【図３】
0004677412.tif 000004
【図４】
0004677412.tif 000005
【図５】
0004677412.tif 000006
【図６】
0004677412.tif 000007
【図７】
0004677412.tif 000008
【図８】
0004677412.tif 000009
【図９】
0004677412.tif 000010
【図１０】
0004677412.tif 000011
【図１１】
0004677412.tif 000012
【図１２】
0004677412.tif 000013
【図１３】
0004677412.tif 000014
【図１４】
0004677412.tif 000015
【図１５】
0004677412.tif 000016
【図１６】
0004677412.tif 000017