IP Library Granted Patent US 7,353,241
Granted Patent B2
US 7,353,241 · App. 10/808,099 · Granted Apr 1, 2008

Method, medium and system for recovering data using a timeline-based computing environment

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,353,241
App. No.
10/808,099
Granted
Apr 1, 2008
Kind
B2
Abstract

The present description discloses a technique for recovering data using a timeline-based computing environment. Data items of the application are periodically saved for recovery such that the saved data items can be used to recover the application at a point in time when the items are saved. As a result, a search through a time-based computing environment is provided to recover the application at different points in time. The application with the saved data items can then be recovered at a designated point in time. Each saved data item can also be indexed with metadata, which are used to conduct a search to generate a list of data items according to a match between the indexed metadata and a user selected variable. Moreover, when the application is a communication client having multiple messages, an index data to indicate whether a message in the communication client is spam is saved. Using this index data, a search that includes or excludes the spam messages can then be conducted. Thus, using a timeline-based computing environment, an improved method and system of recovering data that is more user friendly, effective, and manageable is thus provided.

Claims (48)

1. A method of recovering an application using a timeline-based computing environment, the method comprising the steps of:

periodically saving data items of the application for recovery, wherein the saved data items allow the recovery of the application at a point in time when the items were saved;

searching a time-based archive of the saved data items;

designating a point in time from which to recover the application;

displaying saved data items that were saved at the designated point in time and recovering the application using the data items saved at the displayed designated point in time;

wherein periodically saving data items further comprises the steps of:

making a first determination of whether the application is of a type that saves a consistent working file without receiving a quit request;

observing the application and capturing the consistent working file when the first determination is true;

when the first determination is not true, making a second determination of whether the application is of a type that saves a consistent recovery file without receiving a quit request but must receive a quit request in order to save a consistent working file;

when the second determination is true, observing the application for any recovery file that is saved and capturing the saved recovery file;

capturing a mapping between the captured recovery file and the consistent working file;

when the second determination is not true, making a third determination of whether the application must receive a quit request before saving a consistent working file;

when the third determination is true, creating a clone of the application;

sending a quit command to the clone of the application to initiate a save file command;

capturing any saved files responsive to the save file command;

when the third determination is not true, running a virtual machine;

executing the application in the virtual machine; and

capturing the state of the virtual machine at the point in time.

2. The method according to claim 1 further comprising the step of saving contextual information relevant to the point in time when the data items are saved.

3. The method according to claim 1 further comprising the step of generating a fork of the recovered application at the designated point for usage.

4. The method according to claim 3 wherein the generated fork is an alternative timeline reflecting new usage of the recovered application.

5. The method according to claim 1 further comprising the steps of:

copying data from the application recovered at the designated point in time;

returning to a current point in time; and

pasting the copied data in the application in the current point in time.

6. A computer-readable medium having thereon computer-executable instructions for recovering an application using a timeline-based computing environment, the instructions for performing steps comprising:

periodically saving data items of the application for recovery, wherein the saved data items allow the recovery of the application at a point in time when the items were saved;

searching a time-based archive of the saved data items;

designating a point in time from which to recover the application;

displaying saved data items that were saved at the designated point in time and recovering the application using the data items saved at the displayed designated point in time;

wherein periodically saving data items further comprises the steps of:

making a first determination of whether the application is of a type that saves a consistent working file without receiving a quit request;

observing the application and capturing the consistent working file when the first determination is true;

when the first determination is not true, making a second determination of whether the application is of a type that saves a consistent recovery file without receiving a quit request but must receive a quit request in order to save a consistent working file;

when the second determination is true, observing the application for any recovery file that is saved and capturing the saved recovery file;

capturing a mapping between the captured recovery file and the consistent working file;

when the second determination is not true, making a third determination of whether the application must receive a quit request before saving a consistent working file;

when the third determination is true, creating a clone of the application; sending a quit command to the clone of the application to initiate a save file command;

capturing any saved files responsive to the save file command;

when the third determination is not true, running a virtual machine;

executing the application in the virtual machine; and

capturing the state of the virtual machine at the point in time.

7. The medium according to claim 6 further comprising computer-executable instructions for saving contextual information relevant to the point in time when the data items are saved.

8. The medium according to claim 6 further comprising computer-executable instructions for generating a fork of the recovered application at the designated point for usage.

9. The medium according to claim 8 wherein the generated fork is an alternative timeline reflecting new usage of the recovered application.

10. The medium according to claim 6 further comprises computer-executable instructions for:

copying data from the application recovered at the designated point in time; returning to a current point in time; and

pasting the copied data in the application in the current point in time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2004
From: ERLINGSSON, ULFAR
To: MICROSOFT CORPORATION
Reel/Frame 015132/0628 →
Continuity (1)
Related Publication 20050216527A1 · Sep 29, 2005