Patent ID: 9537931
Date: 2017-01-03
CPC Classifications: H04L

Claim:
1. A system for distributing a workload of an application, the system comprising: a memory that stores one or more instructions of an application; one or more hardware processors coupled to the memory and configured to read instructions from the memory; a class identifier that identifies, by the one or more hardware processors, a first remotely instantiable class an instruction of the one or more instructions stored in the memory, wherein execution of the instruction includes processing a first portion of a workload corresponding to the first remotely instantiable class and processing a second portion of the workload corresponding to a second remotely instantiable class; and a distributor that selects a first remote node to process the first portion of the workload, sends a first message to the first remote node to cause (i) the first remote node to instantiate the first remotely instantiable class included in the instruction and (ii) the first remote node to process the first portion of the workload by invoking a method of the first remotely instantiated class, and receives a first result of the processed portion of the first workload, wherein the distributor selects a second remote node to process the second portion of the workload, sends a second message to the second remote node to cause (i) the second remote node to instantiate the second remotely instantiable class included in the instruction and (ii) the second remote node to process the second portion of the workload by invoking a method of the second remotely instantiated class, and receives a second result of the processed portion of the second workload, and wherein the distributor executes the instruction using the first and second results; and wherein the first remote node includes a first virtual machine that instantiates classes by using a class loader that locates a definition of the first remotely instantiable class, wherein in response to the first remote node starting UP, the class loader is registered as a main class loader for a daemon executing in the first remote node, and the daemon sets its class loader to a delegating class loader, wherein the class loader used for the first remote node is wrapped with the delegating class loader used for a distribution node.