Asynchronous Data Binding via Multi-Threaded Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

User interfaces in computer applications often appear unresponsive when data is not immediately available, leading to a poor user experience due to synchronous data binding, which blocks the user interface thread until updated data is retrieved.

Innovation Solution

Implementing asynchronous data binding using a multi-threaded approach where a user interface thread determines if data is cached locally and requests a separate thread to retrieve updated data from a data source, allowing the user interface thread to continue execution without blocking until the data is available.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous data binding is used to ensure data accuracy, then data consistency is improved, but user interface responsiveness deteriorates

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

Solution Approach 1:

The patent segments the data binding process into two independent threads: a user interface thread that handles UI updates and a separate worker thread that retrieves data from the data source. This segmentation allows the UI thread to remain responsive while the worker thread handles potentially blocking data operations, resolving the contradiction between data consistency and UI responsiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (event handlers and callbacks) that mediates between the worker thread and UI thread. The worker thread notifies the UI thread through events when data is ready, allowing asynchronous data binding while maintaining data consistency without blocking the UI.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If synchronous data retrieval is implemented to ensure data accuracy, then data consistency is improved, but processing time increases

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having the worker thread retrieve data in the background before the UI needs it. The data retrieval operation is initiated asynchronously, allowing the UI to be prepared in advance without waiting for data, thus reducing perceived processing time while maintaining data accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuity of useful action by allowing the UI thread to continue executing other tasks while the worker thread simultaneously retrieves data. This parallel execution eliminates idle time and maintains continuous productive work, reducing overall processing time without compromising data accuracy.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8725949B2Asynchronous data binding
Publication Date: 2014.05.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8725949B2 patent drawing
  • US8725949B2 patent drawing
  • US8725949B2 patent drawing

AI summary

The present invention extends to methods, systems, and computer program products for asynchronously binding data from a data source to a data target. A user interface thread and a separate thread are used to enable the user interface thread to continue execution rather than blocking to obtain updated data, to which elements of a user interface that the user interface thread is managing, are bound. The separate thread obtains updated data from a data source, stores the updated data in a local cache, and notifies the user interface thread of the updated data's presence in the local cache. The user interface thread, upon detecting the notification, accesses the updated data in the local cache and populates the updated data into the user interface.