IP Library › Granted Patent US 9,552,366
Granted Patent B2
US 9,552,366 · App. 14/830,617 · Granted Jan 24, 2017

Automated data synchronization

Inventors: Deepak Suryanarayanan (Seattle, WA); Eugene Michael Farrell (Sammamish, WA); Vivek Lakshmanan (Seattle, WA); David Everard Brown (Cape Town, ZA)
Assignee: Amazon Technologies, Inc.
G06F17/30174G06F11/3419G06F11/3495H04L41/50H04L43/08H04L67/141G06F11/3442G06F2201/81G06F2201/875H04L67/101
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 9,552,366
App. No.
14/830,617
Granted
Jan 24, 2017
Kind
B2
Abstract

Systems and methods are presented for storing and updating data. The metadata associated with a user computing device may be used to determine whether the user computing device is configured to maintain a synchronized copy of the file. Moreover, a user computing device may be authorized to modify a file through a virtual desktop instance on a PES. If a user computing device is authorized to synchronize the file, the file may be accessible locally without a network connection.

Claims (67)

1. A method for updating files, the method comprising:

under control of a Program Execution Service (PES) that includes a plurality of physical computing systems configurable to execute one or more virtual desktop instances, each virtual desktop instance associated with a computing environment that includes an operating system configurable to execute one or more applications, each virtual desktop instance accessible by a computing device of a user of the PES via a network:

storing a file at the PES, the file created by an application at a virtual desktop instance provided by the PES, the file comprising user data generated based at least in part on user interaction with the application;

forming a connection between the PES and a first computing device of a user, the first computing device remote from the PES;

receiving from the first computing device a request to access the file from the PES;

providing the first computing device with a copy of the file, wherein the copy of the file is stored locally on the first computing device and is accessible by the first computing device without the connection between the PES and the first computing device; and

synchronizing, using the connection, the copy of the file with the file stored at the PES, wherein the synchronizing includes updating the filed stored at the PES to reflect modifications to the copy of the file after reestablishment of an interrupted connection.

2. The method of claim 1 , further comprising comparing a plurality of versions of the file stored at the PES and presenting the difference between the plurality of versions of the file.

3. The method of claim 1 , further comprising determining whether the file is to be synchronized with the first computing device prior to synchronizing the copy of the file with the file stored at the PES.

4. The method of claim 3 , wherein determining whether the file is to be synchronized is based at least in part on metadata associated with the file, the metadata indicating whether the file is to be synchronized with one or more computing devices.

5. The method of claim 1 , wherein the method further comprises:

forming a connection between the PES and a second computing device;

receiving from the second computing device a request to access the file on the PES; and

synchronizing a second copy of the file provided to the second computing device with the file stored at the PES using the connection between the PES and the second computing device.

6. A system for updating files, the system comprising:

a Program Execution Service (PES) that includes a plurality of physical computing systems configurable to execute one or more virtual desktop instances, each virtual desktop instance associated with a computing environment that includes an operating system configurable to execute one or more applications, each virtual desktop instance accessible by a computing device of a user of the PES via a network, the PES configured to store a file at the PES, the file created by an application at a virtual desktop instance provided by the PES, the file comprising user data generated based at least in part on user interaction with the application, the PES further programmed to:

establish a connection between the PES and a first computing device;

receive a request from the first computing device to access the file at the PES;

provide the first computing device with a copy of the file to be stored locally by the first computing device;

while the PES and the first computing device are connected, synchronize the file stored at the PES with the copy of the file stored locally by the first computing device;

after loss of the connection between the PES and the first computing device, reestablish the connection between the PES and the first computing device; and

after reestablishment of the connection, update the file at the PES to reflect modifications to the copy of the file that occurred on the first computing device after the connection was lost.

7. The system of claim 6 , wherein the PES is further programmed to determine whether the file is allowed to be synchronized with the first computing device.

8. The system of claim 6 , wherein the PES is further programmed to:

maintain a plurality of versions of a file at the PES;

receive, from the first computing device, a selection of one of the plurality of versions of the file; and

synchronize the selected version of the file.

9. The system of claim 8 , wherein the PES is further programmed to present a difference between the plurality of versions of the file.

10. The system of claim 6 , wherein the PES is further programmed to:

establish a second connection between the PES and a second computing device;

receive from the second computing device a request to access the file on the PES; and

determine whether the file is allowed to be synchronized with the second computing device; and

synchronize a second copy of the file provided to the second computing device with the file stored at the PES using the second connection between the PES and the second computing device.

11. The system of claim 6 , wherein the PES is further programmed to:

determine whether the file is prohibited from being stored on the first computing device; and

in response to the determination, synchronize the file on the PES but not on the first computing device.

12. The system of claim 6 , wherein the PES is further programmed to:

determine whether the file is prohibited from being edited using an application on the first computing device; and

in response to the determination, refuse to synchronize the file on the PES with the edited filed on the first computing device.

13. The system of claim 12 , wherein the PES is further programmed to:

determine whether the file is allowed to be edited using a virtual desktop instance executed by the PES; and

in response to the determination, synchronize the file on the PES with the file edited using the virtual desktop instance executed by the PES.

14. Non-transitory physical computer storage comprising computer-executable instructions that direct a computing system to perform a method for updating files, the method comprising:

hosting a file at a Program Execution Service (PES) that includes a plurality of physical computing systems configurable to execute one or more virtual desktop instances, each virtual desktop instance associated with a computing environment that includes an operating system configurable to execute one or more applications, each virtual desktop instance accessible by a computing device of a user of the PES via a network, the file created by accessing an application at a virtual desktop instance provided by the PES, the file comprising user data generated based at least in part on user interaction with the application;

forming a connection between the PES and a first computing device of a user, the first computing device remote from the PES;

determining file access permissions for a file requested by the first computing device;

in response to determining that the file is permitted to be accessed by the first computing device:

providing the first computing device with a copy of the file, the copy of the file stored locally on the first computing device and accessible without the connection between the PES and the first computing device;

synchronizing, via the connection, the copy of the file and the file stored at the PES, wherein the file at the PES is updated to reflect modifications to the copy of the file after reestablishment of an interruption to the connection.

15. The non-transitory physical computer storage of claim 14 , wherein forming a connection comprises forming a connection between the PES and the first computing device.

16. The non-transitory physical computer storage of claim 14 , wherein the method further comprises:

maintaining a plurality of versions of a file on the PES; and

offering the user a choice among the plurality of versions of the file.

17. The non-transitory physical computer storage of claim 16 , wherein the method further comprises:

comparing the plurality of versions of the file on the PES; and

presenting differences between the plurality of versions of the file.

18. The non-transitory physical computer storage of claim 16 , wherein the method further comprises:

accepting user input regarding a selection of one of the plurality of versions of the file for synchronization; and

synchronizing the selected version.

19. The non-transitory physical computer storage of claim 14 , wherein the method further comprises:

forming a second connection between the PES and a second computing device;

determining file access permissions for a file requested by the second computing device;

in response to determining that the file is permitted to be accessed by the second computing device:

synchronizing, via the second connection, a second copy of the file provided to the second computing device with the file stored at the PES file, the second copy of the file stored locally on the second computing device and accessible without the second connection between the PES and the second computing device.

20. The non-transitory physical computer storage of claim 14 , wherein the method further comprises:

determining, based at least in part on the file access permissions, whether the file is prohibited from being stored on the first computing device; and

in response to the determining, synchronizing the file on the PES but not on the first computing device.

Continuity (2)
Continuation 13794515 · Mar 11, 2013
Related Publication 20150356113A1 · Dec 10, 2015