IP Library Granted Patent US 10,649,864
Granted Patent B1
US 10,649,864 · App. 15/474,779 · Granted May 12, 2020

Framework to facilitate taking snapshots of web application on demand

Inventors: Mirang Dipak Parikh (Pune, IN); Rashmi Vijayvargiya (Pune, IN)
Assignee: Veritas Technologies LLC
G06F11/1471G06F11/1474G06F2201/80G06F2201/805G06F2201/82
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 10,649,864
App. No.
15/474,779
Granted
May 12, 2020
Kind
B1
Abstract

Various systems and methods are provided for capturing and storing state information and other data being used by a web application. For example, one method involves capturing the data and state information from a web application either on demand, on schedule, or on the occurrence of an event; storing the captured information in a persistent memory; subsequent to a closing of the web application, receiving an indication that the web application has been re-opened; presenting one or more options to a user, whereby the user can select a previous version to which the web application should be restored; and using the captured information to restore the web application data and user interface to a state indicated by the selected version.

Claims (83)

1. A method, comprising:

capturing user data and corresponding user interface state information from a current page of a web application after the current page was loaded on a client computer, wherein

the capturing is performed by a process executing on the client computer, wherein

the capturing is performed by the process in response to detecting either a change being made to the user data or in response to detecting a change with respect to a state of the user interface,

the capturing is performed after the current page was loaded and prior to submitting the user data or the corresponding user interface state information to a server, and

the capturing results in captured user data and captured corresponding user interface state information;

storing the captured user data and the captured corresponding user interface state information in a persistent memory on the client computer;

receiving a command to restore the web application to a previous state;

subsequent to receiving the command to restore the web application to the previous state, displaying a list of one or more available snapshot versions;

subsequent to displaying the list to a user, receiving a selection of a snapshot version;

determining a selected version of captured user data and corresponding user state information to use in restoring the web application to the previous state, wherein

the selected version of the captured user data and corresponding user state information is determined based, at least in part, on the selection of the snapshot version; and

subsequent to determining the selected version of the captured user data and the captured corresponding user state information to use in restoring the web application to the previous state, restoring the web application to the previous state by using the selected version of the captured user data and the captured corresponding user interface state information to restore the user data and the user interface state information in the current page of the web application.

2. The method of claim 1 , wherein

the corresponding user interface state information comprises preprocessing state information and observer object information.

3. The method of claim 2 , wherein

the capturing is performed in response to an occurrence of a pre-determined event.

4. The method of claim 2 , wherein

prior to the storing, the captured user data, the preprocessing state information, and the observer object information are transmitted to the server as a snapshot, wherein the server is configured to store the snapshot.

5. The method of claim 2 , further comprising

determining a selected version of the preprocessing state information and the observer object information to use in the restoring, wherein

the selected version of the preprocessing state information and the observer object information is determined based, at least in part, on the selection of the snapshot version.

6. The method of claim 1 , further comprising:

prior to the capturing, determining one or more user preferences that govern the capturing.

7. The method of claim 2 , further comprising:

prior to the capturing, registering one or more observer objects with the server.

8. The method of claim 2 , wherein the restoring further comprises:

first using the captured user data to restore the user data in the web application,

next using the preprocessing state information to restore one or more preprocessing methods, and

finally using the observer object information to restore one or more observer object properties.

9. The method of claim 1 , further comprising:

subsequent to the restoring, resolving one or more data consistency errors.

10. A system comprising:

a microprocessor; and

a non-transient computer-readable storage medium, comprising computer instructions executable by the microprocessor, wherein the computer instructions are configured to perform a method comprising the steps of:

capturing user data and corresponding user interface state information from a current page of a web application after the current page was loaded on a client computer, wherein

the capturing is performed by a process executing on the client computer, wherein

the capturing is performed by the process in response to detecting either a change being made to the user data or in response to detecting a change with respect to a state of the user interface,

the capturing is performed after the current page was loaded and prior to submitting the user data or the corresponding user interface state information to a server, and

the capturing results in captured user data and captured corresponding user interface state information;

storing the captured user data and the captured corresponding user interface state information in a persistent memory on the client computer;

receiving a command to restore the web application to a previous state;

subsequent to receiving the command to restore the web application to the previous state, displaying a list of one or more available snapshot versions;

subsequent to displaying the list to a user, receiving a selection of a snapshot version;

determining a selected version of captured user data and corresponding user state information to use in restoring the web application to the previous state, wherein

the selected version of the captured user data and corresponding user state information is determined based, at least in part, on the selection of the snapshot version; and

subsequent to determining the selected version of the captured user data and the captured corresponding user state information to use in restoring the web application to the previous state, restoring the web application to the previous state by using the selected version of the captured user data and the captured corresponding user interface state information to restore the user data and the user interface state information in the current page of the web application.

11. The system of claim 10 , wherein

the corresponding user interface state information comprises preprocessing state information and observer object information.

12. The system of claim 11 , wherein

the capturing is performed in response to an occurrence of a pre-determined event.

13. The system of claim 11 , wherein the method further comprises:

determining a selected version of the preprocessing state information and the observer object information to use in the restoring, wherein

the selected version of the preprocessing state information and the observer object information is determined based, at least in part, on the selection of the snapshot version.

14. The system of claim 11 , wherein the method further comprises:

prior to the capturing, registering one or more observer objects with the server.

15. The method of claim 11 , wherein the restoring further comprises:

first using the captured user data to restore the user data in the web application,

next using the preprocessing state information to restore one or more preprocessing methods, and

finally using the observer object information to restore one or more observer object properties.

16. The method of claim 10 , wherein the method further comprises:

subsequent to the restoring, resolving one or more data consistency errors.

17. A computer program product, comprising a plurality of instructions stored on a non-transient computer-readable storage medium, wherein the instructions are configured to execute a method comprising the steps of:

capturing user data and corresponding user interface state information from a current page of a web application after the current page was loaded on a client computer, wherein

the capturing is performed by a process executing on the client computer, wherein

the capturing is performed by the process in response to detecting either a change being made to the user data or in response to detecting a change with respect to a state of the user interface,

the capturing is performed after the current page was loaded and prior to submitting the user data or the corresponding user interface state information to a server, and

the capturing results in captured user data and captured corresponding user interface state information;

storing the captured user data and the captured corresponding user interface state information in a persistent memory on the client computer;

receiving a command to restore the web application to a previous state;

subsequent to receiving the command to restore the web application to the previous state, displaying a list of one or more available snapshot versions;

subsequent to displaying the list to a user, receiving a selection of a snapshot version;

determining a selected version of captured user data and corresponding user state information to use in restoring the web application to a previous state, wherein

the selected version of the captured user data and corresponding user state information is determined based, at least in part, on the selection of the snapshot version; and

subsequent to determining the selected version of the captured user data and the captured corresponding user state information to use in restoring the web application to a previous state, restoring the web application to the previous state by using the selected version of the captured user data and the captured corresponding user interface state information to restore the user data and the user interface state information in the current page of the web application.

18. The computer program product of claim 17 , wherein

the corresponding user interface state information comprises preprocessing state information and observer object information.

19. The computer program product of claim 18 , wherein

the capturing is performed in response to an occurrence of a pre-determined event.

20. The method of claim 19 , wherein the restoring further comprises:

first using the captured user data to restore the user data in the web application,

next using the preprocessing state information to restore one or more preprocessing methods, and

finally using the observer object information to restore one or more observer object properties.

Assignments (13)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0931 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: PARIKH, MIRANG DIPAK; VIJAYVARGIYA, RASHMI
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041804/0316 →