NEXTBIT SYSTEMS INC. Patent applications |
Patent application number | Title | Published |
20150283462 | FILE PREFETCHING FOR GAMING APPLICATIONS ACCESSED BY ELECTRONIC DEVICES - Techniques introduced here enable cloud-based file prefetching for gaming applications running on electronic devices. The electronic devices store certain gaming data files on a remote storage server and preload some of the files locally to include file access efficiency. Gaming data file access patterns on the electronic devices are analyzed, individually and collectively, using a cloud service to detect global access patterns and help determine which gaming data files to preload on each of the electronic devices. | 10-08-2015 |
20150283456 | OPTIMIZING GAMING APPLICATIONS ACCESSED BY ELECTRONIC DEVICES - Techniques introduced here enable cloud-based file prefetching for gaming applications running on electronic devices. The electronic devices store certain gaming data files on a remote storage server and preload some of the files locally to include file access efficiency. Gaming data file access patterns on the electronic devices are analyzed, individually and collectively, using a cloud service to detect global access patterns and help determine which gaming data files to preload on each of the electronic devices. | 10-08-2015 |
20140289825 | CONNECTING TO WI-FI NETWORK BASED OFF APPROVAL FROM ANOTHER USER DEVICE - Technology is disclosed for sharing an authentication profile for accessing a Wi-Fi network between multiple devices. To access a particular Wi-Fi network on a first device and a second device, authentication information, e.g., a password for the Wi-Fi network, may have to be input on both the devices. In some embodiments, the technology facilitates obtaining an approval for accessing the Wi-Fi network on the second device from the first device. Upon receiving a request from a user of the second device to access the Wi-Fi network on the second device, the second device requests if any of the devices, e.g., devices in proximity, can approve the access request. A notification is displayed on the first device regarding the access request. The user associated with first device can then approve the access request, which causes authentication information for accessing the Wi-Fi network to be transmitted to the second device. | 09-25-2014 |
20140289824 | SHARING AUTHENTICATION PROFILES BETWEEN A GROUP OF USER DEVICES - Technology is disclosed for sharing an authentication profile of a user between a group of user devices for accessing an access restricted computing environment (“the technology”). The access restricted computing environment can require the user to input authentication information, such as a username, password, or answers to challenge questions, to authenticate the user. For example, to access a wireless network on a first user device, a user may have to input a password for the wireless network. To access the same wireless network on a second user device, the user may have to input the password again on the second user device. The technology facilitates the user to obtain the authentication information required to access the wireless network from another user device, e.g., a device from which the user has accessed the wireless network previously. This can eliminate the need for the user to manually input the authentication information repeatedly. | 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. | 09-25-2014 |
20140289426 | STORAGE OPTIMIZATION IN COMPUTING DEVICES - Disclosed are systems, methods, and machine-readable storage mediums for selectively performing storage optimization processes in a computing device. In at least some embodiments, a method includes monitoring access patterns in association with data of one or more files accessed by a user of the computing device, determining a classification of the computing device, and utilizing the user access patterns and the device classification in determining execution of a storage optimization process based on a storage optimization policy. The storage optimization policy can specify downsampling, lossy compression, lossless compression, or a combination thereof to be applied to the files based on thresholds associated with the user access patterns and/or the device classification. Utilization of the storage optimization policy can enable the computing device to have an infinite local storage capacity. | 09-25-2014 |
20140289417 | AUTOMATIC RESOURCE BALANCING FOR MULTI-DEVICE APPLICATIONS - 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. | 09-25-2014 |
20140289415 | CONTINUOUS AND CONCURRENT DEVICE EXPERIENCE IN A MULTI-DEVICE ECOSYSTEM - Various embodiments generally relate to decentralized operating systems spanning multiple devices. More specifically, some embodiments relate to continuous and concurrent device experiences across the multiple devices. For example, a user may be streaming a movie through a service provided via a smart television. When the user's phone detects an incoming video call, the television can recognize that a video call is coming in and ask the user if the user wants to answer the call. If the user responds in the affirmative, the television can pause the streaming video from the service provide allowing the user to answer their phone. In some cases, the television can be used as the display screen to display the video call while the local phone resources (e.g., video camera) can be used as the recording device. | 09-25-2014 |
20140289414 | API FOR RESOURCE DISCOVERY AND UTILIZATION - 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. | 09-25-2014 |
20140289413 | AUTOMATIC RESOURCE BALANCING FOR MULTI-DEVICE APPLICATIONS - 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. | 09-25-2014 |
20140289411 | DECENTRALIZED OPERATING SYSTEM - Technology is disclosed for enabling multiple computing devices used by a user to interoperate with one another. The technology enables the user to install a given application on a distributed operating system (“DCOS”) managing the multiple computing devices as a single entity. The user can then use the given application through any of the computing devices when executing the given application through the DCOS. | 09-25-2014 |
20140289382 | UTILIZING VERSION VECTORS ACROSS SERVER AND CLIENT CHANGES TO DETERMINE DEVICE USAGE BY TYPE, APP, AND TIME OF DAY - Technology is disclosed for utilizing version vector data of computing devices to optimize performance of the computing devices and/or other computer systems that provide various services to the computing devices (“the technology”). One embodiment includes analyzing version vectors of the computing devices to determining a user's usage pattern, such as the type of computing device used, the computer applications used on the computing device, and the time of day of usage. This information about usage pattern and other information that can be determined using the version vectors can enable system optimizations on both individual user level and a group of users level. For example, on the individual user level, knowing user's usage pattern may enable automatic file synchronization between multiple devices without user intervention. On the group level, a service provider may allocate resources (servers, bandwidth, etc.) to accommodate the group's usage pattern. | 09-25-2014 |
20140289333 | 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. | 09-25-2014 |
20140289331 | 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. | 09-25-2014 |
20140289304 | AUTOMATIC RESOURCE BALANCING FOR MULTI-DEVICE LOCATION-BASED APPLICATIONS - At least one embodiment of this disclosure includes a method of resource balancing execution of a location-based 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 location-based application; identifying computing devices each having at least an available resource instance of the identified resource type, wherein the 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 location-based application based at least partly on a comparable limitation of each available resource instance of the computing devices. | 09-25-2014 |
20140289225 | PRIORITIZING DOWNLOADING OF IMAGE FILES - 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. | 09-25-2014 |
20140289203 | USING MOBILE DEVICES OF A USER AS AN EDGE CACHE TO STREAM VIDEO FILES - 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. | 09-25-2014 |
20140289202 | UTILIZING USER DEVICES FOR BACKING UP AND RETRIEVING DATA IN A DISTRIBUTED BACKUP SYSTEM - 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. | 09-25-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 |
20140289196 | PRIORITIZING SYNCHRONIZATION OF AUDIO FILES TO AN IN-VEHICLE COMPUTING DEVICE - Technology is disclosed for synchronizing audio files from a computing device of a user to an in-vehicle computing device, such as an audio system, installed in an automobile. In one example, when the user plays an audio file on the in-vehicle computing device from the computing device, the audio file is copied at the in-vehicle computing device. After copying the currently playing audio file, the in-vehicle computing device can also copy at least some of the audio files from the computing device. The in-vehicle computing device computes a popularity score of each of the audio files based on an access pattern of the audio files, and categorizes them into priority files and low-priority files based on their popularity score. While the in-vehicle computing device copies the priority files, it copies metafiles of the low-priority files. The metafiles can include information such as a title, artist, etc. of the audio files. | 09-25-2014 |
20140289195 | CONFIGURABLE APPLICATION STATE SYNCHRONIZATION - 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. | 09-25-2014 |
20140289194 | 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, by a distributed system, 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. | 09-25-2014 |
20140289191 | CONTEXT SENSITIVE DISTRIBUTED FILE SYSTEM SYNCHRONIZATION AND MERGING SEMANTICS - Technology is disclosed for context sensitive synchronization of a distributed cloud-based file system across multiple devices and for providing seamless merging of conflicting data objects. In some embodiments, data objects of a user are stored across multiple computing devices associated with a user, e.g., mobile computing devices such as a tablet, a laptop, or a smartphone, and/or at server systems, e.g., cloud-based storage servers, in a distributed cloud-based storage system. The described technology intelligently synchronizes the data objects based on context and manages potential conflicts. | 09-25-2014 |
20140289190 | CLASSIFICATION OF DATA OBJECTS IN A DISTRIBUTED FILE SYSTEM BASED ON APPLICATION CREATION AND/OR ACCESS INFORMATION - Technology is disclosed for classification of data objects (e.g., files) in a distributed file system based on application creation and/or access information. In some embodiments, data objects of a user are stored across multiple computing devices associated with a user, e.g., mobile computing devices such as a tablet, a laptop, or a smartphone, and/or at server systems, e.g., cloud-based storage servers, in a distributed cloud-based storage system. The technology described tracks the applications that create or touch particular data objects in the distributed file system and classifies the data objects according to these applications resulting in various application classifications. For example, a classification engine can process data objects in the distributed file system to identify an application that created the data object and/or applications that have accessed the data object. The classification information can be saved by, for example, a cloud-based storage server. | 09-25-2014 |
20140289189 | PRIORITIZING FILE SYNCHRONIZATION IN A DISTRIBUTED COMPUTING SYSTEM - 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. | 09-25-2014 |
20140287836 | LOCATION BASED GAME STATE SYNCHRONIZATION - 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, 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. | 09-25-2014 |
20140287827 | GAMING APPLICATION STATE TRANSFER AMONGST 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 game 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 game application by accessing gameplay state 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. | 09-25-2014 |
20140287818 | SYNCHRONIZING AN INSTANCE OF AN APPLICATION BETWEEN MULTIPLE DEVICES - 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. | 09-25-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 |
20140243100 | OPTIMIZATION OF GAMING APPLICATION EXECUTION USING PROXY CONNECTION - Technology is disclosed herein for executing multiple gaming applications on a computing device. According to at least one embodiment, a computing device receives requests for network connections with remote servers from multiple gaming applications running on the computing device. The computing device further establishes a network connection with a proxy server. The proxy server initiates and maintains proxy network connections with the remote servers. The proxy server batches network messages received from the remote servers, where the network messages includes gaming content. The proxy server aggregates network messages received in a time period into a single batch, where a time length of the time period is determined based on one or more game events of the games being played on the computing device. Further, the proxy server batches network messages such that the computing device stays at a high power consumption state for a shorter time period than an overall time period required without batching. | 08-28-2014 |
20140221093 | FRAGMENT-BASED MOBILE DEVICE APPLICATION STREAMING UTILIZING CROWD-SOURCING - Technology for decomposing an application into fragments and streaming the application in fragments is disclosed herein. According to at least one embodiment, a computer-implemented method includes steps of sending one or more messages to cause a plurality of computing devices that can be used to execute the compute task to be identified, sending at least one message to initiate execution of the compute task to determine the plurality of application fragments including a first application fragment and a second application fragment, collecting fragment information associated with the application fragments from one or more of the plurality of computing devices, storing the fragment information at a storage device, determining that the second application fragment follows the first application fragment based on a fragments relationship data structure, and streaming the second application fragment to a mobile game computing device. | 08-07-2014 |
20140215025 | MOBILE DEVICE APPLICATION STREAMING - Technology for decomposing an application into fragments and streaming the application in fragments is disclosed herein. According to at least one embodiment, a computer-implemented method includes steps of determining multiple application fragments of a computer application, wherein each application fragment of the application fragments includes a code to present at least one interface of the computer application; storing the application fragments at a storage device; generating a resource dependency data structure, wherein for each specific application fragment of the application fragments, the resource dependency data structure includes identifications of resources that are needed for running the specific application fragment; and streaming, via a network component, at least one application fragment of the application fragments to a computing device. | 07-31-2014 |
20140189015 | PUSHING NOTIFICATIONS BASED ON LOCATION PROXIMITY - Technology is disclosed for pushing notifications to computing devices based on location proximity (“the technology”). Various embodiments of the technology includes a proxy server that facilitates transmission of notifications to the computing devices based on a location proximity and/or access pattern of the computing devices. The proxy server transmits the notifications to the devices based on their location proximity with a primary device of the user, e.g., a device which the user uses more often than others. For example, if a particular device is not within a predefined location proximity of the primary device, the proxy server delays the transmission of notifications to the particular device until the particular device is in the predefined location proximity. In another example, a transmission frequency of the notifications is continuously adjusted based on the location proximity, e.g., the transmission frequency is increased as the proximity increases, and is decreased as the proximity decreases. | 07-03-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 |
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 |
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 |
20140157255 | OPERATING SYSTEM CUSTOMIZATION - Technology disclosed herein includes a method for loading a carrier specific operating system (OS) onto a computing device depending on any corporation the computing device is associated with and the network the computing device is connected to. The computing device detects any corporation the computing device is associated with based on the subscriber number of the computing device. The computing device detects an identity of a network by examining a subscriber identification module (SIM) card electronically connected to the device. The device then sends a request including the identity of the corporation and the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an OS specific for the corporation and the network. After retrieving the OS distribution, the device loads the distribution of the OS on the computing device. | 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 |
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 |
20140149558 | CLOUD BASED APPLICATION FRAGMENTATION - Technology is disclosed for decomposing an application into fragments and streaming the application fragments for execution on a mobile computing device. A fragment presents a user interface of the application and needs a set of resources, e.g., images, icons, etc. to be executed. A server determines a set of fragments for the application and streams them to the device as and when the device needs a particular fragment. The server determines the set of fragments in various ways. For example, the server executes an emulator that simulates the execution of the application by the user and determines fragment data including the set of fragments, resources needed by each of the fragments, and various possible navigations between the fragments. In another example, the server receives such fragment data from various users executing the application on various devices, and aggregates them based on aggregating policy to obtain an aggregated fragment data. | 05-29-2014 |
20140148255 | OPTIMIZATION OF GAMING APPLICATION EXECUTION USING PROXY CONNECTION - Technology is disclosed herein for executing multiple gaming applications on a computing device. According to at least one embodiment, a computing device receives requests for network connections with remote servers from multiple gaming applications running on the computing device. The computing device further establishes a network connection with a proxy server. The proxy server initiates and maintains proxy network connections with the remote servers. The proxy server batches network messages received from the remote servers, where the network messages includes gaming content. The proxy server aggregates network messages received in a time period into a single batch, where a time length of the time period is determined based on one or more game events of the games being played on the computing device. Further, the proxy server batches network messages such that the computing device stays at a high power consumption state for a shorter time period than an overall time period required without batching. | 05-29-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 |
20140137102 | CUSTOMIZING OPERATING SYSTEM BASED ON DETECTED CARRIER - Technology disclosed herein includes a method for loading a carrier specific operating system (OS) onto a computing device depending on what network the computing device is connected to. The computing device detects an identity of a network to which a computing device is connected or is to be connected during a network identification process executed on the computing device. The network can be identified, e.g., by examining a subscriber identification module (SIM) card electronically connected to the device. The device then sends a request including the identity of the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an OS specific for the network. After retrieving the OS distribution, the device loads the distribution of the OS on the computing device. Specific OS distribution is chosen based on predefined policies when the device connects to multiple networks. | 05-15-2014 |
20140137101 | AUTOMATICALLY INSTALLING OPERATING SYSTEM SPECIFIC TO A DETECTED NETWORK - Technology disclosed herein includes a method for loading a network specific operating system (OS) onto a computing device depending on a specific network the computing device is connected to. The computing device can connect to multiple networks, e.g., different networks at different times or multiple networks simultaneously. When the computing device switches from a first network to a second network, an OS specific to the second network is automatically installed on the computing device. When the computing device connects to more than one network simultaneously policies may be defined to determine which specific OS distribution is to be installed on the computing device. | 05-15-2014 |
20140136830 | CUSTOMIZING OPERATING SYSTEM BASED ON DETECTED CARRIER - Technology disclosed herein includes a method for loading a carrier specific OS onto a computing device depending on what network the computing device is connected to. The computing device detects an identity of a network to which a computing device is connected or is to be connected during a network identification process executed on the computing device. The network can be identified, e.g., by examining a subscriber identification module (SIM) card electronically connected to the computing device. The device then sends a request including the identity of the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an operating system (OS) specific for the network. After retrieving the OS distribution, the device loads the distribution of the operating system on 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 |
20140136666 | ENABLING FRAGMENT-BASED MOBILE DEVICE APPLICATION STREAMING - Technology for decomposing an application into fragments and streaming the application in fragments is disclosed herein. According to at least one embodiment, a computer-implemented method includes steps of running an intermediary application at a mobile device to enable the mobile device to run the video game application by running multiple game application fragments, the intermediary application acting as an intermediary between the video game application and the game application fragments by determining a next game application fragment for each of the game application fragments; running, at the mobile device, an instance of the video game application by running a first application fragment of the game application fragments at the mobile device; requesting, by the intermediary application, a second application fragment of the game application fragments corresponding to a second portion of the video game application; and receiving, at the mobile device, the second application fragment. | 05-15-2014 |
20140136664 | RESOURCE BASED MOBILE DEVICE APPLICATION STREAMING - Technology for decomposing an application into fragments and streaming the application in fragments is disclosed herein. According to at least one embodiment, a computer-implemented method includes steps of determining multiple application fragments of a computer application, wherein each application fragment of the application fragments includes a code to present at least one interface of the computer application; storing the application fragments at a storage device; generating a resource dependency data structure, wherein for each specific application fragment of the application fragments, the resource dependency data structure includes identifications of resources that are needed for running the specific application fragment; and streaming, via a network component, at least one application fragment of the application fragments to a computing device. | 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
20140095929 | INTERFACE FOR RESOLVING SYNCHRONIZATION CONFLICTS OF APPLICATION STATES - 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. | 04-03-2014 |
20140095734 | SYSTEM AND METHOD FOR RESOLVING SYNCHRONIZATION CONFLICTS - Technology is disclosed herein for resolving synchronization conflicts. According to at least one embodiment, multiple computing devices in a synchronization group can communicate with a cloud storage service for data synchronization. The cloud storage service determines a ranking list for the synchronization group based on a user input indicating the priority of a new computing device in a ranking list. When two conflicting updates to a data set are received from two computing devices, the cloud storage service determines a winning update from the two conflicting updates based on priorities of the first and second computing devices in a ranking list, and distributes the winning update to the computing devices to override the other conflicting update. | 04-03-2014 |
20140095705 | Customizing operating system based on detected carrier - Technology disclosed herein includes a method for loading a carrier specific OS onto a computing device depending on what network the computing device is connected to. The computing device detects an identity of a network to which a computing device is connected or is to be connected during a network identification process executed on the computing device. The network can be identified, e.g., by examining a subscriber identification module (SIM) card electronically connected to the computing device. The device then sends a request including the identity of the network to a remote registration service. In turn the device receives an instruction from the remote registration service identifying a distribution of an operating system (OS) specific for the network. After retrieving the OS distribution, the device loads the distribution of the operating system on the computing device. | 04-03-2014 |
20140095667 | MOBILE DEVICE APPLICATION STREAMING - Technology for decomposing an application into fragments and streaming the application in fragments is disclosed herein. According to at least one embodiment, a computer-implemented method includes steps of determining multiple application fragments of a computer application, wherein each application fragment of the application fragments includes a code to present at least one interface of the computer application; storing the application fragments at a storage device; generating a resource dependency data structure, wherein for each specific application fragment of the application fragments, the resource dependency data structure includes identifications of resources that are needed for running the specific application fragment; and streaming, via a network component, at least one application fragment of the application fragments to a computing device. | 04-03-2014 |
20140095660 | DEVICE CONNECTION PROXY THROUGH CLOUD TO OPTIMIZE NETWORK MESSAGES - Technology is disclosed herein for optimizing network connections using proxy connections. According to at least one embodiment, a computing device receives requests for network connections with remote servers from multiple computer applications running on the computing device. The computing device further establishes a network connection with a proxy server. The proxy server initiates and maintains proxy network connections with the remote servers. The proxy server can delay at least one network message of the network messages received from the remote servers such that the proxy server sends the network messages to the computing device in a batch. The proxy server batches the network messages such that the computing device stays at a high power consumption state for a time period shorter than an overall time period for which the computing device would stay at the high power consumption if the network messages were sent individually without batching. | 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 |
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 |
20140095624 | APPLICATION STATE SYNCHRONIZATION ACROSS MULTIPLE DEVICES - 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 on an electronic device, automatically determining a sync event that occurs in the electronic device, wherein the sync event suggests a synchronization of application state data and the application state data represent an application state of the computer application at the sync event, and transmitting the application state data of the computer application to a storage server in response to the sync event. The application state data of the computer application enables another instance of the computer application to resume the application state at the sync event at another electronic device. | 04-03-2014 |
20140095617 | ADJUSTING PUSH NOTIFICATIONS BASED ON LOCATION PROXIMITY - Technology is disclosed for transmitting notification updates to computing devices (“the technology”). Various embodiments of the technology includes a proxy server that facilitates transmission of notifications to the computing devices based on a location proximity and/or access pattern of the computing devices. In one such embodiment, if a particular computing device of the user is not within a predefined location proximity of a primary computing device of the user, the proxy server delays or decreases the frequency of transmission of the notifications to the particular mobile device. In another example, based on the access pattern of the particular computing device, if the proxy server determines that the user is not likely to use the particular computing device, e.g. until a certain point of time, the proxy server delays or decreases the frequency of the transmission of the notifications to the particular mobile device until around that certain point of time. | 04-03-2014 |
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 |
20140095457 | REGULATING DATA STORAGE BASED ON POPULARITY - Technology is disclosed for regulating data storage based on a popularity of data files (“the technology”). Various embodiments of the technology includes maintaining a fixed durability level of data files stored in a storage system by regulating a number of copies of the data files stored in the storage system. One embodiment includes regulating the number of copies of a particular data file based on popularity of the particular data file among various users using the storage system. The number of copies stored in the storage system is increased or decreased, including from/to zero, based on the popularity of the particular data file. The popularity is determined based on at least one of: a number of computing devices of various users having the particular data file, a latency, network bandwidth and/or availability with the computing devices for reading the particular data file, or access pattern of the particular data file. | 04-03-2014 |