Method and apparatus for dynamic distributed computing over a network
First Claim
1. A method performed on a processor operatively coupled to a collection of servers, which enables a client associated with the processor to dynamically distribute a task to a server, the method comprising:
- selecting a server to process the task;
forming a task request from parameters and data;
sending the task request to the selected server, wherein the selected server;
downloads a class definition after receiving the task request, wherein the class definition maps locations of information in the task request and allows the selected server to process the task request;
extracts parameters and data from the task request using the downloaded class definition; and
invokes a generic compute technique capable of executing a plurality of types of tasks, wherein the generic compute technique executes the task request using the extracted parameters and data; and
receiving results associated with the executed task request from the selected server.
0 Assignments
0 Petitions
Accused Products
Abstract
A homogeneous execution environment operates within a heterogeneous client-server network. A client selects a server and transmits a procedure call with parameters. In response, a server dynamically and securely downloads code to a compute server; invokes a generic compute method; executes the code on the compute server; and returns the results to the calling client method, preserving the result on the compute server if requested. This technique is efficient in that it does not require multiple copies of code to be downloaded or compiled since server byte-codes can be executed on each of the different systems, therefore downloading or compiling multiple copies of code can be avoided. The code can be compiled once and downloaded as needed to the various servers as byte-codes and then executed.
374 Citations
52 Claims
-
1. A method performed on a processor operatively coupled to a collection of servers, which enables a client associated with the processor to dynamically distribute a task to a server, the method comprising:
-
selecting a server to process the task; forming a task request from parameters and data; sending the task request to the selected server, wherein the selected server; downloads a class definition after receiving the task request, wherein the class definition maps locations of information in the task request and allows the selected server to process the task request; extracts parameters and data from the task request using the downloaded class definition; and invokes a generic compute technique capable of executing a plurality of types of tasks, wherein the generic compute technique executes the task request using the extracted parameters and data; and receiving results associated with the executed task request from the selected server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 37)
-
-
18. A method performed on a processor operatively coupled to a collection of servers, which enables a server associated with the processor to dynamically receive and process a task from a client computer wherein the task is in an executable programming language compatible with each of the server computers, the method comprising:
-
downloading a class definition after receiving a task request, wherein the class definition maps locations of information in the task request and allows the server to process the task request; assembling parameters and data from a the task request into a task, using the downloaded class definition; invoking a generic compute method, capable of processing a plurality of types of tasks, on the server, wherein the generic compute method executes the task and generates results; and returning results to the client. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer readable medium containing instructions for controlling a computer system comprising a collection of servers to perform a method for enabling a client to dynamically distribute a task to a server, the method comprising the steps of:
-
selecting a server to process the task; forming a task request from parameters and data; sending the task request to the selected server, wherein the selected server; downloads a class definition after receiving the task request, wherein the class definition maps locations of information in the task request and allows the selected server to process the task request; extracts parameters and data from the task request using the downloaded class definition; and invokes a generic compute method capable of executing a plurality of types of tasks, wherein the generic compute technique executes the task request on the selected server using the extracted parameters and data; and receiving results associated with the executed task request from the selected server. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42)
-
-
43. A computer readable medium containing instructions for controlling a computer system comprising a collection of servers to perform a method for enabling a server to dynamically receive and process a task from a client computer wherein the task is in an executable programming language compatible with each of the servers, the method comprising:
-
downloading a class definition after receiving a task request, wherein the class definition maps locations of information in the task request and allows the server to process the task request; assembling parameters and data from the task request into a task, using the downloaded class definition; invoking a generic compute method, capable of processing a plurality of types of tasks, on the server, wherein the generic compute method executes the task and generates results; and returning results to the client. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52)
-
Specification