US9563413B2ActiveUtilityA1

Configurable application state synchronization

96
Assignee: NEXTBIT SYSTEMS INCPriority: Mar 21, 2013Filed: Mar 21, 2014Granted: Feb 7, 2017
Est. expiryMar 21, 2033(~6.7 yrs left)· nominal 20-yr term from priority
G06F 16/1787G06F 16/122G06F 16/178H04L 67/1097G06F 16/16H04L 67/1095G06F 16/24578H04L 67/306G06F 8/44H04L 41/0816H04L 47/78G06F 16/116G06F 9/54H04L 69/04H04L 67/10H04L 63/0853G06F 16/168H04L 67/06G06F 16/113G06F 11/1451G06F 16/182G06F 16/1734G06F 11/1469G06F 11/1464G06F 16/27H04L 47/70H04W 12/06G06F 17/3053G06F 17/30194G06F 17/30575G06F 17/30174H04L 67/535Y02D10/00
96
PatentIndex Score
15
Cited by
20
References
22
Claims

Abstract

Technology is disclosed for providing configurable synchronization mechanisms for automatic synchronization of application states across multiple devices using cloud storage. In accordance with the techniques introduced here, a method includes steps of receiving a request for supplemental application synchronization information associated with a first application on a first remote computing device. In response the request for the supplemental application synchronization information, application-specific configuration information is determined for synchronizing a state of the first application to a cloud-based storage service. The supplemental application synchronization information including the application-specific configuration information is then provided to the first remote computing device for facilitating synchronization of the state of the first application to the cloud-based storage service.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method comprising:
 receiving a request for supplemental application synchronization information associated with a first application on a first remote computing device; 
 determining that the first application uses an identifier associated with a certain computing device to enable a synchronized state; 
 in response to the request for the supplemental application synchronization information, determining application-specific configuration information for synchronizing a state of the first application with a cloud-based storage service; and 
 providing, by a cloud-based server of the cloud-based storage service, the supplemental application synchronization information to the first remote computing device, wherein the supplemental application synchronization information includes the application-specific configuration information including an identifier associated with a second remote computing device to use for synchronizing the state of the first application on the first remote computing device with the cloud-based storage service; 
 wherein determining the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service further comprises:
 identifying the second remote computing device as the certain computing device for providing the identifier used by the first application to enable the synchronized state; and 
 
 
       including, in the application-specific configuration information, the identifier associated with the second remote computing device for spoofing the identifier used by the first application when synchronizing the state of the first application with the cloud-based storage service, wherein the identifier is a device identifier of the second remote computing device. 
     
     
       2. The computer-implemented method of  claim 1 , further comprising detecting, by the cloud-based server, a synchronization failure of the first application on the first remote computing device. 
     
     
       3. The computer-implement method of  claim 2 , wherein the request for the supplemental application synchronization information is received responsive to the synchronization failure of the first application. 
     
     
       4. The computer-implement method of  claim 1 , wherein the request for the supplemental application synchronization information is received responsive to an indication that the first application has been downloaded on the first remote computing device. 
     
     
       5. The computer-implement method of  claim 1 , wherein the request for the supplemental application synchronization information is received responsive to an indication that the first application has been installed on the first remote computing device. 
     
     
       6. The computer-implemented method of  claim 1 , wherein determining the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service further comprises determining one or more application constraints associated with the first application. 
     
     
       7. The computer-implemented method of  claim 6 , wherein determining the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service further comprises further comprises:
 soliciting input from a user of the first remote computing device regarding the one or more application constraints associated with the first application; 
 receiving response from the user of the first remote computing device indicating a setting for the one or more application constraints; and 
 
       modifying the application-specific configuration information to including instructions indicating the setting for the one or more application constraints. 
     
     
       8. The computer-implemented method of  claim 7 , wherein determining the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service further comprises further comprises:
 verifying, by the cloud-based server, the setting for the one or more application constraints; and 
 storing the setting for the one or more application constraints in a cloud-based memory system. 
 
     
     
       9. The computer-implemented method of  claim 6 , wherein the one or more application constraints comprise one or more data rights management (DRM) constraints. 
     
     
       10. The computer-implemented method of  claim 6 , wherein the one or more application constraints include a constraint indicating a maximum number of devices available for synchronization. 
     
     
       11. The computer-implemented method of  claim 1 , wherein determining the application-specific information for configuring the first application further comprises:
 determining that the first application uses an identifier for data access that is associated with a specific computing device; 
 determining that the first application is already installed on the second remote computing device; 
 identifying the identifier associated with the second remote computing device as the identifier used for data access by the first application on the second remote computing device; and 
 providing instructions in the application-specific information directing the first application on the first remote computing device to use the identifier associated with the second remote computing device as the identifier for data access. 
 
     
     
       12. The computer-implemented method of  claim 11 , wherein the identifier for data access is hardwired to the second remote computing device. 
     
     
       13. The computer-implemented method of  claim 11 , wherein the identifier for data access is used for encrypting a data encryption key used for the data access by the first application. 
     
     
       14. A computer-implemented method comprising:
 receiving, at a computing device of a cloud-based storage service, an indication to initiate a first application on the computing device; 
 determining that supplemental application synchronization information is available for the first application, wherein the supplemental application synchronization information includes application-specific configuration information for synchronizing a state of the first application with the cloud-based storage service; 
 initializing, by the computing device, synchronization of the first application based on the supplemental application synchronization information being available; 
 determining that the first application uses an identifier associated with a certain computing device to enable a synchronized state; and 
 receiving, from a remote computing device having the first application installed, an identifier associated with the remote computing device to use for synchronizing the state of the first application on the computing device; 
 wherein the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service includes an indication of the second remote computing device as the certain computing device for providing the identifier used by the first application to enable the synchronized state, and wherein, in the application-specific configuration information, the identifier associated with the second remote computing device is indicated to be the identifier used by the first application when synchronizing the state of the first application with the cloud-based storage service, wherein the identifier is a device identifier of the second remote computing device. 
 
     
     
       15. A cloud-based server system comprising:
 a processor; 
 a memory system having instructions stored thereon, wherein the instructions, when executed by the processor, cause the cloud-based server system to:
 in response to a request for supplemental application synchronization information associated with a first application on a first remote computing device, determining application-specific configuration information for synchronizing a state of the first application with a cloud-based storage service; 
 determine that the first application uses an identifier associated with a certain computing device to enable a synchronized state; and 
 provide the supplemental application synchronization information to the first remote computing device, wherein the supplemental application synchronization information includes the application-specific configuration information including an identifier associated with a second remote computing device to use for synchronizing the state of the first application on the first remote computing device with the cloud-based storage service; 
 wherein determining the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service further comprises:
 identifying the second remote computing device as the certain computing device for providing the identifier used by the first application to enable the synchronized state; and 
 
 
 
       including, in the application-specific configuration information, the identifier associated with the second remote computing device as the identifier used by the first application when synchronizing the state of the first application with the cloud-based storage service, wherein the identifier is a device identifier of the second remote computing device. 
     
     
       16. The cloud-based server system of  claim 15 , wherein the instructions, when executed by the processor, further cause the cloud-based system to:
 detect a synchronization failure of the first application on the first remote computing device, wherein the request for the supplemental application synchronization information is received responsive to the synchronization failure of the first application. 
 
     
     
       17. The cloud-based server system of  claim 15 , wherein the request for the supplemental application synchronization information is received responsive to an indication that the first application has been downloaded on the first remote computing device or responsive to an indication that the first application has been installed on the first remote computing device. 
     
     
       18. The cloud-based server system of  claim 15 , wherein to determine the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service, the instructions, when executed by the processor, further cause the cloud-based system to:
 determine one or more application constraints associated with the first application; 
 solicit input from a user of the first remote computing device regarding the one or more application constraints associated with the first application; 
 responsive to receiving a response from the user of the first remote computing device indicating a setting for the one or more application constraints, modify the application-specific configuration information to including instructions indicating the setting for the one or more application constraints. 
 
     
     
       19. The cloud-based server system of  claim 18 , wherein the one or more application constraints comprise one or more data rights management (DRM) constraints. 
     
     
       20. The cloud-based server system of  claim 15 , wherein to determine the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service, the instructions, when executed by the processor, further cause the cloud-based system to:
 determine that the first application uses an identifier for data access that is associated with a specific computing device; 
 determine that the first application is already installed on the second remote computing devices; 
 identify the identifier associated with the second remote computing device as the identifier used for data access by the first application on the second remote computing device; and 
 provide instructions in the application-specific information directing the first application on the first remote computing device to use the identifier associated with the second remote computing device as the identifier for data access. 
 
     
     
       21. A non-transitory computer-readable medium storing instructions to be implemented by a computer system having a processor, wherein the instructions, when executed by the processor, cause the computer system to:
 in response to a request for supplemental application synchronization information associated with a first application on a first remote computing device, determine application-specific configuration information for synchronizing a state of the first application with a cloud-based storage service; 
 determine that the first application uses an identifier associated with a certain computing device to enable a synchronized state; and 
 provide the supplemental application synchronization information to the first remote computing device, wherein the supplemental application synchronization information includes the application-specific configuration information including an identifier associated with a second remote computing device to use for synchronizing the state of the first application on the first remote computing device with the cloud-based storage service; 
 wherein determining the application-specific configuration information for synchronizing the state of the first application with the cloud-based storage service further comprises:
 identifying the second remote computing device as the certain computing device for providing the identifier used by the first application to enable the synchronized state; and 
 
 
       including, in the application-specific configuration information, the identifier associated with the second remote computing device as the identifier used by the first application when synchronizing the state of the first application with the cloud-based storage service, wherein the identifier is a device identifier of the second remote computing device. 
     
     
       22. The non-transitory computer-readable medium of  claim 21 , wherein the instructions, when executed by the processor, further cause the computer system to:
 determine that the first application uses an identifier for data access that is hardwired to a specific computing device; 
 determine that the first application is already installed on one or more other remote computing devices associated with a first user in the cloud-based storage service; 
 identify the identifier associated with the second remote computing device as the identifier used for data access by the first application on the second remote computing device; and 
 provide instructions in the application-specific information directing the first application on the first remote computing device to use the identifier associated with the second remote computing device as the identifier for data access.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.