Live Data Management System for Client-Server Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for developing Web-based client-server applications are inefficient due to the need for manual management and polling to update data between client and server sides, which hinders rapid development and responsiveness.
Innovation Solution
A live data management system that uses live data objects to monitor changes on the server side and automatically update the client side, allowing developers to code both client and server sides in a single source module, leveraging MVC design pattern and caching for efficient data management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If manual management and polling methods are used to update data between client and server sides, then data synchronization can be achieved, but development efficiency is reduced and system responsiveness is hindered
Solution Approach 1:
The server-side live data object automatically monitors data source changes and pushes updates to client-side without requiring manual polling or client requests. The system serves itself by having the server proactively notify clients of data changes, eliminating the need for manual synchronization management and significantly improving development efficiency
Solution Approach 2:
The live data object establishes a feedback mechanism where the server continuously monitors data sources and automatically communicates changes back to client-side applications. This real-time feedback loop ensures data synchronization while eliminating manual polling, reducing both development complexity and improving responsiveness
2Reliability
If polling is used to check for data updates, then data synchronization is maintained, but system responsiveness is reduced and unnecessary requests are made
Solution Approach 1:
Instead of client-side polling, the server-side live data object implements a push-based feedback mechanism that immediately notifies clients when data changes occur. This ensures reliable data synchronization while eliminating the delay inherent in polling intervals and reducing unnecessary network requests
Solution Approach 2:
The system transitions from periodic polling actions to event-driven push actions. The server monitors data sources continuously and triggers update pushes only when changes occur, maintaining synchronization reliability while improving responsiveness by eliminating the wait time between polling cycles
3Reliability
If client-side applications manually manage data updates, then data can be synchronized, but the amount of code and management overhead increases
Solution Approach 1:
The server-side live data object takes responsibility for monitoring data sources and managing update propagation to clients. This self-service approach eliminates the need for client-side polling logic and manual synchronization code, reducing code overhead while maintaining reliable data synchronization
Solution Approach 2:
The data monitoring and update management functionality is extracted from client-side applications and consolidated into server-side live data objects. This extraction removes complex synchronization logic from clients, reducing code overhead and simplifying client application structure while maintaining synchronization reliability
Data Source
AI summary
Techniques for live data management are described. Some embodiments provide a Live Data Management System (“LDMS”) that provides a facility for managing live data objects and for efficiently developing client-server applications that utilize such live data objects. Live data objects are modules of computation that exist on both a client side and server side portion of a client-server application. Live data objects are configured to monitor changes to data hosted on or accessible via the server side, and to automatically update the client side without the need for polling or other requests made by the client side. The described techniques facilitate efficient software development of Web-based client server applications.


