# US 11,113,095 B2 · Robotic process automation system with separate platform, bot and command class loaders

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,113,095 B2
- Document ID: US11113095B2
- Status: Granted
- Kind: B2
- Application number: 16/731,044
- Filed: 2019-12-31
- Published: 2020-11-05
- Granted: 2021-09-07
- Earliest claimed: 2019-04-30
- Assignees: Automation Anywhere, Inc.
- Applicants: Automation Anywhere, Inc.
- Inventors: Sudharshan Krishnamurthy; James Dennis; Virinchipuram J Anand; Abhijit Kakhandiki
- Web page: https://patentgrep.com/patent/US11113095B2

## CPC

- G06F 9/45504: {Abstract machines for program code execution, e.g. Java virtual machine [JVM], interpreters or emulators}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/44521: {Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading}
- G06F 9/45529: {Embedded in an application, e.g. JavaScript in a Web browser}
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 11/3414: {Workload generation, e.g. scripts, playback}
- G05B 2219/40392: Programming, visual robot programming language
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2209/508: Monitor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)

## Abstract

A robotic process automation system includes a server processor that performs an automation task to process a work item, by initiating a java virtual machine on a second device. A first user session that employs credentials of a first user for managing execution of the automation task is also initiated on the second device. The server processor loads into the java virtual machine, with a platform class loader, one or more modules, such as logging and security, that perform functions common to the sets of task processing instructions. A first class loader a first set of task processing instructions is also loaded. Then each instruction in the first set of task processing instructions is loaded with a separate class loader. The server processor causes execution, under control of the first user session, on the second device, the task processing instructions that correspond to the work item.

## Claims

### Claim 1

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 subsequent processing by executing a corresponding set of task processing instructions;
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 to perform an automation task to process a work item from the plurality of work items, by:
initiating a java virtual machine on a second device;
initiating on the second device, a first user session, employing credentials of a first user, for managing execution of the automation task;
permitting retrieval of the set of task processing instructions that correspond to the work item;
loading into the java virtual machine, with a platform class loader, a logging module and a security module wherein the logging module logs events that occur during operation of the platform class loader and wherein the security module provides security functions during operation of the platform class loader;
loading with a first class loader a first set of task processing instructions;
loading each instruction in the first set of task processing instructions with a separate class loader; and
causing execution, under control of the first user session, on the second device, the task processing instructions that correspond to the work item.

### Claim 2 (depends on 1)

The robotic process automation system of claim 1 wherein permitting retrieval of the set of task processing instructions that correspond to the work item comprises:
checking formatting of the task processing instructions and converting formatting of the task processing instructions to a Java Archive format if the task processing instructions are in a format different from a Java Archive format.

### Claim 3 (depends on 2)

The robotic process automation system of claim 2 further comprising:
storing the task processing instructions in Java Archive format to the data storage to replace a version of the task processing instructions stored in a format other than a Java Archive format.

### Claim 4 (depends on 1)

The robotic process automation system of claim 1 wherein the platform class loader employs delegation rules comprising:
maintaining a hardcoded list of packages that can be shared with the set of task processing instructions and that can be shared with each instruction in the set of task processing instructions;
loading first all commands and contracts first from the set of task processing instructions; and
loading all classes other than the commands and contracts from the platform class loader.

### Claim 5 (depends on 4)

The robotic process automation system of claim 4 wherein all commands associated with the set of task processing instructions are fed from a local map that is populated with command classes that are loaded by the platform class loader.

### Claim 6 (depends on 5)

The robotic process automation system of claim 5 further comprising, passing a request for a requested class that is in a package that must be shared, to class loader that is a parent to the platform class loader.

### Claim 7 (depends on 1)

The robotic process automation system of claim 1 wherein the second device is a virtual device implemented by a virtual machine executing in an operating system on a processor.

### Claim 8

A robotic process automation system comprising:
data storage for storing,
a plurality of bots, each bot comprising a set of task processing instructions, each bot 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 subsequent processing by executing at least a first corresponding bot;
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 to perform an automation task to process a work item from the plurality of work items, by:
initiating a virtual machine on a second device wherein the virtual machine permits execution of instructions in a manner that is independent of an operating system executing on the second device;
initiating on the second device, a first user session, employing credentials of a first user, for managing execution of the automation task;
permitting retrieval of a first bot that corresponds to the work item;
loading into the virtual machine, with a platform class loader, a logging module and a security module wherein the logging module logs events that occur during operation of the platform class loader and wherein the security module provides security functions during operation of the platform class loader;
loading with a first class loader the first bot;
loading each instruction in the first bot with a separate class loader; and
causing execution, under control of the first user session, on the second device, the first bot.

### Claim 9 (depends on 8)

The robotic process automation system of claim 8 wherein permitting retrieval of the first bot comprises:
checking formatting of the first bot and converting formatting of first bot to a Java Archive format if the first bot is in a format different from a Java Archive format.

### Claim 10 (depends on 9)

The robotic process automation system of claim 9 further comprising:
storing the first bot in Java Archive format to the data storage to replace a version of the first bot stored in a format other than a Java Archive format.

### Claim 11 (depends on 8)

The robotic process automation system of claim 8 wherein the platform class loader employs delegation rules comprising:
maintaining a hardcoded list of packages that can be shared with the first bot and that can be shared with each instruction in the first bot;
loading all commands and contracts first from the first bot; and
loading all classes other than the commands and contracts from the platform class loader.

### Claim 12 (depends on 11)

The robotic process automation system of claim 11 wherein all commands associated with the first bot are fed from a local map that is populated with command classes that are loaded by the platform class loader.

### Claim 13 (depends on 12)

The robotic process automation system of claim 12 further comprising, passing a request for a requested class that is in a package that must be shared, to class loader that is a parent to the platform class loader.

### Claim 14 (depends on 8)

The robotic process automation system of claim 8 wherein the second device is a virtual device implemented by a virtual machine executing in an operating system on a processor.

### Claim 15

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 implement a robotic process automation system that employs data storage for storing a plurality of bots, each bot comprising a set of task processing instructions, each bot operable to interact at a user level with one or more designated user level application programs the data storage further storing a plurality of work items, each work item stored for subsequent processing by executing at least a first corresponding bot, wherein the robotic process automation system employs 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 to perform an automation task to process a work item from the plurality of work items, by:
initiating a virtual machine on a second device wherein the virtual machine permits execution of instructions in a manner that is independent of an operating system executing on the second device;
initiating on the second device, a first user session, employing credentials of a first user, for managing execution of the automation task;
permitting retrieval of a first bot that corresponds to the work item;
loading into the virtual machine, with a platform class loader, a logging module and a security module wherein the logging module logs events that occur during operation of the platform class loader and wherein the security module provides security functions during operation of the platform class loader;
loading with a first class loader the first bot;
loading each instruction in the first bot with a separate class loader; and
causing execution, under control of the first user session, on the second device, the first bot.

### Claim 16 (depends on 15)

The non-transitory storage medium of claim 15 further comprising instructions that cause the robotic process automation system to perform permitting retrieval of the first bot by:
checking formatting of the first bot and converting formatting of first bot to a Java Archive format if the first bot is in a format different from a Java Archive format.

### Claim 17 (depends on 15)

The non-transitory storage medium of claim 15 further comprising instructions that cause the robotic process automation system to perform permitting retrieval of the first bot by:
storing the first bot in Java Archive format to the data storage to replace a version of the first bot stored in a format other than a Java Archive format.

### Claim 18 (depends on 17)

The non-transitory storage medium of claim 17 wherein the platform class loader employs delegation rules comprising:
maintaining a hardcoded list of packages that can be shared with the first bot and that can be shared with each instruction in the first bot;
loading all commands and contracts first from the first bot; and
loading all classes other than the commands and contracts from the platform class loader.

### Claim 19 (depends on 18)

The non-transitory storage medium of claim 18 wherein all commands associated with the first bot are fed from a local map that is populated with command classes that are loaded by the platform class loader.

### Claim 20 (depends on 15)

The non-transitory storage medium of claim 15 wherein the second device is a virtual device implemented by a virtual machine executing in an operating system on a processor.
