Remote Operations API Graph Batching Cross-Process Calls

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing architectures result in excessive overhead due to the high volume of cross-process calls between client and provider processes, leading to inefficient communication and potential stale data issues in UI automation APIs, where each method call requires individual cross-process communication without a central location for UI information.

Innovation Solution

A remote operations API system accumulates cross-process calls into a remote operations object, generates a graph of conditional operations, and communicates this graph in a single cross-process call to the provider process, reducing the number of individual calls and addressing race conditions by synchronizing data updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If individual cross-process calls are made for each method call to extract UI information, then information can be retrieved from the provider process, but the communication overhead and chattiness increase significantly

Engineering Contradiction:
Improvedata freshnessVSAvoidcommunication efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Multiple individual cross-process calls are merged into a single batched call that transmits a graph representation of the UI information structure. This combining approach reduces the number of cross-process communication events while maintaining data freshness by capturing the state at a specific point in time.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The UI information is pre-processed and converted into a graph representation before transmission. This preliminary action organizes the data structure in advance, allowing the receiving process to efficiently access and process the information without requiring multiple follow-up calls for structural navigation.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If multiple cross-process calls are made to retrieve UI information, then comprehensive data can be obtained, but the time consumption and system overhead increase

Engineering Contradiction:
Improvedata completenessVSAvoidcommunication time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

Multiple information retrieval operations are combined into a single graph transmission call. The graph structure encapsulates hierarchical relationships and metadata, allowing comprehensive UI information to be obtained in one communication event rather than multiple sequential calls.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

A graph representation (copy) of the UI information structure is created and transmitted instead of the actual UI elements. This copy contains all necessary structural and contextual information, enabling the receiving process to work with complete data without requiring repeated access to the provider process.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If individual method calls are used for cross-process communication, then specific information can be requested, but the chattiness and overhead of the system increase

Engineering Contradiction:
Improveinformation retrieval flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The graph representation serves as a universal data structure that can represent various types of UI information and relationships. This single structure type can handle different information retrieval scenarios, reducing the need for multiple specialized communication protocols or data formats.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The graph structure acts as an intermediary representation that bridges the provider and consumer processes. It encapsulates complex UI information in a standardized format that can be efficiently transmitted and processed, simplifying the communication interface between processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20200371848A1Remote operations application programming interface
Publication Date: 2020.11.26 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20200371848A1 patent drawing
  • US20200371848A1 patent drawing
  • US20200371848A1 patent drawing

AI summary

A remote applications application programming interface (API) system disclosed herein is implemented using various computer process instructions including accumulating one or more cross-process calls from a client process to a provider process into a remote operations object, evaluating the one or more cross-process calls from the client process to determine one or more conditional operations, generating a remote operations graph based on the conditional operations, wherein the graph including a plurality of remote operations graph nodes encoding logic of the one or more conditional operations, and communicating the remote operations graph in a single cross-process call across the process boundary to the provider process.