Dynamic loading of remote classes
First Claim
Patent Images
1. A system, comprising:
- a processor; and
a memory comprising program instructions, wherein the program instructions are executable by the processor to implement;
a virtual machine;
a default class loader for the virtual machine, configured to;
load classes for code executable within the virtual machine on the system from one or more local locations indicated by a class path of the default class loader;
determine that a class needed to execute the code on the system is not stored in the one or more locations indicated by the class path; and
generate an indication that the class is not loaded;
a remote class loader mechanism configured to;
detect the indication that the class is not loaded;
obtain the class from a remote system via a network; and
store the class in a location indicated by the class path of the default class loader on the system;
wherein the remote class loader mechanism is not a subclass of the default class loader, and is configured to perform said detect, said obtain, and said store separate from and transparent to the default class loader, and wherein the default class loader is independent from the remote class loader mechanism;
wherein the default class loader is configured to load the class from the location indicated by the class path, and wherein the default class loader being configured to load the class from the location avoids class conflicts; and
wherein, to load the class from the location indicated by the class path, the default class loader is configured to;
locate the class stored in the location indicated by the class path; and
load the class from the location for access by the code.
2 Assignments
0 Petitions
Accused Products
Abstract
System and method for dynamic loading of remote classes. Using embodiments, remote classes may be loaded dynamically by a default class loader without the use of separate, custom class loaders. The remote class loader mechanism may locate on remote systems classes needed by code executing on the local system but not locally stored, and which therefore cannot be located and loaded by the default class loader. After locating the classes, the remote class loader mechanism may obtain copies of the classes and save them to a location indicated by the class path of the default class loader. The default class loader can then locate and load the classes from the location indicated by the class path.
55 Citations
60 Claims
-
1. A system, comprising:
-
a processor; and a memory comprising program instructions, wherein the program instructions are executable by the processor to implement; a virtual machine; a default class loader for the virtual machine, configured to; load classes for code executable within the virtual machine on the system from one or more local locations indicated by a class path of the default class loader; determine that a class needed to execute the code on the system is not stored in the one or more locations indicated by the class path; and generate an indication that the class is not loaded; a remote class loader mechanism configured to; detect the indication that the class is not loaded; obtain the class from a remote system via a network; and store the class in a location indicated by the class path of the default class loader on the system; wherein the remote class loader mechanism is not a subclass of the default class loader, and is configured to perform said detect, said obtain, and said store separate from and transparent to the default class loader, and wherein the default class loader is independent from the remote class loader mechanism; wherein the default class loader is configured to load the class from the location indicated by the class path, and wherein the default class loader being configured to load the class from the location avoids class conflicts; and wherein, to load the class from the location indicated by the class path, the default class loader is configured to; locate the class stored in the location indicated by the class path; and load the class from the location for access by the code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A distributed computing system, comprising:
-
a master node configured to provide computer-executable code fragments of an application to a plurality of worker nodes on a network, wherein the code fragments are configured to run tasks in parallel on two or more of the plurality of worker nodes to perform a job; a worker node configured to receive a code fragment from the master peer node; wherein the worker node comprises a virtual machine and a default class loader for the virtual machine, wherein the default class loader is configured to; load classes for the code fragment executable within the virtual machine from one or more local locations indicated by a class path of the default class loader; determine that a class needed to execute the code fragment is not stored in the one or more locations indicated by the class path; wherein the worker node further comprises a remote class loader configured to; detect that the class is not loaded; obtain the class from a remote node via the network; and store the class in a location indicated by the class path of the default class loader on the worker node; wherein the remote class loader is not a subclass of the default class loader, and is configured to perform said detect, said obtain, and said store separate from and transparent to the default class loader, and wherein the default class loader is independent from the remote class loader; wherein the default class loader is further configured to load the class from the location indicated by the class path, and wherein the default class loader being configured to load the class from the location avoids class conflicts; and wherein, to load the class from the location indicated by the class path, the default class loader is configured to; locate the class stored in the location indicated by the class path; and load the class from the location for access by the code fragment. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A system, comprising:
-
a default class loader means for a virtual machine, wherein the default class loader means is configured to load classes for code executable within the virtual machine on the system from one or more local locations indicated by a class path of the default class loader means; a remote class loader means comprising; means for determining that a class needed to execute the code on the system is not stored in the one or more locations indicated by the class path; means for obtaining the class from a remote system via a network; and means for storing the class in a location on the system indicated by the class path of the default class loader means; wherein said remote class loader means is not a subclass of the default class loader means and is configured to operate separate from and transparent to the default class loader, and wherein the default class loader means is independent from said remote class loader means; wherein the default class loader means is configured to load the class from the location indicated by the class path, and wherein the default class loader means being configured to load the class from the location avoids class conflicts; and wherein, to load the class from the location indicated by the class path, the default class loader means is configured to; locate the class stored in the location indicated by the class path; and load the class from the location for access by the code.
-
-
31. A method, comprising:
-
loading classes for code executing within a virtual machine on a system from one or more local locations indicated by a class path of a default class loader for the virtual machine; determining that a class needed to execute the code on the system is not stored in the one or more locations indicated by the class path; generating an indication that the class is not loaded; detecting the indication that the class is not loaded; obtaining the class from a remote system via a network in response to said detecting; storing the class in a location indicated by the class path of the default class loader on the system; wherein said loading, said determining, and said generating are performed by the default class loader, wherein said detecting, said obtaining, and said storing are performed by a remote class loader mechanism, said remote class loader mechanism is not a subclass of the default class loader and is configured to perform said detecting, said obtaining, and said storing separate from and transparent to the default class loader, and wherein the default class loader is independent from said remote class loader mechanism; the default class loader loading the class from the location indicated by the class path, wherein the default class loading the class from the location avoids class conflicts; and wherein said loading the class from the location indicated by the class path further comprises; the default class loader locating the class stored in the location indicated by the class path; and the default class loader loading the class from the location for access by the code. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A computer-accessible storage medium, comprising program instructions, wherein the program instructions are computer-executable to implement:
-
loading classes for code executing within a virtual machine on a system from one or more local locations indicated by a class path of a default class loader for the virtual machine; determining that a class needed to execute the code on the system is not stored in the one or more locations indicated by the class path; generating an indication that the class is not loaded; detecting the indication that the class is not loaded; obtaining the class from a remote system via a network; storing the class in a location indicated by the class path of the default class loader on the system; wherein said loading, said determining, and said generating are performed by the default class loader; wherein said detecting, said obtaining, and said storing are performed by a remote class loader mechanism, said remote class loader mechanism is not a subclass of the default class loader and is configured to perform said detecting, said obtaining, and said storing separate from and transparent to the default class loader, and wherein the default class loader is independent from said remote class loader mechanism; the default class loader loading the class from the location indicated by the class path, and wherein the default class loader loading the class from the location avoids class conflicts; and wherein, in said loading the class from the location indicated by the class path, the program instructions are further computer-executable to implement; the default class loader locating the class stored in the location indicated by the class path; and the default class loader loading the class from the location for access by the code. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
Specification