Remote Operations API Graph Batching Cross-Process Calls
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


