JP2005276223A - タイムラインベースのコンピューティング環境を使用してデータを回復するための方法、媒体、およびシステム - Google Patents

タイムラインベースのコンピューティング環境を使用してデータを回復するための方法、媒体、およびシステム Download PDF

Info

Publication number
JP2005276223A
JP2005276223A JP2005086337A JP2005086337A JP2005276223A JP 2005276223 A JP2005276223 A JP 2005276223A JP 2005086337 A JP2005086337 A JP 2005086337A JP 2005086337 A JP2005086337 A JP 2005086337A JP 2005276223 A JP2005276223 A JP 2005276223A
Authority
JP
Japan
Prior art keywords
application
computer
executable instructions
file
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005086337A
Other languages
English (en)
Other versions
JP4847709B2 (ja
Inventor
Ulfar Erlingsson
アーリングソン ウルファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005276223A publication Critical patent/JP2005276223A/ja
Application granted granted Critical
Publication of JP4847709B2 publication Critical patent/JP4847709B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

【課題】 タイムラインベースのコンピューティング環境を使用してデータを回復するための技術を改善する。
【解決手段】 それぞれの保存されたデータ項目には、メタデータでインデックスが付けられ、メタデータは、探索を行うのに使用されて、インデックスが付けられたメタデータとユーザが選択した変数の間の合致に応じてデータ項目のリストが生成される。さらに、アプリケーションが、複数のメッセージを有する通信クライアントである場合、通信クライアントにおけるメッセージがスパムであるかどうかを示すインデックスデータが保存される。次に、そのインデックスデータを使用して、スパムメッセージを含める、または除外する探索が行われる。
【選択図】 図2

Description

本発明は、一般に、コンピューティング環境におけるデータの回復に関し、より詳細には、タイムラインベースのアプローチを使用してデータおよびアプリケーション状態を使用し、アーカイブし、回復する方法に関する。
ここ数年、ユーザは、職業上の通信および個人用の通信のために非常にコンピュータに依存するようになっている。この結果、毎日、ユーザは、テキストだけに限られず、サウンド、ピクチャ、音楽、およびビデオも含む貴重な情報をコンピュータを使用して、コンピュータを介して交換している。しかし、この大量の情報がコンピュータ上に格納されていて、ユーザは、そのような大量のデータを管理するのが困難であると感じる傾向にある。さらに、情報の量と価値が長い期間のうちに増大するにつれ、データ回復がより重要となる。ますます多くの人々が、ほとんどの個人情報およびビジネス情報をコンピューティング環境において扱っているが、同時に、コンピュータおよびソフトウェアアプリケーションの脆弱性には、適切な対処がなされていない。例えば、バックアップメカニズムをまめに使用することなしには、情報は容易に失われる可能性がある。しかし、バックアップメカニズムの抱える問題は、回復のために必要な時間と労力が、通常、多大であることである。データ損失のリスクは、近年におけるワーム活動およびウイルス活動の大幅な増加によりさらに大きくなっている。
このため、オペレーティングシステムまたはアプリケーションなどの、情報を扱うソフトウェアは、情報をもはや取り出すことができない場合、使用できない状態になる可能性がある。状態とは、一般に、情報を扱うソフトウェアの現在の構成、属性、条件、または情報内容を指す。さらに、多量の情報が時間とともに蓄積する傾向にあるため、ユーザは、最終的には、もはや自分が理解できる形で情報を保存できなくなる。この結果、ユーザは、特定の所望される情報を探し出すのに困難を感じる可能性がある。その限りで、名前または時刻、および階層的分類による、すべてのファイルまたはすべての時刻のリストなどのグローバルカタログは、所望の項目を他の項目と区別する十分なコンテキスト情報を提供することができない。インデクサも同様に、この問題を解決しない。これは、1つには、ユーザがデータの視覚的レイアウトに最も親しみを感じるからである。さらに悪いことに、バックアップは、実際、この問題を悪化させる可能性がある。というのは、ユーザがバックアップを実際の情報と同一の名前空間に格納した場合、類似した名前および内容を有する多数の異なるバージョンが、時間とともに蓄積するからである。さらに、異なる変形体(variant)も同様に、同一のファイルまたはデータ項目の複数のバージョンをもたらす傾向があり、所望の情報が実際にどこにあるかに関して、全体的な混乱が増す。
時間中心のアプローチを使用してファイルをアーカイブするための1つの周知の方法は、アーカイブするためにファイルをデスクトップにドラッグすることに関わる。ファイルがもはや必要とされない場合、ユーザは、デスクトップ上のごみ箱を使用してファイルを削除することができる。ただし、ユーザは、後の時点で削除されたファイルを必要とする場合、そのファイルがデスクトップ上にあった時点を指定し、その時点からデスクトップを復元することにより、削除されたファイルを回復することができる。したがって、階層フォルダシステムを使用する代わりに、ユーザは、単にファイルをデスクトップにドラッグすることにより、ファイルをアーカイブする。
この方法の変種は、時間ベースのアプリケーション間通信に基づくシステムをさらに含む。方法は、基本的に次の3つの特徴を有する。すなわち、(1)各ソフトウェアアプリケーションは、「現在時刻」の概念を有し、(2)一方のアプリケーションの「現在時刻」が変化すると、そのアプリケーションは、他方のアプリケーションにその変化した時刻を通知し、その結果、(3)他方のアプリケーションが、その情報に従って「現在時刻」状態を変更する。以上の特徴で、時間ベースのデスクトップシステムは、デスクトップ上のドキュメントの任意の関連するアプリケーションの時刻を変更するように操作されて、ドキュメントが適切に開かれることを確実にすることが可能である。
以上2つの方法が抱える問題は、これらの方法が、既存の階層フォルダ構造に対する代替である、ユーザが自分のファイルを常に把握しておくやり方、すなわち、時間ベースのアプローチだけに関わることである。よくても、これらの方法は、削除されたファイルを引き上げる仕方、または現在時刻に基づいてファイルを容易に保存する方法を提供するに過ぎない。しかし、これらの方法は、以前の時点からアプリケーションを回復する仕方を提供せず、アプリケーション状態をアーカイブする仕方も提供しない。さらに、この方法は、ユーザに見える整合性のある保存済みファイルを有さないアプリケーション群に対処しない。このため、データをアーカイブするため、および回復するための改良された方法およびシステムの必要性が存在する。
本発明は、コンピューティング環境においてデータをアーカイブし、回復する仕方に関し、より具体的には、タイムラインベースのアプローチを使用してアプリケーション群をアーカイブすること、および回復することに関する。
本発明の諸実施形態では、アプリケーションを、そのアプリケーションの作業ファイルとともに回復する方法およびシステムが示される。詳細には、一実施形態において、アプリケーションのデータ項目が、回復のために定期的に保存され、保存されたデータ項目により、その項目が保存された時点から、アプリケーションをアプリケーションの作業ファイルとともに回復することが可能になる。その後、タイムラインベースのアーカイブの中で探索を行って、異なる時点におけるアプリケーションを回復することができる。そのような時点が指定された後、アプリケーションは、それに応じて、その指定された時点におけるアプリケーションの保存されたデータ項目を使用して回復されることが可能である。さらに、本発明の諸実施形態では、回復されたアプリケーションからのデータを、使用のために、コピーして、現時点のアプリケーションに貼り付けることができる。さらに別の実施形態では、それぞれの保存された項目に関するメタデータにインデックスが付けられることが可能であり、そのメタデータの探索が、ユーザが選択した探索変数を使用して行われることが可能である。この探索から、保存されたメタデータとユーザが選択した探索変数の間の合致に応じたデータ項目のリストが、選択のために生成されることが可能である。
アプリケーションが複数のメッセージを有する通信クライアントである、さらに別の実施形態では、通信クライアントにおけるメッセージが、求められていない電子メールまたは他の情報などの、スパムであるかどうかを示すインデックスデータが保存され、次に、このデータが、ユーザが選択した探索変数を使用する、スパムとして示されたメッセージは探索しない探索において使用されることが可能である。探索されたメッセージとユーザが選択した探索変数の間の合致に応じたメッセージのリストが、それに応じて探索から生成される。通信クライアントに関連する代替の実施形態は、メッセージがスパムであるかどうかを示すようにインデックスデータにマークを付けるように適合させられ、スパムとして示されたメッセージは、クライアントのデータ項目を回復のために保存するのに先立って削除(purge)される。
以上の様々な実施形態を介して、タイムラインベースのアプローチを使用してデータを回復する仕方を提示した。本発明は、ユーザフレンドリであり、効果的で、扱いやすい、データを回復するための改良された技術を提供する。その結果、ユーザは、以前の時点からデータを回復することができ、壊れた状態からの回復と、重要な情報の作成および使用のコンテキストにおける重要な情報の回復がともにサポートされる。タイムラインベースのアプローチは、現行のフォルダ階層よりも直観的である傾向にあるため、本発明は、データを回復するための単純で、直観的なグラフィック表現およびエンドユーザインターフェースを可能にする、理解するのが容易なパラダイムを提供する。このパラダイムをサポートするため、ユーザコンピューティング環境およびユーザコンピューティングコンテキストの継続的な自動的キャプチャが、前述した本発明の諸実施形態において実行される。
本発明のさらなる特徴および利点は、添付の図を参照して行われる、例示的な実施形態の以下の詳細な説明から明白となろう。
添付の特許請求の範囲は、本発明の特徴を詳細に記載しているが、本発明、ならびに本発明の目的および利点は、添付の図面と関連して解釈される以下の詳細な説明からよく理解することができる。
本説明は、タイムラインベースのアプローチを使用してアプリケーションを回復するための技術を開示する。具体的には、アプリケーションのデータ項目が、回復のために定期的に保存され、保存されたデータ項目を使用して、その項目が保存された時点において、アプリケーションをアプリケーションの作業ファイルとともに回復することができるようになる。この結果、時間ベースのアーカイブの中の探索が提供されて、異なる時点におけるアプリケーションが回復される。したがって、保存された情報を使用して、アプリケーションが、アプリケーションのファイルとともに、指定された時点において回復されることが可能である。このため、タイムラインベースのアプローチを使用する際、よりユーザフレンドリであり、効果的で、扱いやすい、データを回復する改良された方法およびシステムが提供されている。
本発明は、コンピューティング環境において動作することができる。本発明の実施形態では、説明するプロセスは、1つまたは複数のコンピューティングデバイスの集合の上で動作する。本発明のすべての態様、または一部の態様を実施するのに使用できる適切なコンピューティングデバイスを、図1を参照して最初に説明し、その後、本発明の特定の実施形態によるネットワーク環境をより完全に説明する。
本発明を実施するのに適した多数のコンピューティングデバイスが存在するが、いくつかの典型的なタイプのコンピューティングデバイスを、図1に関連して以下に説明する。以下の説明は、理解を容易にするために提供するものであり、本発明の範囲を限定するものではないことを理解されたい。
必須ではないが、本発明は、コンピュータによって実行される、プログラムモジュール群などの、コンピュータ実行可能命令の一般的な文脈において説明する。一般に、プログラムモジュール群には、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含め、他のコンピュータシステム構成で実施してもよいことが、当業者には認識されよう。本発明は、通信ネットワークを介してリンクされたリモート処理装置群によってタスクが実行される、分散コンピューティング環境において実施してもよい。分散コンピューティング環境では、プログラムモジュール群は、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することができる。
次に、図1を参照すると、処理装置21、システムメモリ22、ならびにシステムメモリを含む様々なシステムコンポーネントを処理装置21に結合するシステムバス23を含む、従来のコンピュータ20の形態で、汎用コンピューティングデバイスが示されている。システムバス23は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含め、いくつかのタイプのバス構造のいずれかの1つまたは複数の物理バスを含む。システムメモリは、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。始動中などに、コンピュータ20内部の要素間で情報を転送するのを助けるルーチンを含む、基本入出力システム(BIOS)26が、ROM24の中に格納される。コンピュータ20は、ハードディスク60に対して読み取りおよび書き込みを行うためのハードディスクドライブ27、リムーバブルな磁気ディスク29に対して読み取りまたは書き込みを行うための磁気ディスクドライブ28、およびCD−ROMまたは他の光媒体などの、リムーバブルな光ディスク31に対して読み取りまたは書き込みを行うための光ディスクドライブ30をさらに含む。
ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれ、ハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34でシステムバス23に接続される。ドライブ群、および関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージがコンピュータ20に提供される。本明細書で説明する典型的な環境は、ハードディスク60、リムーバブルな磁気ディスク29、およびリムーバブルな光ディスク31を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ、読み取り専用メモリ、ストレージエリアネットワークなどの、データを格納することができ、コンピュータがアクセスすることができる他のタイプのコンピュータ可読媒体も、典型的な動作環境において使用されることが可能であることが、当業者には認識されよう。オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、その他のプログラムモジュール群37、およびプログラムデータ38を含め、いくつかのプログラムモジュールが、ハードディスク60、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納されることが可能である。
ユーザは、キーボード40やポインティングデバイス42などの入力デバイス群を介して、コマンドおよび情報をコンピュータ20に入力することができる。その他の入力デバイス群(図示せず)には、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれることが可能である。以上、およびその他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインターフェース46を介して処理装置21に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)、あるいはネットワークインターフェースカードなどの、他のインターフェース群で接続してもよい。モニタ47、またはその他のタイプのディスプレイデバイスも、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。モニタに加え、コンピュータは、スピーカやプリンタなどの、図示していない他の周辺出力デバイスも含むことが可能である。
コンピュータ20は、リモートコンピュータ49のような、1つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境で動作しているか、または動作可能である。リモートコンピュータ49は、ドメインコントローラ、サーバ、ルータ、ネットワークPC、パーソナルコンピュータ、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、コンピュータ20に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶装置50だけを図1に示した。図1に示す論理接続は、ローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN)52を含む。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的である。
LANネットワーキング環境で使用される場合、コンピュータ20は、ネットワークインターフェースまたはネットワークアダプタ53を介してローカルネットワーク51に接続される。WANネットワーキング環境で使用される場合、コンピュータ20は、通常、WAN52を介して通信を確立するためのモデム54、または他の手段を含む。内部にあることも、外部にあることも可能なモデム54は、シリアルポートインターフェース46を介してシステムバス23に接続される。コンピュータ20に関連して示したプログラムモジュール群、またはプログラムモジュール群の諸部分は、リモート記憶装置が存在する場合、そのような装置の中に格納することができる。図示したネットワーク接続は、典型的であり、コンピュータ間で通信を確立する他の手段も使用できることが認められよう。
本明細書で、本発明は、一般に、特に明示しない限り、1つまたは複数のコンピュータによって実行される動作の作用および記号表現に関連して説明する。このため、時として、コンピュータによって実行されるものとして述べる、そのような作用および動作には、構造化された形態のデータを表す電気信号の、コンピュータの処理装置による操作が含まれることを理解されたい。この操作は、データを変換するか、またはコンピュータのメモリシステム内の場所にデータを保持し、これにより、当業者によってよく理解される仕方でコンピュータの動作が再構成されるか、または別の形で変更される。データが保持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有する、メモリの物理的な場所である。ただし、本発明を以上の文脈で説明するが、以下に説明する様々な作用および動作をハードウェアで実施してもよいことが当業者には認められるように、以上の文脈は、限定することを意図するものではない。以下の説明では、クライアント、ドメインコントローラ、サーバなどのコンピューティングデバイス群は、コンピュータ20および/またはリモートコンピュータ49に関して図1に関連して前述したアーキテクチャを有することも、代替として、他の任意のタイプのアーキテクチャを有することも可能である。本明細書で説明するコンピュータ動作は、コンピュータまたはコンピューティングデバイスによる、コンピュータ可読媒体からのコンピュータ実行可能命令の読み取りの後に実行される。コンピュータ可読媒体には、光媒体、磁気媒体、電気媒体、またはその他のタイプの媒体とともに、記憶媒体、伝送媒体なども含まれる。
次に、図2を参照すると、本発明は、複数のアプリケーション102、104、ならびにデータベース106を含むコンピューティング環境100において実施されることが可能である。本発明の諸実施形態では、アプリケーション102および104は、タイムライン108および110に基づく回復のために追跡される。具体的には、タイムライン108および110が、それぞれのアプリケーションA102およびアプリケーションB104に関連付けられる。アプリケーションのタイプに依存して、データベースに対するデータの保存をトリガする複数の実施形態を使用することができる。例えば、一実施形態は、アプリケーションA102において変更が存在する場合はいつでも、データベース106に対するデータ112、114、および116の保存を含むことが可能である。別の実施形態では、アプリケーションB104からのデータ118、120、および122が、事前定義された期間でデータベース106に保存されることが可能である。以上2つの実施形態のいずれも、一時的な場所にまずデータを保存し、保存されたデータがデータベース内の最新データと異なる場合、データベースを少なくとも更新することにより、実施形態のデータベース格納要件を小さくすることができる。データには、アプリケーションに関するデータが保存された時点におけるアプリケーションを回復するのに必要とされる、あらゆる情報が含まれる。このため、データには、アプリケーションの、作業ファイル、回復ファイル、一時ファイル、データベースエントリ、レジストリキー、メモリ状態、スクリーンショット、および/またはその他の事前定義されたアプリケーション状態が含まれることが可能であるが、以上には限定されない。作業ファイルは、安定したストレージの中に永久的に保存される、整合性のあるユーザファイルであり、一方、回復ファイルは、作業ファイルのバックアップファイルまたは回復可能なファイルとして、安定したストレージに一時的に、または永久的に保存されることが可能な、整合性のあるファイルである。アプリケーション群からのデータをキャプチャする以上の様々なインプリメンテーション、および保存されるデータのタイプは、コンピューティング環境のアプリケーションのタイプ、および記憶容量に依存する可能性がある。
さらに、図2に示すアプリケーション102および104のそれぞれは、インプリメンテーションのニーズおよび用法に依存して、オペレーティングシステムまたはユーザアプリケーションであることが可能である。本発明は、電子メールクライアント、メモを取るアプリケーション、または共同作業(collaboration)アプリケーションなどの、インフォメーションワーカー(information woker)アプリケーションに特に役立つが、あらゆるタイプのアプリケーションに使用することができる。実際、本発明の一実施形態は、各環境が独自の関連するタイムラインを有して、最も外側の環境が最新のオペレーティングシステムであることが可能であるようにする、入れ子にされたコンピューティング環境を作成する。このため、本発明は、ユーザアプリケーション群およびサブアプリケーション群を含むオペレーティングシステム全体に関連する、または、最も単純な場合には、オペレーティングシステムにおいて動作する単一のユーザアプリケーションに関連するデータを保存するインプリメンテーションを企図している。この場合も、これらの様々なインプリメンテーションは、ユーザのニーズおよび用法、およびシステムのタイプに大幅に依存する。
本発明の一実施形態における、アプリケーションによって生成されたデータの継続的な自動的キャプチャが、図3に示され、150で全体的に示されている。図示するとおり、アプリケーションからのデータ152、154、156、158、および160が、ユーザの使用またはアプリケーションの使用により、時間とともに変化する。図3に示したデータには、ある時点におけるアプリケーションに関連するあらゆる情報が含まれることが可能である。情報には、特定の時点におけるアプリケーションの、作業ファイル、回復ファイル、一時ファイル、データベースエントリ、レジストリキー、メモリ状態、スクリーンショット、および/またはその他の事前定義されたアプリケーション状態が含まれることが可能であるが、以上には限定されない。図示した実施形態では、以上のデータ項目の1つまたは複数に対する変更が、データベースに保存される。具体的には、デルタΔ162、Δ164、Δ166、およびΔ168で示されるデータ間の変化が、タイムライン170に基づく。デルタΔ162、Δ164、Δ166、およびΔ168に関して、変化は、ログ172上に保存される。図示したこの実施形態では、変化は、時間とともにログに継続的に、自動的に追加される。つまり、時刻iにおけるデータ152と時刻jにおけるデータ154の間の変化(すなわち、デルタΔ162)が、ログ172に追加され、時刻jにおけるデータ154と時刻kにおけるデータ156の間の変化を含むデルタΔ164が、ログ172に追加される。同様に、デルタΔ166は、時刻kにおけるデータ156と時刻lにおけるデータ158の間の変化を示し、デルタΔ168は、時刻lにおけるデータ158と時刻mにおけるデータ160の間の変化を示す。
様々な時点におけるスクリーンショットなどの、ログ172内に保存された情報を使用して、本発明は、特定の時点からのスクリーンショットを示すグラフィカルアプリケーションウィンドウを提供することができる。ユーザは、スクリーンショットを調べることにより、所望の時点を識別することができる。ユーザが所望の時点を識別すると、その時点からのアプリケーションを、ログ172内の保存された情報を使用して再現することができる。このように、ユーザは、タイムラインと対話して、異なる時点における自分の作業環境を回復することができる。
ユーザには、ポインタが異なる時点を示す、アプリケーションウィンドウグラフィック状態の表示(representation)を含むユーザインターフェースが提供されることが可能である。ユーザは、ユーザインターフェースにおけるタイムライン上でポインタを物理的に動かして、回復のための時点を選択することができる。一実施形態では、アプリケーションウィンドウグラフィック状態の低解像度の小型表示が、ユーザがタイムライン上でポインタを動かす間に使用される。ただし、ユーザが選択されたポイントでポインタを動かすのを止めると、アプリケーションウィンドウグラフィック状態は、好ましくは、基礎にある状態から、具体的には、ログ172内の保存されたデータ項目を使用して、フル解像度で再現される。記録されたタイムラインは、アプリケーションウィンドウの状態に加え、他の任意のコンテキスト情報も格納することができる。例えば、記録されたタイムラインは、各時点におけるユーザまたはコンピュータの地理的場所を追跡することができる(例えば、異なる場所における出張の際に行われた作業を迅速に識別するために)。他のコンテキスト情報には、コンピュータに接続されたデジタルカメラによって撮影されたユーザまたは環境(surroundings)のイメージ、またはユーザの作業パターン(例えば、ユーザがどれだけ、どの時間帯に、どのようなタイプの情報に対して作業しているか)が含まれることが可能である。この情報は、ユーザがタイムライン上でポインタを動かすにつれ、ユーザにグラフィックスで示されることが可能である。図示するとおり、記録されるタイムラインに含められるコンテキスト情報のタイプには、際限がなく、このため、本発明は、以上の典型的なコンテキスト情報に限定されない。したがって、他の様々なコンテキスト情報も企図され、本発明の範囲に含まれる。
さらに、本発明は、単一の直線的な時間に限定されず、代替の表示(view)を提供するように任意のフォーク(fork,forking)も許すことができる。フォークは、最初のタイムライン上、または別のフォークしたタイムライン上の所与の時点に開始点を有する代替のタイムラインの視覚的表現を作成するのに使用することができる。したがって、フォークは、特定の時点からのユーザの活動から進行する一連のアプリケーション状態である。これらのフォークは、タイムライン上にグラフィックスで表示されることが可能である。一実施例として、ユーザが異なる時点までスクロールして戻る場合、フォークのグラフィック表示がユーザに表示される。アプリケーションに対して作業が行われている場合はいつでも、タイムライン上でフォークが生成されて、アプリケーションが何らかの形で変更されたことをユーザに示すことが可能である。フォークに沿って、アプリケーションに対して行われた作業、または使用されたファイルのタイトルなどの、アプリケーションを説明するさらなる注釈を追加することができる。つまり、一実施形態では、フォークは、ユーザが所与の時点におけるアプリケーションにおいて作業するようにスクロールして戻った場合にはいつでも、自動的に作成される。
これらのフォークは、一実施形態では、一時的または揮発性であり、過去が不変であることを可能にする永久ストレージに保存されない可能性がある。しかし、フォークの代替の実施形態は、その過去の時点においてアプリケーションに行われた作業を永久的に保存することである。その過去の時点におけるアプリケーションに対する現在の変更に関する情報も、ユーザ参照のために含められることが可能である。さらに、これらの状態系列(series of states)を、ユーザが扱う代替タイムラインの永続的な視覚的イメージとしてデータベースの中に保存することもできる。フォークを使用してアプリケーションに関する様々な情報が保存されると、次に、諸時点に関連するそれらのフォークのグラフィック表示が、ユーザに表示されることが可能である。この結果、ユーザがタイムラインをスクロールしていると、より馴染みがあり、ユーザによって行われた以前の一連のアクションに従って合理化されたタイムラインが、ユーザに提示される。
ログを使用することで、異なる時点の間で情報項目を動かすことを可能にする、帯域外メッセージ受け渡し(out−of−band−message−passing)メカニズムと呼ばれる、別のメカニズムも実施することができる。このメカニズムを使用して、ユーザが、以前の時刻からの情報項目を取り出し、変更することを所望する場合、ユーザは、時刻xにおけるウィンドウグラフィック状態に移動し、選択された項目をクリップボードにコピーした後、現時点におけるアプリケーションに戻り、選択されたデータを、変更のために現在におけるアプリケーションにおいて貼り付けることができる。この結果、ユーザは、過去のデータを取り出し、その過去のデータを現在において使用することができる一方で、同時に、過去のデータの変更を完全に回避するようにデータを不変に保つことができる。そのようなメカニズムは、現行のコピーして貼り付ける(copy−and−paste)クリップボードメカニズムを使用して実施することができる。さらに、過去のデータが変更されないことを確実にするため、ユーザが過去の時点におけるアプリケーションに対して作業している場合、ユーザが「読み取り専用モード」で作業していることを、グラフィック表示がユーザに示す。また、タイムラインが、厳密に直線的である必要も、ポインタが、ユーザがポインタを方々に動かす場合に、同等に速く動く必要もない。それどころか、タイムラインは、極めて動的であり、変化の度合いやタイプ、データの量、不連続性、またはその他の作業パターンなどの、基礎にある保存された状態の手触り(tactile feel)を与えることが可能である。
別の実施形態では、データの内容、品質、条件、および/またはその他の特性を記述するデータを一般的に指すメタデータに、インデックスが付けられて、ログ172に保存されることが可能である。メタデータが生成される多数の仕方が存在する。一実施形態では、メタデータは、フォルダの中にメッセージをファイルすることなどの、事前定義されたユーザアクションの結果であることが可能である。別の実施形態では、メタデータは、関係のある重要なテキストを選択すること、イメージの内容の分析に基づいてイメージのカタログを作成すること(cataloging)、またはメッセージの事前定義された基準を特定することなど、アプリケーションのコンテキスト情報を使用することにより、自動的に生成されることも可能である。この結果、ユーザは、タイムラインベースのインターフェースを介してデータを回復することができるだけでなく、名前またはキーワードなどのメタデータを探索することにより、データを回復することもできる。このため、本発明は、断面(cross−sectional)(例えば、メタデータに基づく回復探索)回復パラダイムを、直線(例えば、タイムラインに基づく回復探索)回復パラダイムとともに企図している。
詳細には、ログ172は、好ましくは、各データ項目に関する概要およびポインタ情報を含む追加専用(append−only)ログである。概要は、構造化されていない大量の項目のなかでデータ項目を探し出すのに役立つ十分なデータを含むことが可能である。テキストの場合、インデックスベースの探索のためのテキスト内のすべての語は、データファイルの簡単な表現であることが可能であるのに対し、ポインタは、ユーザが、データ項目が位置している時点に行くことができるようにすることが可能である。通常、各データ項目の最終バージョンは、ログ172の中で表現される。ただし、所与の項目に関して多数の最終バージョンが存在する可能性がある。例えば、ユーザが戻り、さらなる変更のために古い項目を取り出す際、ログを使用して、すべてのそのような項目に対するポインタ群が保持され、それらの項目がどのように由来しているかも表されることが可能である。図示するとおり、様々なタイプの情報が、ログ172に保存されることが可能であり、保存された情報のデータ構造は、様々な形で実施されることが可能である。このため、本発明は、図示した諸実施形態に限定されず、当業者が容易に認めることができる他のインプリメンテーションも、企図され、本発明の範囲に含まれる。
次に、図4を参照すると、アプリケーションの回復情報を保存するための、本発明の実施形態によるステップを示す流れ図が示され、200で全体的に示されている。プロセスは、ステップ202で開始し、ステップ204で、アプリケーションのスクリーンショットをキャプチャする。図2および図3で説明するとおり、スクリーンショットは、ユーザが、探索中に低解像度でスクリーンショットを見ることを可能にするような形でキャプチャされ、指定の時点が選択された後、スクリーンショットではなく、ライブのアプリケーション自体が、ユーザに表示されることが可能である。
図3を参照すると、アプリケーションのスクリーンショットは、キャプチャされ、時刻iにおけるデータ152で保存されることが可能であるが、次の時刻jに、スクリーンショット全体を保存することは必要ない可能性がある。というのは、時刻jにおけるスクリーンショットに必要とされるデータの多くは、一般に、スクリーンが時刻iにおいてキャプチャされた時点で見られる可能性があるからである。このため、保存される必要がある情報は、スクリーンショットを再構築するのに必要とされる、時刻iと時刻jの間の変化、デルタΔ162である。この結果、スクリーンショットなどのデータは、コンピュータの最小限のリソースを使用することによってより効率的にキャプチャされることが可能である。
ステップ204でスクリーンショットがキャプチャされた後、ステップ205で、アプリケーションに関連するコンテキスト情報が保存される。詳細には、その時点に関係のあるコンテキスト情報が保存される。つまり、コンテキスト情報は、その時点を思い出すのにユーザに役立つ任意の情報であることが可能である。このため、前述したとおり、コンテキスト情報には、各時点におけるユーザまたはコンピュータの地理的場所、撮影されたユーザまたは環境のイメージ、ユーザの作業パターン、または妥当なキーワードが含まれることが可能である。
プロセスは、次にステップ206で、アプリケーションが、アプリケーションを終了することなしに整合性のある作業ファイルを保存するタイプであるかどうかを判定する。電子メールプログラムは、一般に、整合性のある作業ファイルを使用して、ユーザの現在の下書きが、障害が生じた場合に失われるのを防止する。アプリケーションが、終了することなしに整合性のある作業ファイルを保存するタイプである場合、プロセスは、好ましくは、ステップ208でアプリケーションを観察し、ステップ210で、アプリケーションによって保存される整合性のある作業ファイルをキャプチャし、アーカイブする。
他方、ステップ206で、アプリケーションが、終了することなしに整合性のある作業ファイルを保存することができるタイプではなかった場合、プロセスは、ステップ212で、アプリケーションが、終了することなしに整合性のある回復ファイルを作成するが、整合性のある作業ファイルを保存するのに終了しなければならないタイプであるかどうかを判定する。ワードプロセッシングプログラムは、一般に、障害が生じた場合にユーザのドキュメントが失われるのを防ぐために終了する際、整合性のある回復ファイルを保存する。また、ワードプロセッシングプログラムは、一般に、動作している最中にも整合性のある回復ファイルを保存する。アプリケーションが、ステップ212で説明したようなアプリケーションであった場合、ステップ214で、アプリケーションは、プロセスによってやはり観察されて、ステップ216で、アプリケーションによって保存される整合性のある回復ファイルがキャプチャされる。ステップ218で、アプリケーションが終了する際、キャプチャされた回復ファイルと保存された整合性のある作業ファイルの間のマッピングが作成される。
しかし、ステップ212で、アプリケーションが、終了することなしに整合性のある回復ファイルを作成するが、整合性のある作業ファイルを保存するのに終了しなければならないタイプではなかった場合、プロセスは、次にステップ220で、アプリケーションが、整合性のある作業ファイルをシステムの中に保存するために終了しなければならないタイプであるかどうかを判定する。そのようなタイプである場合、ステップ222で、アプリケーションは、フォークさせられて、アプリケーションの複製が作成されることが可能である。次にステップ224で、終了コマンドが、複製されたアプリケーションに送られることが可能である。アプリケーションは、終了する場合、整合性のある作業ファイルを保存する。この結果、プロセスは、ユーザが対話しているアプリケーションのコピーが、予期される形で動作し続けていても、ステップ226で、回復のために保存されたファイルをキャプチャすることができる。
しかし、ステップ220を再び参照すると、アプリケーションが、整合性のある作業ファイルを保存するために終了しなければならないタイプではなかった場合、プロセスは、ステップ228で、オペレーティングシステムまたは全体的なコンピューティングデバイスの状態をキャプチャするのに十分なスペースが存在するかどうかを判定する。存在しない場合、プロセスは、ステップ230で単に終了する。というのは、回復のためにアプリケーションの情報を保存する様々な選択可能なオプションが尽きたからである。しかし、状態全体をキャプチャするのに十分なスペースが存在する場合、プロセスは、ステップ232で、仮想マシンを実行することができる。アプリケーションが実行されているシステムの状態を保存するため、仮想マシンは、好ましくは、アプリケーションの実行に先立って実行され、アプリケーションが、作業(working)マシンによって作成された仮想環境のコンテキスト内で実行されることが可能であるようになる。ステップ234で、アプリケーションの前回の状態に関する必要とされるすべての情報を含む、仮想マシンの状態全体が、キャプチャされる。代替の実施形態は、オペレーティングシステムまたは全体的なコンピューティングシステムの状態全体を単にキャプチャすることである。ただし、仮想マシンの状態は、しばしば、単に仮想マシンによって作成されたいくつかのファイルを保存することによって保存することができるため、前のプロセスの方がより効率的である可能性がある。
回復システムの中にデータをアーカイブする場合の1つの大きな問題は、データを保存するのに必要とされるリソースの量である。この結果、多数のメッセージを一般に含む通信クライアントが、問題となる可能性がある。というのは、そのようなアプリケーションの状態を保存することにより、システムのディスクスペースおよびリソースに負担がかかり過ぎるきらいがあるからである。このため、プロセス中に保存される無駄な情報を少なくするメカニズムが、好ましくは、実施される。1つのそのような例が、通信クライアントにおけるスパムメッセージである。一実施形態では、スパムメッセージを保存するのを避けるため、追加のデータを有するインデックスが、各メッセージがスパムであるかどうかを示すために含められることが可能である。そのようなインプリメンテーションは、2つの異なる探索を含み、ユーザにいくらかの柔軟性を提供することが可能である。具体的には、ユーザは、データを回復する場合に、スパムインデックスデータを探索しない高速探索と、スパムインデックスデータを含むより低速の探索の間で選択を行うことができる。さらに、スパムインジケータは、インデックスデータの一部であるため、スパムである、またはスパムではないとしてメッセージにマークを付ける、またはマークを外す手段がユーザに与えられることが推奨され、あるいは最低限、自動的なユーザ既定が、アプリケーション設定に含められることが可能である。
代替の実施形態では、通信クライアントは、通信クライアントの状態が保存されるのに先立って、スパムを除去する(clean out)ように強制されることも可能である。例えば、クライアントが終了できる前に、スパムメッセージが、自動的に、または手動で削除されることが可能である。この結果、データの回復は、好ましくは、スパムメッセージが削除された直後である状態において行われる。残念なことに、無駄な情報が保存される可能性は低くなるものの、ユーザは、スパムメッセージとして誤ってラベルが付けられた貴重な情報を失うリスクを冒す。
以上、タイムラインベースのコンピューティング環境を使用してデータを回復するためのシステムおよび方法が説明されたことが認められよう。本発明の原理を適用することができる多くの可能な実施形態に鑑みて、図面に関連して本明細書で説明した諸実施形態は、単に例示的であり、本発明の範囲を限定するものと解釈されるべきでないことを認識されたい。例えば、ソフトウェアとして示した例示した諸実施形態の一部の要素は、ハードウェアとして実装してもよく、その逆も同様であること、あるいは本発明の趣旨を逸脱することなく、例示した諸実施形態の構成および詳細を変更することが可能であることが、当業者には認識されよう。さらに、例示したプロセスは、本発明の趣旨を逸脱することなく、わずかに変更し、並べ替えることも可能である。したがって、本明細書で説明する本発明は、添付の特許請求の範囲に含まれる可能性があるすべてのそのような実施形態、およびそのような実施形態の均等物を企図している。
本発明の諸実施形態のすべて、または一部を実施することができるデバイスアーキテクチャの実施例を全体的に示すブロック図である。 本発明の諸実施形態のすべて、または一部を実施することができる典型的なコンピューティング環境の全体的構造を示す概略図である。 本発明の実施形態を実施するのに使用できる、タイムラインにわたってアプリケーションによって生成されたデータの典型的な構造を示す概略図である。 アプリケーションの回復可能なデータを保存するための、本発明の実施形態によるステップを示す流れ図である。
符号の説明
図1
20 パーソナルコンピュータ
21 処理装置
22 システムメモリ
27 ハードディスクドライブ
28 磁気ディスクドライブ
30 光ドライブ
32 ハードディスクドライブインターフェース
33 磁気ディスクドライブインターフェース
34 光ディスクドライブインターフェース
35 オペレーティングシステム
36 アプリケーションプログラム
37 他のプログラムモジュール群
38 プログラムデータ
40 キーボード
42 マウス
46 シリアルポートインターフェース
47 モニタ
48 ビデオアダプタ
49 モニタ
53 ネットワークインターフェース
54 モデム

Claims (33)

  1. タイムラインベースのコンピューティング環境を使用してアプリケーションを回復する方法であって、
    回復のために前記アプリケーションのデータ項目を定期的に保存するステップであって、そこでは当該保存されたデータ項目は、前記項目が保存された時点における前記アプリケーションの回復を可能にするステップと、
    前記保存されたデータ項目の時間ベースのアーカイブを探索するステップと、
    前記アプリケーションの回復を始める時点を指定するステップと、
    当該指定された時点において保存された前記データ項目を使用して前記アプリケーションを回復するステップと
    を含むことを特徴とする方法。
  2. 前記データ項目が保存された前記時点に関係のあるコンテキスト情報を保存するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記指定された時点における前記回復されたアプリケーションのフォークを使用に関してフォークを生成するステップをさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記生成されたフォークは、前記回復されたアプリケーションの新たな使用を反映する代替のタイムラインであることを特徴とする請求項3に記載の方法。
  5. 前記保存するステップは、
    前記アプリケーションが、前記アプリケーションを終了することなしに作業ファイルを保存することができるタイプであるかどうかを判定するステップと、
    前記アプリケーションが、前記アプリケーションを終了することなしに前記作業ファイルを保存することができる前記タイプである場合、前記アプリケーションによって保存される作業ファイルに関して前記アプリケーションを観察するステップと、
    前記保存された作業ファイルをキャプチャするステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記保存するステップは、
    前記アプリケーションが、前記アプリケーションを終了することなしに回復ファイルを保存し、作業ファイルを保存するために終了することを前記アプリケーションに要求するタイプであるかどうかを判定するステップと、
    前記アプリケーションが、前記アプリケーションを終了することなしに前記回復ファイルを保存し、前記作業ファイルを保存するために終了することを前記アプリケーションに要求するタイプである場合、前記アプリケーションによって保存される作業ファイルに関して前記アプリケーションを観察するステップと、
    前記保存された回復ファイルをキャプチャするステップと、
    前記キャプチャされた回復ファイルと前記作業ファイルの間のマッピングをキャプチャするステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  7. 前記保存するステップは、
    前記アプリケーションが、作業ファイルを保存することができるには、まず終了しなければならないタイプであるかどうかを判定するステップと、
    前記アプリケーションが、前記作業ファイルを保存することができるには、まず終了しなければならないタイプである場合、前記アプリケーションの複製を作成するステップと、
    終了コマンドを前記アプリケーションの前記複製に送り、ファイル保存コマンドを開始するステップと、
    前記ファイル保存コマンドに応答して保存されたファイルをキャプチャするステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記保存するステップは、
    マシン状態をキャプチャする十分なスペースが存在するかどうかを判定するステップと、
    前記マシン状態をキャプチャする十分なスペースが存在する場合、仮想マシンを実行するステップと、
    前記仮想マシンにおいて前記アプリケーションを実行するステップと、
    前記時点における前記仮想マシンの状態をキャプチャするステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  9. 前記探索するステップは、
    それぞれの保存されたデータ項目に関するメタデータにインデックスを付けるステップと、
    前記インデックスが付けられたメタデータとユーザが選択した変数の間の合致に応じてデータ項目のリストを生成するステップと
    を含むことを特徴とする請求項1に記載の方法。
  10. 前記インデックスを付けるステップは、前記保存されたデータ項目のカタログを作成するユーザアクションまたは自動的アルゴリズムに従って前記メタデータを生成するステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記探索するステップは、
    異なる諸時点を示すタイムライン上でスクロールするステップと、
    前記スクロールするステップに応じて前記アプリケーションのグラフィック表示を変更するステップと
    を含むことを特徴とする請求項1に記載の方法。
  12. 前記スクロールするステップは、前記保存されたデータ項目についての度合い、量、またはタイプの指示を提供することを特徴とする請求項11に記載の方法。
  13. 前記アプリケーションは、複数のメッセージを有する通信クライアントである方法であって、
    前記通信クライアントにおけるメッセージがスパムであるかどうかを示すインデックスデータを保存するステップと、
    スパムとして示されない前記複数のメッセージとユーザが選択した探索変数の間の合致に応じてメッセージのリストを生成するステップとをさらに含むことを特徴とする請求項1に記載の方法。
  14. 前記アプリケーションは、複数のメッセージを有する通信クライアントである方法であって、
    前記通信クライアントにおけるメッセージがスパムであるかどうかを示すようにインデックスデータにマークを付けるステップと、
    回復のために前記アプリケーションのデータ項目を定期的に保存する前記ステップに先立って、スパムとしてマークが付けられたすべてのメッセージを削除するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  15. 前記指定された時点において回復された前記アプリケーションからデータをコピーするステップと、
    現在の時点に戻るステップと、
    前記コピーされたデータを前記現在の時点における前記アプリケーションにおいて貼り付けるステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  16. タイムラインベースのコンピューティング環境を使用してアプリケーションを回復するためのコンピュータ実行可能命令であって、
    回復のために前記アプリケーションのデータ項目を定期的に保存するステップであって、当該保存されたデータ項目は、前記項目が保存された時点における前記アプリケーションの回復を可能にするステップと、
    前記保存されたデータ項目の時間ベースのアーカイブを探索するステップと、
    前記アプリケーションの回復を始める時点を指定するステップと、
    当該指定された時点において保存された前記データ項目を使用して前記アプリケーションを回復するステップと
    を含むステップ群を実行するための命令を有することを特徴とするコンピュータ可読媒体。
  17. 前記データ項目が保存された前記時点に関係のあるコンテキスト情報を保存するためのコンピュータ実行可能命令をさらに含むことを特徴とする請求項16に記載の媒体。
  18. 前記指定された時点における前記回復されたアプリケーションのフォークを使用のために生成するためのコンピュータ実行可能命令をさらに含むことを特徴とする請求項16に記載の媒体。
  19. 前記生成されたフォークは、前記回復されたアプリケーションの新たな使用を反映する代替のタイムラインであることを特徴とする請求項18に記載の媒体。
  20. データ項目を定期的に保存するための前記コンピュータ実行可能命令は、
    前記アプリケーションが、前記アプリケーションを終了することなしに作業ファイルを保存することができるタイプであるかどうかを判定するためのコンピュータ実行可能命令と、
    前記アプリケーションが、前記アプリケーションを終了することなしに前記作業ファイルを保存することができる前記タイプである場合、前記アプリケーションによって保存される作業ファイルに関して前記アプリケーションを観察するためのコンピュータ実行可能命令と、
    前記保存された作業ファイルをキャプチャするためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  21. データ項目を定期的に保存するための前記コンピュータ実行可能命令は、
    前記アプリケーションが、前記アプリケーションを終了することなしに回復ファイルを保存し、作業ファイルを保存するために終了することを前記アプリケーションに要求するタイプであるかどうかを判定するためのコンピュータ実行可能命令と、
    前記アプリケーションが、前記アプリケーションを終了することなしに前記回復ファイルを保存し、作業ファイルを保存するために終了することを前記アプリケーションに要求するタイプである場合、前記アプリケーションによって保存される前記作業ファイルに関して前記アプリケーションを観察するためのコンピュータ実行可能命令と、
    前記保存された回復ファイルをキャプチャするためのコンピュータ実行可能命令と、
    前記キャプチャされた回復ファイルと前記作業ファイルの間のマッピングをキャプチャするためのコンピュータ実行可能命令とをさらに含むことを特徴とする請求項16に記載の媒体。
  22. データ項目を定期的に保存するための前記コンピュータ実行可能命令は、
    前記アプリケーションが、作業ファイルを保存することができるには、まず終了しなければならないタイプであるかどうかを判定するためのコンピュータ実行可能命令と、
    前記アプリケーションが、前記作業ファイルを保存することができるには、まず終了しなければならないタイプである場合、前記アプリケーションの複製を作成するためのコンピュータ実行可能命令と、
    終了コマンドを前記アプリケーションの前記複製に送り、ファイル保存コマンドを開始するためのコンピュータ実行可能命令と、
    前記ファイル保存コマンドに応答して保存されたファイルをキャプチャするためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  23. データ項目を定期的に保存するための前記コンピュータ実行可能命令は、
    マシン状態をキャプチャする十分なスペースが存在するかどうかを判定するためのコンピュータ実行可能命令と、
    前記マシン状態をキャプチャする十分なスペースが存在する場合、仮想マシンを実行するためのコンピュータ実行可能命令と、
    前記仮想マシンにおいて前記アプリケーションを実行するためのコンピュータ実行可能命令と、
    前記時点における前記仮想マシンの状態をキャプチャするためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  24. 時間ベースのアーカイブを探索するための前記コンピュータ実行可能命令は、
    それぞれの保存されたデータ項目に関するメタデータにインデックスを付けるためのコンピュータ実行可能命令と、
    前記インデックスが付けられたメタデータとユーザが選択した変数の間の合致に応じてデータ項目のリストを生成するためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  25. メタデータにインデックスを付けるための前記コンピュータ実行可能命令は、前記保存されたデータ項目のカタログを作成するユーザアクションまたは自動的アルゴリズムに従って前記メタデータを生成するためのコンピュータ実行可能命令を含むことを特徴とする請求項24に記載の媒体。
  26. 時間ベースのアーカイブを探索するための前記コンピュータ実行可能命令は、
    異なる諸時点を示すタイムライン上でスクロールするためのコンピュータ実行可能命令と、
    前記スクロールするステップに応じて前記アプリケーションのグラフィック表示を変更するためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  27. タイムライン上でスクロールするための前記コンピュータ実行可能命令は、前記保存されたデータ項目の度合い、量、またはタイプの指示を提供することを特徴とする請求項26に記載の媒体。
  28. 前記アプリケーションは、複数のメッセージを有する通信クライアントである媒体であって、
    前記通信クライアントにおけるメッセージがスパムであるかどうかを示すインデックスデータを保存するためのコンピュータ実行可能命令と、
    スパムとして示されない前記複数のメッセージとユーザが選択した探索変数の間の合致に応じてメッセージのリストを生成するためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  29. 前記アプリケーションは、複数のメッセージを有する通信クライアントである媒体であって、
    前記通信クライアントにおけるメッセージがスパムであるかどうかを示すようにインデックスデータにマークを付けるためのコンピュータ実行可能命令と、
    回復のために前記アプリケーションのデータ項目を定期的に保存する前記ステップに先立って、スパムとしてマークが付けられたすべてのメッセージを削除するためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  30. 前記指定された時点において回復された前記アプリケーションからデータをコピーするためのコンピュータ実行可能命令と、
    現在の時点に戻るためのコンピュータ実行可能命令と、
    前記コピーされたデータを前記現在の時点における前記アプリケーションにおいて貼り付けるためのコンピュータ実行可能命令と
    をさらに含むことを特徴とする請求項16に記載の媒体。
  31. ディスプレイとユーザインターフェース選択デバイスとを含む、グラフィカルユーザインターフェースを有するコンピュータシステムにおいて、タイムラインベースのコンピューティング環境を使用してアプリケーションを回復するために前記ディスプレイ上でメニューを提供し、該メニューから選択を行う方法であって、当該指定された時点において回復された前記アプリケーションからデータをコピーするステップと、
    前記アプリケーションを現在の時点に移動させるステップと、
    前記コピーされたデータを前記現在の時点における前記アプリケーションに貼り付けるステップと
    を含むことを特徴とする方法。
  32. 異なる諸時点を示すポインタを有する前記アプリケーションのウィンドウグラフィック表示を表示するステップと、
    指定された時点における前記アプリケーションを回復するステップと
    をさらに含むことを特徴とする請求項31に記載のコンピュータシステム。
  33. 前記アプリケーションの前記ウィンドウグラフィック表示は、タイムライン上におけるフォークを介して視覚的な代替のアプリケーション状態を表すことを特徴とする請求項32に記載のコンピュータシステム。
JP2005086337A 2004-03-24 2005-03-24 タイムラインベースのコンピューティング環境を使用してデータを回復するための方法、媒体、およびシステム Expired - Fee Related JP4847709B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/808,099 2004-03-24
US10/808,099 US7353241B2 (en) 2004-03-24 2004-03-24 Method, medium and system for recovering data using a timeline-based computing environment

Publications (2)

Publication Number Publication Date
JP2005276223A true JP2005276223A (ja) 2005-10-06
JP4847709B2 JP4847709B2 (ja) 2011-12-28

Family

ID=34887653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005086337A Expired - Fee Related JP4847709B2 (ja) 2004-03-24 2005-03-24 タイムラインベースのコンピューティング環境を使用してデータを回復するための方法、媒体、およびシステム

Country Status (7)

Country Link
US (1) US7353241B2 (ja)
EP (1) EP1582982B1 (ja)
JP (1) JP4847709B2 (ja)
KR (1) KR101130366B1 (ja)
CN (1) CN100462929C (ja)
AT (1) ATE397250T1 (ja)
DE (1) DE602005007088D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100770163B1 (ko) 2006-03-02 2007-10-26 엔에이치엔(주) 스팸 지수 산정 방법 및 시스템
KR100775648B1 (ko) 2006-03-03 2007-11-13 엔에이치엔(주) 스팸 지수를 이용한 스팸 리스트 관리 방법 및 시스템

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US7640454B1 (en) * 2004-06-28 2009-12-29 Symantec Operating Corporation System and method for point-in-time recovery of application resource sets
US8495023B1 (en) * 2004-09-01 2013-07-23 Symantec Operating Corporation Delta catalogs in a backup system
US7814367B1 (en) * 2004-11-12 2010-10-12 Double-Take Software Canada, Inc. Method and system for time addressable storage
JP4055769B2 (ja) * 2004-12-10 2008-03-05 ブラザー工業株式会社 設定データ伝送プログラム、設定データ伝送方法、設定データ伝送システム、および設定データ伝送装置
WO2007047346A2 (en) * 2005-10-14 2007-04-26 Symantec Operating Corporation Technique for timeline compression in a data store
US20070300179A1 (en) * 2006-06-27 2007-12-27 Observe It Ltd. User-application interaction recording
US7809688B2 (en) * 2006-08-04 2010-10-05 Apple Inc. Managing backup of content
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US7853567B2 (en) * 2006-08-04 2010-12-14 Apple Inc. Conflict resolution in recovery of electronic data
US7853566B2 (en) * 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US7809687B2 (en) * 2006-08-04 2010-10-05 Apple Inc. Searching a backup archive
US7860839B2 (en) 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US8166415B2 (en) 2006-08-04 2012-04-24 Apple Inc. User interface for backup management
US7856424B2 (en) 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US8370853B2 (en) 2006-08-04 2013-02-05 Apple Inc. Event notification management
US7606842B2 (en) * 2006-09-27 2009-10-20 Hewlett-Packard Development Company, L.P. Method of merging a clone file system with an original file system
EP1921545A3 (en) * 2006-11-07 2013-09-04 Magix Ag Application-Specific Intelligent Backup and Restore System
US8725965B2 (en) 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
EP2372553B1 (en) 2007-06-08 2013-01-30 Apple Inc. Application-based backup-restore of electronic information
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8010900B2 (en) * 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8468136B2 (en) 2007-06-08 2013-06-18 Apple Inc. Efficient data backup
US8429425B2 (en) 2007-06-08 2013-04-23 Apple Inc. Electronic backup and restoration of encrypted data
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8745523B2 (en) * 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
DK200801750A (en) * 2008-03-04 2009-09-05 Konus Group Aps Computer system with selective installation of an operating system
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
KR101523979B1 (ko) * 2008-10-02 2015-05-29 삼성전자주식회사 휴대 단말기 및 그 휴대 단말기에서 기능 수행 방법
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
KR101615646B1 (ko) * 2009-08-25 2016-04-27 삼성전자 주식회사 컴퓨터시스템, 그 제어방법과, 그 컴퓨터프로그램이 저장된 기록매체
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US8983870B2 (en) 2010-08-18 2015-03-17 Snap-On Incorporated Apparatus and method for managing software applications using partitioned data storage devices
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
CN102662798A (zh) * 2012-04-12 2012-09-12 青岛海信移动通信技术股份有限公司 一种android系统恢复数据的方法及终端
KR101678561B1 (ko) * 2013-10-18 2016-11-22 주식회사 아신아이 변경정보 유지 및 선택 기능을 구비한 정보통신장치 복원방법
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
US9167047B1 (en) 2014-09-24 2015-10-20 Oracle International Corporation System and method for using policies to support session recording for user account management in a computing environment
US9185175B1 (en) 2014-09-24 2015-11-10 Oracle International Corporation System and method for optimizing visual session recording for user account management in a computing environment
US9166897B1 (en) 2014-09-24 2015-10-20 Oracle International Corporation System and method for supporting dynamic offloading of video processing for user account management in a computing environment
US9148454B1 (en) 2014-09-24 2015-09-29 Oracle International Corporation System and method for supporting video processing load balancing for user account management in a computing environment
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US10078440B2 (en) * 2015-03-25 2018-09-18 Ebay Inc. Media discovery and content storage within and across devices
CN106469087B (zh) * 2015-08-19 2020-06-05 阿里巴巴集团控股有限公司 元数据输出方法、客户端和元数据服务器
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10810088B1 (en) * 2016-05-13 2020-10-20 NortonLifeLock Inc. System and method of dynamic backup policy generation
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031660A (ja) * 1996-05-17 1998-02-03 Fuji Xerox Co Ltd 情報処理装置
JP2000267912A (ja) * 1999-03-15 2000-09-29 Fuji Xerox Co Ltd ファイル管理装置及び記録媒体
JP2003058534A (ja) * 2001-08-09 2003-02-28 Casio Comput Co Ltd データ処理装置およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5713024A (en) 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US6084935A (en) * 1998-08-13 2000-07-04 Microchip Technology Incorporated Binary counter and method for counting to extend lifetime of storage cells
US6725241B1 (en) * 1999-03-31 2004-04-20 International Business Machines Corporation Method and apparatus for freeing memory in a data processing system
EP1194850A1 (en) 1999-06-30 2002-04-10 Microsoft Corporation System and method for protecting shared system files
CA2402933C (en) * 2000-03-22 2012-01-10 Robert Bradshaw Method of and apparatus for recovery of in-progress changes made in a software application
US20030220949A1 (en) 2002-01-22 2003-11-27 Columbia Data Products, Inc. Automatic deletion in data storage management
US7475098B2 (en) 2002-03-19 2009-01-06 Network Appliance, Inc. System and method for managing a plurality of snapshots
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031660A (ja) * 1996-05-17 1998-02-03 Fuji Xerox Co Ltd 情報処理装置
JP2000267912A (ja) * 1999-03-15 2000-09-29 Fuji Xerox Co Ltd ファイル管理装置及び記録媒体
JP2003058534A (ja) * 2001-08-09 2003-02-28 Casio Comput Co Ltd データ処理装置およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100770163B1 (ko) 2006-03-02 2007-10-26 엔에이치엔(주) 스팸 지수 산정 방법 및 시스템
KR100775648B1 (ko) 2006-03-03 2007-11-13 엔에이치엔(주) 스팸 지수를 이용한 스팸 리스트 관리 방법 및 시스템

Also Published As

Publication number Publication date
KR20060044692A (ko) 2006-05-16
EP1582982A2 (en) 2005-10-05
US7353241B2 (en) 2008-04-01
CN100462929C (zh) 2009-02-18
CN1677356A (zh) 2005-10-05
ATE397250T1 (de) 2008-06-15
EP1582982B1 (en) 2008-05-28
US20050216527A1 (en) 2005-09-29
JP4847709B2 (ja) 2011-12-28
KR101130366B1 (ko) 2012-03-27
DE602005007088D1 (de) 2008-07-10
EP1582982A3 (en) 2006-09-06

Similar Documents

Publication Publication Date Title
JP4847709B2 (ja) タイムラインベースのコンピューティング環境を使用してデータを回復するための方法、媒体、およびシステム
KR100984400B1 (ko) 공통 요소에 기초하여 아이템들을 필터링하고 편성하기위한 시스템 및 방법
KR100991027B1 (ko) 파일 시스템 셸
JP4795945B2 (ja) コンピュータオブジェクトに対するアクセス制御用ユーザインタフェース
US9542423B2 (en) Backup user interface
JP4336522B2 (ja) 仮想アドレスバーのユーザインタフェースコントロール
JP4239090B2 (ja) ファイル管理プログラム
US20010028368A1 (en) System and method for iconic software environment management
US7454414B2 (en) Automatic data retrieval system based on context-traversal history
US9588644B2 (en) Time-based organization of desktop items
JP2010033606A (ja) 様々なタイプおよび様々な物理位置からのアイテムを表示するためのファイルシステム
US9824159B2 (en) Assigning labels to desktop items
JP2013239058A (ja) 情報処理装置、方法及びプログラム
US9286299B2 (en) Backup of data items
JP2009015659A (ja) ファイル監視装置およびファイル監視プログラム
JP4952119B2 (ja) ファイルサーバを用いたコンテンツ管理システムと方法およびプログラム
JP2013175132A (ja) 文書管理サーバ装置、文書管理装置、文書管理システム、及び文書管理プログラム
JP7024330B2 (ja) 情報処理装置及びプログラム
JP2007109115A (ja) 期限切れオブジェクトの処理プログラム、期限切れオブジェクトの処理システムおよび期限切れオブジェクトの処理方法
JP7302146B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP7119340B2 (ja) 情報処理装置及びプログラム
JP7192206B2 (ja) 情報処理装置及びプログラム
JP4471098B2 (ja) インタフェース装置、インタフェース方法、インタフェースプログラム及び記録媒体
Benson Keeping Lightroom Running Smoothly

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111007

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111014

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4847709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees