Offline Web Application Architecture with Local Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web applications experience reduced responsiveness due to network latency and limited functionality when a network connection is unavailable, as they rely on remote servers for data access, leading to frustrating user experiences.

Innovation Solution

Implementing a local data structure on client devices to store data items, allowing web applications to operate offline and improve responsiveness by using a write-through cache and LRU cache replacement policy, enabling immediate access to data without relying solely on network responses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If web applications rely on remote servers for data access, then data consistency is maintained, but responsiveness deteriorates due to network latency

Engineering Contradiction:
ImproveresponsivenessVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system segments data access operations into local cache operations and remote server operations. The local cache stores copies of data items locally, allowing the web application to access data without waiting for network responses, thereby improving responsiveness while maintaining data consistency through periodic synchronization with the remote server.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A local cache acts as an intermediary between the web application and the remote server. This intermediary stores data items locally and handles read operations immediately, while maintaining consistency with the remote server through background synchronization, thus resolving the contradiction between fast local access and remote data consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If web applications store data locally, then offline functionality is enabled, but data synchronization complexity increases

Engineering Contradiction:
Improveoffline capabilityVSAvoidsynchronization mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Data items are pre-loaded into the local cache before they are needed for offline operations. The system proactively stores data items in the local cache when the application is online, so that when the user goes offline, the data is already available locally, enabling offline functionality without complex real-time synchronization mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of data items and stores them in the local cache. These copies enable offline access to data without requiring the original data to be on the remote server. The synchronization mechanism simply needs to update or replace copies when the application is online, which is a relatively simple operation compared to maintaining real-time consistency.

Inventive Principle:
Principle #26Copying

3Measurement precision

If web applications wait for network responses before performing operations, then data accuracy is ensured, but user experience deteriorates due to waiting time

Engineering Contradiction:
Improvedata accuracyVSAvoidwaiting time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs partial data access operations by retrieving data from the local cache instead of waiting for complete network responses. This partial action provides sufficient data accuracy for most operations while eliminating the waiting time associated with network latency, improving user experience without completely sacrificing data accuracy.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2665001B1Architectural pattern for persistent web application design
Publication Date: 2018.06.20 GOOGLE LLC
  • EP2665001B1 patent drawingFigure 1
  • EP2665001B1 patent drawingFigure 2
  • EP2665001B1 patent drawingFigure 3

AI summary

A computer system operating a web application with offline capabilities, including a web browser, a local web application, a write queue maintained in the local memory and a persistent local database. When the web application needs to perform an operation on a data item, the web application issues a database request to determine if the data item is in the local database. If the data item is not in the local database, the web application issues the data request to the server system. If the data item is in the local database, the web application performs the operation on the data item stored in the database and writes the operation to the write queue along with the identifier of the data item. When a network connection exits between the client device and the server system, the web interface drains the write queue to the server system.