Platform agnostic robotic process automation
AssigneeAutomation Anywhere, Inc.
InventorsVirinchipuram J. Anand, James Dennis, Abhijit Kakhandiki
Life of this patent
Estimating the term…
Abstract
Computerized robotic process automation (RPA) methods and systems that increase the flexibility and lower the cost with which RPA systems may be deployed are disclosed herein. In one embodiment, an RPA system and method avoids the need for preinstalled RPA software on a device employed by a user to create and/or execute software robots to perform RPA. In another embodiment, an RPA system and method provides a capability to execute software robots that may have been encoded in one or more programming languages to execute on an operating system different than that employed by a server of the RPA system.
Claims19
A robotic process automation system comprising:
- data storage for storing,
- a plurality of sets of task processing instructions, each set of task processing instructions operable to interact at a user level with one or more designated user level application programs;
- and
- a plurality of work items, each work item stored for processing by executing a corresponding set of task processing instructions;
- and
- a server processor operatively coupled to the data storage and configured to execute instructions that when executed cause the server processor to respond to a request that is issued by a user from a client device to perform an automation task to process a work item from the plurality of work items, by:
- initiating on a second device, within a virtual machine that employs a first operating system having installed thereon one or more interpreters configured to execute computer programs encoded in a programming language specific to the interpreter, a first user session for managing execution of the automation task;
- permitting retrieval of the set of task processing instructions that correspond to the work item;
- perform a test to determine if the automation task requires use of at least one of the interpreters;
- if the automation task does not require use of at least one of the interpreters, then proceeding with execution of the automation task;
- and
- if the automation task does require use of at least one of the interpreters, then deconstructing instructions in the automation task, mapping results of the deconstructing instructions to an abstract syntax tree which takes the form of a data structure for representing automation instructions in a language neutral form that is machine readable, and generating code in a form suitable to at least one of the interpreters;
- causing execution, under control of the first user session, on the second device, the task processing instructions that correspond to the work item, and employing the one or more interpreters to execute instructions in the task processing instructions encoded in a programming language specific to the interpreter;
- receiving update data indicative of status of processing of the work item from the client device;
- and
- causing termination of the first user session upon completion of processing of the work item.
A computer-implemented method, executed on one or more server computers, for executing automation tasks by responding to a request that is issued by a user from a client device to perform an automation task, the method comprising:
- initiating on a second device, within a virtual machine that employs a first operating system having installed thereon one or more interpreters configured to execute computer programs encoded in a programming language specific to the interpreter, a first user session for managing execution of the automation task;
- permitting retrieval of the set of task processing instructions that correspond to the automation task from data storage that has stored thereupon, a plurality of sets of task processing instructions, wherein each set of task processing instructions is operable to interact at a user level with one or more designated user level application programs;
- performing a test to determine if the automation task requires use of at least one of the interpreters;
- if the automation task does require use of at least one of the interpreters, then deconstructing instructions in the automation task, mapping results of the deconstructing instructions to an abstract syntax tree which takes the form of a data structure for representing automation instructions in a language neutral form that is machine readable, and generating code in a form suitable to at least one of the interpreters;
- and
- if the automation task does not require use of at least one of the interpreters, then proceeding with execution of the automation task;
- causing execution, under control of the first user session, on the second device, the task processing instructions that correspond to the automation task in a manner that is independent of a language in which the automation task is encoded;
- receiving update data indicative of status of processing of the automation task from the client device;
- and
- causing termination of the first user session upon completion of processing of the automation task.
A non-transitory storage medium, having stored thereupon one or more program modules comprising computer-executable instructions for execution on a computer system, the computer-executable instructions causing the computer system to permit execution of automation tasks by responding to a request that is issued by a user from a client device to perform an automation task, the computer-executable instructions causing the computer system to:
- initiate on a second device, within a virtual machine that employs a first operating system having installed thereon one or more interpreters configured to execute computer programs encoded in a programming language specific to the interpreter, a first user session for managing execution of the automation task;
- permit retrieval of the set of task processing instructions that correspond to the automation task from data storage that has stored thereupon, a plurality of sets of task processing instructions, wherein each set of task processing instructions is operable to interact at a user level with one or more designated user level application programs;
- perform a test to determine if the automation task requires use of at least one of the interpreters;
- if the automation task does not require use of at least one of the interpreters, then proceed with execution of the automation task;
- and
- if the automation task does require use of at least one of the interpreters, then deconstruct instructions in the automation task, map results of the deconstructed instructions to an abstract syntax tree which takes the form of a data structure for representing automation instructions in a language neutral form that is machine readable, and generate code in a form suitable to at least one of the interpreters;
- cause execution, under control of the first user session, on the second device, the task processing instructions that correspond to the automation task in a manner that is independent of a language in which the automation task is encoded;
- receive update data indicative of status of processing of the automation task from the client device;
- and
- cause termination of the first user session upon completion of processing of the automation task.
Dependencies are inferred from the claim text.