Application State Synchronization Across Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing devices lack seamless continuity of application execution when switching between different devices, such as mobile devices and computing devices, leading to loss of user context in applications like web pages, emails, or multimedia files.
Innovation Solution
Implementing a system where a client device determines its current application state, sends this information to a server, and upon detecting another device's execution of the same application, stops sending updates to prevent collisions, allowing the second device to resume the application from the server-stored state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a client device continuously sends application state updates to a server, then the application state is kept synchronized across devices, but data collisions occur when multiple devices attempt to update simultaneously
Solution Approach 1:
The system applies preliminary anti-action by having the server send a notification to the first client device before the second client device updates the application state. This advance warning allows the first device to stop sending updates proactively, preventing data collisions before they occur. The server acts as a coordinator that anticipates potential conflicts and takes preventive action.
Solution Approach 2:
The system implements feedback by having the server monitor application state updates from multiple devices and send notifications back to the first client device when a second device is about to update. This feedback loop enables the first device to adjust its behavior (stop sending updates) based on real-time information from the server, ensuring synchronized state management without collisions.
2Ease of operation
If application state information is transmitted between devices, then seamless continuity is achieved, but network bandwidth and energy are consumed
Solution Approach 1:
The system extracts only the essential application state information needed for continuity (such as current position, playback state, or document location) and transmits only these critical data elements between devices. By taking out only the necessary state parameters rather than transmitting complete application data, the system achieves seamless continuity while minimizing energy consumption and network bandwidth usage.
3Adaptability or versatility
If multiple devices can execute the same application, then device versatility is improved, but maintaining consistent application state becomes complex
Solution Approach 1:
The server acts as an intermediary that centralizes application state management for multiple devices. Instead of each device independently managing state synchronization (which would be complex), the server mediates all state updates, coordinates between devices, and ensures consistency. This intermediary approach enables multi-device execution versatility while simplifying state management complexity by centralizing coordination logic.
Data Source
AI summary
In one example, a device includes a display, an interface configured to exchange data with external devices, a control unit configured to execute an application to cause the display to display a current visual representation of the application, determine a current application state of the application, wherein the current application state includes at least a portion of the current visual representation of the application, and means for sending, without user intervention, an indication of the determined current application state from the device to a second, different device via the interface, wherein the indication of the determined current application state comprises information for recreating at least the portion of the current visual representation of the application, wherein the control unit is configured to prevent subsequent indications of the current application state from being sent to the second device in response to an indication that a third device is executing the application.


