Client-Side Caching for Seamless Offline File Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional client applications face disruptions when disconnected from remote servers, leading to inaccessible data, incoherent file operations, and increased network traffic, as they rely on the connection state and fail to maintain 'truth on the client' during connectivity interruptions.

Innovation Solution

Implementing a client-side caching infrastructure that persists files and protocol information, including access rights, on the local data store, allowing seamless operation across connectivity states by caching files automatically or manually, and enabling write-back caching to maintain data consistency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If client applications rely on remote server connection state for data access, then data consistency with server is maintained, but data accessibility during disconnection is lost

Engineering Contradiction:
Improvedata consistencyVSAvoiddata accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary actions by caching file data, metadata, and protocol information on the client side before disconnection occurs. This allows the client to access cached data during offline periods without compromising eventual consistency with the server upon reconnection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A client-side caching component acts as an intermediary between the client application and the remote server. This intermediary maintains a local copy of files and protocol information, enabling seamless operation during disconnection while preserving the ability to synchronize with the server when connected.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If server version of data is maintained during client-server conflicts, then data integrity on server is preserved, but client data visibility and coherence are lost

Engineering Contradiction:
Improvedata integrityVSAvoidclient data visibility
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system caches protocol information including object access rights and share access rights before disconnection. This preliminary caching ensures that client-side data modifications remain visible and coherent during offline periods, while maintaining the ability to resolve conflicts with server data upon reconnection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates local copies of not only file data but also protocol information and access rights. This comprehensive copying enables the client to maintain coherent data operations offline while preserving the ability to synchronize with the server version when connected, preventing data loss or incoherence.

Inventive Principle:
Principle #26Copying

3Ease of operation

If all files are cached to local data store, then offline access is enabled, but device storage requirements increase

Engineering Contradiction:
Improveoffline accessVSAvoidstorage requirements
Core Design Contradiction:
Ease of operationVSVolume of stationary object

Solution Approach 1:

The system applies local quality by caching files selectively based on their protocol information and access rights. Only files with appropriate caching permissions are stored locally, enabling offline access for authorized files while avoiding unnecessary storage consumption for files that should remain server-only.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes the caching behavior based on protocol information parameters such as object access rights and share access rights. Files are cached or not cached depending on these parameters, allowing flexible storage management that enables offline access where permitted while conserving storage resources where not permitted.

Inventive Principle:
Principle #35Parameter changes

4Ease of operation

If persistent caching is implemented, then seamless operation across connectivity states is achieved, but system complexity increases

Engineering Contradiction:
Improveseamless operationVSAvoidcaching infrastructure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The client-side caching component is designed to be universal by handling multiple protocols (SMB, Webdav) and multiple types of information (file data, metadata, access rights). This multi-functional approach consolidates what could be multiple separate systems into a single caching infrastructure, managing complexity while enabling seamless operation across different connectivity states.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7441011B2Truth on client persistent caching
Publication Date: 2008.10.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7441011B2 patent drawing
  • US7441011B2 patent drawing
  • US7441011B2 patent drawing

AI summary

The present invention provides a novel client side caching (CSC) infrastructure that supports transition states at the directory level to facilitate a seamless operation across connectivity states between client and remote server. More specifically, persistent caching is performed to safeguard the user (e.g., client) and/or the client applications across connectivity interruptions and/or bandwidth changes. This is accomplished in part by caching to a client data store the desirable file(s) together with the appropriate file access parameters. Moreover, the client maintains access to cached files during periods of disconnect. Furthermore, portions of a path can be offline while other portions upstream can remain online. CSC operates on the logical path which cooperates with DFS which operates on the physical path to keep track of files cached, accessed and changes in the directories. In addition, truth on the client is facilitated whether or not a conflict of file copies exists.