MLchartDataset catalogue

Patent · US12099853B2 · B2 · US

Robot browser embedding

(11) Publication number
US12099853B2
(21) Application number
17/238,560
(22) Filing date
2021-04-23
(30) Priority date
2019-10-11
(43) Publication date
2024-09-24
(45) Date of grant
2024-09-24
(51) IPC
G06F 21/44; G06F 9/445; G06F 9/48; G06F 9/54
(52) CPC
  • G06F Electric digital data processing: 9/44521, 21/44, 8/34, 8/60, 9/46, 9/485, 9/541
  • B25J Manipulators; chambers provided with manipulation devices: 9/1628
  • G05B Control or regulating systems in general; functional elements of such systems; monitoring or testing arrangements for such systems or elements: 19/0421
  • G06Q Information and communication technology [ICT] specially adapted for administrative, commercial, financial, managerial or supervisory purposes; systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not otherwise provided for: 10/06312
  • H04L Transmission of digital information, e.g. telegraphic communication: 63/083, 67/02, 67/51
(73) Assignee
UIPATH INC
(72) Inventors
COHEN EVAN; SARAF ANKIT; VENKATESWARAN NAREN; VENKATARAMAN SANKARA NARAYANAN
(54) Title
Robot browser embedding
(57) Abstract

A process for invoking a robot from an application may include launching the application from a computing system to invoke a robot link embedded within the application. The process may also include initiating from the application a port discovery process to identify a port, port details, and a token. The process may further include generating by the application a randomized code and invoking a consent application requesting approval from a user of the computing system to invoke the robot from the application. The process may also include registering the randomized code with a local listener module and passing user information and the token to a global listener module. The process may further include receiving from the global listener module the token and port identification, allowing the application to authenticate itself with, and communicate with, the robot, thereby completing the robot invoking process.

Full text
View on Google Patents

Claims (22)

  1. A computer-implemented method, comprising: launching an application locally from a computing system to invoke a robot link embedded within the application; invoking by the robot link a particular application programming interface (API) on a robot listener module over a communication medium, wherein the robot listener module is configured to query a status of a process running or executed on the robot; generating by the application a randomized code and invoking a consent application requesting approval from a user of the computing system to invoke a robot from the application; and receiving from a global listener module a token and a port identification, allowing the application to authenticate itself with, and communicate with, the robot, thereby facilitating robot interaction processes.
  2. The computer-implemented method of claim 1, further comprising: initiating from the application a port discovery process to identify a port, port details, and the token.
  3. The computer-implemented method of claim 2, further comprising: registering the randomized code with a local listener module and passing user information and the token to the global listener module.
  4. The computer-implemented method of claim 1, wherein the application used to invoke the robot link is from an untrusted domain.
  5. The computer-implemented method of claim 1, wherein the robot listener module is configured to query an executor or a status of the robot, connect, disconnect, or both, from a conductor, list available processes available on the robot, start, stop, pause, and/or terminate a process on the robot and/or send and/or receive data while starting a process, already executing the process or when the process completes execution.
  6. The computer-implemented method of claim 1, wherein the facilitating of the robot interaction processes further comprises communicating by the robot listener module with a robot service to perform an operation requested by the robot link.
  7. The computer-implemented method of claim 6, wherein the facilitating of the robot interaction processes further comprises communicating by the robot service with an executor, a robot, and/or conductor to fulfill the requested operation.
  8. The computer-implemented method of claim 7, wherein the facilitating of the robot interaction processes further comprises returning from the robot service to the application results of the requested operation by way of the robot listener and the robot link.
  9. A computer-implemented method, further comprising: launching an application locally from a computing system to invoke a robot link embedded within the application; initiating a port discovery process to discover a port of a robot HTTP listener prior to the robot link communicating with the port, wherein the initiating of the port discovery process comprises initiating the port discovery process when the application uses an application programming interface (API) from the robot link and when the robot link is unaware of the port; communicating by the robot link with a HTTP port discovery service; and receiving from the HTTP port discovery service a reply with the port of the robot HTTP listener that the robot link should communicate with, thereby completing the port discovery process, wherein the global listener module is local to the computing system.
  10. The computer-implemented method of claim 9, further comprising: invoking a protocol handler while passing a token to the protocol handler when the robot link uses a custom protocol handler.
  11. The computer-implemented method of claim 10, further comprising: passing from the protocol handler the token to the HTTP port discovery service, and passing from the protocol handler information about which user session the protocol handler is running under a session.
  12. The computer-implemented method of claim 11, further comprising: activating by the protocol handler a robot HTTP listener service and the HTTP port discovery service when the robot HTTP listener service and the HTTP port discovery service are idle.
  13. The computer-implemented method of claim 11, further comprising: providing by the robot link the token, and requesting by the robot link the HTTP port discovery service to provide the port of the robot HTTP listener service for which the robot link should communicate with.
  14. The computer-implemented method of claim 13, further comprising: reviewing by the HTTP port discovery service the information received from the protocol handler identifying which user the token belongs to, and identifying the port of the robot HTTP listener service for that particular user by using a list of registered ports.
  15. A computer-implemented method for allowing an application to authenticate itself with, and communicate with, a robot, to facilitate robot interaction processes, further comprising: initiating a port discovery process when the application uses an application programming interface (API) from a robot link, and when the robot link is unaware of a port; authenticating one or more calls into a robot HTTP listener service and authorizing the one or more calls before the one or more calls are accepted, wherein the authenticating of the one or more calls comprises retrieving by the robot link to an authentication token for the robot HTTP listener service before the robot link can communicate with the robot HTTP listener service, wherein the robot HTTP listener service is local to the computing system.
  16. The computer-implemented method of claim 15, further comprising: upon completion of the port discovery process, issuing by the robot link a call to the robot HTTP listener service.
  17. The computer-implemented method of claim 16, further comprising: invoking by the robot link a protocol handler while passing the authentication token using a custom protocol handler.
  18. The computer-implemented method of claim 17, further comprising: passing by the protocol handler the authentication token to a HTTP port discovery service; and passing information about a user session.
  19. The computer-implemented method of claim 18, further comprising: communicating by the robot link with the HTTP port discovery service, wherein the communicating comprises: providing the HTTP port discovery service with the authentication token and requesting the HTTP port discovery service to provide a new authentication token for communication with the robot HTTP listener service.
  20. The computer-implemented method of claim 19, further comprising: reviewing by the HTTP port discovery service the information received from the protocol handler to identify which user the authentication token belongs to, wherein the identifying which user comprises identifying by the HTTP port discovery service the robot HTTP listener service for the particular user using a list of registered services.
  21. The computer-implemented method of claim 20, further comprising: generating by the HTTP port discovery service the new authentication token and communicating the new authentication token to the robot HTTP listener service as a valid token for authentication.
  22. The computer-implemented method of claim 21, further comprising: replying by the HTTP port discovery service back to the robot link with the new authentication token for the robot HTTP listener service that the robot link was requesting for, and communicating by the robot link the new authentication token with robot HTTP listener service, thereby completing the authentication process.

Description

The present invention generally relates to robotic process automation (RPA), and more specifically, invoking robot processes from one or more applications for RPA.

Robots running on a local machine are generally invoked by a robot tray or a conductor application programming interface (API). In either case, the user invokes the robot by way of the robot tray or the conductor API. However, when the user is working on one or more different applications, the user is unable to physically invoke the robot(s). Thus, it may be beneficial to invoke one or more robots without reaching the robot tray or the conductor API.

Certain embodiments of the present invention may provide solutions to the problems and needs in the art that have not yet been fully identified, appreciated, or solved by RPA techniques. For example, some embodiments of the present invention pertain to invoking one or more robot processes from one or more applications. In an embodiment, a computer-implemented method includes launching an application from the computing system to invoke a robot link embedded within the application. The method may also include initiating from the application a port discovery process to identify a port, port details, and a token. The method may further include generating by the application a randomized code and invoking a consent application requesting approval from a user of the computing system to invoke the robot from the application, as well as registering the randomized code with a local listener module and passing user information and the token to a global listener module.

Citations (26)

  • EP2889709A2
  • EP3543837A1
  • EP3543866A1
  • JP6532626B1
  • US2002147801A1
  • US2003018703A1
  • US2007179842A1
  • US2009281966A1
  • US2010024014A1
  • US2010169888A1
  • US2013151010A1
  • US2014122291A1
  • US2017052824A1
  • US2017173784A1
  • US2017352041A1
  • US2018345489A1
  • US2019057203A1
  • US2019129827A1
  • US2019130094A1
  • US2019141125A1
  • US2019171845A1
  • US2020067923A1
  • US5956483A
  • US7590680B2
  • US8335925B2
  • US9391966B2
Record as JSON
{
  "publication_number": "US12099853B2",
  "country": "US",
  "kind": "B2",
  "title": "Robot browser embedding",
  "abstract": "A process for invoking a robot from an application may include launching the application from a computing system to invoke a robot link embedded within the application. The process may also include initiating from the application a port discovery process to identify a port, port details, and a token. The process may further include generating by the application a randomized code and invoking a consent application requesting approval from a user of the computing system to invoke the robot from the application. The process may also include registering the randomized code with a local listener module and passing user information and the token to a global listener module. The process may further include receiving from the global listener module the token and port identification, allowing the application to authenticate itself with, and communicate with, the robot, thereby completing the robot invoking process.",
  "claims": [
    "1. A computer-implemented method, comprising: launching an application locally from a computing system to invoke a robot link embedded within the application; invoking by the robot link a particular application programming interface (API) on a robot listener module over a communication medium, wherein the robot listener module is configured to query a status of a process running or executed on the robot; generating by the application a randomized code and invoking a consent application requesting approval from a user of the computing system to invoke a robot from the application; and receiving from a global listener module a token and a port identification, allowing the application to authenticate itself with, and communicate with, the robot, thereby facilitating robot interaction processes.",
    "2. The computer-implemented method of claim 1, further comprising: initiating from the application a port discovery process to identify a port, port details, and the token.",
    "3. The computer-implemented method of claim 2, further comprising: registering the randomized code with a local listener module and passing user information and the token to the global listener module.",
    "4. The computer-implemented method of claim 1, wherein the application used to invoke the robot link is from an untrusted domain.",
    "5. The computer-implemented method of claim 1, wherein the robot listener module is configured to query an executor or a status of the robot, connect, disconnect, or both, from a conductor, list available processes available on the robot, start, stop, pause, and/or terminate a process on the robot and/or send and/or receive data while starting a process, already executing the process or when the process completes execution.",
    "6. The computer-implemented method of claim 1, wherein the facilitating of the robot interaction processes further comprises communicating by the robot listener module with a robot service to perform an operation requested by the robot link.",
    "7. The computer-implemented method of claim 6, wherein the facilitating of the robot interaction processes further comprises communicating by the robot service with an executor, a robot, and/or conductor to fulfill the requested operation.",
    "8. The computer-implemented method of claim 7, wherein the facilitating of the robot interaction processes further comprises returning from the robot service to the application results of the requested operation by way of the robot listener and the robot link.",
    "9. A computer-implemented method, further comprising: launching an application locally from a computing system to invoke a robot link embedded within the application; initiating a port discovery process to discover a port of a robot HTTP listener prior to the robot link communicating with the port, wherein the initiating of the port discovery process comprises initiating the port discovery process when the application uses an application programming interface (API) from the robot link and when the robot link is unaware of the port; communicating by the robot link with a HTTP port discovery service; and receiving from the HTTP port discovery service a reply with the port of the robot HTTP listener that the robot link should communicate with, thereby completing the port discovery process, wherein the global listener module is local to the computing system.",
    "10. The computer-implemented method of claim 9, further comprising: invoking a protocol handler while passing a token to the protocol handler when the robot link uses a custom protocol handler.",
    "11. The computer-implemented method of claim 10, further comprising: passing from the protocol handler the token to the HTTP port discovery service, and passing from the protocol handler information about which user session the protocol handler is running under a session.",
    "12. The computer-implemented method of claim 11, further comprising: activating by the protocol handler a robot HTTP listener service and the HTTP port discovery service when the robot HTTP listener service and the HTTP port discovery service are idle.",
    "13. The computer-implemented method of claim 11, further comprising: providing by the robot link the token, and requesting by the robot link the HTTP port discovery service to provide the port of the robot HTTP listener service for which the robot link should communicate with.",
    "14. The computer-implemented method of claim 13, further comprising: reviewing by the HTTP port discovery service the information received from the protocol handler identifying which user the token belongs to, and identifying the port of the robot HTTP listener service for that particular user by using a list of registered ports.",
    "15. A computer-implemented method for allowing an application to authenticate itself with, and communicate with, a robot, to facilitate robot interaction processes, further comprising: initiating a port discovery process when the application uses an application programming interface (API) from a robot link, and when the robot link is unaware of a port; authenticating one or more calls into a robot HTTP listener service and authorizing the one or more calls before the one or more calls are accepted, wherein the authenticating of the one or more calls comprises retrieving by the robot link to an authentication token for the robot HTTP listener service before the robot link can communicate with the robot HTTP listener service, wherein the robot HTTP listener service is local to the computing system.",
    "16. The computer-implemented method of claim 15, further comprising: upon completion of the port discovery process, issuing by the robot link a call to the robot HTTP listener service.",
    "17. The computer-implemented method of claim 16, further comprising: invoking by the robot link a protocol handler while passing the authentication token using a custom protocol handler.",
    "18. The computer-implemented method of claim 17, further comprising: passing by the protocol handler the authentication token to a HTTP port discovery service; and passing information about a user session.",
    "19. The computer-implemented method of claim 18, further comprising: communicating by the robot link with the HTTP port discovery service, wherein the communicating comprises: providing the HTTP port discovery service with the authentication token and requesting the HTTP port discovery service to provide a new authentication token for communication with the robot HTTP listener service.",
    "20. The computer-implemented method of claim 19, further comprising: reviewing by the HTTP port discovery service the information received from the protocol handler to identify which user the authentication token belongs to, wherein the identifying which user comprises identifying by the HTTP port discovery service the robot HTTP listener service for the particular user using a list of registered services.",
    "21. The computer-implemented method of claim 20, further comprising: generating by the HTTP port discovery service the new authentication token and communicating the new authentication token to the robot HTTP listener service as a valid token for authentication.",
    "22. The computer-implemented method of claim 21, further comprising: replying by the HTTP port discovery service back to the robot link with the new authentication token for the robot HTTP listener service that the robot link was requesting for, and communicating by the robot link the new authentication token with robot HTTP listener service, thereby completing the authentication process."
  ],
  "description_excerpt": "The present invention generally relates to robotic process automation (RPA), and more specifically, invoking robot processes from one or more applications for RPA.\n\nRobots running on a local machine are generally invoked by a robot tray or a conductor application programming interface (API). In either case, the user invokes the robot by way of the robot tray or the conductor API. However, when the user is working on one or more different applications, the user is unable to physically invoke the robot(s). Thus, it may be beneficial to invoke one or more robots without reaching the robot tray or the conductor API.\n\nCertain embodiments of the present invention may provide solutions to the problems and needs in the art that have not yet been fully identified, appreciated, or solved by RPA techniques. For example, some embodiments of the present invention pertain to invoking one or more robot processes from one or more applications. In an embodiment, a computer-implemented method includes launching an application from the computing system to invoke a robot link embedded within the application. The method may also include initiating from the application a port discovery process to identify a port, port details, and a token. The method may further include generating by the application a randomized code and invoking a consent application requesting approval from a user of the computing system to invoke the robot from the application, as well as registering the randomized code with a local listener module and passing user information and the token to a global listener module.",
  "cpc": [
    "G06F 9/44521",
    "B25J 9/1628",
    "G05B 19/0421",
    "G06F 21/44",
    "G06F 8/34",
    "G06F 8/60",
    "G06F 9/46",
    "G06F 9/485",
    "G06F 9/541",
    "G06Q 10/06312",
    "H04L 63/083",
    "H04L 67/02",
    "H04L 67/51"
  ],
  "ipc": [
    "G06F 21/44",
    "G06F 9/445",
    "G06F 9/48",
    "G06F 9/54"
  ],
  "assignees": [
    "UIPATH INC"
  ],
  "inventors": [
    "COHEN EVAN",
    "SARAF ANKIT",
    "VENKATESWARAN NAREN",
    "VENKATARAMAN SANKARA NARAYANAN"
  ],
  "filing_date": "2021-04-23",
  "publication_date": "2024-09-24",
  "grant_date": "2024-09-24",
  "priority_date": "2019-10-11",
  "application_number": "US-202117238560-A",
  "family_id": "75383028",
  "citations": [
    "EP2889709A2",
    "EP3543837A1",
    "EP3543866A1",
    "JP6532626B1",
    "US2002147801A1",
    "US2003018703A1",
    "US2007179842A1",
    "US2009281966A1",
    "US2010024014A1",
    "US2010169888A1",
    "US2013151010A1",
    "US2014122291A1",
    "US2017052824A1",
    "US2017173784A1",
    "US2017352041A1",
    "US2018345489A1",
    "US2019057203A1",
    "US2019129827A1",
    "US2019130094A1",
    "US2019141125A1",
    "US2019171845A1",
    "US2020067923A1",
    "US5956483A",
    "US7590680B2",
    "US8335925B2",
    "US9391966B2"
  ]
}

Record 171 of 5,000 in Patents full text (MLC-0201). Request the full dataset.