(57)【要約】  本発明は、記述子の提供に基づいてファイルへの権限を判断することができる。記述子は、アルゴリズムを使用して演算されることができ、それは、暗号および／または非暗号であることが可能である。記述子は、共有ファイル・リポジトリのファイルをユニークに識別するために、ファイル・コンテンツ、ファイルのメタデータ、他のファイル・データ、またはその任意の組合せにさらに基づいている。記述子がファイル・データに基づいて生成されるので、それは、どのユーザがそれを生成するかに拘わらず同一である。したがって、ファイルの１つのコピーだけを共有ファイル・リポジトリに維持する必要があり、それによって、ファイルがバックアップされることを保証するのに必要なネットワーク帯域幅の量を減らし、さらに、ファイルのバックアップに必要な記憶容量を低減することができる。これは、処理時間、ネットワーク帯域幅、およびメモリの要件の点からバックアップの非常に効率的な方法をもたらす。
2009536418.tif 000002
【特許請求の範囲】
【請求項１】
電子データ・バックアップ・システムを管理する方法であって、
第１の遠隔記憶媒体上に記憶された電子データの第１のインベントリを受信することと、第１のインベントリは１つ以上の記述子を含んでいることと、
第１のインベントリの前記１つ以上の記述子を、バックアップ・データ記憶媒体上に記憶された電子データの第２のインベントリに関連した一連の記述子と比較することと、電子データの第２のインベントリは、第１の遠隔記憶媒体と異なる複数の記憶媒体からの電子データを含んでいることと、
第１のインベントリの前記１つ以上の記述子からの第１の記述子が、第２のインベントリに関連した一連の記述子からの第２の記述子と実質的に一致することを判断することと、
第１の記述子に関連した電子データが前記バックアップ・データ記憶媒体に既に記憶されていることを第１の遠隔記憶媒体に報知することとを含む方法。
【請求項２】
第１のインベントリの前記１つ以上の記述子は、第１の遠隔記憶媒体上にあるファイルおよびデータ構造のうちの１つ以上を実質的にユニークに識別する請求項１記載の方法。
【請求項３】
前記バックアップ・データ記憶媒体へ送信される一連の電子データから第１の記述子に関連した電子データを削除することをさらに含む請求項１記載の方法。
【請求項４】
第１の遠隔記憶媒体から前記バックアップ・データ記憶媒体に電子データを送信することをさらに含み、該送信される電子データは第１の記述子に関連した電子データを除いた第１のインベントリからの電子データを含んでいる請求項３記載の方法。
【請求項５】
前記バックアップ・データ記憶媒体上に記憶され、第２の記述子に関連した電子データは、第１の遠隔記憶媒体と異なる第２の遠隔記憶媒体のバックアップ動作中に前記バックアップ・データ記憶媒体上に元々記憶されていたデータを含んでいる請求項１記載の方法。
【請求項６】
第１のユーザは第１の遠隔記憶媒体に関連し、別の第２のユーザは第２の遠隔記憶媒体に関連している請求項５記載の方法。
【請求項７】
第２の記述子に関連した電子データの単一のコピーは、複数の異なるデータ記憶媒体による使用のために前記バックアップ・データ記憶媒体上に維持され、第２の記述子に関連した電子データへのアクセスは、前記バックアップ・データ記憶媒体に第１の記述子を提供するデータ記憶媒体に限られる請求項１記載の方法。
【請求項８】
第１の記述子および第２の記述子は、共通の記述子生成アルゴリズムと、該共通の記述子生成アルゴリズムへの共通の入力とを使用して生成され、該共通の入力は、第１の記述子に関連した電子データのデータおよびメタデータのうちの１つ以上を含んでいる請求項１記載の方法。
【請求項９】
第１の記述子に関連した電子データは、バイト単位で測定される長さを有する電子ファイルまたはデータ構造のうちの１つ以上を含んでいる請求項８記載の方法。
【請求項１０】
第１の記述子は２バイト以上の長さを含み、前記記述子生成アルゴリズムは、暗号アルゴリズムおよび非暗号アルゴリズムのうちの１つ以上を含んでいる請求項８記載の方法。
【請求項１１】
第３の遠隔記憶媒体から要求を受信して復元動作を行なうことと、
第３の遠隔記憶媒体用のバックアップのインベントリを参照することと、第３の遠隔記憶媒体用のバックアップのインベントリは、前記要求を受信して復元動作を行なう前の時点で第３の遠隔記憶媒体上にあった電子データに関連した一連の記述子を含んでいることと、
第３の遠隔記憶媒体に関連した前記一連の記述子中の記述子と一致する記述子を有する選択された電子データを前記バックアップ・データ記憶媒体から取り出すことと、
第３の遠隔記憶媒体へ前記選択された電子データを提供することとをさらに含む請求項１記載の方法。
【請求項１２】
第３の遠隔記憶媒体から第２のインベントリを受信することと、第３の遠隔記憶媒体用の第２のインベントリは、第３の遠隔記憶媒体上に現在ある電子データに関連した一連の記述子を含んでいることと、
第３の遠隔記憶媒体へ前記選択された電子データを提供する前に、前記選択された電子データから第３の遠隔記憶媒体上に現在ある電子データを削除することとをさらに含む請求項１１記載の方法。
【請求項１３】
前記選択された電子データからの１つ以上の電子ファイルは、第３の遠隔記憶媒体以外の遠隔記憶媒体によって前記バックアップ・データ記憶媒体に元々アップロードされていたものである請求項１１記載の方法。
【請求項１４】
請求項１記載の方法を実施するためのプロセッサ実行可能命令を含んだコンピュータ可読媒体。
【請求項１５】
電子データ・バックアップ・システムを管理するための装置であって、
第１の遠隔記憶媒体上に記憶された電子データの第１のインベントリを受信することと、第１のインベントリは１つ以上の記述子を含んでいることと、第１のインベントリの前記１つ以上の記述子を、バックアップ・データ記憶媒体上に記憶された電子データの第２のインベントリに関連した一連の記述子と比較することと、電子データの第２のインベントリは第１の遠隔記憶媒体と異なる複数の記憶媒体からの電子データを含んでいることと、第１のインベントリの前記１つ以上の記述子からの第１の記述子が、第２のインベントリに関連した一連の記述子からの第２の記述子と実質的に一致することを判断することと、第１の記述子に関連した電子データが前記バックアップ・データ記憶媒体に既に記憶されていることを第１の遠隔記憶媒体に報知することとに適合されているバックアップ・アプリケーションを含む装置。
【請求項１６】
前記バックアップ・アプリケーションは、前記バックアップ・データ記憶媒体へ送信される一連の電子データから第１の記述子に関連した電子データを削除するようにさらに構成されている請求項１５記載の装置。
【請求項１７】
前記バックアップ・アプリケーションは、第１の遠隔記憶媒体から前記バックアップ・データ記憶媒体に電子データを送信するようにさらに構成され、該送信される電子データは第１の記述子に関連した電子データを除いた第１のインベントリからの電子データを含んでいる請求項１６記載の装置。
【請求項１８】
前記バックアップ・データ記憶媒体上に記憶され、第２の記述子に関連した電子データは、第１の遠隔記憶媒体と異なる第２の遠隔記憶媒体のバックアップ動作中に前記バックアップ・データ記憶媒体上に元々記憶されていたデータを含んでいる請求項１５記載の装置。
【請求項１９】
第１のユーザは第１の遠隔記憶媒体に関連し、別の第２のユーザは第２の遠隔記憶媒体
に関連している請求項１８記載の装置。
【請求項２０】
第２の記述子に関連した電子データの単一のコピーは、複数の異なるデータ記憶媒体による使用のために前記バックアップ・データ記憶媒体上に維持され、第２の記述子に関連した電子データへのアクセスは、前記バックアップ・データ記憶媒体に第１の記述子を提供するデータ記憶媒体に限られる請求項１５記載の装置。
【請求項２１】
第１の記述子および第２の記述子は、共通の記述子生成アルゴリズムと、該共通の記述子生成アルゴリズムへの共通の入力とを使用して生成され、該共通の入力は、第１の記述子に関連した電子データのデータおよびメタデータのうちの１つ以上を含んでいる請求項１５記載の装置。
【請求項２２】
第３の遠隔記憶媒体から要求を受信して復元動作を行なうリストア・アプリケーションことと、第３の遠隔記憶媒体用のバックアップのインベントリを参照することと、第３の遠隔記憶媒体用のバックアップのインベントリは、前記要求を受信して復元動作を行なう前の時点で第３の遠隔記憶媒体上にあった電子データに関連した一連の記述子を含んでいることと、第３の遠隔記憶媒体に関連した前記一連の記述子中の記述子と一致する記述子を有する選択された電子データを前記バックアップ・データ記憶媒体から取り出すことと、第３の遠隔記憶媒体へ前記選択された電子データを提供することとに適合されているリストア・アプリケーションをさらに含む請求項１５記載の装置。
【請求項２３】
前記リストア・アプリケーションは、第３の遠隔記憶媒体から第２のインベントリを受信することと、第３の遠隔記憶媒体用の第２のインベントリは、第３の遠隔記憶媒体上に現在ある電子データに関連した一連の記述子を含んでいることと、第３の遠隔記憶媒体へ前記選択された電子データを提供する前に、前記選択された電子データから第３の遠隔記憶媒体上に現在ある電子データを削除することとにさらに適合されている請求項２２記載の装置。
【請求項２４】
前記選択された電子データからの１つ以上の電子ファイルは、第３の遠隔記憶媒体以外の遠隔記憶媒体によって前記バックアップ・データ記憶媒体に元々アップロードされていたものである請求項２２記載の装置。
【請求項２５】
電子データ・バックアップ・システムであって、
複数の遠隔記憶媒体用の第１組の電子データを記憶する手段と、そのうち同複数の遠隔記憶媒体のうちの２つ以上は異なるユーザに関連していることと、
第２組の電子データをバックアップする要求を第１の遠隔記憶媒体から受信する手段と、
第１組の電子データおよび第２組の電子データの両方において少なくとも第１の電子ファイルの記述子を比較することによって、同少なくとも第１の電子ファイルが第１組の電子データおよび第２組の電子データ中にあることを判断する手段と、
前記少なくとも第１の電子ファイルが第１組の電子データ中に既に存在することを第１の遠隔記憶媒体に報知する手段と、
前記少なくとも第１の電子ファイルを除いた第２組の電子データに関連した電子ファイルを第１の遠隔記憶媒体から第１組の電子データを記憶する手段へ転送する手段と、
前記少なくとも第１の電子ファイルを除いた第２組の電子データに関連した電子ファイルを第１組の電子データを記憶する手段に追加する手段とを備えるシステム。
【請求項２６】
前記少なくとも第１の電子ファイルは、第１の遠隔記憶媒体と異なる第２の遠隔記憶媒体によって、第１組の電子データを記憶する手段へ転送されている請求項２５記載のシステム。
【請求項２７】
前記複数の遠隔記憶媒体の一部が第２組の電子データに関連した電子ファイルにアクセスを行うことを可能とする手段をさらに備え、前記複数の遠隔記憶媒体の一部はアクセスを獲得する前に第２組の電子データに関連した電子ファイルに対する記述子を提供する請求項２５記載のシステム。
【請求項２８】
第２組の電子データに関連した電子ファイルに対する記述子は、前記電子ファイルを実質的にユニークに識別する請求項２７記載のシステム。
【請求項２９】
前記記述子は、前記電子ファイルからのデータおよびメタデータのうちの少なくとも１つを入力として利用する所定の記述子生成アルゴリズムを使用して生成された英数字の文字列を含んでいる請求項２７記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータ・データ権限およびデータ同一性に関する。特に、本発明は、それがファイル・システム、コンピュータ・データ・バックアップ、およびコンピュータ一般に適用される際に、データ管理を改善するために適用可能である。
【背景技術】
【０００２】
近代社会は、コンピュータおよびコンピュータ・ネットワーク（コンピュータ・システム）に極度に依存しており、続いて、本質的に大きなコンピュータ・システムであるインターネットに極度に依存している。どの人またはどのエンティティが特定のファイルに対する権限を有しているかを管理することは、非常に困難であり、資源消費が大きいが、データのプライバシーの維持には重要である。権限管理およびファイル識別についての現在の実施は非常に非効率的であるので、コンピューティング分野に亘って大きな譲歩および妥協がなされてきた。
【０００３】
先行技術にかかる権限管理は、典型的には、ユーザ単位で行なわれる。ユーザは、一般に、認証され、個人またはグループ単位で権限を与えられる。各ユーザに関連したファイルについては、ビット毎にまたは或るアルゴリズムの使用を通じて比較されるのが一般的である。一般的な比較方法は、ｃｒｃ−３２署名、ファイル・サイズ・チェック、および典型的にはより大きなファイルに利用されるよりロバストなｍｄ５法を含んでいる。ファイル比較は、典型的には、大きなダウンロードファイルに対して手動処理で行なわれる。大きなファイルには、ｍｄ５チェック・サムが提供される。ユーザは、ファイルをダウンロードし、ダウンロードしたファイル上でｍｄ５ユーティリィティを実行し、チェック・サムが一致することを確認する。従来的には、各ユーザに対してファイルの別個のコピーが維持される。
【０００４】
比較が行なわれる際に導入される１つの非効率は、コンピュータ・バックアップの処理に関するものである。殆どのバックアップ技術は、コンピュータ・システムの内容全体の初期イメージまたは完全バックアップを取ることに依存している。初期イメージまたは完全バックアップの使用は、非常に大きなバックアップをコンピュータ・バックアップ処理中に生じさせる。ファイル・システムの一部を除外すること、既にバックアップされているデータをコピーしないこと、またはその両方を行ってバックアップのサイズを低減するための様々な技術がある。バックアップのサイズを低減するための１つの技術は、未だ存在しないファイルのみをコピーすることである。この方法は、ファイルが既にリポジトリにあるか否かを判断するために、ファイル名識別子と共にチェック・サムとしてｃｒｃ−３２を利用する。ｃｒｃ−３２技術の利用は、同一のｃｒｃ−３２データを生成する同一の大きさのデータの多くの可能な組合せが存在するので、ファイルの独自性を論理的に保証しない。さらに、ｃｒｃ−３２技術の使用には、固有のファイル権限問題およびファイル同一性問題が存在する。複製（ｄｕｐｌｉｃａｔｅ）ファイルがバックアップされない場合、バックアップ空間は本質的に共有システムである。この共有システムでは、各バックアップ・クライアントがどのファイルに対して権限を有しているかを判断しなければならない。
【０００５】
別のそのような非効率は、構成処理の進行中に存在する。構成処理は、コンピュータ・システムの構成を管理する処理である。この処理は、構成の組をキャプチャし、復元することを含んでいる。構成の組は、ファイル構造および構成情報のほか、構成情報を更新するかまたはファイル・システムを操作するスクリプトを含むことが可能である。その非効
率は、ファイルの独自性を保証するシステムの能力不足にある。構成の組は、関連データの完全な束である。多くの構成の組は、単に、ユニークであると保証されないファイルを管理することの複雑さのために、同一のファイルの複数のコピーを有する。
【０００６】
コンピュータ記憶装置、管理、およびデータ・バックアップ・システムに伴う非効率の列挙は、ほぼ無限に続く。たとえば、電子メール記憶および他のメッセージ記憶のほか、アプリケーション・データ記憶技術の処理において、非常に多くの非効率が存在している。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明の目的は、ファイル、ファイル権限、およびファイル同一性を管理するためのより効率的な方法およびシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つ以上の実施形態によれば、論理的にユニークなクレデンシャルを判断する方法が提供される。この方法は、概して、
第１の遠隔記憶媒体上に記憶された電子データの第１のインベントリを受信することと、第１のインベントリは１つ以上の記述子を含んでいることと、
第１のインベントリの該１つ以上の記述子を、バックアップ・データ記憶媒体上に記憶された電子データの第２のインベントリに関連した一連の記述子と比較することと、電子データの第２のインベントリは、第１の遠隔記憶媒体と異なる複数の記憶媒体からの電子データを含んでいることと、
第１のインベントリの該１つ以上の記述子からの第１の記述子が、第２のインベントリに関連した一連の記述子からの第２の記述子と実質的に一致することを判断することと、
第１の記述子に関連した電子データが前記バックアップ・データ記憶媒体に既に記憶されていることを第１の遠隔記憶媒体に報知することとを含む。
【０００９】
本明細書で使用される「電子データ」は、電子ファイル、電子ファイルの一部分、データの塊（ｃｈｕｎｋ）、データ構造、メタデータ、または電子データの任意の他の部分に対応することが可能である。
【００１０】
記述子は、ファイル・メタデータ（たとえば、ファイル記憶域およびファイルに関する他の書誌的情報）および１つ以上の暗号署名の組合せであることが可能である。記述子の使用は、１つの実施形態では、実質的に同一のファイルが２回以上記憶されることなく、多くのファイルが記憶されることを可能にする。これは、ファイルを実際に提供せずに、且つ、ビット単位でファイルを比較することなく可能になることができる。データベースおよび／または他のソフトウェア・アプリケーションは、より高いレベルの機能を提供するシステムにおける記述子を管理することができる。１つの実施形態では、多くのファイルが他のファイルの正確なコピーであり、ファイル管理問題が克服されることができる場合には記憶される必要がないので、より高いレベルの機能が使用される。冗長に記憶されたファイルの量を低減することは、メモリ、記憶装置、およびネットワーク資源におけるコストおよび制限に対して重要である。
【００１１】
本発明の別の態様は、論理的にユニークな記述子を判断することができる方法およびシステムである。判断された記述子は、ファイル・メタデータおよび１つ以上の暗号署名の組合せであることが可能である。１つの実施形態では、記述子は、ユーザがプロセッサに関連したことを該記述子の所有者が認証することを可能にするので、続いて、プロセッサは、該プロセッサが記述子を所有しているだけであり、もはやファイルを所有していない場合であってもファイルに対する権限を有する。そのような実施形態では、プロセッサは
、そのプロセッサが特定のファイルに対する権限を有することを判断することができるが、これは、記述子を生成するために比較的弱い暗号ルーチンが使用されるときであっても、ファイルを所有せずにそのファイルに対する記述子を判断することは非常に困難であるためである。
【００１２】
本発明のさらなる態様は、暗号ルーチンまたはアルゴリズムの使用を提供する。暗号アルゴリズムは、ルーチンを破ろうとするエンティティ（「攻撃者」）が秘密およびメッセージの両方へのアクセスを有しない場合には破るのが実質的により困難である。本発明の少なくとも幾つかの実施形態によれば、攻撃者は、どちらへのアクセスも有していない。これによって、認可されていないエンティティはファイル・メタデータや１つ以上の署名を推測する必要があるが、それは完全に実行不可能ではないとしても非常に困難な作業であるので、ファイルの認証は非常に安全（ｓｅｃｕｒｅ）となる。実際、ファイルを識別するために複数の署名が使用されるとき、有効な記述子を生成する１つの方法は、実際のファイルで始まる。その場合、攻撃者によって遂行されるのは、それらの攻撃者が既に有しているファイルへのアクセスを与えられることだけである。
【００１３】
本明細書で使用される用語「自動」およびその変形物は、処理または動作が行なわれるときに実質的な人間の入力なしになされる任意の処理または動作を参照している。しかしながら、或る処理または動作の実行の前に受けた人間の入力（実質的または非実質的）をその処理または動作の実行が使用しても、その処理または動作は自動であることができる。人間の入力は、その処理または動作がどのように行なわれるかにそのような入力が影響する場合に、実質的であると考えられる。その処理または動作の実行に同意する人間の入力は、「実質的」であるとは考えられない。
【００１４】
本明細書で使用される用語「判断する」、「演算する」、および「演算する」、ならびにその変形物は、置換可能に使用され、任意の種類の方法、処理、数学的な操作または技術を含んでいる。
【００１５】
本明細書で使用される用語「モジュール」は、任意の公知またはその後開発されたハードウェア、ソフトウェア、ファームウェア、人工知能、ファジー理論、またその要素に関連した機能を行なうことができるハードウェアおよびソフトウェアの組合せを参照している。さらに、当然のことながら、本発明が典型的な実施形態の点から記載されているが、本発明の個々の態様は、別個に請求されることができる。
【００１６】
これらおよび他の利点は、ここに含まれた本発明の開示から明白になる。上記実施形態および構成は、完全でなければ、包括的でもない。当然のことながら、本発明の他の実施形態は、上述したまたは下に詳細に記載される一または複数の特徴を単独または組み合わせて利用可能である。
【発明を実施するための最良の形態】
【００１７】
本発明は、典型的なデータ記憶およびバックアップ・システムと共に下に例示される。たとえば、サーバおよび／またはデータベースを使用したシステムでの使用に良く適しているが、本発明は、任意の特定の種類の通信システム、または任意の特定の構成のシステム要素での使用に限定されるものではない。当業者には、グループ・ベースのファイル・バックアップ・システムを提供することが望ましい任意の通信用途で開示された技術が使用されることが可能であることが認識される。
【００１８】
この発明の典型的なシステムおよび方法は、通信用ソフトウェア、モジュール、および関連する通信用ハードウェアに関しても記載される。しかしながら、本発明を不必要に不明瞭にしないようにするために、次の記載は、ブロック図の形態で示されることがあるか
、周知であるか、または要約される周知の構造、ネットワーク構成要素、および装置を省略している。
【００１９】
説明の目的のために、数々の詳細が本発明についての完全な理解を与えるために述べられている。しかしながら、本発明が本明細書に記載の特定の詳細を超えた様々な方法で実行されることが可能であることは認識されるべきである。
【００２０】
さらに、本明細書に例示される典型的な実施形態が、配置されたシステムの様々な構成要素を示している一方で、本システムの様々な構成要素が、通信ネットワークおよび／またはインターネット、あるいは、専用の安全な、安全でないおよび／または暗号化されたシステムのような分散型ネットワークの離れた部分に位置することができることは認識されるべきである。このように、本システムの構成要素は、エンタープライズ・サーバのような一または複数の装置に組み合わせられることができ、任意の装置が、永続記録機能を備えているか、または、アナログおよび／またはデジタル通信網のような分散型ネットワークの特定のノード上に配置されることは認識されるべきである。次の記載から当然に、また、演算効率の理由で、本システムの構成要素は、本システムの動作に影響せずに分散型ネットワーク内の任意の位置に配置されることができる。たとえば、様々な構成要素は、一または複数のユーザの敷地でのバックアップ・サーバまたはその幾つかの組合せに位置することができる。同様に、本システムの一または複数の機能部分は、サーバ、ゲートウェイ、および／または関連した通信装置の間で分散されることができる。
【００２１】
まず図１を参照して、通信システム１００は、本発明の少なくとも幾つかの実施形態に従って記載される。通信システム１００は、概して、通信ネットワーク１０４、一または複数の通信装置１０８、エンタープライズ・サーバ１１２、バックアップ・アプリケーション１２４およびリストア・アプリケーション１２０を含んだバックアップ・サーバ１１６、およびデータ記憶領域１２８を含んでいる。
【００２２】
通信ネットワーク１０４は、任意の種類の情報輸送媒体を備え、エンドポイント間でメッセージを輸送するための任意の種類のプロトコルを使用することが可能である。通信ネットワーク１０４は、有線および／または無線通信技術を含むことが可能である。通信ネットワーク１０４の例は、限定することなく、アナログ音声通話のみ可能な旧来の電話サービス（ＰＯＴＳ）、総合デジタル通信網（ＩＳＤＮ）、公衆交換電話網（ＰＳＴＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、および本技術分野で公知の任意の他の種類のパケット交換または回線交換網を含んでいる。加えて、当然のことながら、通信ネットワーク１０４は、任意の１つの種類のネットワークに限定される必要がなく、代わりに、数々の異なるネットワークおよび／または数々の異なる種類のネットワークで構成されることも可能である。
【００２３】
通信装置１０８は、パケット交換および／または回線交換であることが可能であり、たとえば、電話機、ＩＰ電話機、携帯情報端末（ＰＤＡ）、パーソナル・コンピュータ（ＰＣ）、ノート型パーソナル・コンピュータ、パケット・ベースのＨ．３２０テレビ電話機能付携帯電話機および会議ユニット、パケット・ベースのボイス・メッセージおよび応答ユニット、パケット・ベースの古典的なコンピュータ電話通信付属物、従来の有線または無線電話機、携帯電話機などを含むことができる。
【００２４】
エンタープライズ・サーバ１１２は、選択されたクライアント装置（たとえば、通信装置１０８）にサービスを提供するように機能する専用プロセッサを備えていることが可能である。エンタープライズ・サーバ１１２は、概して、企業内で接続されている複数の通信装置１０８間の通信を可能にし、さらに、企業に通信ネットワーク１０４への接続ポイントを提供する。エンタープライズ・サーバ１１２は、電子データ記憶領域上に記憶され
た命令を実行するために操作可能な任意の種類の処理媒体を備えていることが可能である。本明細書で使用される用語「スイッチ」または「サーバ」は、エンタープライズ・サーバ、永続記録機能を備えた装置、または、他の種類の電気通信システム・スイッチまたはサーバのほか、メディア・サーバ（つまり、電子メール・サーバ、音声メール・サーバ、ウェブ・サーバなど）、コンピュータ、付属物などのような他の種類のプロセッサ・ベースの通信制御装置を含むと理解されるべきである。
【００２５】
バックアップ・サーバ１１６は、ファイル・バックアップ設備を提供するように構成されている。バックアップ・サーバ１１６は、ユーザのグループのためのファイル・バックアップ・システムを管理する機能によって特徴づけられており、その各々は、一または複数の通信装置１０８を伴うことが可能である。本発明の或る実施形態によれば、バックアップ・サーバ１１６には、ユーザがそのそれぞれの通信装置１０８からバックアップ・サーバ１１６またはデータ記憶装置１２８のいずれかへのファイルのバックアップを可能にするバックアップ・アプリケーション１２４が設けられている。バックアップ・アプリケーション１２４は、契約ユーザまたは或る通信装置１０８に対してだけ利用可能である。代わりに、非契約ユーザ／通信装置１０８は、或る通信装置１０８から遠隔の記憶装置１２８設備上に一または複数のバージョンのデータを記憶するためにバックアップ・アプリケーション１２４を利用することを許可されることが可能である。通信装置１０８上に存在する媒体のようなコンピュータ媒体は、多くの使用シナリオでは、どこか他の場所に残しておくためにデータのコピーを必要とするような故障率を有している。これらの遠隔バックアップ・コピーは、元の媒体の故障の際に通信装置１０８に復元されることができる。この処理は、バックアップおよびリストアと呼ばれ、それぞれ、バックアップ・アプリケーション１２４およびリストア・アプリケーション１２０によってサポートされている。バックアップ・サーバ１１６上に維持されるバックアップ・アプリケーション１２４およびリストア・アプリケーション１２０は、グループ・ベースのバックアップ・システムの管理のための中央サポートを提供する。バックアップおよび復元処理は、２つの主要な手法を有している。１つは、通信装置１０８上に存在する媒体のイメージまたはブロック・ベースのバックアップである。いま１つは、ファイル・ベースのバックアップである。ファイル・ベースおよびブロック・ベースのバックアップ手法の組合せには、様々なものが存在する。本発明の幾つかの実施形態によれば、通信装置１０８上の既存のデータ構造の完全コピーは、バックアップ・アプリケーション１２４によってバックアップされることができ、続いて、増分および／または完全バックアップが行なわれることができる。各通信装置１０８の増分バックアップは、最後の完全または増分バックアップ以来、その通信装置１０８上で変更されたデータだけをコピーすることが可能である。復元は、個々のファイルから完全な媒体復元まで様々である。
【００２６】
本発明の実施形態にかかるバックアップ・システムは、典型的には、複数のボリューム・セットによってグループ・バックアップを行なう。ここで、ボリューム・セットは、全体イメージおよび増分バックアップからなっている。このように、各ボリューム・セット・バックアップは、全体イメージおよび変更のスナップショットを含んでいる。従来的には、この情報のいずれも、典型的にはこれらのファイルの殆どが同一であるという事実にも拘わらず、複数のボリューム・セットに亘って共有されない。同一のファイルが、各通信装置１０８上のファイルの大多数に相当する。バックアップ・サーバ１１６は、電子データのインデックスを付した記憶装置のマネージャとして働く機能によって特徴づけられ、通信装置１０８に応答し、特定の１つの電子データが既に記憶されているか否かをそれらの通信装置に報知する機能を有している。通信装置１０８は、それぞれ、バックアップ・サーバ１１６に対して各ファイルをユニークに識別することができ、たとえ数々の通信装置１０８が同一のファイルをバックアップしたとしても、１つのコピーだけが実際に記憶されることを保証する。バックアップ・アプリケーション１２４は、すべての通信装置１０８のバックアップを組み合わせ、記憶およびネットワークの要件を劇的に低減する。
【００２７】
ボリューム・セットの理由は、ファイルに対する権限を有している者によってのみ該ファイルが取り出されることを保証することである。従来的には、これは、バックアップ・リポジトリおよび様々なアクセス権限へのアクセスの制限によってボリューム・セット・バックアップにおいて保証される。本発明の実施形態によれば、リストア・アプリケーション１２０は、ファイルのファイル名、サイズ、およびユニークな署名を提供することを復元者（つまり、復元を要求する人または通信装置１０８）に要求することによって、ファイルへのアクセスを制限する。この情報は、内部的にソフトウェアにのみ知られており、また、以前に生成されたインベントリから取り出し可能である。したがって、バックアップ・アプリケーション１２４およびリストア・アプリケーション１２０は協働し、それによって、ユニークなファイルの１つのコピーだけを維持し、且つ、それらの通信装置１０８が適切な情報を通常は記述子の形態でバックアップ・サーバ１１６に提供することができる場合に複数の通信装置１０８によってそのようなファイルへのアクセスを許可する、データ記憶装置１２８上のグループ・ベースのファイル・バックアップ・システムを維持する。その情報がバックアップ・サーバ１１６へ提供される場合、要求する通信装置１０８は、データ記憶装置１２８からのファイルを復元するかそうでなければアクセスすることを許可される。当業者にとっては当然のことながら、エンタープライズ・サーバ１１２は、バックアップ・サーバ１１６によって提供されるバックアップ設備を利用することも可能である。特に、エンタープライズ・サーバ１１２は、それ自身のデータのバックアップを行なうか、および／または、エンタープライズ・サーバ１１２に接続された様々な通信装置１０８のバックアップを調整することが可能である。
【００２８】
バックアップ・サーバ１１６によって提供されるアプリケーションは、本発明の１つ以上の実施形態によれば、本質的にクライアント／サーバ・アプリケーションであるが、各クライアントは、先に述べたようなサーバであることができる。バックアップ・サーバ１１６は、すべてのバックアップのインベントリを維持し、したがって、特定のファイルを有しているか、または、有しているべき通信装置１０８にファイルを提供することができる。本システムが通信装置の一覧または部分的な一覧を提供する機能をサポートした場合、特定のファイルおよび部分的なファイル転送をサーバに提供する機能と共に、本システムは、分散されたファイル分散アプリケーションになる。
【００２９】
本質的に、バックアップ・サーバ１１６は、ユーザのコミュニティまたはグループに対して、ファイル記憶およびコミュニティまたはグループ内の複数のユーザ間で一般的なファイルへの共有アクセスを調整するための機能を提供する。したがって、バックアップ・サーバ１１６は、各通信装置１０８にファイル・バックアップ用のリモート位置を提供することができるが、必ずしも各通信装置１０８上のファイルの各々にメモリを割り付ける必要はない。むしろ、バックアップ・サーバ１１６は、ファイルの単一のコピーを記憶することができ、コミュニティまたはグループの各ユーザにそのファイルを提供し、それらのユーザが、提供された記述子（たとえば、ユニークなファイルの識別子およびアクセス許可を証明するクレデンシャル）に基づいてそのファイルへのアクセスを有していることを証明することができる。
【００３０】
データ記憶装置１２８は、任意の種類の公知のデータ記憶媒体または記憶媒体の組合せに対応することが可能である。データ記憶装置１２８は、ハード・ドライブ、光記憶ドライブ、不揮発性ＲＡＭ、ストレージ・エリア・ネットワークまたはネットワーク接続ストレージのような永続的な記憶装置に対して使用される任意の媒体を含むことが可能である。
【００３１】
サーバ１１２、１１６、ユーザ通信装置１０８、および図１に示されるような他の要素の構成は、例示のみを目的とし、本発明を要素の任意の特定の配置に限定するものとして
解釈されるべきでないことが強調されるべきである。
【００３２】
バックアップ・サーバ１１６が、本発明の或る実施形態に従う必要がないことも注記しておく。むしろ、データ記憶装置１２８は、ローカル・リポジトリ（たとえば、通信装置１０８またはエンタープライズ・サーバ１１２に対してローカル）として実施されることが可能であり、著しい効率を依然として実現することができる。
【００３３】
さて、図２を参照して、通信または演算装置のような通信装置１０８の構成要素は、本発明の実施形態に従ってブロック図の形態で図示されている。その構成要素は、プログラム命令を実行することができるプロセッサ２０４を含むことが可能である。したがって、プロセッサ２０４は、任意の汎用のプログラム可能なプロセッサ、デジタル・シグナル・プロセッサ（ＤＳＰ）、またはアプリケーション・プログラムを実行するコントローラを含むことが可能である。代わりに、プロセッサ２０４は、特別に構成された特定用途向け集積回路（ＡＳＩＣ）を含むことが可能である。プロセッサ２０４は、概して、通信装置１０８によって行なわれる様々な機能を実施するプログラム・コードを実行するように機能する。
【００３４】
通信装置１０８は、さらに、プロセッサ２０４によるプログラムの実行に関する使用のための、およびデータまたはプログラム命令の一時的または長期保存のためのメモリ２０８を備えることが可能である。メモリ２０８は、ＤＲＡＭおよびＳＤＲＡＭのような除去可能または遠隔に存在する固体メモリを含むことが可能である。プロセッサ２０４がコントローラを含む場合、メモリ２０８は、プロセッサ２０４に一体化されることが可能である。メモリ２０８は、揮発性および／または不揮発性のメモリであることが可能である。
【００３５】
さらに、通信装置１０８は、一または複数のユーザ入力２１２と、一または複数のユーザ出力２１６とを備えることが可能である。ユーザ入力２１２の例は、限定することなく、キーボード、キーパッド、タッチ・スクリーン、タッチ・パッド、およびマイクロホンを含んでいる。ユーザ出力２１６の例は、スピーカ、表示スクリーン（タッチ・スクリーン・ディスプレイを含む）、およびインジケータ灯を含むが、これらに限定されるものではない。さらに、ユーザ入力２１２が、ユーザ出力２１６と組み合わせられるか、または、ユーザ出力２１６と共に操作されることが可能であることは、当業者によって認識されることができる。そのような統合ユーザ入力２１２およびユーザ出力２１６の例は、ユーザに視覚情報を提示し、また、ユーザから入力選択を受信することの両方を行なうことができるタッチ・スクリーン・ディスプレイである。
【００３６】
通信装置１０８は、アプリケーション・プログラムおよび／またはデータ保存用のデータ記憶装置２２０を備えることも可能である。さらに、オペレーティング・システム・ソフトウェア２２４は、データ記憶装置２２０に記憶されることが可能である。データ記憶装置２２０は、たとえば、磁気記憶装置、固体記憶装置、光学記憶装置、論理回路、またはそのような装置の任意の組合せを含むことが可能である。当然のことながら、データ記憶装置２２０に維持されることが可能であるプログラムおよびデータが、データ記憶装置２２０の特定の実施に応じて、ソフトウェア、ファームウェア、またはハードウェア・ロジックを含むことができる。
【００３７】
データ記憶装置２２０は、バックアップ・アプリケーション２２８と、図１に関して記載されたバックアップ・サーバ１１６と同様の機能を提供するリストア・アプリケーション２４０とを含むことも可能である。通信装置１０８上に存在するバックアップ・アプリケーション２２８は、通信装置１０８からデータ記憶装置１２８のような遠隔の記憶先への様々なファイルおよび他の電子データをバックアップする機能を提供することが可能である。グループ・ベースのバックアップ・システムの調整を容易にするために、バックア
ップ・アプリケーション２２８は、スキャン・モジュール２３２およびファイル解析モジュール２３６を備えることが可能である。スキャン・モジュール２３２は、ファイル・データが、変更、更新、追加などされたかに関して迅速な判断をなす、ローカル・ファイルの初期スキャンを行なうように設けられている。バックアップ・アプリケーション２２８は、ドライブのシャドー・コピーを生成するために、選択数の記憶ドライブまたは他の記憶媒体をスキャンするためにスキャン・モジュール２３２を利用することが可能である。特定のドライブまたは同様の記憶媒体のスキャンによって、スキャン・モジュール２３２は、選択されたドライブのためのファイル・インベントリを生成することができる。ファイル・インベントリは、ドライブの現在の状態を反映し、ドライブの階層構造の記載を含むことが可能である。スキャン・モジュール２３２は、連続的なリアルタイム・バックアップ・ソリューションのための変更を連続的に追跡するファイル・システム・モニタとして実施されることも可能である。
【００３８】
スキャン・モジュール２３２は、選択された媒体を大まかにスキャンするように構成されている一方で、ファイル解析モジュール２３６は、スキャン・モジュール２３２恐らく変更、更新、追加などされたとして識別したファイルのより詳細な解析を行なうように構成されている。スキャン・モジュール２３２は、恐らく変更されたと識別された各ファイルに記述子アルゴリズムを適用するように構成されることが可能である。記述子アルゴリズムのアプリケーションは、各ファイルのユニークな記述子を生成する。本発明の或る実施形態によれば、解析モジュール２３６は、ファイル・データ自体に基づいた一意な英数字の文字列を含んだハッシュを生成することができる。記述子アルゴリズムは、入力として、生データと、恐らくファイルまたは該ファイルの一部分をユニークに（つまり、実質的にユニークに）識別する記述子を生成するメタデータとを含んだファイル・データを使用する。記述子アルゴリズムのアプリケーションの結果（たとえば、各ファイルまたはファイルの一部分に対応する生成されたハッシュ）は、ドライブの現在の状態について記載するのを助けるためにインベントリに追加されることも可能である。
【００３９】
その後、バックアップ・アプリケーション２２８は、記述子の更新されたインベントリまたは記述子のインベントリへの変更だけをバックアップ・サーバ１１６に送信することが可能であり、ここでは、バックアップ・サーバ１１６は、インベントリをデータ記憶装置１２８に既に記憶されているファイルと比較することができ、その結果、どのファイルが、そのようなファイルのバックアップを完了させるために通信装置１０８からバックアップ・サーバ１１６に送信される必要があるかを判断する。
【００４０】
リストア・アプリケーション２４０は、バックアップ・サーバ１１６から通信装置１０８へのファイルの転送を容易にするように提供されることが可能である。特に、リストア・アプリケーション２４０は、スキャン・モジュール２３２と、バックアップ・アプリケーション２２８に対して提供されるものと同様のファイル解析モジュール２３６とを利用することが可能であり、その結果、どのファイルが、復元動作中にバックアップ・サーバ１１６から通信装置１０８に転送される必要があるかを判断する。ファイルがバックアップ・サーバ１１６にダウンロードされる必要があると判断するためにファイルの記述子を使用するのではなく、リストア・アプリケーション２４０は、データ記憶装置１２８に既に記憶されているファイルへのアクセスを必要とするために記述子を利用する。リストア・アプリケーション２４０は、ローカル・メモリ（つまり、通信装置１０８のメモリ）に現在記憶されている任意のファイルが、要求された復元に対応する時点から変更されたか否かを判断するために、スキャン・モジュール２３２を利用することが可能である。スキャン・モジュール２３２は、ファイルのメタデータをチェックし、作成時刻を比較し、要求された復元に対応する時点にファイルの時刻を編集することが可能である。ファイルが識別された時点の後で変更されるように印を付された場合、リストア・アプリケーション２４０は、その修正がファイルの任意の内容に影響したか否かを判断するために、ファイ
ル解析モジュール２３６を利用することが可能である。ファイル解析モジュール２３６は、識別されたファイルの各々に記述子生成アルゴリズムを適用し、それを、識別された時点からの記述子のインベントリ履歴と比較することが可能である。その後、異なる記述子を有する任意のファイルまたはファイルの一部分は、復元動作中に置換を必要とするものとしてリストア・アプリケーション２４０によって識別されることが可能である。そうでなければ、ファイルまたはファイルの一部分が変更されていない場合、リストア・アプリケーション２４０は、そのファイルまたはファイルの一部分が、復元動作中にバックアップ・サーバから通信装置１０８に送信される必要がないと判断することが可能である。
【００４１】
バックアップ・アプリケーション２２８およびリストア・アプリケーション２４０は、専用のスキャン・モジュール２３２およびファイル解析モジュール２３６を有しているように図示されているが、当業者には、単一のスキャン・モジュール２３２およびファイル解析モジュール２３６が、データ記憶装置２２０内に設けられ、バックアップ・アプリケーション２２８およびリストア・アプリケーション２４０によって共有されることが可能であることが認識される。
【００４２】
データ記憶装置２２０は、通信装置１０８の他の機能の性能に関連して使用されるアプリケーション・プログラムおよびデータを備えることも可能である。たとえば、電話またはＩＰ電話のような通信装置１０８に関連して、データ記憶装置２２０は、通信アプリケーション・ソフトウェアを備えることが可能である。別の例として、携帯情報端末（ＰＤＡ）または汎用のコンピュータのような通信装置１０８は、データ記憶装置２２０に文書処理アプリケーションを備えることが可能である。さらに、携帯型の音楽／動画記憶および再生装置のような通信装置１０８は、様々な記憶されたコンテンツの再生に関するアプリケーションを備えることが可能である。
【００４３】
通信装置１０８は、一または複数の通信ネットワーク・インタフェース２４４を備えることも可能である。通信ネットワーク・インタフェース２４４の例は、ネットワーク・インタフェース・カード、モデム、有線電話通信ポート、シリアルまたはパラレルのデータ・ポート、無線周波数放送送受信器、ＵＳＢポート、または他の有線または無線通信ネットワーク・インタフェースを含むが、これらに限定されるものではない。
【００４４】
さて、図３を参照して、ファイルを管理するために使用されるデータ構造３００およびバックアップ／復元動作におけるデータ構造は、本発明の少なくとも幾つかの実施形態に従って記載される。データ構造３００は、ファイル名（またはデータ構造名）フィールド３０４、ファイル・データ・フィールド３０８、記述子生成アルゴリズム・フィールド３１２、および記述子フィールド３１６を含むことが可能である。データ構造３００は、通信装置１０８、エンタープライズ・サーバ１１２、バックアップ・サーバ１１６で、またはデータ記憶装置１２８内で、完全にまたは部分的に維持されることが可能である。ファイル名フィールド３０４は、電子ファイル名またはデータ構造識別子を記憶するために使用されることが可能である。ファイル名フィールド３０４は、メモリなどにおける位置のような任意の他の識別情報と共に、ファイルの生成に際して電子ファイルに提供される名前を記憶することが可能である。
【００４５】
ファイル・データ・フィールド３０８は、ファイル・データを記憶または表わすために利用されることが可能である。ファイル・データ・フィールド３０８に表わされることが可能であるファイル・データの非限定例は、実際のファイル・データ、記述メタデータ（たとえば、題名、要約、著者、およびキーワードのような要素を含んだ発見および識別などの目的のための資源について記述するメタデータ）、構造メタデータ（たとえば、どのように複合オブジェクトが組み立てられているか、たとえば、どのようにページが並べられ章を形成しているかを示すメタデータ、）、管理メタデータ（たとえば、資源がいつお
よびどのように生成されたか（生成および修正タイムスタンプ）、ファイル種類および他の技術情報、ならびに誰がその資源にアクセスすることができるかなど、資源を管理するのを助けるための情報を提供するメタデータ）を含んでいる。
【００４６】
記述子生成アルゴリズム・フィールド３１２は、様々なファイルに対する記述子を生成するために使用される記述子生成アルゴリズムに関するデータを含むことが可能である。本発明の少なくとも幾つかの実施形態によれば、記述子生成アルゴリズムは、すべてのファイルに一様に適用されるアルゴリズムである。通信装置１０８、エンタープライズ・サーバ１１２、およびバックアップ・サーバ１１６は、同様に、記述子生成アルゴリズムを一様に適用するべきであり、その結果、共通のファイルは、どのエンドポイントが記述子を生成したかに拘わらず、それに関連する同一の記述子を有している。この記述子による電子ファイルの一様な表示は、いつ特定のファイルがデータ記憶装置１２８に既に記憶されているかをバックアップ・サーバ１１６が妥当な程度の確実性で知ることを可能にする。記述子は、記憶されたファイルの単一のコピーにアクセスすることを望む通信装置１０８のためのクレデンシャルとして機能することも可能である。記述子が各エンドポイントで適切に生成される場合、一様な識別システムが生成され、電子データの効率的なグループ・ベースのバックアップ記憶装置を利用可能にする。利用されることが可能である記述子生成アルゴリズムの例は、限定することなく、ＭＤ５ハッシュ、ＳＨＡ２５６、ｓｓｈ２５６、ｃｒｃ−３２、および本技術分野で公知の他のハッシュ生成アルゴリズムを含んでいる。記述子生成アルゴリズムは、所望のレベルのセキュリティに応じて暗号または非暗号アルゴリズムのいずれかであることが可能である。記述子生成アルゴリズム・フィールド３１２中には、記述子の処理に含まれ得る様々な入力を記述する追加のデータが提供されることが可能である。たとえば、記述子は、単に実際のファイル・データに基づいて生成されることがある。メタデータの一部分が、記述子生成アルゴリズムへの入力として含まれることもある。
【００４７】
その後、生成された記述子は、記述子フィールド３１６に記憶されることが可能である。上で注記したように、各電子ファイルまたはファイルの一部分は、それに関連した記述子を有することが可能である。記述子は、概して、グループ・ベースのバックアップ・システムの全体に亘る電子ファイルの共通の簡略化表現として使用される。したがって、通信装置１０８およびバックアップ・サーバ１１６は、記述子生成アルゴリズムにおける同意を使用してファイルに対する記述子を独立して生成することによって、共通のファイルを参照することができる。図４で見ることができるように、特定のファイルに対する記述子は、記述子４０４ａ−Ｍ（ここで、Ｍは一般に１以上である）のような数々の記述子の組合せであることが可能である。各記述子４０４は、共通のファイルにおけるデータの異なる部分を表わすために使用されることが可能であり、各記述子は、所定のデータの長さを表わすことが可能である。たとえば、そのメタデータによって判断されるように、ファイルが頻繁に更新されないものである場合、そのファイルは、１０ＭＢの塊に分割されることが可能であり、各塊は、それに関連したユニークな記述子を有することが可能である。代わりに、頻繁に更新されるファイルは、より粒度の大きな組の記述子を提供するために１ＭＢの塊に分割されることが可能である。
【００４８】
その後、この塊の記述子は、ファイル全体を表わす組み合わされた記述子４０８を生成するために、通常は付加的に組み合わせられることが可能である。塊の記述子の使用は、最後にバックアップされてからファイルの一部分だけが変更された状況において有用である。ファイル解析モジュール２３６による解析中に、変更された塊は、それらの新しい記述子によって識別されることが可能である。それらの変更された塊は、ファイル全体の完全なバックアップを行なうためにバックアップ・サーバ１１６が必要とするただ１つのデータである場合がある。特に、通信装置１０８は、ファイル全体を送る代わりに、変更されたファイルの一部分を送信する必要だけがあることがあり、それは、バックアップ動作
を完了するのに必要な時間を低減する。
【００４９】
記述子の個々のインベントリは、通信装置１０８、エンタープライズ・サーバ１１２、および／またはバックアップ・サーバ１１６上に維持されることが可能である。これは、共通のデータ記憶装置１２８への様々な通信装置１０８に対する別個のバックアップのインベントリおよび許可、ならびにそこに記憶された共通のファイルを維持する機能を提供している。
【００５０】
さて、図５を参照して、グループ・ベースのバックアップ・データ構造が、本発明の少なくとも幾つかの実施形態に従って記載される。バックアップ・データ構造は、典型的には、ファイルの同一性や、それらのファイルがいつユーザ単位でバックアップされたかについての参照として、バックアップ・サーバ１１６に維持される。特に、バックアップ・サーバ１１６は、各ユーザ・アカウントのインベントリ５０４を維持するように設計されることが可能である。第１のインベントリ５０４ａは、ユーザＡに対応することが可能であり、第２のインベントリ５０４ｂは、ユーザＢに対応することが可能であり、第３のインベントリ５０４ｃは、ユーザＣに対応することが可能である。インベントリ５０４は、特定のユーザの単一の通信装置１０８に関連することが可能である。代わりに、インベントリ５０４は、同一のユーザに関連した異なる通信装置１０８からのファイルを識別するユーザのために維持されることが可能である。このように、１つの通信装置１０８が故障した場合、ユーザは、以前に故障した通信装置１０８に、その人の通信装置１０８のすべてからのファイルを復元するためにその人のインベントリ全体を利用することが可能である。ユーザのインベントリには、一連の記述子５０８が含まれることが可能である。各ユーザの一連の記述子５０８は、ユーザの通信装置１０８用に最近バックアップされた実際のファイルまたはファイルの一部分の簡略化表現である。
【００５１】
バックアップ・サーバ１１６は、さらに、共通のデータ記憶装置１２８に現在記憶されている一連のバックアップ・ファイル５１２を維持することが可能である。バックアップ・サーバ１１６は、記述子マッピングを通じて一連のバックアップ・ファイル５１２を参照することが可能である。換言すれば、ファイル・データ自身がデータ記憶装置１２８上に維持されることが可能であり、バックアップ・サーバ１１６は、その一連のバックアップ・ファイル５１２を一連の記述子として維持することが可能である。したがって、バックアップ・サーバ１１６は、どのファイルに各ユーザがアクセスしたかを判断するために、各ユーザに関連した記述子を、一連のバックアップ・ファイル５１２中の概略の記述子と迅速に比較することができる。したがって、バックアップ・サーバ１１６は、単にデータ記憶装置１２８内に任意のファイルの１つのコピーを維持しなければならず、どのユーザおよび／または通信装置１０８がファイルの１つのコピーへのアクセスを与えられたかを判断するために記述子マッピングを利用することができる。これは、単一のファイルが数々の異なる通信装置１０８上に記憶される状況において特に有用である。各通信装置１０８は、ファイルをローカルに利用することが可能であるが、データ記憶装置１２８上にファイルのバックアップを望む。バックアップ・サーバ１１６は、ファイルに対してバックアップ設備を提供することができるが、通信システム１００における各コピーに対応した別個のコピーを維持する必要はない。たとえば、ユーザＡは、その人の通信装置１０８上の記述子１に対応するファイルを有している。ユーザＢは、さらに、記述子１に対応する同一のファイルを有することが可能である。記述子１に対応するファイルは、マイクロソフト・ワード（登録商標）のような一般に利用される文書処理アプリケーションであることが可能であり、ユーザ間の差異はない。一方、記述子２に対応するファイルは、ユーザＡに特有のファイル（たとえば、文書処理アプリケーション用のマクロまたは設定）であることが可能であり、したがってこれもバックアップされる。ユーザＡは、別のユーザが全く同一の設定を有していない限り、それらの設定にアクセスすることができる唯一のユーザになる。なぜならば、ユーザＡは、記述子２をもたらすデータを持つ唯一の者であ
るからである。
【００５２】
さらなる例として、記述子Ｎに対応するファイルは、すべてのユーザに共通であるオペレーティング・システムのような基本アプリケーション、または少なくともそれらの大部分を含むことが可能である。同一のファイルの別個のコピーを複数回維持するのではなく、ファイルを持った各ユーザおよび記述子Ｎを生成することができる対応機能は、そのようなアクセスが復元動作中に必要である場合、バックアップからファイルにアクセスすることができる。
【００５３】
３つのユーザ・アカウントだけが図示されているが、当業者には、バックアップ・サーバ１１６が、任意の数のユーザ・バックアップ・アカウントをサポートすることが可能であることが認識される。有利に、バックアップ・アカウントを利用するユーザの数が増大するときに、複数の通信装置１０８上に複製ファイルを有している可能性が増加するので、システムの全体的効率は増加する。さらに、データの効率的なバックアップ、そしてその後の復元は、記述子の使用によって自動的に行なわれる。これは、バックアップ効率を増大させようとして、バックアップ中にネットワーク１０４を介してそのユーザがどのファイルを送りたいかを識別するためのユーザの必要性を取り除く。むしろ、バックアップ・サーバ１１６は、複製ファイルまたはファイルの一部分を自動的に識別し、次に、通信装置１０８から保存用のバックアップ・サーバ１１６に非複製ファイルまたはファイルの一部分を送信することを要求する。
【００５４】
図６を参照して、バックアップ・ルーチンは、本発明の少なくとも幾つかの実施形態に従って記載される。次の記載は、殆ど、ファイル全体およびファイル全体に対応する記述子に関するものであるが、当業者には、同様の方法が、ファイルの一部分、データ塊、データ構造、および対応する記述子に適用可能であることが認識される。本ルーチンは、１つ以上の媒体が通信装置１０８またはエンタープライズ・サーバ１１２でバックアップのために選択されたときに開始する（ステップ６０４）。媒体に対する典型的な選択は通信装置１０８またはネットワーク・ドライブのＣ：ドライブであることが可能である。ユーザは、さらに、媒体から除外を選択することが可能であり、それは、バックアップすることができないファイルの組である。除外は、共通の基準に基づいて定義可能である。ユーザによって定義されることが可能である除外の例は、選択された媒体上に存在する一時ファイルまたはキャッシュ・ファイルを含んでいる。勿論、ユーザは、いかなる除外を選択することも要求されるわけではない。
【００５５】
バックアップ用に一または複数の媒体を選択した後に、本方法は、選択された媒体をスキャンする通信装置１０８上のスキャン・モジュール２３２によって継続する（ステップ６０８）。このステップでは、スキャン・モジュール２３２は、ドライブのシャドー・コピーを生成することが可能であり、それは、ドライブのクラッシュ一貫性バージョンを、シャドー・コピーが生成された時点でそれが存在したときに読み取る機能を提供する。特に、スキャン・モジュール２３２は、最低限、選択された媒体上に存在する電子データ（たとえば、ファイル）と、それらのファイルがそこに存在した時間とを識別するスナップショットを生成することが可能である。選択された媒体中の様々なファイルのメタデータは、いずれかのファイルが最後のバックアップよりも最近変更されたタイムスタンプを有しているか否かを判断するためにスキャンされることが可能である。
【００５６】
その後、スキャン・モジュール２３２は、選択された媒体用のファイル・インベントリを更新することが可能である（ステップ６１２）。スキャン・モジュール２３２は、選択された媒体を再帰的に検査することが可能であり、それを最後のインベントリにあるものと比較する。選択された媒体用の前のバックアップがなかった場合、選択された媒体上のすべての電子データは、バックアップに対して新しいと考えられる。代わりに、前のバッ
クアップがあった場合、スキャン・モジュール２３２は、最後のバックアップから変更または追加された電子データだけを識別するように試みることが可能である。ステップ６１６では、スキャン・モジュール２３２は、データが変更または追加された選択媒体上にあるか否かを判断する。任意の変更または追加が識別された場合、スキャン・モジュール２３２は、変更されたまたは新しい電子データの識別によって継続する（ステップ６２０）。変更されたまたは新しい電子データは、ファイル名または記憶域によって識別されることが可能である。媒体から削除された電子データは、変更されたと見なされることも可能である。変更を識別することの一部として、スキャン・モジュール２３２は、ファイル名に基づいてそのファイルのインベントリを更新することが可能である。
【００５７】
媒体上の様々なファイルおよび他の電子データへの変更の識別に続いて、バックアップ・アプリケーション２２８は、データの各々の識別された部分に所定の記述子生成アルゴリズムを適用するためにファイル解析モジュール２３６を使用する（ステップ６２４）。換言すれば、ファイル解析モジュール２３６は、そのデータの一部分に対応する新しい記述子を生成するために、変更されたまたは新しいと識別された任意のファイル、ファイルの一部分、データの塊、またはデータ構造に記述子生成アルゴリズムを適用する。
【００５８】
記述子生成アルゴリズムがデータの各々の識別された部分に適切に適用されると、ファイル解析モジュール２３６は、記述子のインベントリをローカルで更新することによって継続する（ステップ６２８）。更新された記述子のインベントリは、変更または追加されたデータ用の新しい記述子のほか、選択された媒体から削除されたかまたは取り除かれたファイルのための空きを含むことが可能である。記述子生成アルゴリズムのアプリケーションの結果に加えて、ファイルの塊のサイズを識別する印と、対応する記述子とは、更新された記述子のインベントリに含まれることがある。記述子のインベントリを更新しつつ、バックアップ・アプリケーション２２８は、記述子のインベントリを圧縮する（ステップ６３２）。任意の公知の種類のファイル圧縮アルゴリズムが、このステップで使用されることが可能である。記述子のインベントリの圧縮は、通信ネットワーク１０４を通じて記述子のインベントリを送信するのに必要な、帯域幅の量およびその後のアップロード時間を低減するのを助ける。
【００５９】
その後、圧縮した記述子のインベントリは、通信ネットワーク１０４を通じて送信され、バックアップ・サーバ１１６にアップロードされる（ステップ６３６）。続いて、記述子のインベントリは、バックアップ・サーバ１１６によって伸張され、一連の記述子５０８中のユーザのインベントリ５０４の一部として記憶される。一連の記述子５０８の更新に加えて、バックアップ・サーバ１１６は、さらに、バックアップが将来の復元動作の実行のために生じた時刻を記録することが可能である。
【００６０】
その後、バックアップ・サーバ１１６は、そのバックアップ・アプリケーション１２４を利用し、受信した記述子のインベントリを一連のバックアップ・ファイル５１２中の記述子と比較することが可能である（ステップ６４４）。この比較ステップでは、その後、バックアップ・アプリケーション１２４は、対応するファイル、ファイルの一部分、データの塊、またはデータ構造が、データ記憶装置１２８に既に記憶されているかを、受信した記述子のインベントリ中の各記述子に対して判断する。比較ステップに基づいて、バックアップ・アプリケーション１２４は、データ記憶装置１２８に未だ記憶されない電子データ部分を識別する（ステップ６４８）。その後、バックアップ・アプリケーション１２４は、アップロードされる必要のある一連のデータ部分（たとえば、一連のファイル）を生成する。なぜならば、それらがデータ記憶装置１２８上に現在ないからである。その後、通常は記述子の形態である一連のデータ部分は、通信装置１０８に送り返される（ステップ６５２）。
【００６１】
通信装置１０８は、一連の記述子を受信し、バックアップ動作を完了するためにバックアップ・サーバ１１６にアップロードされる必要のある、対応するファイル、ファイルの一部分、データの塊、またはデータ構造を識別する（ステップ６５６）。その後、通信装置１０８は、バックアップ・アプリケーション２２８を利用し、識別された電子データを圧縮する（ステップ６６０）。前に注記したように、このステップ中に利用される圧縮アルゴリズムは、本技術分野で公知の任意の圧縮アルゴリズムに対応することが可能である。さらに、圧縮は、ファイル送信サイズを低減するのを助けるものであるが、省略されてもよい。
【００６２】
その後、圧縮した電子データは、それらの対応する記述子と共に、バックアップ・サーバ１１６にアップロードされる（ステップ６６４）。記述子を比較するステップは、通信装置１０８からバックアップ・サーバ１１６にファイルをすべて単にアップロードすることに対立するものとして、付加的な処理を必要とする。しかしながら、記述子のこの予備チェックを行なうことによって、バックアップ・サーバ１１６が殆どのファイルのコピーを有している場合、送信されるデータ量は大幅に低減される。ファイル・データが、特により大きなアプリケーションに対して、多くの場合、非常に大きいサイズを有することがあるので、送信に必要なデータ量のいかなる低減も、バックアップ動作の速度を大幅に増大させることができる。
【００６３】
通信装置１０８から電子データを受信する際、バックアップ・サーバ１１６は、圧縮アルゴリズムの逆のアルゴリズムを利用することによって随意にデータを伸張することが可能である（ステップ６６８）。代わりに、電子データは、保存のためにその圧縮したフォーマットで維持されることが可能であり、その結果、必要な記憶容量が低減される。その後、バックアップ・サーバ１１６は、データ記憶装置１２８内の電子データを、一連のバックアップ・ファイル５１２中の記述子におけるそれらの対応する記述子と共に記憶する（ステップ６７２）。その後、バックアップ・サーバ１１６は、ユーザの記述子のインベントリ（つまり、通信装置１０８上のすべてのファイルに対応する記述子のすべて）をバックアップ完了の時刻と共に記憶する（ステップ６７６）。ユーザの記述子のインベントリの記憶に続いて、本方法は終了する（ステップ６８０）。
【００６４】
ステップ６１６に戻って参照して、バックアップ・アプリケーション２２８が、選択された媒体に変更がなかったと判断した場合（たとえば、ファイルを変更、追加、または削除することによる）、本方法は、ステップ６７６にスキップし、ユーザ記述子のインベントリが、同一のものとして維持され、新しいバックアップ時刻と共に記憶される。
【００６５】
さて、図７を参照して、復元／回復ルーチンが、本発明の少なくとも幾つかの実施形態に従って記載される。次の記載は、殆どファイル全体およびファイル全体に対応する記述子に関してのものであるが、当業者には、同様の方法がファイルの一部分、データ塊、データ構造、および対応する記述子に適用可能であることが認識される。回復ルーチンは、復元用のバックアップのインベントリの選択から開始する（ステップ７０４）。このステップでは、ユーザは、それらのユーザがそれらの通信装置１０８を復元させることを望む時点を本質的に選択する。これは、特定の通信装置１０８用に１つのバックアップだけがある場合に自動的に選択されることが可能である。そうでなければ、複数のバックアップがある場合、ユーザは、所望の時点に対応するバックアップのうちの１つを選択することができる。インベントリまたは一連のインベントリがユーザの通信装置に存在しない場合、それは、バックアップ・サーバ１１６から取り出されることが可能である。
【００６６】
その後、ユーザは、復元用の対象媒体を選択することができる（ステップ７０８）。典型的な選択は、通信装置１０８のＣ：ドライブ、またはエンタープライズ・サーバ１１２に関連した特定のネットワーク・ドライブを復元することである。
【００６７】
対象媒体が選択された後、通信装置１０８のリストア・アプリケーション２４０は、選択された対象媒体をスキャンし、選択された媒体をインベントリと比較する（ステップ７１２）。スキャン・ステップでは、リストア・アプリケーション２４０は、スキャン・モジュール２３２を利用することが可能であり、これによって、媒体上に記憶された様々なファイルのメタデータをチェックし、ファイルまたは他の電子データが、選択された時点よりも最近の更新されたタイムスタンプを有しているか否かを判断する。更新されたタイムスタンプが選択された時点よりも古い場合、特定のファイルまたは電子データを復元する必要はない場合がある。なぜならば、それが、バックアップ・ステップ中に行なった形態で通信装置１０８上に既に存在するからである。しかしながら、スキャン・モジュール２３２が、ファイルまたは電子データの幾つかの変更、追加、または削除が、識別された時点から生じていると判断した場合、リストア・アプリケーション２４０は、最後の媒体インベントリを、選択された媒体自体と比較する。比較ステップに基づいて、リストア・アプリケーション２４０は、媒体とインベントリとの間の差があるか否かを判断する（ステップ７２０）。最後のインベントリが生じてから媒体に生じ得る変更は、ファイル、ファイルの一部分、データの塊、またはデータ構造を媒体から変更、追加、または削除することを含むことが可能である。
【００６８】
何らかの差が検出された場合、本方法は、インベントリから、変更された電子データおよびその対応する記述子を識別することによって継続する（ステップ７２４）。より詳しくは、スキャンおよび比較ステップの後に、タイムスタンプの差により潜在的に異なるものとして識別される電子データが、記述子を生成すると解析される。記述子が前の記述子とは異なる場合、前の記述子は、復元するべきファイルの一覧に追加される。これは、或るシナリオにおいて大量のデータを復元する必要性を排除することができる。たとえば、別の通信装置１０８上の通信装置１０８の特定のバックアップの復元中に、そのような特徴は有用であることがある。しかしながら、殆どの電子データは、その前のバックアップから通常は変わらず、そのようなデータは、スキャン・ステップでなければ、その後、記述子の比較によって変化なしと識別される。インベントリからの記述子は、最後のバックアップが生じたときの電子データを表わしている。その後、識別された時点から変化したそれらのファイルまたは電子データは、復元用に印を付される（ステップ７２８）。特に、本発明の或る実施形態によれば、電子データに対応する記述子が復元用に印を付される。
【００６９】
記述子が復元用に印を付されると、リストア・アプリケーション２４０は、インベントリ中のいかなるディレクトリも対象媒体の中に存在しないか否かを判断することによって継続する（ステップ７３２）。インベントリ中に任意のディレクトリがあり、媒体中にはない場合、リストア・アプリケーション２４０は、対象媒体にそれらのディレクトリを生成する（ステップ７３６）。そのようなディレクトリを生成するのに必要な情報は、インベントリの構造から提供されることが可能である。本発明の構成およびインベントリ中のデータに応じて、既存のディレクトリおよびファイルは、そのままにしておかれ、可能であれば、インベントリによって定義される構造を反映するために名前を変更されるかまたは削除される。必要なディレクトリの生成の後、または、そのような生成が必要ではない場合、リストア・アプリケーション２４０は、バックアップ・サーバが電子データを取り出すことを要求する（ステップ７４０）。このステップでは、リストア・アプリケーション２４０は、通信装置１０８自体または幾つかの他のローカルの媒体上の最も新しいバックアップを最初に調べることが可能である。同一のまたは論理的に類似の記述子が存在し、同一のファイルがローカルの通信装置１０８にローカルに存在することを示している場合、電子データのコピーは、バックアップ・サーバ１１６ではなくローカル・コピーから行われる。この最適化は、別のマシンへ続いてインストールされるドライブにバックアップを復元するために別個のマシンが使用されている場合に、非常に有効である。これは、
たとえば、オペレーティング・システムが同一または類似であると仮定して、オペレーティング・システムのダウンロードの必要性を排除する。電子データがローカルで利用可能でない場合、リストア・アプリケーション２４０は、バックアップ・サーバ１１６へ復元し戻すために印を付された一連の記述子を提供する。バックアップ・サーバ１１６は、要求された電子データをデータ記憶装置１２８から取り出すためにファイル・マッピングへの記述子を利用する。バックアップ・サーバ１１６は、通信装置１０８が、それらのファイルおよび通信装置１０８に関連したインベントリに一覧された他の電子データだけにアクセスすることを可能にすることができる。通信装置１０８が対応する記述子を有することがない、したがって生成することができないファイルは、データ記憶装置１２８内で安全に維持される。したがって、このステップの記述子は、通信装置１０８から前にバックアップされたファイルまたは電子データへのクレデンシャルとして機能する。
【００７０】
バックアップ・サーバ１１６が、識別された電子データを取り出した後、バックアップ・サーバ１１６は、要求している通信装置１０８に電子データをダウンロードする（ステップ７４８）。その後、受信データは、通信装置１０８によって受信および伸張され、続いて、対象媒体に集められる（ステップ７５２）。その後、リストア・アプリケーション２４０は、対象媒体上の電子データのすべてを記憶する（ステップ７５６）。このステップでは、ファイルは、可能であれば、その元の位置に移動され、すべてのメタデータは、タイムスタンプ、属性、アクセス制御一覧（ＡＣＬ）などを含むようにファイナライズされる。電子データを組み立てて対象媒体上にそれを記憶することに加えて、リストア・アプリケーション２４０は、電子データ用のメタデータを設定する（ステップ７６０）。対象媒体上になかった（つまり、ステップ７３６の対象媒体に追加された）インベントリ中のディレクトリは、リストア・アプリケーション２４０によってそれらのメタデータを復元させることも可能である。対象媒体上に現在存在するがインベントリにないファイルおよびディレクトリは、随意に、ユーザ設定に応じて、名前を変更されるか、削除されるか、修正されるか、またはそのままにされることが可能である。
【００７１】
対象媒体の再アセンブリおよび復元に続いて、リストア・アプリケーション２４０は、現在復元することができるファイルまたは他の電子データがあるか否かを判断する（ステップ７６４）。そのような状況は、典型的には、ファイルが現在開いているかまたは別のアプリケーションによって使用中である場合に生じる。そのような状況が存在する場合、リストア・アプリケーション２４０は、リブートの際に復元用のそのようなファイルおよび電子データを識別および設定し、バックアップ・サーバ１１６から受信した対応するファイルおよび電子データは、システム・リブートまで一時データ記憶領域に維持される（ステップ７６８）。現在復元することができないファイルおよび電子データがリブートの際に復元用に設定された後、または、そのようなファイルがない場合、本方法は終了する（ステップ７７２）。
【００７２】
本発明の付加的な実施形態として、保護された媒体のインベントリを生成することができる。このインベントリは、対応する記述子を備えたすべてのファイルの一覧である。ファイル記述子は、ファイル長、ＡＣＬまたはファイル権限、完全パスおよびファイル名、ファイル署名、生成タイムスタンプ、修正タイムスタンプ、および最後にアクセスしたタイムスタンプのようなファイル情報を含むことが可能である。ファイル記述子は、実際には、ｍｄ５  ｓｓｈ２５６およびファイル長のような複数の種類の暗号アルゴリズムを使用した複数のファイル記述子からなることが可能である。記述子は、ファイルの独自性を論理的に保証する。したがって、同一の長さの２つの異なるファイルおよび使用可能なデータは、それらのファイルが幾つかの小さな差を有する限り、論理的な程度の保証と共に同一の署名を有しない。インベントリは、ローカルおよびサーバ上の両方に記憶される。
【００７３】
本発明の代替の実施形態によれば、新しいインベントリが生成されるときに、その生成
は、完全な生成であることができ、バックアップ構成全体は、インベントリ生成におけるようになされる。この生成は、すべてのファイルの一覧を通じて繰り返されることによって生じることができ、新しい署名を生成するだけであり、ここでは、修正タイムスタンプは、変更されている。この生成は、オペレーティング・システムがそのようなＡＰＩを提供する場合、保護された媒体へのすべてのファイル書き込みのアプリケーションによって維持されるログを通じて生じることができる。この新しいインベントリは、最後の完全なインベントリおよびそれに続くすべての増分のインベントリと比較されることができる。これは、変更されたすべての保護されたファイルの部分集合を提供する。その後、このインベントリは、バックアップ・サーバ１１６上のマスタ・インベントリと比較されることができる。署名（つまり、記述子）が存在する場合、ファイルはバックアップされない。記述子がサーバに存在しない場合、ファイルは圧縮され、サーバ上にバックアップされる。
【００７４】
幾つかの近代的なオペレーティング・システムは、ファイル・システムの変更のアプリケーションに報知するためのＡＰＩを提供する。オペレーティング・システムがそのようなＡＰＩを提供する場合、通信装置１０８は、リアルタイムの増分バックアップを行なう機能を提供することができる。オペレーティング・システムが、保護されたファイルに書き込みが行なわれ、続いてそのファイルが閉じられたことを通信装置１０８に報知したとき、クライアントは、ファイルを解析し、そして、記述子が存在し、ファイルがバックアップされていなければ、バックアップ・サーバ１１６上のマスタ・インベントリをチェックする。記述子がサーバに存在しない場合、ファイルは、圧縮され、サーバ上にバックアップされる。その後、リアルタイムの増分ログが、新しい解析に付与される。
【００７５】
ユーザは、前のインベントリから復元するべきファイルを選択することが可能である。その後、本システムは、ファイルが存在しないかをチェックし、ファイルが存在する場合、ファイルは、そのファイルの記述子を提供するクライアントによってサーバから取り出される。ファイルが存在する場合、記述子がチェックされる。記述子が一致しない場合、ファイルは、そのファイルの記述子の提供によってサーバから取り出される。記述子がそのバージョンと一致する場合、ファイルは、記述子の提供によってサーバから取り出され、復元される。その後、ファイルはビット単位で比較され、それらが一致しない場合、両方がさらなる解析用のエラー・トラッキング領域にアップロードされる。
【００７６】
完全なまたは複数のファイル復元は、選択されたインベントリまたは部分集合を経て、個々の復元におけるように各ファイルを復元する。
或るファイルは、バックアップするのが特に困難であることがある。これらのファイルは、典型的には、特別のオペレーティング・システム・ファイルまたはデータベース・データ・ファイルである。スワップ・ファイル、レジストリ、およびログのようなオペレーティング・システム・ファイルは、バックアップが難しい。なぜならば、それらが通常は大きいか、または揮発性が大きいか、またはその両方であるからである。データベース・ファイルは、オペレーティング・システム・ファイルと同じ理由でバックアップが難しく、揮発性の問題は、典型的には、複数のファイルに及ぶ。これらの問題は、様々なオペレーティング・システムおよびデータベースＡＰＩによって扱われる。これらのＡＰＩは、通常はＯＳレベルでスクリプトされることができ、保護されたディレクトリに一貫性のあるデータをコピーする。その後、実際のファイルは、除外される。理想的には、これらのＡＰＩは、一貫性を保証するために使用される。代わりに、本システムは、個々のファイルおよびファイルのグループの一貫性のあるイメージを得るための幾つかの技術を利用する。その場合、ファイルは、そのファイルまたはファイルの組をバックアップする処理において修正される。１つの技術は、ローカルにファイルをコピーし、記述子を二重確認すること。この技術は、ファイルが変化しておらず一貫性があることを保証する。別の技術は、ファイルまたはファイルのグループをコピーし、各ファイルをブロックに論理上分け
ることであり、各ブロックは、記述子によって確認される。コピー・ブロックがソース・ブロックと一致しない場合、そのブロックは、再びコピーされ、記述子の確認は、最初からまた始められる。記述子がすべて一致すると、コピーには一貫性がある。ファイル揮発性のために一貫性のあるコピーを得られない場合、ファイルまたはファイルの組のバックアップは中止される。この技術は、ログ・ファイルおよび揮発性の低いデータベースに対してはうまくいく。別の技術は、ファイル・システム・モニタリングを利用し、それは、前の技術のようなものであり、ファイルまたはファイルのグループをコピーし、各ファイルをブロックに論理上分けることであり、各ブロックは、記述子によって確認される。ブロックを再びコピーする代わりに、すべての書き込みは、コピーが完了した直後の時点まで、遮られ、コピーされたブロック上で実行される。これは、そのコピーに一貫性があることを保証する。
【００７７】
本発明の１つ以上の実施形態にかかるバックアップ・コミュニティは、特定のアプリケーションに属するものとしてファイルにフラグを設定することができる。これは、スナップショット・レベルおよびファイル・レベルにある。名称およびセキュリティ上のレベルのような他の情報である。コミュニティ・ユーザは、これらの設定を個々に遡及して設定することができ、グループの合意や個々のコメントが利用可能になる。これによって、コミュニティは、ファイルの有効性を判断し、どのファイルがコミュニティ・フィードバックに基づいているかを迅速に確認することができる。このように、特定のＯＳリビジョンを得るためにマルウェアおよびスパイウェアや適切なファイルが識別される。以前にベンダーによって不可能だったかまたはサポートされていなかったロールバックアップグレードが可能である。
【００７８】
バックアップの組を共有することができるので、このシステムは、Ｐ２Ｐアプリケーションになることができる。個々の署名が検索可能な形式で共有され、ポストされる場合には、いかなるファイルも、検索することができる人であれば誰でも共有することができ、アクセス可能である。
【００７９】
上記のフローチャートは、特定のイベントのシーケンスに関して議論されているが、このシーケンスへの変更が、本発明の動作に物質的に影響することなく生じることができることは認識されるべきである。さらに、正確なイベントのシーケンスが典型的な実施形態において述べられるように生じる必要はない。本明細書に例示される典型的な技術は、特に図示の実施形態に限定されないが、他の典型的な実施形態によって利用されることもでき、各々の記載された特徴は、個々に且つ別々に請求可能である。
【００８０】
さらに、この発明のシステム、方法、およびプロトコルは、特殊目的のコンピュータ、プログラムされたマイクロプロセッサまたはマイクロコントローラおよび周辺集積回路要素、ＡＳＩＣまたは他の集積回路、デジタル・シグナル・プロセッサ、個別素子回路のような配線接続電子または論理回路、ＰＬＤ、ＰＬＡ、ＦＰＧＡ、ＰＡＬのようなプログラム可能論理装置、電話のような通信装置、任意の比較可能な手段などに実装されることができる。一般に、本明細書に例示される方法を順番に実施することができる状態機械を実装することができる任意の装置は、この発明にかかる様々な通信方法、プロトコルおよび技術を実施するために使用されることができる。
【００８１】
さらに、開示された方法は、様々なコンピュータまたはワークステーションのプラットフォーム上で使用されることができるポータブル・ソース・コードを提供するオブジェクトまたはオブジェクト指向のソフトウェア開発環境を使用するソフトウェアに容易に実施されることが可能である。代わりに、開示されたシステムは、標準論理回路またはＶＬＳＩ設計を使用したハードウェアに部分的または完全に実装されることが可能である。ソフトウェアまたはハードウェアがこの発明にかかるシステムを実施するために使用されるか
否かは、本システムの速度および／または効率要件に依存しており、特定の機能、および特定のソフトウェアもしくはハードウェア・システムまたはマイクロプロセッサもしくはマイクロコンピュータ装置が利用される。本明細書に例示される通信システム、方法、およびプロトコルは、本明細書に提供される機能的な記載から、且つ、コンピュータおよびデータ記憶の技術分野の一般的な基礎知識と共に、当業者によって公知またはその後開発された任意のシステムまたは構造、装置および／またはソフトウェアを使用したハードウェアおよび／またはソフトウェアに容易に実装されることができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の或る実施形態にかかる通信システムを図示するブロック図。
【図２】本発明の或る実施形態にかかる通信装置を図示するブロック図。
【図３】本発明の或る実施形態に従って採用されたデータ構造の論理図。
【図４】本発明の或る実施形態に従って利用される記述子の例を示す図。
【図５】本発明の或る実施形態に従って採用されたグループ・ベースのバックアップ・データ構造の図。
【図６】本発明の或る実施形態にかかるバックアップ・ルーチンの態様を図示するフローチャート。
【図７】本発明の或る実施形態にかかる復元ルーチンの態様を図示するフローチャート。
【図１】
2009536418.tif 000003
【図２】
2009536418.tif 000004
【図３】
2009536418.tif 000005
【図４】
2009536418.tif 000006
【図５】
2009536418.tif 000007
【図６】
2009536418.tif 000008
【図７】
2009536418.tif 000009
【国際調査報告】
2009536418.tif 000010