IP Library › Granted Patent US 12,277,430
Granted Patent B2
US 12,277,430 · App. 18/734,362 · Granted Apr 15, 2025

System and computer-implemented method for controlling a robot of a virtual machine

Inventors: Tao Ma (Bellevue, WA); Clement Fauchere (Spring Branch, TX)
Assignee: UiPath, Inc.
G06F9/45533G06F8/61G06F8/65G06F9/542G06F21/44
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,277,430
App. No.
18/734,362
Granted
Apr 15, 2025
Kind
B2
Abstract

Controlling and provisioning a robot of a virtual machine (VM) includes transmitting a connection request between a first service installed in a virtual machine and a second service. The robot is associated with at least one process running on the virtual machine. The virtual machine is authenticated based on a token associated with the second service and the virtual machine. A connection is established between the first service and the second service. A command is transmitted associated with the controlling of the robot from the second service to the first service based on the authentication of the virtual machine. The command is associated with a corresponding command identifier for identifying a type of the command. The command is then executed for controlling the robot.

Claims (64)

1. A system for controlling of a robot, comprising:

a memory configured to store one or more computer-executable instructions; and

at least one processor configured to execute the one or more computer-executable instructions to:

transmit a connection request from a first service installed in a virtual machine to a second service;

authenticate the virtual machine based on a token associated with the second service and the virtual machine;

establish a connection between the first service and the second service based on the authentication;

transmit a command associated with the controlling of the robot from the second service to the first service, the command is transmitted based on the connection between the first service and the second service;

execute the command for controlling the robot; and

transmit a notification and a report along with the command identifier, wherein

the report corresponds to a state of the command.

2. The system of claim 1 , wherein

the notification being transmitted from the first service to the second service upon execution of the command.

3. The system of claim 1 , wherein the at least one processor is further configured to execute the one or more computer-executable instructions to:

transmit periodically a status information associated with the virtual machine, the periodic transmission is from the first service to the second service after elapse of a pre-defined time-interval, wherein the periodic transmission is done upon establishment of the connection between the first service and the second service.

4. The system of claim 3 , wherein the status information comprises:

an active status of the virtual machine, a key associated with the virtual machine, a host machine name associated with the virtual machine, a set of authentication credential data and a plurality of telemetry data of the virtual machine.

5. The system of claim 1 , wherein the second service comprises a container service executing a service or a set of services for provisioning the control of the robot.

6. The system of claim 1 , wherein to authenticate the virtual machine based on the token the processor is further configured to:

generate the token in the second service; and

store the token in a database of the second service.

7. The system of claim 6 , wherein the token comprises:

a robot license key; and

a secret key.

8. The system of claim 7 , wherein the processor is further configured carry out the instructions to copy the token to a location in the virtual machine where the first service is installed.

9. The system of claim 7 , wherein for the establishment of the connection between the first service and the second service, the processor is further configured to:

generate a connection identifier for the second service;

transmit a connection request along with the connection identifier from the first service to the second service, wherein the connection request comprises the token;

transmit a connection response corresponding to the connection request from the second service; and

establish the connection between the first service and the second service based on the connection response.

10. The system of claim 9 , wherein the processor is further configured to perform a mapping of the connection identifier to the command identifier.

11. The system of claim 10 , wherein the processor is further configured to transmit the command with the corresponding command identifier from the second service to the first service using the connection identifier.

12. The system of claim 1 , wherein the processor is further configured to:

poll for a completion of the command; and

generate a timeout error when the command is not completed within a predefined time-period.

13. The system of claim 1 , wherein the command corresponds to at least an install command to install the robot in the virtual machine, a connect command to connect the robot to an orchestrator and a disconnect command to disconnect the robot from the orchestrator, and a maintenance command associated with a maintenance mode operation for the robot.

14. The system of claim 1 , wherein the processor is further configured to:

receive, an update command for the first service from the second service, wherein the update command comprises one or more update parameters;

update the first service using the one or more update parameters of the update command; and

generate an updated first service for the virtual machine based on the update.

15. A method for controlling of a robot, comprising:

transmitting a connection request from a first service installed in a virtual machine to a second service;

authenticating the virtual machine based on a token associated with the second service and the virtual machine;

establishing a connection between the first service and the second service based on the authentication;

transmitting a command associated with the controlling of the robot from the second service to the service based on the connection between the first service and the second service; and

executing the command for controlling the robot; and

transmitting a notification and a report along with the command identifier, wherein the report corresponds to a state of the command.

16. The method of claim 15 , wherein the notification is transmitted from the first service to the second service upon execution of the command.

17. The method of claim 15 , further comprising:

transmitting periodically, a status information associated with the virtual machine, from the service to the second service after elapse of a pre-defined time-interval, wherein the status information comprises an active status of the virtual machine, a key associated with the virtual machine a host machine name associated with the virtual machine, a set of authentication credential data and a plurality of telemetry data of the virtual machine and wherein the periodic transmission is done upon establishment of the connection between the first service and the second service.

18. The method of claim 15 , wherein authenticating further comprises:

generating the token in the second service; and

storing the token in a database of the second service.

19. The method of claim 18 , wherein establishing the connection between the service and the second service further comprises:

generating a connection identifier for the second service;

transmitting a connection request along with the connection identifier from the first service to the second service, wherein the connection request comprises the token;

transmitting a connection response corresponding to the connection request from the second service; and

establishing the connection between the first service and the second service based on the connection response.

20. A computer program stored on a non-transitory computer readable medium, the computer program, when executed by one or more processors, are configured to cause the one or more processors to perform operations for controlling of a robot, the operations comprising:

transmitting a connection request between a first service installed in a virtual machine and a second service;

authenticating the virtual machine based on a token associated with the second service and the virtual machine;

establishing a connection between the first service and the second service;

transmitting a command associated with the controlling of the robot from the second service to the first service based on the connection between the first service and the second service;

executing the command for controlling the robot; and

transmitting a notification and a report along with the command identifier, wherein the report corresponds to a state of the command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2024
From: MA, TAO; FAUCHERE, CLEMENT
To: UIPATH, INC.
Reel/Frame 067628/0977 →
Continuity (2)
Continuation 17485934 · Sep 27, 2021
Related Publication 20240320021A1 · Sep 26, 2024
References Cited (17)
US 10530837B2 · Bala et al. · 2020 [cited by applicant]
US 10944764B2 · Mixer · 2021 [cited by applicant]
US 11188376B1 · Alexander · 2021 [cited by examiner]
US 20120167090A1 · Hui et al. · 2012 [cited by applicant]
US 20180304461A1 · Shaw · 2018 [cited by applicant]
US 20200089860A1 · Buddhiraju et al. · 2020 [cited by applicant]
US 20200348960A1 · Krishnamurthy et al. · 2020 [cited by applicant]
US 20210034479A1 · Fukuta et al. · 2021 [cited by applicant]
US 20220334885A1 · Ren · 2022 [cited by examiner]
US 20230275749A1 · Shin · 2023 [cited by examiner]
CN 106775942A · 2017 [cited by applicant]
WO 2015116850A1 · 2015 [cited by applicant]
WO 2019011421A1 · 2019 [cited by applicant]
Agents, Appian, retrieved from the internet Jul. 14, 2021, https://docs.appian.com/suite/help/21.2/rpa-7.6/setup/agents.html. [cited by applicant]
Craig C Dorais, “Non-Final Office Action”, issued Jan. 17, 2024, U.S. Appl. No. 17/485,934. [cited by applicant]
Craig C Dorais, “Notice of Allowance”, issued Mar. 29, 2024, U.S. Appl. No. 17/485,934. [cited by applicant]
International Search Report & Written Opinion, issued Jun. 22, 2022, PCT Application No. PCT/US21/57171. [cited by applicant]