Application State Synchronization via Segmented Memory Capture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solutions lack the ability to synchronize the state of software applications across multiple computing devices, failing to recreate the application state from one device on another, especially between cloud-based and local environments, and do not support bi-directional application movement or opening files in alternate applications.

Innovation Solution

A system that captures and transmits application state information using a synchronization file, allowing seamless synchronization of application states between computing environments, including cloud-based and local devices, and enabling the use of alternate applications if the default is not available, by locking the application, scanning memory, intercepting render commands, and writing state information to a data structure for transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application state information is captured and transmitted across computing environments, then application state synchronization is achieved, but system complexity increases

Engineering Contradiction:
Improveapplication state synchronizationVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The application state is segmented into distinct components: memory state information from runtime and persistent memory, and execution state information from intercepted render commands. This segmentation allows selective capture and transmission of only necessary state data, achieving synchronization without requiring complete system state replication, thus managing complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A synchronization file acts as an intermediary data structure that stores application state information. This mediator enables state transfer between computing environments without direct application-to-application communication, simplifying the synchronization mechanism while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If memory scanning is performed to identify application state information, then complete state capture is achieved, but processing time increases

Engineering Contradiction:
Improvestate information completenessVSAvoidprocessing time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system performs preliminary scanning of runtime and persistent memory to identify and capture application state information before application execution context is lost or changed. This preliminary action ensures complete state capture while allowing the scanning process to be optimized and performed efficiently during designated synchronization windows.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system scans only the portions of memory that contain application-specific state information rather than performing exhaustive memory analysis. By focusing on relevant memory regions (runtime memory and persistent memory associated with the application), the system achieves complete state capture without unnecessary processing overhead.

Inventive Principle:
Principle #16Partial or excessive action

3Stability of the object's composition

If the application is locked to prevent user inputs and new instances, then state consistency is maintained, but user productivity decreases

Engineering Contradiction:
Improvestate consistencyVSAvoiduser productivity
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The application locking mechanism is dynamic rather than static. The application is locked only during the brief synchronization window when state information is being captured, and immediately unlocked afterward. This dynamic approach maintains state consistency during the critical capture period while minimizing impact on user productivity during normal operation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The locking action occurs periodically during scheduled synchronization events rather than continuously. The application is locked only during these periodic synchronization windows to capture state information, then unlocked to allow normal user interaction, thus balancing state consistency with user productivity.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS20240028371A1Application state synchronization across computing environments
Publication Date: 2024.01.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20240028371A1 patent drawing
  • US20240028371A1 patent drawing
  • US20240028371A1 patent drawing

AI summary

Methods, systems, apparatuses, and computer-readable storage mediums are described herein for software application state synchronization across computing environments. A user working in an application at a first state may change computing environments and open the application in a second computing environment at the same state. The first instance of the software application executing on the first computing environment is locked and application specific state information including memory state information scanned from runtime memory or persistent memory, and execution state information from render commands intercepted by an operating system filter, are written to a synchronization file that is stored in the memory system. Application agnostic information is also written to the synchronization file. The file is transmitted to the second computing environment where the application specific and agnostic state information is applied to a second instance of the software application for execution in the second computing environment.