Static Resource Version Pinning for Web Server Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional approaches to updating web pages face challenges with version mismatches between client-side static resources and server-side code, leading to communication errors and inefficiencies, particularly during update push periods, due to limitations in web server data storage and backwards compatibility.
Innovation Solution
Implementing a tiered caching system with a primary storage layer, intermediate cache layer, and local cache layer to store tree graphs for static resource files, allowing web servers to be backwards-compatible and service any version of static resource files without storing extensive local data, while using tree hashes to efficiently retrieve and adapt static resource files based on user parameters.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If web servers store extensive local data to service multiple versions of static resource files, then backwards compatibility is improved, but data storage requirements and device complexity increase
Solution Approach 1:
The patent extracts version information and dependency relationships from the server's local storage requirements and places them in client-side browser storage (localStorage). The server only stores the auxiliary data table with version-pinching rules, while the actual static resource files and their version dependencies are cached in the browser's local storage, eliminating the need for the server to maintain extensive local data for multiple versions.
Solution Approach 2:
The patent introduces an auxiliary data table as an intermediary structure that stores version-pinching rules and dependency relationships. This table acts as a mediator between the server's minimal storage and the client's local storage, enabling the server to service multiple versions without maintaining extensive local data by relying on the structured information in the auxiliary data table.
2Reliability
If web servers maintain multiple versions of static resource files locally, then version mismatch errors are reduced, but device complexity and storage needs increase
Solution Approach 1:
The patent performs preliminary version matching and dependency resolution by storing version-pinching rules in the auxiliary data table before actual resource requests occur. The system pre-establishes the relationships between different versions of static resource files and their dependencies, allowing the server to quickly determine the correct version to serve without complex real-time analysis, thereby reducing version mismatch errors while maintaining simple server architecture.
Solution Approach 2:
The patent creates a simplified copy of the version management system on the server side through the auxiliary data table, which contains only the essential version-pinching rules and dependency information. This lightweight copy enables the server to maintain backwards compatibility and service multiple versions without duplicating the full static resource files locally, thus reducing device complexity while maintaining reliability.
3Stability of the object's composition
If web servers update static resource files centrally, then consistency is improved, but update push efficiency decreases due to storage limitations
Solution Approach 1:
The patent segments the version management system into two parts: the server maintains the authoritative auxiliary data table with version-pinching rules, while the client maintains local copies of static resource files in browser storage. This segmentation allows the server to push updates efficiently by only updating the auxiliary data table, while clients independently manage their local resources, improving update push efficiency while maintaining consistency through the version-pinching mechanism.
Solution Approach 2:
The patent implements partial updating by allowing the server to update only the auxiliary data table with new version-pinching rules rather than pushing all static resource files to all clients. The clients independently manage their local resource files and use the version-pinching rules to determine when to request updates, enabling efficient partial updates that maintain consistency without requiring complete synchronization of all resources.
Data Source
AI summary
Systems, methods, and non-transitory computer-readable media can receive a client request from a requesting user. The client request is associated with a web page. A static resource file identifier and a version identifier are determined based on the client request. A response to the client request is generated based on the static resource file identifier and the version identifier.


