Michael K. Fleming, San Francisco US

Michael K. Fleming, San Francisco, CA US

Patent application number

Description

Published

20140095591

CLOUD-BASED FILE PREFETCHING ON ELECTRONIC DEVICES - Techniques introduced here enable cloud-based file prefetching on electronic devices. The electronic devices store certain files on a remote storage server and preload some of the files locally to include file access efficiency. File access patterns on the electronic devices are analyzed collectively and efficiently using a cloud service to detect global access patterns and help determine which files to preload on each of the electronic devices.

04-03-2014

20140095625

APPLICATION STATE BACKUP AND RESTORATION ACROSS MULTIPLE DEVICES - Technology for a method for backing up and restoring application state across multiple devices is disclosed herein. The method includes running an instance of a computer application at a first electronic device, determining a backup event that occurs in the first electronic device, wherein the backup event suggests a backup of application state data and the application state data represent an application state of the computer application at the backup event, and transmitting the application state data of the computer application to a remote storage service, in response to the backup event. A second electronic device can retrieve the application state data from the remote storage service and restore the application state.

04-03-2014

20140095646

DATA CACHING AMONG INTERCONNECTED DEVICES - Technology is disclosed herein for optimizing data caches among multiple interconnected computing devices. According to at least one embodiment, a storage server transfers a first data set to a computing device. The storage server then identifies a neighbor computing device sharing a local area network (LAN) with the computing device. The neighbor computing device maintains a network connection with the storage server. The storage server transmits a second data set relevant to the first data set to the neighbor computing device. In response to a read request for the second data set from the computing device, the storage server sends to the computing device an instruction indicating that the neighbor computing device is storing a data cache for the computing device.

04-03-2014

20140095881

FILE SHARING WITH CLIENT SIDE ENCRYPTION - Technology is disclosed herein for sharing encrypted data within a client-server distributed data storage system. According to at least one embodiment, a first computing device encrypts multiple data sets of the first computing device using symmetric encryption keys. Each of the data sets is encrypted using a different symmetric encryption key among the symmetric encryption keys. The first computing device shares the encrypted data sets with a second computing device. The first computing device further sends the symmetric encryption keys to the second computing device via a secured channel. The symmetric encryption keys are suitable for decrypting the encrypted data sets at the second computing device. The secured channel is through a server connected with the first and second computing devices. The server cannot access the contents of the secured channel and cannot access contents of the encrypted data sets.

04-03-2014

20140101103

DATA SYNCHRONIZATION BASED ON FILE SYSTEM ACTIVITIES - Technology is disclosed herein for data synchronization based on file system activities. According to at least one embodiment, a computing device monitors one or more file system operations for a file stored in the computing device. The computing device records the file system operations for the file sequentially into a log data structure. The computing device synchronizes the file with a server by sending the log data structure to the server. The server can apply the file system operations recorded in the log data to an instance of the file stored in the server such that data of the file stored in the computing device are consistent with data in the instance of the file stored in the server after the file system operations are applied.

04-10-2014

20140101237

MOBILE APPLICATION MIGRATION TO CLOUD COMPUTING PLATFORM - 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.

04-10-2014

20140101451

CLIENT SIDE ENCRYPTION WITH RECOVERY METHOD - Technology is disclosed herein for client side data encryption with a recovery mechanism. According to at least one embodiment, a computing device encrypts at least one data set into an encrypted data set using a private encryption key. The computing device encrypts the private encryption key using a password provided by a user of the device. The password is also encrypted using the user's answers to password recovery questions. The encrypted data set, the encrypted key and the encrypted password are transmitted to and stored by a server. The computing device can retrieve and decrypt the encrypted data set form the server. The encryption key can be recovered by decrypting the encrypted key using the password. The password can be recovered by decrypting the encrypted password using answers to the password recovery questions provided by the user.

04-10-2014

20140108335

CLOUD BASED FILE SYSTEM SURPASSING DEVICE STORAGE LIMITS - Technology is disclosed herein for a cloud based file system that can surpass physical storage limit. According to at least one embodiment, a computing device includes a file system having multiple storage objects. The metadata of the storage objects are stored in local storage of the computing device. A remote storage server is responsible for storing the content data of the storage objects. The computing device presents the storage objects via an output device as if the content data are stored locally in the computing device. The computing device identifies some of the storage objects that have a high possibility to be read by computer applications of the computing device, and caches the content data of these storage objects locally.

04-17-2014

20140129665

DYNAMIC DATA PREFETCHING - Technology is disclosed for data prefetching on a computing device utilizing a cloud based file system. The technology can receive a current execution state and a data access pattern associated with an instance of an application executing on a computing device. The technology can further receive a data access pattern associated with another instance of the application executing on another computing device. The technology can utilize the received data access patterns to determine one or more future access requests for a subset of data associated with the application, where the one or more future access requests is a function of the current execution state of the application executing on the computing device. The technology can generate a prefetching profile utilizing the determined subset of data.

05-08-2014

20140135105

VIDEO GAME APPLICATION STATE SYNCHRONIZATION ACROSS MULTIPLE DEVICES - Techniques for a method for automatically synchronizing application state of a video game across multiple devices are disclosed herein. The method includes running an instance of the video game application at a first electronic device, detecting a presence of a second electronic device based on a proximity of the second electronic device to the first electronic device, identifying an installation of another instance of the video game application on the second electronic device, saving a current state of play of the instance of the video game application running on the first electronic device and transmitting the application state data to the second electronic device. The application state data of the video game application enables another instance of the video game application to resume the current state of play of the video game application at the second electronic device.

05-15-2014

20140136481

PROXIMITY BASED APPLICATION STATE SYNCHRONIZATION - Techniques for a method for automatically synchronizing application state across multiple devices are disclosed herein. The method includes running an instance of a computer application at a first electronic device, detecting a presence of a second electronic device based on a proximity of the second electronic device to the first electronic device, identifying an installation of another instance of the computer application on the second electronic device, and transmitting an application state data to the second electronic device. The application state data represents an application state of the computer application at the first electronic device. The application state data of the computer application enables another instance of the computer application at the second electronic device to resume running the computer application from the transmitted application state.

05-15-2014

20140136611

MOBILE PHOTO APPLICATION MIGRATION TO CLOUD COMPUTING PLATFORM - 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.

05-15-2014

20140136662

MOBILE APPLICATION MIGRATION TO CLOUD COMPUTING PLATFORM - 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.

05-15-2014

20140136729

OPTIMIZED VIDEO STREAMING USING CLOUD COMPUTING PLATFORM - 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.

05-15-2014

20140148246

MULTI-PLAYER GAME STATE BACKUP AND RESTORATION ACROSS MULTIPLE DEVICES - Technology for a method for backing up and restoring multiplayer game state across multiple devices that are registered to multiple users is disclosed herein. The method includes running instances of a multiplayer game application at multiple electronic devices, determining a backup event that occurs in any of the multiple electronic devices, wherein the backup event suggests a backup of game state data and the game state data represent a game state of the game application at the backup event, and transmitting the game state data of the game application to a remote storage service, in response to the backup event. Other electronic devices registered to any of the multiple users can retrieve the application state data from the remote storage service and restore the game application state.

05-29-2014

20140156599

GAME STATE SYNCHRONIZATION AND RESTORATION ACROSS MULTIPLE DEVICES - Technology for a method for backing up and restoring mobile game application state across multiple devices is disclosed herein. The method includes running an instance of a game application at a first electronic device, determining a backup event that occurs in the first electronic device, wherein the backup event suggests a backup of application state data and the application state data represent an application state of the game application at the backup event, and transmitting the application state data of the game application to a remote storage service, in response to the backup event. A second electronic device can retrieve the application state data from the remote storage service and restore the game application state.

06-05-2014

20140156793

GENERATING PREFETCHING PROFILES FOR PREFETCHING DATA IN A CLOUD BASED FILE SYSTEM - Technology is disclosed herein for a cloud based file system that facilitates storing data beyond a physical storage limit of a computing device. In some embodiments, the file system stores the metadata of the data in a local storage of the device and the data itself in a cloud storage. Upon accessing a data object on the device, the device obtains the data from the cloud storage and presents it to the user as if the content data is stored locally. The device identifies the data objects that are likely to be accessed by the user, pre-fetches the content of these data objects and stores them in a cache locally. Prefetching profiles are used to identify the data objects that are likely to be used based on a usage pattern of the data objects. Different prefetching profiles may be generated for multiple devices associated with the user.

06-05-2014

20140162760

GAME STATE SYNCHRONIZATION AND RESTORATION ACROSS MULTIPLE DEVICES - Technology for a method for backing up and restoring game application state across multiple devices is disclosed herein. The method includes running an instance of a game application at a first electronic device, determining a backup event that occurs in the first electronic device, wherein the backup event suggests a backup of application state data and the application state data represent an application state of the game application at the backup event, and transmitting the application state data of the game application to a remote storage service, in response to the backup event. A second electronic device can retrieve the application state data from the remote storage service and restore the game application state.

06-12-2014

20140162793

GAME STATE SYNCHRONIZATION AND RESTORATION ACROSS MULTIPLE DEVICES - Technology for a method for backing up and restoring game application state across multiple devices is disclosed herein. The method includes receiving, by a storage server, state data of a game application that runs on a first device, retrieving, by the storage server, a synchronization scheme defined by a user, detecting, by the storage server, a second device connected with the storage server, and sending, by the storage server, the state data of the game application to the second device according to the synchronization scheme.

06-12-2014

20140164453

CLOUD BASED FILE SYSTEM SURPASSING DEVICE STORAGE LIMITS - Technology is disclosed herein for a cloud based file system that can surpass physical storage limit. According to at least one embodiment, a computing device includes a file system having multiple storage objects. The metadata of the storage objects are stored in local storage of the computing device. A remote storage server is responsible for storing the content data of the storage objects. The computing device presents the storage objects via an output device as if the content data are stored locally in the computing device. The computing device identifies some of the storage objects that have a high possibility to be read by computer applications of the computing device, and caches the content data of these storage objects locally.

06-12-2014

20140244806

OPTIMIZED VIDEO STREAMING USING CLOUD COMPUTING PLATFORM - 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.

08-28-2014

20140289201

ELECTRONIC DEVICE SYSTEM RESTORATION BY TAPPING MECHANISM - Technology disclosed herein includes a method for system restoration between computing devices by a tapping mechanism. A first device detects (e.g., via NFC) a second device in proximity. The first device transmits a user credential of the first device to the second device. Either directly or via a cloud storage service, the first device instructs the second device to download a copy of system data of the first device from the cloud storage service, instead of from the first device. The second device is able to restore a system state of the first device on the second device, using the user credential and the system data.

09-25-2014

20140289717

DETECTING SERIALIZATION SCHEME USED IN SOFTWARE APPLICATIONS - 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.