Robotic process automation using virtual machine and programming language interpreter
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.
Claims21
A robotic process automation system supporting a plurality of sets of task processing instructions, each set of task processing instructions operable to interact with one or more designated user level application programs, the set of task processing instructions being configured to process one or more work items, the robotic process automation system comprising:
- a server processor 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 automation processing on a work item from the plurality of work items, by:
- initiating, within a virtual machine that employs a first operating system having access to one or more interpreters configured to execute computer programs encoded in a programming language specific to the interpreter, a node manager configured to manage the automation processing, the virtual machine being initiated on a computing device other than the client device;
- permitting retrieval of the set of task processing instructions that correspond to the work item;
- and
- causing execution, under control of the node manager, of the task processing instructions that correspond to the work item so as to carry out the automation processing, and employing the one or more interpreters to execute instructions in the task processing instructions encoded in a programming language specific to the interpreter,
- wherein the server processor is configured to execute instructions that when executed cause the server processor to:
- initiate the virtual machine on the computing device to execute code to implement the node manager that executes on the virtual machine and which provides to the user a visual interface, by way of a browser executing on the client device, to view progress of and to control the automation processing;
- determine if the execution of the task processing instructions requires use of at least one of the one or more interpreters;
- use at least one of the one or more interpreters if it is determined that the execution of the task processing instructions requires use of at least one of the one or more interpreters;
- and
- alter at least a portion of the task processing instructions for the automation processing by performing replacement of instructions that are encoded for use in a first operating system with instructions that are encoded for use in a second operating system.
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 computing 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 node manager configured to manage 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;
- and
- causing execution, on the client device or another computing 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,
- wherein the causing execution of the task processing instructions comprises (i) determining if the execution of the task processing instructions requires use of at least one of the one or more interpreters;
- (ii) using at least one of the one or more interpreters if it is determined that the execution of the task processing instructions requires use of at least one of the one or more interpreters;
- and (iii) altering at least a portion of the task processing instructions that correspond to the automation task by performing replacement of instructions that are encoded for use in a first operating system with instructions that are encoded for use in a second operating system.
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 the client device or another computing 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 manager configured to manage 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;
- and
- cause execution, on the client device or another computing 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,
- wherein the causing execution of the task processing instructions comprises (i) determining if the execution of the task processing instructions requires use of at least one of the one or more interpreters;
- (ii) using at least one of the one or more interpreters if it is determined that the execution of the task processing instructions requires use of at least one of the one or more interpreters;
- and (iii) altering at least a portion of the task processing instructions that correspond to the automation task by performing replacement of instructions that are encoded for use in a first operating system with instructions that are encoded for use in a second operating system.
A robotic process automation system, comprising:
- a server processor 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 computing device to perform automation processing on a work item, by:
- initiating on a computing device, within a virtual machine that employs a first operating system having access to one or more interpreters configured to execute computer programs encoded in a programming language specific to the interpreter;
- permitting retrieval of a set of task processing instructions that correspond to the work item, the set of task processing instructions operable to interact at a user level with one or more designated user level application programs, the set of task processing instructions being configured process the work item;
- and
- causing execution, on a computing device, of the set of task processing instructions that correspond to the work item, and employing the one or more interpreters to execute instructions in the set of task processing instructions encoded in a programming language specific to the interpreter,
- wherein the causing execution of the set of task processing instructions comprises (i) determining if the execution of the set of task processing instructions requires use of at least one of the one or more interpreters;
- (ii) using at least one of the one or e interpreters if it is determined that the execution of the set of task processing instructions requires use of at least one of the one or more interpreters;
- and (iii) altering at least a portion of the set of task processing instructions by performing replacement of instructions that are encoded for use in a first operating system with instructions that are encoded for use in a second operating system.
Dependencies are inferred from the claim text.