Polling-Based Alert System In-Memory Caching and HTTP Protocol
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Legacy systems using conventional polling architectures for message delivery face performance issues due to high database usage and network traffic, leading to reduced scalability and increased latency in communicating alerts to multiple clients.
Innovation Solution
Implementing in-memory caching to reduce database calls and switching from SOAP to a lightweight HTTP-based protocol for the GetUnreadAlerts call, which includes a temporary token for security, to decrease the payload and increase efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If conventional polling architecture is used for message delivery, then system simplicity is maintained, but database usage and network traffic increase significantly
Solution Approach 1:
The system performs preliminary actions by establishing persistent connections and pre-fetching message data before clients actually need it. The server proactively pushes messages to clients as they arrive, rather than waiting for poll requests, thus reducing the need for repeated database queries and network transactions during polling cycles.
Solution Approach 2:
The patent introduces an intermediary caching layer between the database and the polling mechanism. Message data is cached in memory after initial retrieval, allowing multiple clients to access the same message data without triggering additional database queries. This intermediary layer significantly reduces database usage while maintaining system simplicity.
2Speed
If polling frequency is increased to improve message delivery speed, then latency is reduced, but database usage and network traffic increase
Solution Approach 1:
The system implements continuous useful action through persistent connections that remain open between poll cycles. Messages are pushed continuously to clients as they arrive, eliminating the stop-start nature of traditional polling. This allows the system to maintain high message delivery speed without increasing polling frequency, thereby reducing database usage and network traffic overhead.
Solution Approach 2:
The patent creates copies of message data in client memory upon receipt. Once a client receives a message through the pushed model, the data is cached locally, eliminating the need for subsequent poll requests to retrieve the same message. This copying mechanism reduces network traffic and database usage while maintaining fast message delivery.
3Reliability
If SOAP protocol is used for GetUnreadAlerts calls, then security and standardization are maintained, but payload size and processing overhead increase
Solution Approach 1:
The patent extracts only the essential security elements from the SOAP protocol for the GetUnreadAlerts calls. Instead of using full SOAP envelopes with extensive header information, the system uses a simplified protocol that includes only the necessary temporary token for authentication. This extraction reduces payload size and processing overhead while maintaining security through the token-based authentication mechanism.
4Adaptability or versatility
If legacy polling system is used, then compatibility with existing infrastructure is maintained, but scalability is limited
Solution Approach 1:
The system implements dynamics by allowing clients to operate in multiple modes. New clients can utilize the optimized pushed model with persistent connections for high scalability, while legacy clients continue to use traditional polling for compatibility. The server dynamically adapts its response mechanism based on client capabilities, enabling the system to scale efficiently without sacrificing compatibility with existing infrastructure.
Data Source
AI summary
A method for the dissemination of an alert message to a plurality of personal computers using a network communications protocol from a server is disclosed that includes a first step wherein the client contacts the central server and requests the value of said alert ID number in said memory, a second step wherein said server transmits said value to said client, a third step wherein said client compares a stored value at the client with the value of the transmitted alert ID number, and if said transmitted value exceeds said stored value, a fourth step wherein said client transmits a second message to said server and requests for the server to transmit all unread alert messages in a GetUnreadAlerts SOAP request from said server that are specific to said client.


