Patentable/Patents/US-6446070
US-6446070

Method and apparatus for dynamic distributed computing over a network

PublishedSeptember 3, 2002
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical 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, the system 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. The code can be compiled once and downloaded as needed to the various servers as byte-codes and then executed.

Patent Claims
16 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method performed on a computer system having a primary storage device, a secondary storage device, a display device, and an input/output mechanism which enables a client to dynamically distribute to a server computer in a collection of server computers a task developed in a programming language compatible with each of the server computers, the method comprising the steps of: selecting a server from a plurality of heterogenous servers to process a task based upon the overall processing load distribution among the collection of server computers and the specialized computing capabilities of each server computer; marshalling parameters and data into a task request which further comprises the substeps of, determining if code and data types related to the requested task are present on the selected server, and downloading the code and related data types onto the selected server when the code or data types are not present on the selected server; invoking a generic compute method associated with the selected server which executes the task and further comprises the substeps of, providing the task as a parameter to the generic compute method, and indicating to the server that results from a computed task should be stored in a result cache on the selected server for subsequent tasks to use; and receiving the computed task back from the selected server for further processing on the client.

2

2. A method performed on a processor contained within a computer system having a primary storage device, a secondary storage device, a display device, and an input/output mechanism which enables a server associated with a collection of servers 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 the steps of: unmarshalling parameters and data from a task request into a task, which further comprises the substeps of, determining if the types related to the task are available on the server, and when the types related to the task are not available on the server, downloading the types onto the server from a location as indicated by the parameters provided by the client; to invoking a generic compute method, which is capable of processing all types of tasks, which executes the task and generates results; storing results from the executed tasks in a cache if a subsequent task will use the results; and returning the results from executed task to the client.

3

3. A computer readable medium containing instructions for controlling a computer system to perform a method for enabling a client to dynamically distribute to a server in a collection of servers a task developed in a programming language compatible with each of the servers, the method comprising the steps of: selecting a server from a plurality of heterogeneous servers to process a task based upon an overall processing load distribution among the collection of servers and specialized computing capabilities of each server; marshalling parameters and data into a task request which further comprises: determining if code and data types related to the requested task are present on the selected server, and downloading the code and related data types onto the selected server when the code or data types are not present on the selected server; invoking a generic compute method associated with the selected server which executes the task and further comprises: providing the task as a parameter to the generic compute method, and indicating to the server that results from a computed task should be stored in a result cache on the selected server for subsequent tasks to use; and receiving the computed task back from the selected server for further processing on the client.

4

4. A computer readable medium containing instructions for controlling a computer system to perform a method for enabling a server associated with a collection of servers 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 the steps of: unmarshalling parameters and data from a task request into a task, which further comprises: determining if types related to the task are available on the server, and when the types related to the task are not available on the server, downloading the types onto the server from a location indicated by the parameters provided by the client; invoking a generic compute method, which is capable of processing all types of tasks, which executes the task and generates results; storing results from the executed tasks in a cache if a subsequent task will use the results; and returning the results from executed task to the client.

5

5. The method of claim 1 , wherein the enviromnent includes a remote procedure call subsystem.

6

6. The method of claim 1 , wherein the selected server has the lowest load characteristic compared with average load characteristic of the servers over a predetermined time period.

7

7. The method of claim 1 , wherein the specialized computing capabilities include a capability to render images.

8

8. The method of claim 1 , wherein the results comprise an object.

9

9. The method of claim 2 , wherein the task is developed using the Java programming language and environment.

10

10. The computer readable medium of claim 3 , wherein the environment includes a remote procedure call subsystem.

11

11. The computer readable medium of claim 3 , wherein selecting the server comprises selecting the server based on a lowest load characteristic compared to an average load characteristic of the servers over a predetermined period of time.

12

12. The computer readable medium of claim 3 , wherein the specialized computing capabilities include a capability to render images.

13

13. The computer readable medium of claim 3 , wherein the sending step further comprises: providing the task as a parameter to the generic compute method.

14

14. The computer readable medium of claim 3 , wherein the results comprise an object.

15

15. The computer readable medium of claim 4 , wherein the task is developed using a Java programming language and environment.

16

16. The computer readable medium of claim 11 , wherein the determining step and the downloading steps are performed by a remote procedure call (RPC) subsystem.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 26, 1998

Publication Date

September 3, 2002

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Method and apparatus for dynamic distributed computing over a network” (US-6446070). https://patentable.app/patents/US-6446070

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.