Follow us on Twitter
twitter icon@FreshPatents

Browse patents:
Next
Prev

Transferring application state between devices / Google Inc.




Transferring application state between devices


A system and method is disclosed for transferring application state between devices. A server stores state objects for applications operating on a first device. The server receives, from a second device, a request for device state information associated with the first computing device. In response to the request, the server provides device state information to the second device, the device state information comprising an application enumeration of the applications operating...



Browse recent Google Inc. patents


USPTO Applicaton #: #20170054767
Inventors: Benjamin Goldsmith, Jennifer Shien-ming Chen, Alexander Friedrich Kuscher


The Patent Description & Claims data below is from USPTO Patent Application 20170054767, Transferring application state between devices.


TECHNICAL HELD

The subject technology relates generally to the transferring of application state between different devices.

BACKGROUND

- Top of Page


Users often interact with multiple applications across multiple devices associated with the user's account. For example, a user may begin a task (e.g., writing an email) on the user's mobile device, switch to a different activity, and then attempt to resume the original task on a different device (e.g., a laptop). Resuming the task on the other device may involve additional time to load and/or execute a program for resuming the task and/or loading information required for resuming the task. In some cases, a corresponding application for resuming the task may be unavailable.

SUMMARY

- Top of Page


The subject technology provides a system and computer-implemented method for transferring application state between devices. In one or more implementations, a computer-implemented method comprises receiving, from a first computing device, one or more state objects corresponding to applications operating on the first computing device, receiving, from a second computing device remote from the first computing device, a request for device state information associated with the first computing device, providing, in response to the request, the device state information to the second computing device, the device state information comprising an application enumeration of the applications operating on the first computing device, receiving, from the second computing device, an application selection corresponding to a selected application of the provided enumeration, and providing, to the second computing device and in response to receiving the application selection, a state object corresponding to the selected application from the received one or more state objects. Other aspects include corresponding systems, apparatuses, and computer program products for implementation of the computer-implemented method.

In one or more implementations, a computer-implemented method comprises receiving, from a server, an application enumeration of applications operating on one or more remote computing devices associated with a user account, providing the application enumeration for display at a global application interface associated with the user account, receiving, at the global application interface, an application selection corresponding to a selected application of the provided application enumeration, requesting, based on the received application selection, a state object corresponding tote selected application from the server, and receiving the state object requested from the server. Other aspects include corresponding systems, apparatuses, and computer program products for implementation of the computer-implemented method.

In one or more implementations, a system comprises one or more processors, and a memory media having instructions stored thereon. When executed, the instructions cause the one or more processors to store, for a first computing device, one or more state objects corresponding to applications operating on the first computing device, receive, from a second computing device remote from the first computing device, a request for an application enumeration of the applications operating on the first computing device, provide, in response to the request, the application enumeration, receive, from the second computing device, an application selection corresponding to a selected application of the provided enumeration, and provide, to the second computing device and in response to receiving the application selection, a state object corresponding to the selected application from the stored one or more state objects. Other aspects include corresponding apparatuses, methods, and computer program products for implementation of the foregoing system.

It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

- Top of Page


A detailed description will be made with reference to the accompanying drawings:

FIG. 1 is a diagram of an example system for transferring application state between devices.

FIG. 2 depicts example components and data flow for transferring application state between devices.

FIG. 3 depicts an example user interface for use in for transferring application state between devices.

FIG. 4 depicts a flow diagram of an example process for transferring application state between devices.

FIG. 5 is a diagram depicting an example electronic system for use in connection with transferring application state between devices.

DETAILED DESCRIPTION

- Top of Page


The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology may be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the subject technology. However, it will be clear and apparent to those Skilled in the art that the subject technology is not limited to the specific details set forth herein and may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology.

The subject technology provides a mechanism for transferring application state between devices. A server is provided that receives and stores state objects corresponding to applications operating on computing devices associated with a user account. A client device (e.g., a computer or smartphone) associated with the user account may request to view applications operating on other devices associated with the user account. On receiving such a request, the server may provide the client device with device state information associated with the other devices, including an application enumeration (e.g., list or other representation) of the applications operating on devices. The client device then informs the server of a selected one of the applications based on a user selection from the application enumeration, and the server provides a state object corresponding to the selected application from the previously received one or more stored state objects.

On the client side, the client device may determine one or more computing devices associated with a user account to which a user of the client device is authenticated. For example, the client device may query the server (e.g., by querying the user account) for devices associated with (or authenticated to) the user account. A device enumeration of the determined computing devices may then be provided to a global application interface operating on the client device. In one or more implementations, the global application interfaces provides for “global” management and transfer of state information (e.g., as state objects) across all devices linked to the user account. On receiving from the global application interface a user selection corresponding to one or more computing devices, the client device may request device state information for the selected devices from the server. The server then sends to the client device the device state information, including an application enumeration of applications operating on the selected computing devices, and the client device provides the application enumeration to the global application interface.

The user may then select an application from the provided application enumeration. On receiving the selected application, the client device requests and receives a state object corresponding to the selected application from the server. The client device may then use the state object to open a local instance of the selected application with state and settings identical to a remote instance of the selected application that is currently operating on one of the selected computing devices.

The global application interface may be used, for example, to view all applications currently operating on devices connected to the user account, or all applications for which state information has been stored at the server. Applications may be displayed from a group of displayed applications ordered by device or, in some implementations, a group of devices may be displayed and applications for a selected one of the displayed devices presented to the user. In some implementations, the global application interface may be displayed upon the user performing a predetermined gesture (e.g., a pinch or pinch-expand gesture on a desktop).

The operation of the system, and global application interface, may be bi-directional. For example, a user may use the global application interface to instantiate a local instance of an application currently running on another device. Alternatively, the user may drag a representation of an application currently operating on the user\'s device to a representation of another device displayed in the global application interface to transfer a state object to the other device and open an instance of the application on the other device.

FIG. 1 is a diagram of an example system 100 for transferring application state between devices, according to one or more aspects of the subject technology. A system 100 may include one or more computing devices 101, 102, one or more centralized servers 103, and a remote storage 104 (for example, a database). Computing devices 101, 102 may each be one of a smartphone, GPS navigation device, or personal computer, tablet computer, PDA, a television or other display device with one or more location-aware computing devices embedded therein or attached thereto, or the like.

According to various implementations, computing devices 101 and 102 may be tied to a user account 105. Accordingly, a user 106 is authorized to use certain features of a respective device 101, 102 by authenticating to user account 105, User account 105 may be, for example, a cloud-based or web-based user account or may be an enterprise account (e.g., LDAP account), and may function as a universal account for multiple devices. In this regard, information stored in connection with the user account may be centrally located on a third computing device, for example, on a server 103 (e.g., in a “data cloud”). Server 103 may be operably connected to, for example, first and second computing devices 101, 102 over a network 107 (for example, a LAN, WAN, WiFi, cellular network, or the Internet). Remote storage 104 may store information in connection with user account 105 (e.g., state Objects). The functionality of server 103 and remote storage 104 may be implemented on the same physical server or distributed among a plurality of servers. Moreover, remote storage 104 may take any form such as relational databases, object-oriented databases, file structures, text-based records, or other forms of data repositories.

Computing devices 101, 102 may store (e.g., locally) information settings and state information within the state objects for applications operating on the devices. A state object may be a memory-resident data object associated with each application. Each state object may persist in memory like a cookie and/or persist in a local non-volatile memory after the application is closed. A state object, or the information therein, may be automatically transmitted to server 103 for storage at remote storage 104. In another aspect, a state object or the information therein may only be transmitted if the application, or the device on which the application is operating, has been registered and/or authenticated to user account 105, or if manually authorized or initiated by user 106.

Each computing device 101, 102 may be configured to connect to server 103 and to synchronize local state information with state objects stored in remote storage 103. In one aspect, first computing device 101 may send one or more state objects to server 103, and server 103 may receive and store the state objects in remote storage 103 so that they may be accessed and synchronized with second computing device 102, even when device 101 is offline. Server 103 may also store other information, including the last time each device, application, or state object was synchronized.

The synchronization, storage, and/or transfer of state objects may be between different types of computing devices 101, 102. For example, various applications may be installed on a smartphone as well as a desktop or laptop computer. As tong as these applications and/or the device on which they are operating are associated with user account 105, state objects for the applications may be uploaded and stored on remote storage 103 for access by any of the devices.

The various connections between computing devices 101 and 102, server 103, and storage 104 may be made over a wired or wireless connection. Computing devices 101 and 102 may be co-located within a defined area. For example, the devices may be connected to the same LAN or WiFi network. Computing devices 101 and 102 may be in different locations such as at the user\'s home and place of employment.

According to various aspects, computing devices 101 and 102 may be configured to load and execute one or more user interfaces 108a, 108b for interaction with server 103 and for the management or transfer of state objects. User interface 108 may be a desktop interface provided by a desktop or mobile operating system, or a user interface provided by a stand-alone application (e.g., a web-browser or web-enabled application) executing on the device and managed by the operating system. Interface 108 may be opened using, e.g., a predetermined gesture. For example, user 106 may perform a pinch-expand gesture (e.g., a reverse pinch) on a touch screen of computing device 102 to open interface 108b. As will be discussed further, the user interface 108 of each device may be used to review, at a global level, applications operating on devices linked to user account 105 and to local open selected ones of those applications on the device associated with user interface 108 (operating, e.g., as a global application interface).

Server 103 may receive and store state objects for devices associated with user account 105 and, upon receiving a request for state information from one of the devices, server 103 may make a determination as to which computing devices are currently associated (e.g., registered) with user account 105 and/or currently authenticated to user account 105. Server then may provide an enumeration of all applications operating across the account-linked devices to one or more of the devices based on the determination. For example, computing device 102 may request an enumeration of devices linked to user account 105. Server 103 may then determine the devices currently linked to the account and provide the enumeration of devices to user interface 108b for display to user 106.

User 106 may then select one of the devices at user interface 108b to open locally on device 102. In this regard, server 103 may receive, from interface 108b, a device selection corresponding to a selected computing device of the device enumeration. In response to receiving the device selection, server 103 may determine an application enumeration of applications operating on the selected computing device, and provide the application enumeration to interface 108b. User 106 may then select an application from the application enumeration, and computing device 102 provides the selected application to server 103. Server 103 then retrieves a state object corresponding to the selected application from, e.g., remote storage 104 and provides the state object to computing device 102. Computing device 102 receives the state object from server 103 and then opens a local instance of the selected application based on the received state object. The local instance is opened with state and settings identical to a remote instance of the selected application that is currently operating on the selected computing device.




← Previous       Next →

Download full PDF for full patent description, claims and images

Advertise on FreshPatents.com - Rates & Info


You can also Monitor Keywords and Search for tracking patents relating to this Transferring application state between devices patent application.

###


Browse recent Google Inc. patents

Keyword Monitor How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Transferring application state between devices or other areas of interest.
###


Previous Patent Application:
Transfer of files over a network while still being written
Next Patent Application:
Transfomer structure
Industry Class:

Thank you for viewing the Transferring application state between devices patent info.
- - -

Results in 0.04461 seconds


Other interesting Freshpatents.com categories:
QUALCOMM , Apple ,

###

Data source: patent applications published in the public domain by the United States Patent and Trademark Office (USPTO). Information published here is for research/educational purposes only. FreshPatents is not affiliated with the USPTO, assignee companies, inventors, law firms or other assignees. Patent applications, documents and images may contain trademarks of the respective companies/authors. FreshPatents is not responsible for the accuracy, validity or otherwise contents of these public document patent application filings. When possible a complete PDF is provided, however, in some cases the presented document/images is an abstract or sampling of the full patent application for display purposes. FreshPatents.com Terms/Support
-g2-0.2663

66.232.115.224
Browse patents:
Next
Prev

stats Patent Info
Application #
US 20170054767 A1
Publish Date
02/23/2017
Document #
14828450
File Date
08/17/2015
USPTO Class
Other USPTO Classes
International Class
04L29/06
Drawings
6


Computing Device Enumeration Server

Follow us on Twitter
twitter icon@FreshPatents

Google Inc.


Browse recent Google Inc. patents





Browse patents:
Next
Prev
20170223|20170054767|transferring application state between devices|A system and method is disclosed for transferring application state between devices. A server stores state objects for applications operating on a first device. The server receives, from a second device, a request for device state information associated with the first computing device. In response to the request, the server |Google-Inc
';