HTTP Request Preservation in Asynchronous Web Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In asynchronous web request processing, child threads often require longer processing times, leading to the release or recycling of data objects associated with HTTP requests before all threads have finished, preventing them from accessing necessary data.

Innovation Solution

The system preserves HTTP request and response objects in memory, allowing pending child threads to continue accessing them until completion, even after the initial request thread has terminated, and optionally releases them after a timeout or when all threads are finished.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data objects are released or recycled after termination of the parent request thread, then memory resources are freed for reuse, but child threads are unable to access the data objects they need to complete rendering

Engineering Contradiction:
Improvememory resource availabilityVSAvoiddata object accessibility
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system dynamically adjusts the lifecycle of data objects based on thread execution status. Instead of fixed release timing, the data objects remain in memory as long as any child thread requires them, with the web container tracking thread completion status to determine optimal release timing

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The web container acts as an intermediary that manages the relationship between child threads and data objects. It maintains references to data objects and provides controlled access to child threads, mediating between the need for memory resource management and thread access requirements

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If the parent request thread terminates early, then response time is improved by delivering content sooner, but pending child threads cannot access data objects associated with the HTTP request

Engineering Contradiction:
Improveresponse delivery timeVSAvoiddata object accessibility
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The web container performs preliminary actions by preserving data objects in memory before child threads complete their execution. It proactively maintains data object references and prevents premature garbage collection, ensuring data availability before threads actually need it

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically extends the lifetime of data objects beyond the parent thread's execution scope. The data objects remain accessible in memory based on the actual completion status of child threads rather than following the parent thread's lifecycle rigidly

Inventive Principle:
Principle #15Dynamics

3Reliability

If request and response objects are preserved in memory for pending child threads, then all threads can access necessary data objects, but memory resources are occupied longer than necessary

Engineering Contradiction:
Improvedata object accessibilityVSAvoidmemory resource availability
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The web container implements feedback mechanisms by monitoring child thread execution status. It continuously checks whether child threads are still active and uses this feedback to determine when data objects can be safely released from memory, preventing both premature release and excessive retention

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8527992B2HTTP request preservation
Publication Date: 2013.09.03 SAP SE
  • US8527992B2 patent drawing
  • US8527992B2 patent drawing
  • US8527992B2 patent drawing

AI summary

The present disclosure involves systems, software, and computer implemented methods for preserving a Hypertext Transfer Protocol (HTTP) request. One process includes operations for receiving an HTTP request and generating request and response objects representing the HTTP request. Multiple child threads are generated and then executed at content providers to render content in response to the HTTP request. A first portion of the rendered content is transmitted, but the request and response objects are stored in memory and made accessible to content providers associated with pending child threads. The content providers associated with the pending child threads utilize the request and response objects to render a second portion of the content.