Request Cache for Web Application Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches to handling message processing in web applications, such as those using Java Server Faces (JSF), are inefficient due to repeated fetching of dynamic context information from external sources at various processing stages, leading to reduced performance.

Innovation Solution

Implementing a caching mechanism that uses a JSF phase listener and a JavaBean proxy to intercept and cache dynamic context information, allowing it to be reused across processing stages, thereby reducing the need for multiple external requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dynamic context information is fetched from external sources at each processing stage, then each stage can access up-to-date context data, but the request-processing speed deteriorates due to repeated external requests

Engineering Contradiction:
Improvecontext data freshnessVSAvoidrequest-processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by fetching and caching dynamic context information at the beginning of request processing (during the restore-view stage) before subsequent stages need it. The cached context is then reused across apply-values, validate, update, logic-invocation, and rendering stages, eliminating repeated external requests while ensuring each stage accesses the same context data without performance penalty

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements local quality by creating a localized cache within the server container that stores context information specifically for the current request lifecycle. This local cache provides fast access to context data for all processing stages without requiring external requests, while maintaining data consistency throughout the request processing pipeline

Inventive Principle:
Principle #3Local quality

2Productivity

If context information is cached for reuse across processing stages, then request-processing speed improves, but the system complexity increases due to cache management overhead

Engineering Contradiction:
Improverequest-processing speedVSAvoidcache management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies universality by designing a phase listener that serves multiple functions: it detects context fetches, retrieves dynamic context from external sources, caches the context information, and provides it to subsequent processing stages. This single multi-functional component handles the entire cache management lifecycle without requiring separate mechanisms for each task, thereby improving performance while minimizing added complexity

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

Solution Approach 2:

The patent implements self-service by enabling the phase listener to automatically manage the context cache throughout the request lifecycle. The listener autonomously detects when context is needed, fetches it from external sources, stores it in the cache, and makes it available to subsequent stages without requiring manual intervention or complex external cache management infrastructure

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10594764B2Request cache to improve web applications performance
Publication Date: 2020.03.17 ORACLE INT CORP
  • US10594764B2 patent drawing
  • US10594764B2 patent drawing
  • US10594764B2 patent drawing

AI summary

A system and method for enhancing web application performance by selectively caching information used by different stages of server-side processing of a request for webpage content from a client system. An example method involves using a specialized cache requestor for selectively fetching and caching JavaBean properties once per request lifecycle. The cached JavaBeans properties may then be used by different request-processing stages of the lifecycle, thereby obviating the need to implement multiple external requests for JavaBeans properties, i.e., multiple accesses of dynamic context. The cache requestor may leverage functionality provided by a JSF phase listener (JSF phaseListener) and a JavaBean proxy (BeanProxy) to keep the retrieved state information accessible to the request processing and associated JSF container.