Web Request Manager Segmentation for Concurrent Ajax and Comet
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


