Abstract:
Technology is disclosed herein for migrating at least portions of computer applications to a server. According to at least one embodiment, a computing device identifies a service component of a computer application executed at the computing device. The service component does not directly interact with a user of the computing device. The computing device transfers an instance of the service component to a server so that the service component can be executed at the server. The computing device then receives from the server a result message generated by the instance of the service component executed at the server. The computing device feeds the result message to a user interface component of the computer application via a procedure call such that the user interface component retrieves the result message as if it were generated by an instance of the service component executed at the computing device.
Abstract:
Technology is disclosed herein for migrating execution of at least a portion of a photo application to a server. According to at least one embodiment, a computing device monitors the photo application executing at the mobile device to identify a background thread and a foreground thread of the photo application, determine a current workload of the mobile device, transmit a received photo and an instance of the background thread to the server when the determined current workload exceeds a predefined threshold, receive a processed photo from the server, and provide access to the processed photo through the mobile device using the user interface generated by the foreground thread of the photo application.
Abstract:
Technology is disclosed herein for resolving synchronization conflicts when synchronizing application state data between computing devices. According to at least one embodiment, a server detects a first set of application state data at a first computing device conflicting with a second set of application state data at a second computing device. The first and second sets of application state data represent application states of the same computer application running at the first and second computing devices, respectively. Accordingly, the first computing device presents a user interface prompting a user to choose a preferred set of application state data between the first and second sets of application state data. If the user chooses the second set of application state data as the preferred set, the first computing device uses the second set of application state data to overwrite the first set of application state data at the device.
Abstract:
Technology is disclosed for backing up and retrieving data in a distributed backup system (“the technology”). Files of a user can be stored across multiple computing devices (“the devices”) of the user, e.g., mobile devices, and/or at a server, e.g., a cloud storage server, in the distributed backup system. The user can define various policies for storing different files at different devices. For example, the user may define a policy for storing video files on a device that has a bigger display. The devices can be used as an edge cache of the distributed backup system in serving files to the user. Upon receiving a request for retrieving a file, the technology determines if any of the user devices that are in proximity to the requesting device has the file. If yes, the file is transmitted to the user from the proximate device instead of from the server.
Abstract:
A technique and apparatus for backing up and restoring game application state across multiple devices are disclosed herein. The method includes running an instance of a game application at a first device. Based on any of various criteria, such as the proximity between the first device and a second device or a priority of synchronization, a computer makes a determination to synchronize the application state between the two devices. The computer causes the application state data, which represents an application state of the game application running on the first device, to be saved and made available to the second device, such as by saving the application state data to cloud storage. The second device receives the application state data and restores the game application state.
Abstract:
Disclosed are systems, methods, and machine-readable storage mediums for managing storage of a computing device associated with a user. In at least some embodiments, a method includes receiving a request to synchronize a data file from a cloud storage system from a the computing device, determining a classification of the computing device and an access pattern associated with the file, determining a storage optimization operation to be performed on the data file based on the access pattern and the classification, transmitting the file to the device subsequent to execution of the storage optimization operation, and transmitting an updated file based on an updated access pattern. The storage optimization operation can include downsampling, lossy compression, lossless compression, or a combination thereof.
Abstract:
At least one embodiment of this disclosure includes a method of resource balancing execution of an application involving multiple devices. The method can include: identifying an application executing on an operating system of a first computing device; identifying a resource type to facilitate the executing of the application; identifying multiple computing devices each having at least an available resource instance of the identified resource type, wherein the multiple computing devices are reachable by a communication protocol of the first computing device; and selecting a target computing device to offer up a target resource instance of the resource type to the application based at least partly on a comparable limitation of each available resource instance of the multiple computing devices.
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.
Abstract:
Technology is disclosed for downloading image files associated with a user to a computing device of the user from a distributed backup system. Each of the image files is associated with a popularity score that is determined as a function of a user-related access pattern and a group-related access pattern of the image files. While the user-related access pattern is determined based on an access of the image files by the user, the group-related access pattern is determined based on an access by a group of users. The image files are categorized into priority files and non-priority files based on the popularity score of the image files. The priority files are downloaded in an original format and the non-priority files are downloaded in one or more image qualities that minimize the consumption of computing resources in downloading the image files.