Application State Synchronization via Priority-Based Event Push
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current timer-based state synchronization methods in browser-based applications are inefficient, as they send nearly the same amount of data between the browser and server periodically, regardless of whether the application state has changed, leading to wasted processing power and network capacity, and increased response latency for users.
Innovation Solution
A method and apparatus that prioritize and selectively send responses to clients based on a history of received update requests, synchronizing the state with a data source only when changes occur, reducing unnecessary requests and responses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If timer-based periodic requests are used for state synchronization, then the application state is kept updated with the server, but large amounts of data are transmitted unnecessarily even when state has not changed
Solution Approach 1:
The patent replaces continuous periodic timer-based requests with event-driven periodic action. The server now pushes updates only when state changes occur, rather than pulling data continuously. This maintains synchronization reliability while eliminating unnecessary network transactions when state remains unchanged.
Solution Approach 2:
The patent implements a feedback mechanism where the server monitors state changes and pushes updates back to clients only when necessary. The server tracks which clients need updates and sends targeted responses, creating a feedback loop that reduces unnecessary data transmission while maintaining synchronization.
2Reliability
If timer-based periodic requests are used for state synchronization, then the application state is kept updated with the server, but computing processing power and network transportation capacity are wasted
Solution Approach 1:
The patent transforms continuous periodic polling into event-driven periodic action. The server pushes updates only when state changes occur, eliminating wasted processing power during periods when state remains unchanged. This maintains synchronization reliability while significantly improving processing efficiency.
Solution Approach 2:
The server performs self-service by autonomously detecting state changes and pushing updates without waiting for client requests. This eliminates the need for continuous client-initiated polling, reducing wasted processing power and network capacity while maintaining synchronization.
3Reliability
If timer-based periodic requests are used for state synchronization, then the application state is kept updated with the server, but response latency for user interaction increases
Solution Approach 1:
The patent replaces continuous polling with event-driven periodic action. When state changes occur, the server immediately pushes updates to clients, reducing response latency. This maintains synchronization reliability while eliminating the time waste associated with continuous timer-based requests.
Solution Approach 2:
The server performs preliminary action by proactively pushing updates before clients might request them. By monitoring state changes and pushing updates in advance to waiting clients, the system reduces response latency while maintaining synchronization reliability.
Data Source
AI summary
A method and an apparatus that synchronize an application state in a client with a data source in a backend system in an asynchronous manner are described. A response is sent to the client based on a priority determined according to a history of received update requests. When a notification message from a data source in a backend system is received, an update request is selected from a plurality of update requests currently pending to be served according to the priority associated with each update request. A response is sent to the client over a network corresponding to the selected update request. The response includes state updates according to the changes in the data source and the current application state in the corresponding client.


