IP Library Granted Patent US 8,954,611
Granted Patent B2
US 8,954,611 · App. 14/252,674 · Granted Feb 10, 2015

Mechanism for sharing states of applications and devices across different user profiles

Inventors: Michael A. Chan (San Francisco, CA); Daniel R. Bornstein (San Francisco, CA); Linda Tong (San Francisco, CA)
Assignee: Nextbit Systems Inc.
A63F13/12H04L63/08H04L67/06
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 8,954,611
App. No.
14/252,674
Granted
Feb 10, 2015
Kind
B2
Abstract

At least one embodiment of this disclosure includes a method of sharing application states across different user profiles. The method can include: receiving a request from a first computing device associated with a first user profile to load an application state of a target application, wherein the application state is owned by a second user profile; verifying permission for the first user profile to load the application state owned by the second user profile; configuring a sharing instance of the application state of the target application by accessing application data of the application state associated with the second user profile in a storage service; and sending the sharing instance to be loaded onto the first computing device.

Claims (76)

1. A computer-implemented method of operating an application state broker system to facilitate application state sharing between at least a first user profile and a second user profile, comprising:

receiving application data associated with a time point and a first instance of a target application installed on a first computing device, wherein the application data, when loaded in another device other than the first computing device, enables the other device to configure another instance of the target application as if the first instance of the target application that was running at the time point is continuing to run on the other device without any appearance of time lapse within a user environment provided by the target application, wherein the application data is associated with the first user profile and wherein the application data includes permission setting data associated with application state sharing;

generating an application state of the target application to store in a storage service based on the received application data;

authenticating a login from the second user profile operating from a second computing device;

receiving a request from the second computing device to load the application state of the target application, wherein the application state is owned by the first user profile according to the storage service;

verifying permission for the second user profile to load the application state owned by the first user profile against the permission settings associated with the application state;

configuring a sharing instance of the application state of the target application by accessing the application data of the application state associated with the first user profile in the storage service; and

sending the sharing instance to the second computing device to be loaded onto the second computing device.

2. The computer-implemented method of claim 1 , wherein receiving the application data and generating the application state are based on an application state synchronization process to backup application states for the first user profile, wherein the application state synchronization process is independent of the request from the second computing device to load the application state.

3. The computer-implemented method of claim 1 , further comprising:

in response to receiving the request, determining that the target application is not installed on the second computing device; and

providing the target application or a link to the target application to the second computing device.

4. The computer-implemented method of claim 1 , further comprising authenticating the first user profile operating from a first computing device prior to receiving the application data associated with the target application.

5. The computer-implemented method of claim 1 , further comprising:

prior to configuring the sharing instance, determining whether the application state stored in the storage service is up-to-date;

requesting additional application data from the first computing device in response to determining that the application state in the storage service is not up-to-date; and

in response to receiving the additional application data, updating the application state of the target application based on the received additional application data before configuring the sharing instance that is to be loaded onto the second computing device.

6. The computer-implemented method of claim 1 , further comprising:

after sending the sharing instance, receiving new application data from the second computing device with updates to the application state of the target application; and

updating the application state associated with the first user profile in the storage service with the new application data from the second computing device.

7. The computer-implemented method of claim 1 , further comprising:

after sending the sharing instance, receiving new application data from the second computing device with updates to the application state of the target application; and

generating another application state for the target application to store in the storage service based on the received application data, wherein the other application state is associated with the second user profile.

8. The computer-implemented method of claim 7 , wherein the other application state is also associated with the first user profile.

9. The computer-implemented method of claim 1 , wherein configuring the sharing instance of the application state includes configuring whether the sharing instance is sharable to a third computing device.

10. The computer-implemented method of claim 1 , wherein configuring the sharing instance of the application state includes configuring whether new application data, generated after executing the sharing instance of the target application in the second computing device, is to re-integrate into the application state associated with the first user profile in the storage service.

11. The computer-implemented method of claim 1 , wherein configuring the sharing instance of the application state includes configuring whether new application data, generated after executing the sharing instance of the target application in the second computing device, is to synchronize with a new application state, in the storage service, associated with the second user profile.

12. The computer-implemented method of claim 1 , wherein configuring the sharing instance of the application state includes configuring the sharing instance as a session-only instance of the target application that expires in accordance with a schedule.

13. The computer-implemented method of claim 1 , wherein configuring the sharing instance of the application state includes configuring the sharing instance as a session-only instance of the target application that expires when a condition is met while executing the session-only instance.

14. The computer-implemented method of claim 1 , wherein the storage service is implemented by one or more data storage devices directly accessible to the application state broker system, by a cloud-based storage service, or by a peer-to-peer storage service.

15. The computer-implemented method of claim 1 , wherein receiving the application data includes receiving the application data that represents a differential update from a previously received application data of the target application stored in the storage service.

16. A computer server system comprising:

a memory storing executable instructions implementing an application state broker agent to facilitate application state sharing between at least a first user profile and a second user profile;

a processor configured by the executable instructions to:

receive application data associated with a target application installed on a first computing device, wherein the application data is associated with the first user profile and wherein the application data includes permission setting data associated with application state sharing;

generate an application state of the target application to store in a storage service based on the received application data;

authenticate a login from the second user profile operating from a second computing device;

receive a request from the second computing device to load the application state of the target application, wherein the application state is owned by the first user profile according to the storage service;

verify permission for the second user profile to load the application state owned by the first user profile against the permission settings associated with the application state;

configure a sharing instance of the application state of the target application by accessing the application data of the application state associated with the first user profile in the storage service; and

send the sharing instance to the second computing device to be loaded onto the second computing device.

17. The computer server system of claim 16 , wherein receiving the application data and generating the application state are based on an application state synchronization process to backup application states for the first user profile, wherein the application state synchronization process is independent of the request from the second computing device to load the application state.

18. The computer server system of claim 16 , wherein the executable instructions further comprise:

prior to configuring the sharing instance, determine whether the application state stored in the storage service is up-to-date;

request additional application data from the first computing device in response to determining that the application state in the storage service is not up-to-date; and

in response to receiving the additional application data, update the application state of the target application based on the received additional application data before configuring the sharing instance that is to be loaded onto the second computing device.

19. The computer server system of claim 16 , wherein the executable instructions further comprise:

after sending the sharing instance, receive new application data from the second computing device with updates to the application state of the target application; and

update the application state associated with the first user profile in the storage service with the new application data from the second computing device.

20. The computer server system of claim 16 , further comprising:

after sending the sharing instance, receive new application data from the second computing device with updates to the application state of the target application; and

generate another application state for the target application to store in the storage service based on the received application data, wherein the other application state is associated with the second user profile.

21. The computer server system of claim 16 , wherein configuring the sharing instance of the application state includes configuring whether the sharing instance is sharable to a third computing device.

22. The computer server system of claim 16 , wherein configuring the sharing instance of the application state includes configuring whether new application data, generated after executing the sharing instance of the target application in the second computing device, is to re-integrate into the application state associated with the first user profile in the storage service.

23. The computer server system of claim 16 , wherein configuring the sharing instance of the application state includes configuring the sharing instance as a session-only instance of the target application that expires when a condition is met while executing the session-only instance.

24. A non-transitory computer-readable storage medium storing computer-executable instructions, comprising:

instructions for receiving, at a computing system, application data associated with a time point and a first instance of a target application installed on a first computing device, wherein the application data, when loaded in another device other than the first computing device, enables the other device to configure another instance of the target application as if the first instance of the target application that was running at the time point is continuing to run on the other device without any appearance of time lapse within a user environment provided by the target application, wherein the application data is associated with the first user profile and wherein the application data includes permission setting data associated with application state sharing;

instructions for generating, by the computing system, an application state of the target application to store in a storage service based on the received application data;

instructions for authenticating, by the computing system, a login from the second user profile operating from a second computing device;

instructions for receiving, by the computing system, a request from the second computing device to load the application state of the target application, wherein the application state is owned by the first user profile according to the storage service;

instructions for verifying, by the computing system, permission for the second user profile to load the application state owned by the first user profile against the permission settings associated with the application state;

instructions for configuring, by the computing system, a sharing instance of the application state of the target application by accessing the application data of the application state associated with the first user profile in the storage service; and

instructions for sending, by the computing system, the sharing instance to the second computing device to be loaded onto the second computing device.

25. The non-transitory computer-readable storage medium of claim 24 , wherein receiving the application data and generating the application state are based on an application state synchronization process to backup application states for the first user profile, wherein the application state synchronization process is independent of the request from the second computing device to load the application state.

26. The non-transitory computer-readable storage medium of claim 24 , further comprising instructions for authenticating, by the computing system, the first user profile operating from a first computing device prior to receiving the application data associated with the target application.

27. The non-transitory computer-readable storage medium of claim 24 , further comprising:

prior to configuring the sharing instance, instructions for determining, by the computing system, whether the application state stored in the storage service is up-to-date;

instructions for requesting, by the computing system, additional application data from the first computing device in response to determining that the application state in the storage service is not up-to-date; and

in response to receiving the additional application data, instructions for updating, by the computing system, the application state of the target application based on the received additional application data before configuring the sharing instance that is to be loaded onto the second computing device.

28. The non-transitory computer-readable storage medium of claim 24 , further comprising:

after sending the sharing instance, instructions for receiving, by the computing system, new application data from the second computing device with updates to the application state of the target application; and

instructions for updating, by the computing system, the application state associated with the first user profile in the storage service with the new application data from the second computing device.

29. The non-transitory computer-readable storage medium of claim 24 , further comprising:

after sending the sharing instance, instructions for receiving, by the computing system, new application data from the second computing device with updates to the application state of the target application; and

instructions for generating, by the computing system, another application state for the target application to store in the storage service based on the received application data, wherein the other application state is associated with the second user profile.

30. The non-transitory computer-readable storage medium of claim 24 , wherein configuring the sharing instance of the application state includes configuring whether new application data, generated after executing the sharing instance of the target application in the second computing device, is to re-integrate into the application state associated with the first user profile in the storage service.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2017
From: NEXTBIT SYSTEMS INC.
To: RAZER (ASIA-PACIFIC) PTE. LTD.
Reel/Frame 041980/0254 →
RELEASE OF SECURITY INTEREST Recorded Jan 27, 2017
From: PINNACLE VENTURES, L.L.C., AS AGENT
To: NEXTBIT SYSTEMS INC.
Reel/Frame 041519/0146 →
SECURITY INTEREST Recorded Dec 1, 2015
From: NEXTBIT SYSTEMS INC.
To: PINNACLE VENTURES, L.L.C., AS AGENT
Reel/Frame 037184/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2014
From: CHAN, MICHAEL A.; BORNSTEIN, DANIEL R.; TONG, LINDA
To: NEXTBIT SYSTEMS INC.
Reel/Frame 032783/0409 →
Continuity (3)
Continuation In Part 14221174 · Mar 20, 2014
Provisional Application 61804134 · Mar 21, 2013
Related Publication 20140289333A1 · Sep 25, 2014