Background Thread Data Synchronization for MAPI Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional background synchronization of data objects in MAPI compliant applications often blocks the main application thread, leading to user experience delays and non-responsive applications during bulk data operations.

Innovation Solution

Implementing a background thread that opens and modifies data items without blocking the main thread, allowing for multithreaded modifications and conflict resolution, enabling seamless data synchronization without impacting application responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If bulk data operations are performed on the main application thread, then data synchronization is achieved, but application responsiveness deteriorates and user experience delays occur

Engineering Contradiction:
Improvedata synchronizationVSAvoidapplication responsiveness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the data synchronization process by creating a separate background thread specifically for performing bulk data operations. This divides the monolithic main thread into two independent execution contexts: the main thread handles user interface and responsive operations, while the background thread handles data synchronization tasks. The segmentation resolves the contradiction by isolating the reliability-critical synchronization process from the responsiveness-critical main thread, allowing both functions to operate independently without blocking each other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a background thread as an intermediary execution context between the main application thread and the data synchronization process. This intermediary thread acts as a mediator that handles the bulk data operations without directly blocking the main thread. The background thread serves as a buffer that decouples the synchronization operations from the main application flow, allowing the main thread to remain responsive while the intermediary background thread performs the reliability-critical data synchronization tasks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If bulk data operations are performed on the main application thread, then data synchronization is achieved, but execution time increases due to blocking

Engineering Contradiction:
Improvedata synchronizationVSAvoiduser experience delays
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the execution timeline by creating parallel thread contexts. The background thread executes data synchronization operations concurrently with the main thread's responsive operations, rather than sequentially blocking it. This temporal segmentation allows both synchronization and responsiveness to occur simultaneously in different threads, eliminating the time loss associated with blocking the main thread while maintaining reliable data synchronization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables continuous useful action by allowing the main thread to continue handling user interactions and interface updates without interruption, while the background thread simultaneously performs data synchronization. Instead of the main thread being blocked and idle during synchronization operations, both threads perform useful work continuously. The background thread maintains the continuity of data synchronization while the main thread maintains the continuity of user-facing operations, eliminating wasted time and improving overall system efficiency.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8504520B2Background synchronization of data objects
Publication Date: 2013.08.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8504520B2 patent drawing
  • US8504520B2 patent drawing
  • US8504520B2 patent drawing

AI summary

Background synchronization of data objects may be provided. A background thread associated with an application may be created. A first data item associated with the application may be opened by the background thread and a copy of the first data item may be created. A modification may be performed on a property of the first data item. If no second data item is associated with a pending modification, the first data item may be replaced with the modified copy of the first data item.