Web Request Manager Segmentation for Concurrent Ajax and Comet

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The HTTP 1.1 specification's two connection limit per user client restricts the performance of Web applications using Ajax and Comet techniques, limiting the number of simultaneous requests that can be made to a server, which impacts responsiveness and interactivity, especially in applications requiring frequent data updates.

Innovation Solution

A mechanism that allows multiple requests to be sent to a server while maintaining at most two connections open, using a request manager system that employs Ajax for sending requests and Comet for receiving responses, ensuring that requests are processed asynchronously and responses are matched to their corresponding requests using unique identifiers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple Ajax requests are sent simultaneously to improve responsiveness and interactivity, then the Web application becomes more responsive and rich, but the two connection limit per user client restricts performance and limits the number of simultaneous requests

Engineering Contradiction:
Improvenumber of simultaneous requestsVSAvoidconnection limit restriction
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the request management into two distinct connections: one connection dedicated for sending requests (Ajax) and another connection dedicated for receiving responses (Comet). This segmentation allows the system to work around the two-connection limit by separating the request-sending function from the response-receiving function, enabling multiple simultaneous requests while maintaining compliance with browser connection limits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism using Comet-style persistent connections as a mediator between the client and server. This intermediary allows the server to push responses back to the client without requiring additional outgoing connections from the client, thus enabling multiple simultaneous requests while staying within the two-connection limit imposed by browsers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If one connection is held open for Comet to enable server-push functionality, then real-time data pushing is achieved, but the browser becomes unable to send new user-initiated Ajax requests

Engineering Contradiction:
Improvereal-time data pushing capabilityVSAvoidability to send new Ajax requests
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent divides the communication functionality into two separate connections with distinct roles: one connection is dedicated for sending Ajax requests, and another connection is dedicated for receiving Comet responses. This segmentation ensures that holding one connection open for Comet does not block the ability to send new Ajax requests, as each connection serves its specific function independently.

Inventive Principle:
Principle #1Segmentation

3Productivity

If Ajax is used to retrieve many pieces of information simultaneously to improve data fetch efficiency, then more data can be retrieved at once, but the two connection limit restricts the number of concurrent data retrievals to two

Engineering Contradiction:
Improveconcurrent data retrieval capacityVSAvoidtwo connection limit
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the data retrieval operation into multiple simultaneous Ajax requests sent through one connection, while a separate Comet connection handles the reception of multiple responses. This allows the system to retrieve many pieces of information concurrently by sending multiple requests through the request connection and receiving multiple responses through the response connection, effectively bypassing the two-connection limit restriction on concurrent data retrievals.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7908346B2Processing a plurality of requests simultaneously in a web application
Publication Date: 2011.03.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7908346B2 patent drawing
  • US7908346B2 patent drawing
  • US7908346B2 patent drawing

AI summary

A mechanism is provided for sending a plurality of requests to a server. A set of calls is received in a client from a set of client applications. Each call is for a request to be sent to the server and each call comprises a plurality of parameters. For each call, the client determines whether there is a request identifier in the plurality of parameters. Responsive to the call including the request identifier, the client creates a request using the plurality of parameters. The client sends the request to the server via a request connection. The client then determines whether an acknowledgement that indicates that the server has received the request has been received from the server. Responsive to receiving the acknowledgement, the client processes a next call in the set of calls.