MECHANISM FOR SHARING STATES OF APPLICATIONS AND DEVICES ACROSS DIFFERENT USER PROFILES
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.
1 . A computer-implemented method of operating an application state broker system, comprising:
authenticating a login from a first user profile at a first computing device;
receiving a request from the first computing device 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.
2 . 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 first computing device; and
sending the target application or a link to the target application to the first computing device.
3 . The computer-implemented method of claim 1 , further comprising:
authenticating the second user profile at the application state broker system from a second computing device;
receiving the application data associated with the target application installed on the second computing device; and
generating the application state of the target application for storing in the storage service based on the received application data.
4 . The computer-implemented method of claim 1 , further comprising:
determining whether the application state stored in the storage service is up-to-date;
requesting additional application data from the second computing device when the application state is determined not to be up-to-date; and
in response to receiving the additional application data, updating the application state of the target application for storing in the storage service based on the received additional application data.
5 . The computer-implemented method of claim 1 , further comprising:
after sending the sharing instance, receiving new application data from the first computing device with updates to the application state of the target application; and
updating the application state in the storage service with the new application data from the first computing device.
6 . The computer-implemented method of claim 1 , further comprising:
after sending the sharing instance, receiving application data from the first computing device with updates to the application state of the target application; and
generating another application state for the target application in the storage service based on the received application data, wherein the other application state is associated with the first user profile.
7 . 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.
8 . 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, is to re-integrate with the application data of the application state associated with the second user profile in the storage service.
9 . 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, is to synchronize as new application data of a new application state associated with the first user profile in the storage service.
10 . 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.
11 . 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.
12 . The computer-implemented method of claim 1 , wherein the application data represents at least a portion of the application state.
13 . The computer-implemented method of claim 1 , wherein the application data represents a differential update from a previously sent application data of the target application.
14 . A computer-implemented method of operating a first computing, comprising:
requesting an application state, associated with a foreign user profile different from a current user profile logged in on the first computing device, of a target application from an application state broker system;
receiving a sharing instance of the application state from the application state broker system, in response to the requesting;
configuring the target application with the sharing instance of the application state for executing on the first computing device; and
executing the configured target application on the first computing device.
15 . The computer-implemented method of claim 14 , further comprising pausing or terminating the target application on the first computing device prior to executing the configured target application, wherein requesting the application state of the target application occurs when the target application is executing on the first computing device.
16 . The computer-implemented method of claim 15 , wherein configuring the target application includes initializing the target application with the sharing instance of the application state after the target application is paused or terminated.
17 . The computer-implemented method of claim 15 , wherein configuring the target application includes modifying a portion of memory, allotted for the target application, of the first computing device after the target application is paused or terminated.
18 . The computer-implemented method of claim 14 , wherein configuring the target application includes merging the sharing instance with an existing instance already executing on the first computing device.
19 . The computer-implemented method of claim 14 , further comprising receiving a link or a data stream to download the target application in response to requesting the application state, wherein requesting the application state of the target application occurs when the target application has not been installed on an operating system of the first computing device.
20 . The computer-implemented method of claim 14 , further comprising backing up a current instance of the application state of the target application executing on the first computing device prior to configuring the target application with the sharing instance.
21 . The computer-implemented method of claim 14 , further comprising synchronizing changes to the application state of the configured target application back to the application state broker system.
22 . The computer-implemented method of claim 14 , wherein configuring the target application includes passing the sharing instance of the application state to the target application while the target application is executing on the first computing device.
23 . The computer-implemented method of claim 22 , wherein configuring the target application further includes configuring the target application based on the sharing instance of the application state and logical instructions within the target application.
24 . A server system comprising:
a memory storing executable instructions;
a processor configured by the executable instructions to:
receive 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;
verify permission for the first user profile to load the application state owned by the second user profile;
configure 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 accessible to the server system; and
send the sharing instance to be loaded onto the first computing device.