(57)【要約】バックアップ復元システムは、ファイルの２つまたはそれ以上のバージョンをグラフィカルユーザインターフェース内に提示することができる。ユーザはバージョンを検査して所望のバージョンを識別することができ、また、所望のバージョンを復元させることができる。システムは、バックアップシステム内の多くの保存されるファイルのインスタンスからファイルの変更されたバージョンを識別することができ、また、変更されたバージョンをユーザインターフェース内に提示することができる。いくつかの実施形態において、ファイルがいつ変更されたのかを表示するタイムラインを、提示することができる。いくつかの実施形態ではまた、表示される変更を強調表示することができる。いくつかの実施形態では、ファイルのバージョンを水平方向の形式で、２つまたはそれ以上のバージョンが横並びに見えるように提示することができる。
2012529116.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプロセッサ上で実行される方法であって、
ファイル識別子を受け取るステップ（３０２）と、
前記ファイル識別子に適合するファイルの複数のバージョンを求めてバックアップデータベースを検索するステップ（３０６）であって、前記バックアップデータベースが複数のファイルシステムバックアップを含む、検索するステップと、
前記複数のバージョンを見つけるステップと、
前記複数のバージョンの内の少なくとも１つの表示をグラフィカルユーザインターフェース上に提示するステップ（３２２）と
を含むことを特徴とする方法。
【請求項２】
前記ファイル識別子がファイル名であることを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のバージョンを分析して前記複数のバージョンのサブセットを識別するステップであって、前記サブセット内の前記複数のバージョンのそれぞれが前記サブセット内の前記複数のバージョンの別のものとは異なる、ステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記サブセットから前記複数のバージョンの内の少なくとも２つを提示するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記ファイルに対していつ変更がなされたかを示す表示子を含むグラフィックのタイムラインを提示するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記ファイル識別子がディレクトリ識別子であることを特徴とする請求項１に記載の方法。
【請求項７】
前記表示が、ファイルディレクトリ内のファイルの表示を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記複数のバージョンの内の少なくとも２つの表示を前記グラフィカルインターフェース上に提示するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記表示が、前記複数のバージョンの内の前記少なくとも２つを水平に配置して含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記表示が、前記複数のバージョンの内の前記少なくとも２つの間の少なくとも１つの強調表示される変更を含むことを特徴とする請求項８に記載の方法。
【請求項１１】
ファイルシステムに保存されるファイルの複数のバージョンを保存するよう構成されるバックアップデータベース（１０２）と、
グラフィカルユーザインターフェース（１３０）と、
前記バックアップデータベースからファイルの複数のバージョンを回収するよう構成される検索システム（１２４）と、
前記ファイルの前記複数のバージョンの内の少なくとも２つのグラフィック表示を生成して、前記グラフィック表示を前記グラフィカルユーザインターフェース上に表示するよう、構成される表示システム（１３０）と
を備えることを特徴とするシステム。
【請求項１２】
ユーザからの入力を受け取るよう構成されたユーザ入力システムであって、前記入力が前記ファイルの特定のバージョンを識別する、ユーザ入力システムと、
前記バックアップデータベースから保存デバイスに前記ファイルの前記特定のバージョンを復元するよう構成される復元システムと
をさらに備えることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記ファイルの前記複数のバージョンのサブセットを識別するよう構成された分析システムであって、前記サブセットが前記ファイルのお互いに異なるバージョンを含む、分析システムをさらに備えることを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記分析システムは、各バージョンの変更された部分を判定するようさらに構成され、前記変更された部分が前記バージョンと以前のバージョンとを比較することにより判定されることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記グラフィック表示は、前記変更された部分のためのグラフィック表示子を含むことを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[背景技術]
コンピュータのバックアップシステムは、典型的には、様々な時間にファイルのバージョンを保存する。あるバックアップシステムは、１日に１回、典型的には夜、ファイルを保存する。あるバックアップシステムは、例えば、１日に１時間ごとにファイルを保存することができる。多くの場合、ファイルは、ファイルへのアクセスなどに使用されるファイルシステムに従って保存される。典型的なファイルシステムをバックアップする時、バックアップインスタンスには、ファイルシステムを、ファイルを組織化するディレクトリまたはフォルダの階層と共に含むことができる。
【０００２】
バックアップ操作が起きるたびに、新しいバージョンのファイルがバックアップデータベースに記憶され得る。多くの場合、バックアップデータベースには、多くのバージョンのファイルシステムを、数十またはさらに数百のバージョンのファイルまたはファイルシステムを有するいくつかのインスタンスと共に含むことができる。
【０００３】
バックアップシステムを使用して、以前のバージョンから１つまたは複数のファイル、ファイルシステムの一部、またはファイルシステム全体、を復旧または復元することができる。シナリオを利用する際、ユーザが誤ってファイルを削除してしまったり、変更を加えてしまい、それを後で後悔するというようなことがある。ユーザは、そのファイルを以前のバージョンに復元したいと思い、バックアップシステムにあるファイルを識別し、古いバージョンのファイルを復元させることができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
バックアップ復元システムは、２つまたはそれ以上のバージョンのファイルをグラフィカルユーザインターフェース内に提示することができる。ユーザは、バージョンを検査して所望のバージョンを識別し、所望のバージョンを復元させることができる。システムは、変更されたバージョンのファイルを、バックアップシステム内のファイルが多くの保存されるインスタンスから識別し、ユーザインターフェース内に変更されたバージョンを提示することができる。いくつかの実施形態において、ファイルがいつ変更されたのかを表示するタイムラインを提示することができる。いくつかの実施形態ではまた、表示内の変更を強調表示することができる。いくつかの実施形態では、ファイルのバージョンを、２つまたはそれ以上のバージョンが横並びに、または他の向きで見えるように、水平方向の形式で提示することができる。
【０００５】
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求の主題の範囲を制限するものとして使用されることも意図していない。
【図面の簡単な説明】
【０００６】
【図１】バックアップおよび復旧のためのシステムを示す一実施形態を例示する図である。
【図２】バックアップシステムの操作を簡素化して示す一実施形態を例示するフローチャートである。
【図３】バックアップバージョンの提示と復元のための方法を示す一実施形態を例示するフローチャートである。
【図４】ファイルのバックアップバージョンを分析するための方法を示す一実施形態を例示するフローチャートである。
【図５】グラフィカルユーザインターフェースを示す第１の実施形態を例示する図である。
【図６】グラフィカルユーザインターフェースを示す第２の実施形態を例示する図である。
【図７】グラフィカルユーザインターフェースを示す第３の実施形態を例示する図である。
【発明を実施するための形態】
【０００７】
バックアップ復元システムでは、複数のバックアップインスタンスに亘って特定のファイルのバージョンを検索して、選択対象のバージョンを提示することができる。ユーザは、特定のバージョンを選択することができ、また、そのバージョンを復元させることができる。多くの実施形態において、バックアップインスタンス間で変更されるバージョンだけを提示することができる。
【０００８】
バックアップシステムは、バックアップ保存システムにファイルシステムのバージョンを保存することができる。典型的には、バックアップは、毎週、毎日、１時間毎、または何かこれ以外の間隔など、周期的に実行することができる。ファイルまたはファイルシステムがバックアップされた時と同じ状態に、ファイルまたはファイルシステムが復元されるように、各バックアップインスタンスを保存することができる。
【０００９】
バックアップ復元システムは、単一のファイルまたはファイルシステムの一部を複数のバックアップインスタンスに亘って検索して、ファイルまたはファイルシステムのバージョンを見つけ出すことができる。いくつかの実施形態において、各バックアップインスタンスを検査して、同じ名前または他の識別子を持つファイルが存在するかどうかを判定することができ、存在する場合、そのファイルのバージョンが、ファイルのバージョンのセットに加えられる。他の実施形態には、バックアップインスタンス全体を検索するための異なる機構が含まれる。
【００１０】
多くの場合、ユーザは、どのバージョンのファイルが望ましいかについて必ずしも分かる訳ではない。バックアップ復元システムを使用する時、ユーザは、ファイル名、文書の型、タグ、または、他のメタデータ等の特定のメタデータについては分かっているかもしれないし、ユーザは、内容についてのキーワード、断片、または他の部分について分かっているかもしれない。しかし、ユーザは、ファイルがバックアップされた正確な日付については分からないかもしれない。バックアップ復元システムでは、ユーザがメタデータ、内容、または他の識別子を使用してファイルを検索して、バックアップストレージからファイルのバージョンを見つけることができるようにし、また、ユーザが選択するようにバージョンを提示することができる。
【００１１】
多くの実施形態において、グラフィカルユーザインターフェースを使用して、バージョンを表示および閲覧することができる。表示では、２つまたはそれ以上のグラフィック表示でバージョンを横並びに示し、ユーザがバージョンを視覚的に比較できるようにすることができる。いくつかの実施形態では、種々のバージョンを分析して、バージョン間の変更を識別および強調表示し、ユーザの比較作業を支援することができる。
【００１２】
グラフィカルユーザインターフェースには、ファイルがいつ変更されたのかを図解するタイムラインデバイスを含むことができる。タイムラインには、各バージョンのファイルを示す表示子を有することができる。多くの場合、ファイルは１つのバックアップインスタンス内で更新されるが、別の変更がなされるまでいくつかの他のインスタンスに対しては変更されない。いくつかの実施形態は、変更されないインスタンスを、表示すべきバージョンのセットから除去することができ、また、変更がなされたバージョンのサブセットを示すことができる。
【００１３】
本明細書全体を渡って、図面の記載を通して同様の参照番号が同一の要素を示す。
【００１４】
要素を「接続され」るまたは「連結され」ると言う時、要素は直接接続または連結させることができ、または、１つまたは複数の介在する要素を存在させることもできる。対照的に、要素を「直接接続され」る、または「直接連結され」ると言う時、介在する要素は存在しない。
【００１５】
主題を、デバイス、システム、方法、および／またはコンピュータプログラム製品として具現化することができる。従って、いくつかまたは全ての主題は、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、状態機械、ゲートアレイ等が含まれる）で、具現化することができる。さらに、主題は、命令実行システムによりまたは命令実行システムに関連して使用される媒体において具現化されるコンピュータ利用可能プログラムコードまたはコンピュータ可読プログラムコードを有するコンピュータ利用可能記憶媒体またはコンピュータ可読記憶媒体上で、コンピュータプログラム製品の形式をとることができる。本文書の文脈では、コンピュータ利用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスにより使用されるプログラム、またはこれらに関連して使用されるプログラム、を含有、記憶、通信、伝播または移送することができる任意の媒体とすることができる。
【００１６】
コンピュータ利用可能記憶媒体またはコンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体の、システム、装置、デバイス、または伝播媒体、とすることができるがこれに限定されない。制限ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含むことができる。
【００１７】
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性の着脱可能および着脱不可能な媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用可能でありかつ命令実行なシステムによりアクセス可能である任意の他の媒体、が含まれるがこれに限定されない。なお、コンピュータ利用可能媒体またはコンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体とすることができるが、それは、プログラムを、例えば、紙または他の媒体を光学走査して電子的にキャプチャし、必要であれば、コンパイル、解釈、ないしは、適切な方法で処理し、そしてコンピュータメモリに記憶することができるからである。
【００１８】
主題をコンピュータ実行可能命令の一般的文脈で具現化する時、実施形態には、１つまたは複数のシステム、コンピュータ、または他のデバイスにより実行されるプログラムモジュールを含むことができる。一般に、プログラムモジュールには、特定のタスクを実行しまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等が含まれる。典型的には、プログラムモジュールの機能は、種々の実施形態において、所望の通りに組み合わせられまたは配布されて良い。
【００１９】
図１は、データのバックアップおよび復旧のためのシステムを示す実施形態１００の図である。実施形態１００は、バックアップインスタンスを集めることができ、また、ユーザにファイルのバージョンを求めてそれらのインスタンスを検索させ、そして復旧するバージョンを選択させることができる、システムの例である。
【００２０】
図１の図には、システムの機能コンポーネントを例示する。いくつかの場合、コンポーネントは、ハードウェアコンポーネント、ソフトウェアコンポーネント、またはハードウェアとソフトウェアの組み合わせとすることができる。あるコンポーネントはアプリケーションレベルのコンポーネントとし、一方、他のコンポーネントはオペレーティングシステムレベルのコンポーネントとすることができる。いくつかの場合、１つのコンポーネントと別のコンポーネントの接続は、２つまたはそれ以上のコンポーネントが単一のハードウェアプラットフォーム上で動作している、閉じた接続とすることができる。別の場合、接続は、長距離にわたるネットワーク通信上でなされるかもしれない。各実施形態は、異なるハードウェア、ソフトウェア、および記載の機能を実現する相互接続アーキテクチャを使用することができる。
【００２１】
実施形態１００は、バックアップ・復旧システムに存在し得るコンポーネントの簡素化した例である。システムは、ファイル、ファイルシステムの一部、またはファイルシステム全体を再形成または復旧することが可能なバックアップインスタンスを作成することができる。所望のバージョンのファイルを見つけるために、バックアップインスタンスを検索して、異なるバージョンのファイルが見つけるが、各バージョンは異なるバックアップインスタンス内に保存されている。
【００２２】
ユーザがファイルを復元したい時、ユーザはファイルについての何らかの情報を知っているであろうが、ファイルがバックアップされた正確な日付については分からないかもしれない。多くの場合、情報は、ファイル名、ディレクトリの場所、タグ、キーワード、または、複数のバックアップインスタンスからファイルを検索して場所を特定するために使用することができる他のメタデータであろう。そのような検索の結果は、ファイルのバージョンのセットとすることができる。
【００２３】
バックアップデータベースの検索で、複数のバージョンのファイルが生み出され得る。バージョンを、閲覧および選択のためにユーザインターフェース上に提示させることができる。ユーザが所望のバージョンを選択すると、そのバージョンがバックアップストレージから復旧され、ファイルが使用される場所に配置されるようにすることができる。
【００２４】
ユーザインターフェースは、ファイルの１つまたは複数のバージョンを表示することができるグラフィカルユーザインターフェースである。多くの場合、２つまたはそれ以上のバージョンを、隣り合わせに配置させて、バージョン間の違いについて２つのバージョンをユーザが検査できるようにする。
【００２５】
そのような一実施形態において、２つまたはそれ以上のバージョンを、バージョンのグラフィック表示を使用して横並びに配置させることができる。実施形態において、ユーザは、ファイルのいくつかの異なるバージョンをスクロールして所望のバージョンを選択することができる。他の実施形態では、垂直方向に配置する、または、何らかの他のプレゼンテーションを使用する、など異なる方法で、複数のバージョンを提示することができる。いくつかの場合、グラフィック表示を、不透過に表し部分的に透明に表すこともできる表示により、部分的に重ねて提示させることができる。多くの場合、ユーザがファイルの内容を点検してバージョン間の変更を識別できるように、バージョンを提示させることができる。
【００２６】
グラフィック表示は、テキスト文書のページビュー、グラフィック画像のサイズを縮小した画像、またはファイルの型に適切な何らかの他の表示、とすることができる。いくつかの場合において、グラフィック表示には、スクロール、パニング、ズーム、または他のナビゲーション機構を使用して、バージョンを検査する能力を含むことができる。多くの実施形態において、特定のファイル型についてのビューアアプリケーションを使用して、ファイルが検査される。
【００２７】
いくつかの実施形態において、分析を実行して、ファイルのバージョン数を減らしてバージョンのサブセットにすることができる。サブセットには、他のバージョンとは異なるバージョンを含むことができる。
【００２８】
ファイルのライフサイクルの例として、ユーザがファイルを作成して数日間または数週間など、ある期間保存する。ユーザは、ファイルを編集して、いくつかの変更を加え、再度ファイルを第２の期間保存する。バックアップシステムが毎日バックアップ操作を実行する場合、バックアップシステムは、ファイルの数十個のバージョンをバックアップデータベース内に持つことになり、その多くは同一であり得る。バージョンを分析することにより、変更されたバージョンのサブセットを異なるバージョンだけに減らすことができる。例において、バージョンには、ファイルが作成された時の最初のバージョン、および、ファイルの編集および変更の度に追加されるバージョンを含むことができる。
【００２９】
表示されるバージョンのサブセットは、ユーザにとって非常に有用であり、バックアップシステムが多くのバックアップインスタンスを持つような場合は、特に有用であろう。そのような実施形態において、ユーザには、異なるバージョンのファイルが提示されるだけで、数十または数百もの同一のバージョンを閲覧しなくても良いようにできる。
【００３０】
いくつかの実施形態において、バージョン間の変更は、ユーザのために強調表示させるまたは目立たせることができる。例えば、テキスト文書における変更を、削除されたテキストに取り消し線を付けて示し、追加したテキストにアンダーラインを付けて示すことにより、図解することができる。他の例には、変更された画像の部分に透明色のオーバレイを使用すること、または、スプレッドシートまたは他の文書の変更箇所を強調表示することを含むことができる。
【００３１】
バージョンのサブセットが識別されると、タイムラインユーザインターフェース機構が作成されることができる。タイムラインは、各変更されたバージョンが示されまたは強調表示される連続した時間を表すことができる。タイムラインは、いつファイルに対して変更がなされたかをグラフィックで表すことができ、また、変更されたバージョンのファイルを閲覧する時に有用である。
【００３２】
いくつかの実施形態において、タイムラインユーザインターフェースは、グラフィカルユーザインターフェースの対話型のコンポーネントとすることができ、ユーザが、表示または復旧のためのバージョンをタイムラインユーザインターフェースから直接選択できるようにする。
【００３３】
バックアップシステムは、任意のデータソースからのデータのコピーを保存することができる。典型的な実施形態において、コンピュータデバイスは、ディレクトリおよびサブディレクトリの階層を持つことができる階層ファイルシステム等のファイルシステムに保存されるようなファイルの形式で、データを保存することができる。いくつかの場合、データは、他のタイプのデータベースまたはファイルシステムに記憶させることができる。
【００３４】
本明細書および請求項を通して、検索を実行する対象のアイテムとして、ファイルが参照される。典型的な実施形態において、ファイルは、ワープロ文書、画像ファイル、または他のファイル型とすることができる。いくつかの場合、ファイルはディレクトリまたはサブディレクトリとしても良く、これらには他のファイルへの参照を含むことができる。そのような場合、サブディレクトリのバージョンを求めて、バックアップシステムが検索されることができ、かつ、サブディレクトリのバージョンを、グラフィカルユーザインターフェース上に提示されることができる。ユーザは、復元させるサブディレクトリを選択することができ、また、ディレクトリおよびその内容を復旧させることができる。本明細書および請求項を通して、検索、分析、表示、選択、または復旧を行う際に「ファイル」と言う場合はいずれも、ディレクトリ、サブディレクトリ、またはファイルシステムの他の部分にも適用される。
【００３５】
実施形態１００は、デバイス１０４のバックアップ情報を保存するために使用される保存システム１０２を有するシステムを例示する。実施形態１００は、ソフトウェアコンポーネント１０６およびハードウェアコンポーネント１０８を有することができるデバイス１０４の一般的表示である。デバイス１０４の典型的な実施形態は、従来のオペレーションシステムを使用するパーソナルコンピュータまたはサーバコンピュータとすることができる。そのようなオペレーションシステムは、種々のアプリケーションにより使用されるファイルを保存することができ、かつ、ファイルを階層的ディレクトリ構造で配置させることができる。
【００３６】
デバイス１０４は、バックアップできるデータを有する任意のタイプのコンピュータデバイスで良い。上記のパーソナルコンピュータの例に加えて、他の例には、アプリケーションデータ、連絡先データ、または他の情報が記憶されるような携帯電話を含むことができる。そのようなデータは、ディレクトリ型のファイルシステムを使用して、または他のデータベース形式で、ファイルに保存することができる。別の例には、収集されたデータをデータファイルに保存するデータ収集器具を含むことができる。さらに別の例は、サービスを他のデバイスに提供するサーバコンピュータとすることができる。
【００３７】
ハードウェアコンポーネント１０８には、種々のソフトウェアコンポーネント１０６を実行することができるプロセッサ１１０、に加えて、ランダムアクセスメモリ１１２、ある種の大容量記憶システム１１４、およびユーザインターフェース１１６、を含むことができる。
【００３８】
プロセッサ１１０は、実行すべきコマンドを記憶するランダムアクセスメモリ１１２、ならびに他のメモリオブジェクトを使用する、汎用プロセッサとすることができる。典型的な実施形態において、プロセッサ１１０とメモリ１１２との間に高速バスを使用することができる。いくつかの実施形態において、メモリ１１２は、デバイス１０４の電源が切られるとデータが消去される揮発性メモリとすることができる。
【００３９】
保存システム１１４は、ディスクドライブまたは他の大容量記憶システム等の不揮発性メモリシステムとすることができる。多くの実施形態において、ファイルシステムは、保存システム１１４上で作成および管理されうる。プロセッサ１１０上で稼働中のアプリケーションは、ファイルを作成すること、ファイル内に情報を保存すること、およびファイルを修正することができる。
【００４０】
デバイス１０４は、ユーザインターフェース１１６を有することができる。多くの実施形態において、ユーザインターフェース１１６には、グラフィック表示デバイスと共に何らかのタイプのユーザ入力デバイスも含むことができる。グラフィック表示デバイスは、モニタ、プロジェクタ、または他のデバイスとすることができる。ユーザ入力デバイスは、マウス、タッチスクリーン、スタイラスペン、トラックボール、または他のポインタ、等のポインティングデバイスとすることができる。いくつかの場合、ユーザ入力デバイスには、キーボードまたは他のボタンデバイスを含むことができる。
【００４１】
ソフトウェアコンポーネント１０６には、保存システム１１４上に保存することができるファイルシステム１１８を含むことができる。ファイルシステム１１８を使用して、保存デバイス１１４上のデータを組織化、分類、または管理することができる。
【００４２】
バックアップシステム１２０は、ファイルシステム１１８上でバックアップ操作を実行することができ、複数のバックアップインスタンス１２２を作成することができる。バックアップシステム１２０は、１時間毎、毎日、または何かこれ意外の所定の予定、等の予定に基づき、バックアップ操作を実行することができる。いくつかの場合、バックアップシステム１２０は、ユーザが選択する時はいつでも要求に応じてバックアップ操作を実行することができる。
【００４３】
異なるタイプのバックアップシステムが、異なる方法でバックアップインスタンスを作成することができる。いくつかのバックアップシステムは、完全バックアップおよび続く増分のバックアップを周期的に作成することができる。完全バックアップは、ファイルシステム１１８の完全なコピーであり、増分バックアップは最後のバックアップから変更されたファイルシステム１１８の一部である。そのようなシステムでは、最初に完全バックアップを復元し、次に増分バックアップを適用して、所望のバージョンを再形成することにより、ファイルシステムまたはファイルシステムの一部が再形成されるようにする。
【００４４】
他のバックアップシステムでは、完全バックアップおよび増分バックアップの手法を使用しないものもある。いくつかのバックアップシステムでは、例えば、操作の度に、完全バックアップを実行する。そのようなシステムは、各バックアップでファイルシステム１１８の全ての内容を保存するため、増分バックアップシステムより大きな保存スペースを消費することになるが、そのようなシステムはあまり複雑でないことがある。
【００４５】
別のタイプのバックアップシステムでは、データのブロックをバックアップすることができ、データのブロックを表すテーブルを特定のバックアップインスタンス１２２内に作成することができる。テーブルを使用して、保存システム１０２に保存されるデータのブロックを回収することにより、任意のバックアップインスタンスを再形成することができる。そのようなシステムを使用して、大量の保存スペースを消費することなく、多数のバックアップインスタンスを作成することができる。
【００４６】
任意のタイプのバックアップシステムを実施形態１００において使用することができる。いくつかの実施形態を、保存スペースの効率的な使用のために最適化することができ、一方、他の実施形態を、効率的な検索、回収、または他の機能のために最適化することができる。バックアップシステムの一般的操作の一例は、本明細書において後で提示される実施形態２００において見られる。
【００４７】
バックアップインスタンス１２２を含有する保存システム１０２は、任意のタイプの適切な保存機構で良い。いくつかの場合、テープストレージ、光ストレージ、ディスクストレージ、または他の技術を使用して、バックアップインスタンス１２２を保存することができる。いくつかの実施形態において、保存システム１０２は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続または他の接続等のインターフェースポートを介して、デバイス１０４に直接取り付けることができる。他の実施形態において、保存システム１０２は、ローカルエリアネットワークまたはインターネット等のワイドエリアネットワークを介してアクセスされるようにできる。
【００４８】
検索システム１２４は、バックアップインスタンス１２２を検索して、ファイル、ディレクトリ、またはファイルシステムの他の部分、のバージョンを見つけることができる。検索システム１２４、検索を行うための種々の基準が与えられ、ファイル、ディレクトリ、またはファイルシステムの他の部分、の複数のバージョンを返すことができ、そのそれぞれを異なるバックアップインスタンス１２２内に保存することができる。
【００４９】
例えば、特定のディレクトリに置かれ、かつ、ファイル名「ｔｐｓｒｅｐｏｒｔｓ．ｄｏｃ」を有するファイルが、検索システム１２４により検索されるとする。検索システムは、各バックアップインスタンス１２２を検査し、保存システム１０２に保存される「ｔｐｓｒｅｐｏｒｔｓ．ｄｏｃ」ファイルの各バージョンを返すことができる。数十または数百ものバックアップインスタンスが保持されるような実施形態において、検索システム１２４は、各バックアップインスタンス内のファイルのバージョンを見つけることができる。
【００５０】
検索システム１２４は、ファイルが見つけ出されるバックアップインスタンス１２２のそれぞれに対しては１つのバージョンを含む、ファイルのバージョンのセットを生成することができる。多くの場合、バックアップインスタンス１２２には、多くの同一バージョンの文書を含有し得る。例えば、ファイルシステムに保存されるが変更されていないファイルは、各バックアップインスタンスに対して同一のバージョンを有する。分析器１２６は、同一のバージョンのファイルを除去して、非同一または多少は異なるバージョンのサブセットを作成することができる。
【００５１】
表示システム１２８は、検索の結果をグラフィカルユーザインターフェース１３０上に提示することができる。異なる実施形態では、検索の結果を表示し、かつ、ユーザ入力を受け取るための異なる技術および異なる機構を有することができる。検索結果をナビゲートまたは閲覧させるために、ユーザ入力を使用することができ、また、復旧するアイテムの選択のためにユーザ入力を使用することができる。
【００５２】
多くの実施形態において、表示システム１２８は、検索結果のサブセットを提示することができ、その場合、サブセットには変更されたバージョンのファイルが含まれる。サブセットにより、ユーザは他のバージョンとは異なるバージョンのみを見ることができる。いくつかの実施形態において、ファイルのいくつかのバージョンの識別子を有する時間区分を示すタイムライングラフィック要素を、表示することができる。タイムライン要素は、いくつかの場合、ユーザがタイムラインからバージョンを選択することができる、または、タイムラインと対話することによりバージョンをスクロールまたは閲覧ことができる、対話型の要素とすることができる。
【００５３】
いくつかの実施形態では、ファイルビューアアプリケーション１２９を使用して、特定のファイル型の対話型のビューを提示することができる。そのような実施形態において、サポートされるファイル型のそれぞれがファイルビューアアプリケーションを有することができる。例えば、ワープロ文書、スプレッドシート、プレゼンテーション文書、画像編集アプリケーション、または他の文書形式、に対してファイルビューアアプリケーション１２９を提示させることができる。いくつかの場合、ファイルビューアアプリケーションにより、ユーザが、ファイルをスクロールすること、ファイルに対してズームインまたはズームアウトすること、または、他にはファイルをナビゲートすること、ができるようにする。特定のファイル型がファイルビューアアプリケーション１２９を持たない場合、汎用ファイルプレゼンテーション機構を使用してファイルのいくつかの内容を表示させることができる。
【００５４】
いくつかの場合、表示システム１２８は、ファイルに関する種々のメタデータを表示することができる。いくつかのそのような実施形態では、ファイルの内容を提示せずにメタデータを提示すること、または、ファイルの内容に加えてメタデータを提示することができる。メタデータには、バックアップインスタンス１２２内のファイルに関する情報、例えば、ディレクトリパス、バックアップ日、ファイルサイズ、ファイルの型、または他の情報、などを含むことができる。いくつかの実施形態において、メタデータには、タグ、キーワード、または、検索システムにより使用される他のパラメータまたはファイルを作成したアプリケーションもしくはファイルを使用し得るアプリケーションにより使用される他のパラメータ、を含むことができる。
【００５５】
表示システム１２８は、グラフィカルユーザインターフェース１３０を生成することができる。グラフィカルユーザインターフェース１３０は、ハードウェアユーザインターフェース１１６上に表示されるようにできる。グラフィカルユーザインターフェース１３０には、ファイルのバージョンのグラフィック表示、タイムライン機構、および種々の入力機構を含むことができる。多くの場合、他のデータを表示することもできる。グラフィカルユーザインターフェースの例については、本明細書において後に示す。
【００５６】
入力プロセッサ１３２は、表示システム１２８と連動して働き、対話型のユーザ経験を提供することができる。入力プロセッサ１３２は、ボタン選択、テキスト入力、カーソル移動およびカーソルジェスチャ、および他の入力等のユーザ入力を受け取り、表示システム１２８を介してグラフィカルユーザインターフェース１３０を更新することができる。いくつかの場合、入力プロセッサ１３２は、復元システム１３４に、ファイルのバージョンを回収させ、かつ、ファイルシステム１１８に対してファイルを復元させることができる。
【００５７】
実施形態１００は、バックアップデータベースを検索してファイルのバージョンを見つけ、検索結果を示すグラフィカルユーザインターフェースを生成かつ提示し、ファイルのバージョンを選択してファイルシステムに復元する、ために使用することができるシステムの例である。実施形態１００のコンポーネントおよびコンポーネントの配置は、記載した機能を実行するシステムの単なる一例である。他の実施形態には、実施形態１００について記載した機能のサブセットまたはスーパーセットを実行することができる異なるアーキテクチャを有することができる。
【００５８】
実施形態１００において、バックアップシステム１２０、保存システム１０２、および検索システム１２４の機能が、デバイス１０４の範囲の外にあるものとして示される。いくつかの場合、バックアップシステム１２０、保存システム１０２、および検索システム１２４は、ローカルエリアネットワーク上のサーバ等のリモートのデバイスにより、または、インターネットもしくは他のワイドエリアネットワーク接続上で利用可能なリモートサービスにより、実行することができる。
【００５９】
いくつかの実施形態において、バックアップシステム１２０、保存システム１０２および／または検索システム１２４は、デバイス１０４に組み込まれても良い。
【００６０】
いくつかの実施形態には、ファイルシステム１１８を除く全てのソフトウェアコンポーネント１０６を、ローカルエリアネットワークに対して接続されるサーバ等のリモートサービス、または、ワイドエリアネットワーク上で利用可能なリモートサービス、により実行することができる、アーキテクチャを有することができる。そのような実施形態において、リモートサービスは、例えば、ＨＴＴＰ、またはウェブブラウザまたは他のアプリケーションを使用してデバイス１０４上に表示することができる他の形式、で定義されるようなユーザインターフェースを生成することができる。
【００６１】
図２は、バックアップシステムの操作の方法を簡素化して示す実施形態２００を例示するフローチャートである。実施形態２００は、実施形態１００において説明したように、バックアップシステム１２０により実行されて、ファイルシステム１１８からバックアップインスタンス１２２を作成することができる方法の簡素化した例である。
【００６２】
他の実施形態では、異なる順番のステップ、追加のステップまたはより少ないステップ、および、異なる用語体系または専門用語、を使用して同様の機能を達成させることができる。いくつかの実施形態において、種々の操作または操作のセットが、他の操作と並行して、同期または非同期した方法で実行されて良い。ここで選択されるステップは、操作のいくつかの原理を簡素化した形式で例示するために選ばれたものである。
【００６３】
実施形態２００は、ファイルシステムのバージョンをバックアップインスタンスに周期的に保存することができるバックアップシステムの一般的な例である。ブロック２０２にてバックアップシステムを起動した後、ブロック２０４にて、バックアップインスタンスが、作成される。ブロック２０６にてファイルシステム内の各ファイルに対して向けられ、ブロック２０８にてファイルのコピーがバックアップインスタンスに記憶される。
【００６４】
多くの実施形態において、バックアップシステムは、規則的に定められた予定に基づき動作することができる。会社または他の企業において、バックアップを、例えば、毎夜または週１回実行することができる。パーソナルコンピュータでは、いくつかの場合、バックアップを数分ごとに実行することができる。
【００６５】
いくつかの実施形態では、バックアップ操作を、ユーザが起動する時またはいくつかの他の事象により、実行することができる。例えば、ユーザは、ユーザがシステムを更新する前またはシステムのメンテナンスを実行する前、等の任意の時にバックアップを起動することができる。いくつかのバックアップ操作は、例えば、特定の数のファイルを修正するなどの事象により引き起こされることがある。
【００６６】
いくつかの実施形態では、時間に応じてファイルシステムのスナップショットに基づきバックアップ操作を実行することができるようにする。そのようなシステムでは、バックアップシステムは、バックアップが開始された時点でファイルが存在していた通りに、ファイルを保存することができる。そのようなシステムは、バックアップ操作中にファイルに対する変更を追跡することができるため、ユーザは、バックアップ操作が動作中でも、継続してファイルを修正およびファイルと相互に作用することができる。
【００６７】
多くの異なる機構を使用して、バックアップ操作を実行すること、および、経時的にファイルまたはファイルシステムの複数のバージョンを作成すること、ができる。各バックアップシステムは、ファイルを回収するためおよびバックアップインスタンスを作成するための異なる機構を有することができる。
【００６８】
図３は、バックアップバージョンを提示しかつバージョンの１つを復元するための方法を示す実施形態３００を例示するフローチャートである。実施形態３００は、実施形態１００のコンポーネントのいくつかを簡素化した操作である。
【００６９】
他の実施形態では、異なる順番のステップ、追加のステップまたはより少ないステップ、および、異なる用語体系または専門用語、を使用して同様の機能を達成させることができる。いくつかの実施形態において、種々の操作または操作のセットが、他の操作と並行して、同期または非同期した方法で実行されて良い。ここで選択されるステップは、操作のいくつかの原理を簡素化した形式で例示するために選ばれたものである。
【００７０】
実施形態３００は、バックアップシステムの検索を実行し、検索結果をグラフィカルユーザインターフェース内に提示し、および、選択されたバージョンを復元する、ための簡素化された方法を例示する。実施形態３００は、ファイル識別子を使用してバックアップシステムを検索し、ファイルの複数のバージョンを返す。ファイルのバージョンを、閲覧および選択させることができる。
【００７１】
ブロック３０２にて、ファイル識別子を受け取ることができ、また、ブロック３０４にてファイルメタデータを受け取ることできる。ブロック３０６にて、ファイル識別子およびファイルメタデータを使用して、ファイルのバージョンを求めて検索を行うことができる。
【００７２】
ファイル識別子およびファイルメタデータは、バックアップデータベース内ファイルを求めて検索を行うために使用することができる任意の検索パラメータで良い。多くの場合、ファイル名およびファイルディレクトリは、ファイル識別子としての役割を果たすことができる。典型的な使用のシナリオにおいて、ユーザは、対象とするファイルが配置されているディレクトリ、およびファイル名について分かっているであろう。検索を実行して、基準を満たすファイルの各バージョンを識別することができる。いくつかの場合、ファイルディレクトリについて分かっておらず、ファイル名を単独で使用して検索を実行することができる。
【００７３】
いくつかの実施形態において、ファイル識別子の代わりに、または、ファイル識別子に加えて、メタデータを使用して検索を実行することができる。ファイル識別子の代わりにメタデータを使用する場合、基準を満たすファイルのバージョンが、検索処理から返される。ファイル識別子に加えてメタデータを使用する場合、検索では検索結果をさらに限定することができる。使用のシナリオが、ファイルのサイズが２５０ＫＢ未満の「ｔｐｓｒｅｐｏｒｔｓ．ｄｏｃ」というファイルを求めて検索するものであるとする。そのようシナリオにおいて、「ｔｐｓｒｅｐｏｒｔｓ．ｄｏｃ」の全てバージョンが、ファイルのサイズが２５０ＫＢ未満のバージョンにのみさらに限定される。
【００７４】
メタデータの他の例には、検索する日付の範囲、ファイル型、ファイルのサイズの範囲、キーワード、タグ、または他の情報、を含むことができる。いくつかの実施形態では、追加の型の検索用のメタデータを使用することができる。いくつかの場合、いくつかのメタデータパラメータが、特定の型のファイルには利用可能であるが、他の型のファイルには利用可能でないことがある。
【００７５】
いくつかの実施形態において、ファイルの内容の一部を使用して、ファイル検索を実行することができる。例えば、ワープロ文書については、ファイルの内容として含まれ得る語句または段落を使用して検索を行うことができる。いくつかのそのような実施形態において、バックアップシステムには、バックアップデータベースをより速く検索できるようにするインデックスまたは他の特徴を含むことができる。
【００７６】
シナリオを使用する際、指定のテキストを含有するファイルのバージョンを探して、検索を実行することができる。例えば、「新しいステープラ」というテキストを含む「ｔｐｓｒｅｐｏｒｔｓ．ｄｏｃ」のバージョンを求めて、検索を実行することができる。それらのバージョンは、可能性のある復旧ためにユーザインターフェース内に提示させることができる。
【００７７】
ブロック３０６にて、検索結果により、バックアップデータベース内に保存されるファイルの全てのインスタンスを返すことができる。いくつかの場合、保存されるインスタンスの多くが同一であることがあり、これは、ファイルが変更されないまま複数のバックアップ操作がなされる時に生じる。ある実施形態においては、数十または数百ものバックアップインスタンスがバックアップシステム内に保存されるため、１つのファイルの数十または数百もの同一のバージョンが返されることになる。
【００７８】
ブロック３０８にて、ファイルのバージョンを分析して、変更されたバージョンのファイルのみを含むバージョンのサブセットを識別することができる。本願において後に示す実施形態４００には、変更されたバージョンを判定するための一方法を含むことができる。
【００７９】
ブロック３０８にて作成されたバージョンのサブセットには、バックアップ操作とバックアップ操作の間に変更が生じたバージョンのみを含むことができる。数十または数百もの同一のバージョンが存在する場合、同一のバージョンを除去することにより、数百の同一のバージョンではなく変更されたバージョンのみをユーザが素早く閲覧できるようにすることができる。
【００８０】
いくつかの実施形態において、ブロック３０８の分析では、ファイルの２つのバージョンをビット単位で比較することにより、異なるバージョンを識別することができる。そのような場合、ファイルのバージョン間でのわずかな違いでも、両方のバージョンをサブセットに含むことができる。いくつかのそのような実施形態において、わずかな変更のみが検出される場合でも、多数の変更されたバージョンが識別されるようにできる。
【００８１】
他の実施形態において、閾値を使用して、いつ変更されたバージョンをバージョンのサブセットに追加するのには十分に、バージョンが以前のバージョンから異なるか、を判定することができる。例えば、分析ルーチンは、ファイルの内容を分析することができ、内容が同じ場合には、そのバージョンのメタデータが変更されている場合でも、ファイルは同一であると見なされる。別の例において、分析ルーチンは、ファイルの内容の１％、１０％または他の幾分かの量に影響する変更が実現される場合のみ、変更されたバージョンを識別できる。いくつかの実施形態において、バージョンのサブセットからのファイルを含めるまたは除外するようなファイルの変更量を識別するための閾値を、ユーザが設定することができるようにしても良い。
【００８２】
ファイルのバージョンのグラフィック表示のための準備として、ブロック３１０にて、バージョンのサブセット内の各バージョンを分析することができる。ブロック３１０における分析では、バージョン間の変更を示す強調表示またはマークアップを作成して、ユーザがバージョンを素早く閲覧でき、かつ、バージョン間の変化を識別できるようにすることができる。
【００８３】
ブロック３１０にて各バージョンに対して、ブロック３１２にて、以前のバージョンを分析して、ファイルのどの部分が異なるのかを識別することができる。ブロック３１４にて、バージョンのグラフィック表示を作成することができ、ブロック３１６にて、変更を示すマークアップまたは強調表示を作成することができる。
【００８４】
ブロック３１０の分析では、バージョン間の変更の視覚的強調表示を作成することができる。多くの異なる技術を使用して、バージョン間の変更を強調表示することができる。ワープロ文書等のテキスト文書において、強調表示またはマークアップの操作では、取り消し線や角括弧付きの削除されたテキスト、および、下線付きの追加されたテキストを示すことができる。テキスト文書の別の例において、削除されたテキストは、全く示されなくても良く、または、赤の強調表示で示すことができ、一方、追加されたテキストは、黄色の強調表示で示すことができる。
【００８５】
多くの実施形態において、部分的に透明の強調表示を使用して、変更された要素を示すことができる。例えば、写真等のグラフィック画像は、強調表示の透明色を画像の編集された部分の上に重ねて、写真に対する編集を示すことができる。
【００８６】
強調表示またはマークアップがどこに示すべきかを判定するために、ブロック３１２にて、２つのバージョン間の比較を実行することができる。いくつかの実施形態において、異なるタイプの比較アルゴリズムを、特定のファイル型に対して実行することができる。例えば、異なるプラグインまたは他のサポートアプリケーションを使用して、ワープロ文書、スプレッドシート、画像ファイル、音声ファイル、映像ファイル、または他の型のファイルを分析することができる。いくつかの実施形態において、プラグインまたはサポートアプリケーションは、バックアップシステムにインストールすることができ、また、実施形態１００において説明したように、加えてファイルビューアアプリケーション１２９の機能を実行することができる。
【００８７】
ブロック３０８にて識別されるバージョンのサブセットを使用して、ブロック３１８にてタイムラインを作成することができる。タイムラインは、時間に関して変更されたバージョンのファイルを示す時間のグラフィック表示とすることができる。グラフィックのタイムラインのいくつかの例は、本明細書において後で示す実施形態５００、６００および７００において見られる。
【００８８】
タイムラインは、ユーザにファイルの異なるバージョンを閲覧させ、かつ、種々のバージョンをナビゲートさせることができる、グラフィカルユーザインターフェースにおける対話機構で良い。多くの場合、タイムラインは、ファイルの現在のバージョンがユーザインターフェース内にグラフィックで提示されている状態で、ユーザが時間について前後にスクロールすることができるスクロールバーとしての役割を果たすことができる。
【００８９】
ブロック３２０にて、タイムラインをユーザインターフェース上に提示することができ、ブロック３２２にて、ファイルのバージョンの１つまたは複数のグラフィック表示と共に提示することができる。ブロック３２６にて、ユーザは入力を与えることができる。ブロック３２６にて、入力がバージョンの閲覧に関するコマンドである場合、ブロック３２８にてグラフィカルユーザインターフェースは更新され、処理はブロック３２０に戻るものとする。
【００９０】
グラフィカルユーザインターフェースの閲覧動作により、ユーザは、ファイルの異なるバージョンを見ながら、ファイルの異なるバージョン間をスクロールまたはナビゲートすることができる。強調表示またはマークアップの操作が使用される実施形態において、ユーザはファイルに対してなされた変更を素早く認識することができ、それにより、所望のバージョンの判定が支援される。
【００９１】
ブロック３２６にて、ユーザが復旧または復元用の所望のバージョンを選択すると、復元システムが起動され、所望のバージョンをバックアップシステムからファイルシステムにコピーすることができる。復元操作が完了した後、ユーザは、ファイルを見る、編集する、および処理することができる。
【００９２】
図４は、ファイルのバックアップバージョンを分析するための方法を示す実施形態４００を例示するフローチャートである。実施形態４００は、実施形態３００のブロック３０６の検索およびブロック３０８の分析に使用することができる分析の単なる一方法である。実施形態４００は、実施形態１００の検索システム１２４および分析器１２６により実行されるような処理の一例である。
【００９３】
他の実施形態では、異なる順番のステップ、追加のステップまたはより少ないステップ、および、異なる用語体系または専門用語、を使用して同様の機能を達成させることができる。いくつかの実施形態において、種々の操作または操作のセットが、他の操作と並行して、同期または非同期した方法で実行されて良い。ここで選択されるステップは、操作のいくつかの原理を簡素化した形式で例示するために選ばれたものである。
【００９４】
実施形態４００は、検索結果の全セットをファイルに対する変更を示すバージョンに減少させることができる一方法である。バックアップシステムからの検索結果には、各バックアップインスタンスからのファイルのバージョンを含むことができる。多くの場合、同一の多くのバージョンが存在する。実施形態４００の処理では、ファイルの異なるバージョンを含む、ファイルのバージョンのサブセットを作成する。実施形態４００の処理は、検索結果のセットから重複するバージョンを効果的に除去し、これにより、所望のバージョンの閲覧および選択をより簡単かつ簡略にすることができる。
【００９５】
実施形態４００は、検索および分析の両機能を単一のルーチンで実行する。他の実施形態では、実施形態３００のブロック３０６および３０８、ならびに、実施形態１００の検索システム１２４および分析器１２６、で説明したように、２つの機能を分離させても良い。
【００９６】
実施形態４００は、各バックアップ操作の個々のインスタンスを作成するバックアップシステムを用いて実行することができる、検索および分析の方法の一例である。いくつかのバックアップシステムは、各バックアップの個々のインスタンスを保存することができない。そこで、例えば、周期的に全部のバックアップインスタンスを、いくつかの増分のインスタンスと共に、保存しても良い。他のバックアップシステムは、異なる保存アーキテクチャまたはバックアップ機構を有することができる。このように、他のバックアップシステムが、ファイルのバージョンを検索および分析するための異なる方法を使用しても良い。
【００９７】
ブロック４０２にて、バックアップシステム内に保存されるバックアップインスタンスは、時間でソートされ、最新のファイルから開始することができる。
【００９８】
ブロック４０４にて、各バックアップインスタンスを評価することができる。ブロック４０６にて、バックアップインスタンス内のファイルを求めて検索を行うことができる。多くの場合、検索では、ファイル名およびディレクトリ等のファイル表示子、加えて種々のメタデータも使用することができる。
【００９９】
いくつかの実施形態において、検索には、最近削除されたファイルの検索を含むことができる。最近削除されたファイルは、最後のバックアップ操作以降に削除されたファイル、または、何らかの所定の時間枠内で削除されたファイルとすることができる。多くの場合、最近削除されたファイルは、バックアップシステムから復元される可能性が非常に高いファイルであろう。そのような実施形態では、削除されたファイルのリストを保持しても良く、または、以前のバックアップのファイル構造を比較して最後のバックアップ操作以降どのファイルが削除されたのかを判定しても良い。
【０１００】
ブロック４０８にてファイルが存在しない場合、ブロック４１０にてループから出ることができる。この時点で出るということは、ファイルの古いバージョンが存在しないという条件のためである。
【０１０１】
ブロック４０８にてファイルが存在する場合、ファイルを以前のバージョンと比較することができる。現在のバージョンと以前のバージョンとの間に変更が無い場合、ブロック４１６にて、現在のバージョンを無視することができる。ブロック４１６にて現在のバージョンを無視することにより、現在のバージョンをバージョンのサブセットから除外することができる。
【０１０２】
ブロック４１４にて実行される比較により、現在のバージョンと以前のバージョンとの間の任意の変更を評価することができる。いくつかの実施形態において、ビット単位の比較を使用して、１ビット程度の小さな変更を識別することができる。別の実施形態において、ハッシュ、チェックサム、巡回冗長検査、または他の分析を実行して、バージョン間の変更を識別することができる。
【０１０３】
いくつかのバージョンにおいて、閾値を使用して異なるバージョンを識別することができる。ある量の変更が閾値を超えると、新しいバージョンが識別されるか、または、２つのバージョンが同一であると見なされることになる。閾値は、多くの異なる方法で定義することができる。一方法において、閾値を、２つのバージョン間で変更される特定の数のビットまたはバイトとして定義することができる。別の方法において、変化率により閾値を定義することができる。
【０１０４】
ブロック４１４にて変更が検出される場合、ブロック４１８にて、変更されたバージョンをサブセットに追加することができる。ブロック４０４での各バックアップインスタンスの評価後、ブロック４２０にて、処理および表示するサブセットを定義することができる。
【０１０５】
図５は、復元用のファイルのバージョンを閲覧および選択するためのグラフィカルユーザインターフェースを示す実施形態５００を例示する図である。実施形態５００は、対話型ユーザインターフェースの単なる一例であり、グラフィカルユーザインターフェースがどのように見えかつ動作することができるのかを例示するために使用される。他の例には、本明細書において後で例示する実施形態６００および７００が含まれる。
【０１０６】
実施形態５００、６００および７００を選択して、グラフィカルユーザインターフェースに含まれ得るいくつかの異なる特徴、および、ファイルのバージョンを提示する種々の方法を、タイムラインの種々の構成と共に、示す。３つの実施形態のそれぞれにより、お互いが調和することではなく、特定のアイテムを実装させることができる異なる方法を単に示すことが意図される。
【０１０７】
実施形態５００、６００、および７００のユーザインターフェースは、グラフィカルユーザインターフェースを提示可能なデバイスのウィンドウに提示されるものとする。ウィンドウは、ディププレイの一部を使用することができ、また、他のアプリケーションが別のウィンドウで動作中に動作可能であるものとする。いくつかの実施形態において、ユーザインターフェースは、デバイス上で動作可能な単なるアプリケーションまたは機能とすることができ、デバイスの表示領域全体を占めても良い。
【０１０８】
実施形態５００は、一連のファイルのバージョンを部分的に重ねて示すグラフィカルユーザインターフェース５０２の一例である。選択されるバージョン５０４は、中央に置き、他のバージョンより大きく表示させることができる。古いバージョン５０４、５０６、および５０８を、新しいバージョン５１０、５１２、および５１４と共に含むことができる。
【０１０９】
種々のファイルのバージョンを、ファイルのグラフィック表示と共に図解することができる。実施形態５００の一例において、ファイル名５１６「ｔｐｓｒｅｐｏｒｔｓ．ｄｏｃ」は、ワープロ文書として図解される。バージョンの各表示では、グラフィック図解により、ファイルが配列されるようにしてファイルを示すことができる。ユーザは、ファイルを精査して、バージョン間でどの要素が追加されまたは削除されたのかを識別することができ、また、ユーザは、視覚的な表示に基づきバージョンを選択することができる。
【０１１０】
いくつかの実施形態において、ファイルビューアアプリケーションを使用して、ファイルの画像を生成し、ユーザがファイルそのものをパン、ズーム、スクロール、またはファイル内を移動、することができるようにする。いくつかの実施形態において、そのような操作は、グラフィカルユーザインターフェース５０２内で実行可能であり、一方、他の実施形態においては、ビューアアプリケーションを別個のウィンドウ内で起動することができる。
【０１１１】
種々のバージョンを配置することにより、ユーザは、種々のバージョンをクリックアンドドラッグまたはスワイプして、バージョンをスクロールすることができる。いくつかの実施形態において、ユーザは、バージョン５０６等の１つのバージョンをポイントして、そのバージョンを選択されたバージョンとすることができる。いくつかの実施形態では、ナビゲーションボタンを有して、または、キーボードコマンドに対応して、種々のバージョンをナビゲートすることができる。
【０１１２】
タイムライン５１６は、グラフィックで表示されるバージョンに連携して提示させることができる。タイムライン５１６は、変更されたバージョンに対応する日付を伴う見出語を含有することができる。実施形態５００において、強調表示されるデータ５１８は、強調表示または選択されたバージョン５０４に対応するものとする。
【０１１３】
タイムライン５１６は、ユーザがタイムラインをさらに上下にスクロールして異なるバージョンを閲覧できるようにする、スクロールボタン５２０および５２２を有することができる。
【０１１４】
タイムライン５１６は、現在選択されているバージョンの種々のメタデータを示すポップアップウィンドウとすることができるメタデータ表示５２４を有することができる。メタデータには、ファイルの作成者、ファイルが保存された正確な日時、任意のタグもしくはキーワード、ファイルサイズ、または他の情報、などの情報を含むことができる。
【０１１５】
実施形態５００では、復元ボタン５２６を有することができる。復元ボタン５２６により、選択されたバージョン５０４を、バックアップシステムからローカルなファイルシステムに復元させることができる。
【０１１６】
ボタン５２８により、ファイルの位置取りを横並びにして表すことができる。横並びにして表す例は、実施形態６００において見られ、ファイルの２つまたはそれ以上のバージョンを隣り合わせに示すことができるため、ユーザはファイル間の違いを注意深く調べることができる。
【０１１７】
ディレクトリビューボタン５３０により、変更に対するビューに、現在のファイルが保存されるディレクトリを表示させることができる。ディレクトリビューの例は実施形態７００において見られる。
【０１１８】
図６は、グラフィカルユーザインターフェースの第２の例を示す実施形態６００を例示する図である。実施形態６００は、対話型グラフィカルユーザインターフェースの単なる一例であり、グラフィカルユーザインターフェースがどのように見えかつ動作することができるのかについての例として使用される。
【０１１９】
実施形態６００は、文書を横並びにかつ強調表示した表示を提示し、この両方が、どのバージョンの文書を復旧または復元するかをユーザが識別する際の助けとなる。いくつかの実施形態では、２つのバージョン間の特定の変更を識別すること、および、マークアップ技術、強調表示、または他の機構を使用してそれらの変更を強調表示することができる分析ルーチンを採用することができる。
【０１２０】
ユーザインターフェース６０２は、文書の３つのバージョンを示すことができる。フォーカスバージョン６０４が中央に提示され、古いバージョン６０６および新しいバージョン６０８がフォーカスバージョン６０４の隣に提示される。各バージョン６０４、６０６および６０８は、それぞれバージョン日付６１２、６１４および６１６を有することができる。バージョン日付は、そのバージョンが見つかったバックアップインスタンスの日付とすることができる。
【０１２１】
一連のバージョン６０４、６０６および６０８は、ユーザが複数のバージョンをスクロールすることを可能にする対話型のデバイスとすることができる。スクロール動作は、スワイプジェスチャ、ナビゲーションボタン、または他のユーザインタラクションにより、開始することができる。多くの実施形態において、滑らかなアニメーション動作を使用して、スクリーン全体をスクロールして一連のバージョンを示すことができる。
【０１２２】
ユーザインターフェースには、ファイルに関するメタデータを含むことができる。実施形態６００は、ユーザインターフェース上に表示されるファイル名６１０を示す。いくつかの実施形態において、追加のメタデータを、ファイル名６１０と共に表示することができる。いくつかの実施形態では、カーソルまたは他の表示子がファイル表示の上に重ねられた時に現れるウィンドウ内にメタデータを表示することができる。そのような一実施形態において、ユーザは、３つのバージョンの内の１つの上にポインタを置くことにより、小さなウィンドウをメタデータと共に１、２秒程度の短い時間出現させることができる。ポインタが短い時間１箇所に留まった後、キーワード、作成者、最後の保存の日時、ファイルサイズ、または他のメタデータ等の種々のメタデータを含有するウィンドウを出現させるようにすることができる。
【０１２３】
いくつかの実施形態において、補助的な方法でカーソル選択を働かせることによりコマンドのセットにアクセスすることができる。そのような方法の一例は、マウスデバイスを補助的なボタンを使用してクリックすることであり、主要なボタンがマウスの左ボタンである場合には「右クリック」としても知られる。セットのコマンドには、選択されたファイルを復元するコマンド、選択されたファイルをビューアアプリケーションで見るコマンド、パンまたはズームを使用してファイルをナビゲートするコマンド、または他のコマンド、を含むことができる。
【０１２４】
ユーザインターフェース６０２は、タイムライン６２６を有することができる。タイムライン６２６は、時間用の表示子、および、ファイルの種々のバージョン用の表示子６２８を有することができる。各表示子６２８は、表示されているファイルの１つの変更されたバージョンを表すことができる。タイムライン６２６は、現在のフォーカスバージョン６０４を表すことができる大きな表示子６３０を有することができる。
【０１２５】
多くの実施形態において、タイムライン機構は対話型のユーザインターフェース機構で良い。タイムライン６２６は、表示子６２８の内の１つを選択することによりナビゲートされて、フォーカスバージョン６０４を変更することができる。いくつかの場合、全体のタイムラインは、スクリーンの一方または両方の側部から外れて延長させることができる。そのような場合、スクロールバー、ナビゲーションボタン、または他の機構を使用して、タイムラインの表示されていない部分を閲覧することまたはその部分にナビゲートすることができる。
【０１２６】
タイムライン６２６は線形のタイムラインとして例示され、時間を等しい区分に均等に分けている。他の実施形態において、タイムラインでは、時間区分を変更して、時間的にお互いに近いいくつかのバージョンを拡大させること、または、変更されないバージョンが存在する長い期間を折り畳むこと、などができる。
【０１２７】
いくつかの実施形態において、バックアップ保存システムは、幾何学的に増加する頻度でバックアップインスタンスを保持することができる。例えば、バックアップシステムは、毎日のバックアップを最後の２週間保持すること、また、毎週のバックアップを数カ月間保持すること、ができる。その後、バックアップは、１か月ごとに維持されるようにできる。そのような場合、バックアップインスタンスが時間的にさらに遠くなるため、タイムライン６２６は、タイムラインがより古くなるのにつれて圧縮されるタイムラインを示すことができる。そのような場合、タイムラインは、幾何学的関数または指数関数を使用して圧縮され、時間的に遠く離れた非常に古いバージョンを、時間的にお互いに近いより最近のバージョンのように物理的に近接させて示すことができる。
【０１２８】
実施形態６００では、ファイルの異なるバージョン間の変更を強調表示することができる。例えば、フォーカスバージョン６０４は強調表示されたグラフ６１８を有することができる。強調表示されたグラフ６１８は、縁取り、透明オーバレイ、色付け、または他の表示子を使用して強調表示させることができる。強調表示されたグラフ６１８は、バージョン６０６と６０４との間の相違点である。相違を強調表示させることにより、ユーザは変更を素早く検出することができ、ユーザが所望のバージョンを選択する際の助けとなることができる。
【０１２９】
別の例において、バージョン６０８は、強調表示されたグラフ６２０およびマークアップされたテキスト６２２を有することができる。削除されたテキストを取り消し線、角括弧、色付きの強調表示、または他の機構で図解すること、かつ、追加されたテキストを下線、角括弧、異なる色での強調表示、または他の機構を使用して図解すること、により、変更されたテキストを強調表示させることができる。異なる実施形態では、異なる方法でファイルのバージョンの間の変更を強調表示または示すことができる。
【０１３０】
写真、コンピュータで生成した画像、図、または他のグラフィック要素等のグラフィック要素に対する変更には、変更を表示するためのグラフィック機構および非グラフィック機構を用いることができる。 切り取った画像を表示するためのグラフィック機構の例では、古い画像を部分的にグレーまたは透明にして表示し、新しい画像をフルカラーで表示することができる。例えば、２つの画像を重ね合わせることができる。いくつかの実施形態では、古い画像を、サムネイル画像として、または、いくつかの他のグラフィック表示と共に示すことができる。切り取った画像の非グラフィック表示では、グラフィック画像に対してなされた変更がテキストのリストで提示される。切り取った画像の例には、編集された画像を、「切り取り」用の見出語など、変更についてのテキスト記述のリストと共に提示させることができる。
【０１３１】
いくつかの実施形態において、画像に対する変更は、画像の上に色付きの透明オーバレイを重ねることにより強調表示させることができる。例えば、追加の要素を有するグラフィックの図を、緑色の透明ボックスを新しく追加された要素の上に置いて提示することができる。あるバージョンから別のバージョンに修正される要素は、例えば、黄色の透明のオーバレイを用いて提示させることができる。グラフィック画像を提示させる的確な方法は、画像の型および画像を作成に使用されたソフトウェアによって変わる。
【０１３２】
実施形態６００には、ファイルの表示内の変更を切替えることができる表示変更オプション６２７を含むことができる。切替えにより、変更の強調表示と非強調表示を選択的に行うことができる。
【０１３３】
図７は、グラフィカルユーザインターフェースの一例を示す実施形態７００を例示する図である。実施形態７００は、対話型グラフィカルユーザインターフェースの単なる一例であり、グラフィカルユーザインターフェースがどのように見えかつ動作することができるのかについての例として使用される。
【０１３４】
実施形態７００は、ファイルをディレクトリとして、ファイルのバージョンを示すことができる実施形態を例示する。多くの実施形態では、階層的ディレクトリ構造内のディレクトリをファイルとして扱うことができ、ディレクトリのバージョンを求めて検索すること、および、検索結果をグラフィカルユーザインターフェース内に提示することが可能である。
【０１３５】
グラフィカルユーザインターフェース７０１は、ディレクトリの異なるバージョンを示すことができる。フォーカスバージョン７０２、古いバージョン７０６、および新しいバージョン７０８が隣り合わせに示されるようにできる。各ディレクトリを、ディレクトリ内に保存されるファイルを図解することができるサムネイル画像７１２と共に図解することができる。古いバージョン７０６には、２つのファイルを表す２つのサムネイルが示される。フォーカスバージョン７０２には、５つのサムネイル画像が示され、新しいバージョン７０４には、７つのサムネイルバージョンが示される。
【０１３６】
いくつかの実施形態において、サムネイル画像は、ディレクトリ内に含有されるファイルの実際の画像とすることができる。そのようなサムネイルは、それぞれのファイルの内容または一部の内容を図解することができる。他の実施形態において、アイコンを使用して、ファイルの実際の内容を表示せずにファイルを表すことができる。
【０１３７】
スクロールボタン７０８および７１０等のナビゲーションボタンを使用して、バージョン７０２、７０４および７０６を閲覧またはスクロールすることができる。
【０１３８】
タイムライン７１６は、実施形態５００および６００のタイムラインと同様のやり方で操作することができ、ユーザに、タイムライン内のブロックに関連するディレクトリのバージョンをスクロールまたは閲覧させることができる。バージョンが一定のタイムラインにマッピングされた実施形態６００のタイムラインとは対照的に、タイムライン７１６では、各日付を表すブロックを配置させることができる。日付７１８は、現在選択されているまたは強調表示されているディレクトリを表すことができる。日付７２４は、古いバージョン７０６を表すことができ、また、日付７２０は、新しいバージョン７０４を表すことができる。他の日付７２６および７２２は、図解されるグラフィック画像を持たないが、表示されて、ユーザがそれらの日付を選択してスクロールすること、かつ、ディレクトリの表示を見ることができるようにする。
【０１３９】
実施形態７００では、ディレクトリまたはディレクトリ内の選択されたファイルを通常の使用のためにファイルシステムに復元させることができる復元ボタン７１４を有することができる。
【０１４０】
３つの実施形態５００、６００および７００から、いくつかの異なるグラフィックのレイアウトを使用して検索結果を提示することができる。各実施形態においては、異なるタイプのグラフィックプレゼンテーションが、そこからバージョンを選択することができる異なるバージョンのタイムラインと共に例示される。例は、異なる実施形態を例示することを意味するだけであり、どのような形態にも制限することを全く意味しない。
【０１４１】
主題に関する上記の記載を、例示および説明の目的で提示してきた。包括的であることまたは開示される厳格な形式に主題を制限することは意図されず、かつ、上記の技術に照らして他の修正および変更が可能である。実施形態は、本発明の原理およびその実用的応用を最も良く説明するために選択され記載されたものであり、それにより、当業者が、本発明を、熟考される特定の使用に適合するように種々の実施形態および種々の修正において最も良く利用することが可能にされる。添付の請求項は、従来の技術により制限される場合を除いて、他の代替の実施形態を含むものと解釈されることが意図される。
【図１】
2012529116.tif 000003
【図２】
2012529116.tif 000004
【図３】
2012529116.tif 000005
【図４】
2012529116.tif 000006
【図５】
2012529116.tif 000007
【図６】
2012529116.tif 000008
【図７】
2012529116.tif 000009
【国際調査報告】
2012529116.tif 000010
2012529116.tif 000011