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.
Abstract:
Technology is disclosed for performing a priority synchronization of a computing device to download a selected set of data files to the computing device from a distributed backup system. Data files are downloaded to a computing device by synchronizing the computing device with a server of the distributed backup system. A priority sync downloads a subset of the data files (“priority files”) rather than all of the data files of the user, thereby minimizing the computing resources consumed to download the data files. The priority sync can select the priority files based on various criteria, including an access pattern of the data files, attributes of the data files, or attributes of the computing device. The priority sync can also download the data files not identified as priority files (“non-priority files”). While the priority files are downloaded in their original format, the non-priority files are downloaded in a downgraded format.
Abstract:
Technology is disclosed for selectively backing up audio files and video files of a user in a distributed backup system. In the distributed backup system, the user can define various policies for storing different data files of the user at different devices of the user and/or at a server. For example, the user may define a policy for storing video files on a device having a bigger display and audio files on a device which the user uses more often than the other devices. When a backup is initiated on a particular device, the technology identifies target devices based on the defined policies, and transmits the audio and video files from the particular device to the corresponding target devices. The audio and video files are transmitted via the server or directly if the target devices are in proximity to the particular device.
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 for determining a serialization scheme used in serializing a software object by an application (“the technology”). A source application can serialize the object using multiple serialization schemes. In order for another application to deserialize the object serialized by the source application, the application may have to know the serialization scheme used in serializing the object. The technology can analyze an intermediate code, e.g., bytecode, of the source application to determine the serialization scheme used by the source application. The technology compares a portion of the code of the source application that serializes the objects with multiple serialization scheme templates having code for known serialization schemes and determines the serialization scheme used by the source application based on a matching serialization scheme template. After the serialization scheme is identified, the application can reconstruct the object from the serialized object using the identified serialization scheme.
Abstract:
Technology is disclosed for migrating at least portions of a video streaming application to a cloud server. The migration is based on an optimization factor of a video streaming application. The optimization factor can be computed based on consumption of computing resources of the computing device. The video streaming application is a multi-threaded application in which a background thread performs tasks that may not require user interaction and a foreground thread performs tasks that may require user interaction. A service component of the video streaming application that obtains video streaming data from video servers is one example of the background thread. A user interface component that displays the video streaming data to a user via a user interface is an example of the foreground thread. If the optimization factor of the service component is below a predefined threshold, the service component is transferred to the cloud server for further processing.
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 using computing devices (“the devices”) of a user as an edge cache of a distributed backup system to stream video files. In the distributed backup system, the user can store different data files of the user at different devices of the user and/or at a server. For example, the user may store video files at one of the devices of the user (“a first device”) in addition to storing at the server. When the user requests to stream a particular video file to a particular device, the technology streams the video file to the particular device either from the server or from the first device. If the first device is in proximity to the particular device, the video file is streamed from the first device instead of from the server, thereby minimizing the latency involved in streaming the video file from the server.
Abstract:
Technology is disclosed for determining a serialization scheme used in serializing a software object by an application (“the technology”). A source application can serialize the object using multiple serialization schemes. In order for another application to deserialize the object serialized by the source application, the application may have to know the serialization scheme used in serializing the object. The technology can analyze an intermediate code, e.g., bytecode, of the source application to determine the serialization scheme used by the source application. The technology compares a portion of the code of the source application that serializes the objects with multiple serialization scheme templates having code for known serialization schemes and determines the serialization scheme used by the source application based on a matching serialization scheme template. After the serialization scheme is identified, the application can reconstruct the object from the serialized object using the identified serialization scheme.
Abstract:
Various embodiments are disclosed for enabling multiple computing devices having a decentralized operating system to effectively monitor and manage resources across the multiple devices. In some embodiments, the systems are able to identify a set of local resources available for utilization by an application running on the decentralized operating system. A resource message identifying the set of local resources can be generated using a resource discovery and utilization application programming interface. This information can then be sent to a requestor (e.g., an application running on the decentralized operating system) which can create a resource utilization plan.