Distributed Document Synchronization via Client Agents
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing document management systems face challenges in enabling simultaneous editing by multiple users without conflicts, requiring complex merge tools or server-centric approaches that restrict collaboration and are prone to errors or security risks.
Innovation Solution
A computer-implemented method using agents on client devices to detect changes, persist them when offline, and transmit them over the network for real-time synchronization across all users' copies, allowing local editing and ensuring consistency without a central master copy or server dependency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single central repository is used to maintain a master version of a document, then version control is simplified, but simultaneous editing by multiple users causes conflicts and requires complex merge tools
Solution Approach 1:
The patent segments the monolithic central repository approach into distributed peer devices, where each user maintains a complete copy of the document. This eliminates the single point of conflict by allowing parallel editing at multiple locations, with automatic synchronization resolving any inconsistencies through conflict detection and resolution algorithms.
Solution Approach 2:
The patent introduces an intermediary synchronization mechanism that mediates between multiple users editing the same document. This intermediary layer detects conflicts, coordinates resolution, and ensures document consistency without requiring a central authoritative repository, thus maintaining reliability while enabling simultaneous editing.
2Ease of operation
If a server-centric system is used to store and update documents, then centralized control is achieved, but security risks and single points of failure increase
Solution Approach 1:
The patent inverts the traditional server-centric architecture by making peer devices the primary storage locations rather than a centralized server. Each peer maintains a complete copy of the document, eliminating the single point of failure. Centralized control is achieved through distributed consensus mechanisms rather than a central authority, thus improving reliability while maintaining ease of operation.
Solution Approach 2:
The patent applies local quality by allowing each peer device to maintain its own local copy of the document with full editing capabilities. This distributed approach eliminates the security risks and availability issues of centralized servers while maintaining centralized coordination through peer-to-peer synchronization protocols.
3Productivity
If users must be online to access and edit a centrally stored document, then real-time collaboration is enabled, but connectivity requirements restrict flexibility
Solution Approach 1:
The patent applies preliminary action by pre-synchronizing document copies to each peer device before users go offline. This allows users to edit their local copies without network connectivity, maintaining productivity. When users reconnect, the system automatically detects and resolves any conflicts, ensuring consistency without requiring continuous online presence.
Solution Approach 2:
The patent introduces dynamics by allowing the system to adapt between online and offline states. Peers can dynamically switch between collaborative real-time editing when connected and independent offline editing when disconnected. The synchronization mechanism dynamically detects and resolves conflicts upon reconnection, thus maintaining both real-time collaboration capability and offline flexibility.
Data Source
AI summary
For instance, in the case of a software implementation, the terms “component” or “functionality” may refer to program code that performs specified tasks when executed on a processing device or devices (e.g., processor(s) 720). The program code can be stored in one or more computer readable memory devices as described above. The illustrated separation of components and functionality into distinct units may reflect an actual physical grouping and allocation of such software and/or hardware, or can correspond to a conceptual allocation of different tasks performed by a single software program and/or hardware unit.


