Remote Desktop Virtual Channel for RPA API Proxy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Robotic Process Automation (RPA) solutions face challenges when automating processes over remote sessions, such as Citrix or Microsoft RDS, due to limitations in leveraging APIs and the need for screen scraping, which results in inefficiencies and increased costs.
Innovation Solution
The proposed solution utilizes the virtual channel in remote desktop technologies to transmit application executable instructions, enabling the existing remote desktop technology to act as an API 'proxy' or 'transmitter' for remote RPA operations, thereby avoiding the need for surface automation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If screen scraping is used for remote RPA operations, then automation can be achieved over remote sessions, but development time and costs increase
Solution Approach 1:
The patent introduces an intermediary component that translates between screen scraping operations and native API calls. This mediator layer enables the system to use efficient API operations while maintaining compatibility with remote session constraints, thereby reducing development time while preserving automation capability.
Solution Approach 2:
The invention replaces the mechanical screen scraping approach with a more efficient information transmission mechanism using virtual channels. By substituting the visual inspection method with direct data transmission through APIs, the system achieves faster development while maintaining full automation capability.
2Extent of automation
If screen scraping is used for remote RPA operations, then automation can be achieved over remote sessions, but automation robustness decreases
Solution Approach 1:
The patent replaces the fragile screen scraping mechanism with robust API-based operations. By substituting visual element detection with structured data access through virtual channels, the system achieves both automation capability and high robustness, eliminating the reliability issues inherent in screen scraping.
Solution Approach 2:
The intermediary translation layer provides a stable interface that abstracts away the instability of screen scraping. It mediates between the automation logic and the remote session, ensuring that automation operations remain robust by using reliable API communications instead of fragile visual detection.
3Productivity
If virtual channel is used to transmit application executable instructions, then automation efficiency improves, but complexity of implementing the transmission mechanism increases
Solution Approach 1:
The patent leverages the existing virtual channel infrastructure, which was originally designed for display data transmission, and repurposes it for bidirectional command and response communication. This multi-functional use of the virtual channel achieves high automation efficiency without adding significant implementation complexity, as it builds upon an already-established communication mechanism.
4Reliability
If remote desktop technology acts as API proxy, then automation robustness improves, but compatibility requirements increase
Solution Approach 1:
The patent makes the remote desktop virtual channel serve multiple functions: display data transmission, command transmission, and response reception. This universal approach improves automation robustness while managing compatibility requirements by using a single, well-established communication infrastructure for all automation interactions.
Data Source
AI summary
A system and a computer-implemented method of communicating with a remote application is described. The method comprises: establishing a remote desktop session between a first computing system and a second remotely located computing system which is able to operatively communicate with the remote application; the establishing including setting up a virtual channel for communication of data relating to graphical user interface interactions at the first computing system to the second computing system; receiving a command from the first computing system via the virtual channel including the command identifier, being configured for execution by the remote application and requiring an execution response from the remote application; providing the command to the remote application seeking to execute the command; generating an execution response to the provision of the command to the remote application, the response including the command identifier; and sending the response to the first computing system via the virtual channel.


