WebSocket OData Transport Channel for Asynchronous Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing OData interfaces are designed for synchronous HTTP communication, which requires establishing and closing connections for each request, leading to performance inefficiencies and limitations in maintaining application sessions, whereas applications often require asynchronous communication to improve performance and enable push data capabilities.
Innovation Solution
Implementing an asynchronous transport channel using web sockets that upgrades HTTP connections to remain open for subsequent requests, allowing for asynchronous communication and enabling the application server to push data, while reusing existing OData service implementations and frameworks without modifying OData providers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If synchronous HTTP communication is used for OData interfaces, then connection establishment and closing for each request follows standard protocol design, but performance efficiency deteriorates and application session management becomes limited
Solution Approach 1:
The patent applies the continuity principle by upgrading HTTP connections to WebSocket connections, which maintain persistent open connections instead of establishing and closing connections for each request. This continuous connection allows multiple OData requests and responses to flow through the same channel, eliminating repeated connection handshakes and improving performance efficiency while reducing connection management complexity.
Solution Approach 2:
The patent implements dynamics by transitioning from static HTTP request-response cycles to dynamic WebSocket connections that can adaptively handle multiple bidirectional communications. The connection remains flexible and alive, allowing the system to dynamically exchange OData requests and responses without rigid connection establishment and termination for each interaction.
2Ease of operation
If HTTP connections are established and closed for each OData request, then standard synchronous communication protocol is followed, but application server load increases and push data capabilities are lost
Solution Approach 1:
By maintaining continuous WebSocket connections, the application server can proactively push data to clients without waiting for new request cycles. This eliminates the need to repeatedly establish connections and enables efficient server-initiated data推送, reducing application server load while improving ease of operation for push scenarios.
Solution Approach 2:
The WebSocket connection acts as an intermediary channel that facilitates bidirectional communication between the application server and clients. This intermediary enables push data capabilities by providing a persistent pathway through which the server can send data initiatively, rather than relying solely on client-initiated requests.
3Loss of time
If multiple HTTP connections are established for subsequent OData requests, then each request is handled independently, but network overhead increases and session management becomes complex
Solution Approach 1:
The patent merges multiple independent HTTP connections into a single persistent WebSocket connection that handles multiple OData requests and responses. This consolidation eliminates repeated connection setup times and simplifies session management by maintaining a unified communication channel, directly addressing both the time loss and complexity issues.
Solution Approach 2:
The WebSocket connection serves as a universal channel that can handle multiple types of OData communications (requests, responses, push data) within a single connection framework. This multi-functionality eliminates the need for separate connection management for different communication scenarios, reducing both setup time and session management complexity.
Data Source
AI summary
The present disclosure involves systems, software, and computer implemented methods for providing an asynchronous transport channel for OData data using web sockets. One example method includes upgrading a HTTP connection to a web socket connection in response to an upgrade request. The web socket connection is maintained, after the upgrading, for receipt of subsequent web socket requests. An OData request is received, from a consuming application, over the web socket connection. The OData request is translated to a format used by an OData runtime environment and sent to the OData runtime environment. A response to the OData request is received from the OData runtime environment. The response is incorporated into a web socket message. The web socket message is sent to the consuming application, over the web socket connection, in response to the OData request, with the web socket connection remaining open after the web socket message is sent.


