Duplex HTTP Communication via Server Push
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current communication methods between web clients and web services over firewalled networks, such as the Internet, are inefficient due to limitations in http requests and replies, leading to delayed updates and resource wastage through frequent polling for non-existent data changes.
Innovation Solution
Implementing a method that enables duplex communications between a client application and a server using an http request/reply channel, allowing multiple service requests and coordinating http requests and replies to provide timely and efficient data updates, with occasional polling if necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If polling techniques are used to obtain updates in a firewalled web environment, then the web client can receive data updates, but resources are wasted due to frequent requests returning no data of interest
Solution Approach 1:
Instead of the client periodically requesting data (polling), the server pushes data to the client when updates occur. The patent implements this by having the server include update data in HTTP replies to client requests, inverting the traditional request-response pattern where the client initiates every data transfer.
Solution Approach 2:
The client establishes a persistent HTTP connection and subscription in advance, allowing the server to push updates immediately when data changes occur. This preliminary setup eliminates the need for continuous polling while ensuring timely delivery of updates.
2Speed
If polling frequency is increased to reduce update delays, then responsiveness improves, but resource consumption increases
Solution Approach 1:
The patent inverts the polling mechanism by allowing the server to initiate data transfers to the client. The server includes updates in HTTP replies, eliminating the need for frequent client-initiated polling requests while maintaining real-time update delivery.
Solution Approach 2:
The patent establishes a persistent HTTP connection that remains open for data exchange. This continuous connection allows the server to push updates immediately when data changes occur, eliminating the intermittent nature of polling and ensuring continuous availability of updated data without wasted requests.
3Adaptability or versatility
If http requests are used for duplex communications, then web clients can communicate with services over firewalled networks, but the client cannot accept additional replies after receiving the context reply
Solution Approach 1:
The patent makes the HTTP reply serve multiple functions: it both acknowledges the client's request and carries data updates from the server. This multi-functionality allows the same HTTP mechanism to handle both confirmation and data transfer, enabling duplex communication over firewalled networks without requiring additional protocol complexity.
Solution Approach 2:
The patent combines the request acknowledgment and data update transmission into a single HTTP reply message. This merging of functions allows the server to communicate both that it has processed the request and to provide updated data, overcoming the limitation of HTTP's traditional single-purpose reply structure.
Data Source
AI summary
A method includes providing at a first computer an application generating service requests at a duplex channel interface, at least a first service request requesting multiple subsequent data responses from a service located on a second computer. The method also includes employing a first process to convert the first service request into a first http request and transmitting the first http request over a network. The method further includes employing the first process to generate a second http request in the form of a polling request. A context reply to the second http request containing data responsive to the first service request is received. The method alsod includes providing the data response to the first service request to the duplex channel interface.


