Proxy Server Predictive Resource Pre-fetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In high latency networks, such as mobile networks, loading web pages is slow due to multiple file requests, with significant time spent waiting for resources like JavaScript files, and existing compression proxy solutions do not effectively predict and pre-fetch necessary files to improve speed.

Innovation Solution

A system and method that uses a proxy server to predict which resources a user will request by analyzing network requests from other users, pre-fetching and pushing those resources to the client before they are requested, and utilizing cache synchronization to avoid redundant data transfer, including delta encoding for efficient data compression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple file requests are made to load web pages in high latency networks, then complete web page functionality is achieved, but loading time increases significantly

Engineering Contradiction:
Improveweb page functionalityVSAvoidloading time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by analyzing network requests from other users to predict which resources a particular user will need, then pre-fetches and pushes those resources to the client before they are actually requested. This eliminates waiting time for resource loading while ensuring complete web page functionality is achieved.

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If compression proxy solutions are used to reduce data transfer, then bandwidth is conserved, but they fail to predict and pre-fetch necessary files to improve speed

Engineering Contradiction:
Improvebandwidth consumptionVSAvoidresource loading speed
Core Design Contradiction:
Loss of energyVSSpeed

Solution Approach 1:

The compression proxy is enhanced with predictive capabilities that analyze patterns from other users' requests to determine which files will be needed. It performs preliminary actions by pre-fetching and pushing these predicted files to the client before they are requested, thereby both conserving bandwidth through compression and improving loading speed through advance preparation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from analyzing network requests made by other users to improve its prediction accuracy. By continuously learning from collective user behavior patterns, the proxy becomes better at predicting which resources individual users will need, optimizing both bandwidth usage and loading speed over time.

Inventive Principle:
Principle #23Feedback

3Speed

If resources are pushed to client before request, then loading speed improves, but redundant data transfer may occur without proper cache synchronization

Engineering Contradiction:
Improveresource loading speedVSAvoidbandwidth consumption
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

Cache synchronization mechanisms provide feedback between the proxy server and client cache. The system checks what resources are already cached before pushing new ones, and updates the cache systematically. This feedback loop ensures that resources are pushed only when necessary, eliminating redundant data transfer while maintaining the speed benefits of pre-fetching.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10680968B2Web access performance enhancement
Publication Date: 2020.06.09 OPERA NORWAY AS
  • US10680968B2 patent drawing
  • US10680968B2 patent drawing
  • US10680968B2 patent drawing

AI summary

Systems and methods described herein may provide web access performance enhancement. A proxy server comprising a processor and a database may receive request data associated with a URL and store the request data in the database. The proxy server may receive a request for the URL from a client, identify commonly requested data in the request data, and send the commonly requested data to the client before receiving a request for the commonly requested data from the client.