Delta Compression Caching for Dynamic Web Page Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current caching models for HTTP are inadequate in handling dynamic and personalized web pages, leading to inefficiencies due to varying latency across multiple servers and the failure to manage complex web content effectively.

Innovation Solution

A system comprising a user agent, client device, optimization server, and content servers that employs delta compression and block encoding methods to optimize data transfer by using a data cache, key cache, and block cache to store and match key data, reducing the need for redundant data transfers and improving web page loading speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If current caching models are used for HTTP, then web page content can be stored and retrieved, but they fail to handle dynamic and personalized web pages effectively, leading to inefficiencies

Engineering Contradiction:
Improveability to handle dynamic and personalized web pagesVSAvoidefficiency of data transfer
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments web page content into multiple blocks and creates separate cache entries for each block rather than treating the entire page as a single unit. This segmentation allows the system to efficiently handle dynamic portions of web pages by caching only the static blocks, thereby improving adaptability to personalized content while maintaining high productivity through reduced data transfer of redundant static content.

Inventive Principle:
Principle #1Segmentation

2Reliability

If hundreds of objects are downloaded from multiple servers to display a web page, then complete web page content can be retrieved, but varying latency across servers increases loading time

Engineering Contradiction:
Improvecompleteness of web page contentVSAvoidweb page loading time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by caching static blocks of web page content in advance at the user agent or intermediary server. When a user requests a web page, previously cached static blocks are immediately available and do not need to be re-downloaded from multiple servers, thereby reducing loading time while ensuring complete content is still delivered by filling in the dynamic portions.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If redundant data is transferred repeatedly to update web pages, then dynamic content can be delivered, but bandwidth is wasted and transfer efficiency decreases

Engineering Contradiction:
Improveability to deliver dynamic contentVSAvoidbandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent extracts and caches only the static blocks of web page content separately from dynamic content. By taking out the static portions that remain unchanged across multiple page versions and caching them independently, the system eliminates redundant data transfer of static content while still delivering updated dynamic content, thereby reducing bandwidth consumption without sacrificing the ability to deliver dynamic content.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8312172B2Method and system for delta compression
Publication Date: 2012.11.13 CITRIX SYSTEMS INC
  • US8312172B2 patent drawing
  • US8312172B2 patent drawing
  • US8312172B2 patent drawing

AI summary

A method and system for providing delta compression, the method includes receiving request data from a user agent, communicating with a content server, wherein the communication includes transmitting the request data to the content server and receiving response data associated with the request data, generating key data associated with the response data, wherein the generated key data represents block data of the response data, storing the generated key data and the block data, and transmitting the block data to the user agent.