Asynchronous Web Messaging via Local Synchronization Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web-based software applications face issues with connectivity, as they require a stable internet connection to operate, and current programming models are complex, leading to inefficiencies and lost data when connections are lost or suboptimal.

Innovation Solution

A synchronization engine on a local device manages communication with web services and applications, using inboxes and outboxes to store messages and determine optimal transmission times based on the device's state and user preferences, enabling asynchronous communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If web applications use traditional synchronous communication models, then real-time interaction is achieved, but data loss occurs when Internet connection is lost or degraded

Engineering Contradiction:
Improvecommunication reliabilityVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by queuing messages locally in the web application before they need to be transmitted. Messages are prepared and stored in the queue in advance, so when the connection is restored, they can be sent without loss. This eliminates the need to wait for connection availability before queuing messages.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A message queue acts as an intermediary component between the web application and the server. The queue buffers messages during connection disruptions and forwards them when the connection is available, mediating between the application layer and network layer to prevent data loss during connectivity issues.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If web applications continuously poll for connection status, then connection recovery is detected quickly, but excessive network traffic and server load occur

Engineering Contradiction:
Improveconnection recovery timeVSAvoidnetwork traffic
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

Instead of continuous polling, the system uses periodic connection status checks at optimized intervals. The connection monitor polls the connection status periodically rather than continuously, reducing network traffic while still detecting connection recovery in a timely manner. This balances responsiveness with resource conservation.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The connection monitoring system uses event-driven architecture where the system responds to connection events rather than actively polling. The connection state changes trigger events that automatically initiate appropriate actions, eliminating the need for continuous active polling and reducing overall network traffic.

Inventive Principle:
Principle #25Self-service

3Reliability

If web applications implement robust error handling and message queuing, then data loss is prevented, but system complexity increases

Engineering Contradiction:
Improvecommunication reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments error handling into distinct, modular components: connection monitoring as a separate service, message queuing as a dedicated layer, and error recovery as independent handlers. This segmentation makes the complex error handling system more manageable and maintainable by dividing it into smaller, independent modules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The message queue serves as an intermediary that simplifies error handling by automatically managing message persistence and retry logic. Rather than implementing complex error handling throughout the application, the queue intermediary handles message reliability concerns centrally, reducing overall system complexity while maintaining robustness.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If web applications optimize for offline functionality, then user productivity is maintained, but synchronization with server becomes more complex

Engineering Contradiction:
Improveuser productivityVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The message queue acts as an intermediary layer that handles synchronization complexity centrally. Local messages are queued and automatically synchronized with the server when connected, eliminating the need for complex application-level synchronization logic. This intermediary approach maintains offline productivity while simplifying synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The synchronization system uses self-service mechanisms where the message queue automatically manages its own synchronization with the server. Messages are pushed to the queue and automatically transmitted when connection is available, without requiring complex application-level coordination or manual intervention, thus maintaining simplicity despite enhanced offline functionality.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8949344B2Asynchronous queued messaging for web applications
Publication Date: 2015.02.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8949344B2 patent drawing
  • US8949344B2 patent drawing
  • US8949344B2 patent drawing

AI summary

Various embodiments enable local web applications to communicate asynchronously with web based services and applications based on a local device's current state and a user's communications preferences. In at least some embodiments, a synchronization engine receives a message in a “Web Inbox” from a web based service or application. In at least some embodiments, the synchronization engine notifies a local web application of the message, sends the message to the web application, and/or loads the web application if it is not in session. The web application's response to the message may be transferred to a “Web Outbox” where it resides until being sent to the web service. The synchronization engine then determines a time to transmit the response to the web service by querying the local device for its current state and a user's communication preferences.