Single-Threaded UI Asynchronous Data Refresh Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Asynchronously refreshing, networked applications with single-threaded user interfaces face challenges in updating the data model without blocking the entire user interface, leading to reduced responsiveness and user experience.

Innovation Solution

A client-side mechanism that allows for pausing and resuming data model refresh requests, enabling user actions to be performed without blocking the user interface by canceling ongoing refreshes and sending updated data model changes to the server, thereby improving responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the data model is refreshed synchronously in a single-threaded application, then data integrity is maintained, but the user interface is blocked during the refresh operation

Engineering Contradiction:
Improvedata integrityVSAvoiduser interface responsiveness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary validation and preparation of data changes before committing them to the data model. The client validates local changes, prepares cancellation requests, and coordinates with the server beforehand to ensure data integrity is maintained while allowing the UI to remain responsive during the preparation phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary validation and coordination mechanism between the client and server. This intermediary layer handles the complex coordination of refresh operations, change validation, and conflict resolution, allowing the UI to remain responsive while ensuring data integrity through structured intermediate processing steps.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the user interface is blocked during data model refresh, then concurrent modification conflicts are avoided, but user experience deteriorates due to increased waiting time

Engineering Contradiction:
Improvedata model consistencyVSAvoiduser action delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts the refresh operation based on real-time conditions. When user actions are detected, the system can pause or cancel ongoing refreshes; when no user actions are pending, refreshes proceed normally. This dynamic behavior maintains data consistency while minimizing user-perceived delays and improving overall responsiveness.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the operational parameters of the refresh mechanism by introducing configurable pause and cancellation capabilities. The system can modify the refresh timing and execution based on user interaction states, allowing it to skip or delay refreshes when user actions are detected, thereby reducing unnecessary waiting time while maintaining data integrity through selective refresh execution.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If multiple threads are used to refresh data and receive user input simultaneously, then application responsiveness is improved, but thread synchronization complexity increases

Engineering Contradiction:
Improveapplication responsivenessVSAvoidthread synchronization mechanism
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent extracts the synchronization complexity from the multi-threaded model and consolidates it into a single-threaded event-driven architecture. By removing the need for multiple concurrent threads, the system eliminates mutexes, semaphores, and other synchronization primitives, thereby maintaining responsiveness through event loops while dramatically reducing synchronization complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system replaces the mechanical multi-threaded synchronization mechanism with an event-driven architectural pattern. Instead of using threads and locks to coordinate access to the data model, the system uses asynchronous events and callbacks that naturally serialize access without requiring explicit synchronization, thereby maintaining responsiveness while eliminating thread management complexity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS8904407B2Asynchronously refreshing, networked application with single-threaded user interface
Publication Date: 2014.12.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8904407B2 patent drawing
  • US8904407B2 patent drawing
  • US8904407B2 patent drawing

AI summary

An invention is disclosed for updating a networked, single-threaded application's data model without blocking the application's entire user interface. In embodiments of the invention, a client executes a networked application with a single-threaded user interface that communicates with a server to refresh its data model. The client sends a message to the server that requests a refresh of the data model. Before the data model has been refreshed, the client receives local user input to perform an action on the data model. The client sends a message to the server to cancel the refresh. When the client receives an acknowledgement from the server that the refresh has been cancelled, the client performs the action. After performing the action, the client sends a second message to the server that requests a refresh of the data model, and then refreshes the data model upon receiving the refreshed data model from the server.