Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
462 words
A method for performing one or more distributed computations on a plurality of general purpose computers that are connected by a communications network, each distributed computation comprising a hierarchy of (i) one or more subordinate computation segments distributed among the computers, each segment producing a segment result, and (ii) one or more combine functions that combine the results of subordinate computation segments into a combined result, the hierarchy arranged such that a topmost combine function produces a final result, wherein the method comprises: providing a master computer; providing a plurality of client computers; executing on the master computer a master control program, where the master control program is applications independent and includes a qualification algorithm and an assignment algorithm; executing on each client computer an availability algorithm; connecting the availability algorithms to the master control program via a communications network; providing a job request means in signal connection to the master control program; providing a job output means in signal connection to the master control program; submitting one or more job requests for distributed computation via the job request means to the master control program, each job request including one or more files or file references required to perform the distributed computation, the files or file references including an executable job computation module; determining by the availability algorithm asynchronously on each of one or more client computers whether the client computer is an available client; for each available client, (a) sending an availability message from the available client via the network to the master control program, where the availability message signals the readiness of the available client to participate in one or more distributed computations, (b) determining by the qualification algorithm in the master control program whether the available client shall be declared a selected client for a particular job request, for each selected client for a particular job request: (a) executing on the selected client a client control program, where the client control program is application independent; (b) defining by the assignment algorithm in the master control program a segment group package containing one or more computation segments and the combine function, (c) downloading the segment group package to the selected client via the network, (d) computing the group result by performing the computation segments and group combine function under the control of the client control program on the selected client, (e) communicating the group result via the network to the master control program; computing the final result by the combine algorithm in the master computer; communicating the result to the job output means via a job output signal; whereby, through the use of idle time on a plurality of networked general purpose computers, the results of distributed computations are produced more economically than they could be produced using dedicated computers.
Claim 2
Independent Claim
462 words
A method for performing one or more distributed computations on a plurality of general purpose computers that are connected by a communications network, each distributed computation comprising a hierarchy of (i) one or more subordinate computation segments distributed among the computers, each segment producing a segment result, and (ii) one or more combine functions that combine the results of subordinate computation segments into a combined result, the hierarchy arranged such that a topmost combine function produces a final result, wherein the method comprises: providing a master computer; providing a plurality of client computers; executing on the master computer a master control program, where the master control program is applications independent and includes a qualification algorithm and an assignment algorithm; executing on each client computer an availability algorithm; connecting the availability algorithms to the master control program via a communications network; providing a job request means in signal connection to the master control program; providing a job output means in signal connection to the master control program; submitting one or more job requests for distributed computation via the job request means to the master control program, each job request including one or more files or file references required to perform the distributed computation, the files or file references including an executable job computation module; determining by the availability algorithm asynchronously on each of one or more client computers whether the client computer is an available client; for each available client, (a) sending an availability message from the available client via the network to the master control program, where the availability message signals the readiness of the available client to participate in one or more distributed computations, (b) determining by the qualification algorithm in the master control program whether the available client shall be declared a selected client for a particular job request, for each selected client for a particular job request: (a) executing on the selected client a client control program, where the client control program is application independent; (b) defining by the assignment algorithm in the master control program a segment group package containing one or more computation segments and the combine function, (c) downloading the segment group package to the selected client via the network, (d) computing the group result by performing the computation segments and group combine function under the control of the client control program on the selected client, (e) communicating the group result via the network to the master control program; computing the final result by the combine algorithm in the master computer; communicating the result to the job output means via a job output signal; whereby, through the use of idle time on a plurality of networked general purpose computers, the results of distributed computations are produced more economically than they could be produced using dedicated computers.
Claim 3
Dependent Claim
26 words
The method of claim 1, wherein the availability algorithm is embodied in a program activated by a screen saver feature of the client computer's operating system.
Claim 4
Dependent Claim
20 words
The method of claim 1, wherein the availability algorithm is embodied in a program executed on a periodic, scheduled basis.
Claim 5
Dependent Claim
16 words
The method of claim 1 where the client control program is executed by a network browser.
Claim 6
Dependent Claim
15 words
The method of claim 1 where the availability algorithm is executed by a network browser.
Claim 7
Dependent Claim
34 words
The method of claim 1 where the availability algorithm includes functions of one or more parameters selected from the group consisting of: time of user inactivity, pattern of user activity, time-of-day, day-of-week, scheduled holidays.
Claim 8
Dependent Claim
87 words
The method of claim 1 where the master control program and the client control program invoke copies of a single executable job computation module in distinct modes, the distinct modes performing functions including one or more from the group consisting of: calculate the number of subordinate computation segments based on the contents of one or more files included or referenced in the job request, calculate one or more computation segment results, perform the combine function, format the final result for storage or presentation on the output means.
Claim 9
Dependent Claim
86 words
The method of claim 1, wherein the master control program calculates (a) a download time required to download the segment group package to each selected client and (b) a compute time required by the each selected client to compute the group result, wherein the assignment algorithm adaptively computes the preferred number of computation segments in an segment group package based on previously calculated download times and compute times for one or more selected clients, whereby the total time required to produce the final result is reduced.
Claim 10
Dependent Claim
80 words
The method of claim 1, wherein the job request means communicates resource requirements in conjunction with requests for distributed computation, wherein the availability algorithm (i) determines a resource profile including the existence and configuration of specific resources on the client computer and (ii) communicates the profile to the master control program, wherein the qualification algorithm compares the resource requirements of each request to the resource profile of each available client in selecting the available client to be a selected client.
Claim 11
Dependent Claim
84 words
The method of claim 9, wherein resource requirements include one or more requirements selected from the group consisting of: (a) a particular spreadsheet program is previously installed on the client computer, (b) a particular operating system is previously installed on the client computer, (c) a particular CPU type or family is installed on the client computer, (d) a specified amount of disk space is available on the client computer, and (e) a specified amount of main CPU memory is installed on the client computer.
Claim 12
Independent Claim
449 words
A system for performing one or more distributed computations on a plurality of general purpose computers that are connected by a communications network, each distributed computation comprising a hierarchy of (i) one or more subordinate computation segments distributed among the computers, each segment producing a segment result, and (ii) one or more combine functions that combine the results of subordinate computation segments into a combined result, the hierarchy arranged such that a topmost combine function produces a final result, wherein the system comprises: a master computer; a job request means in signal connection to the master computer used to submit one or more job requests for distributed computation, the job request including one or more files or file references required to perform the distributed computation, the files or file references including an executable job computation module; a plurality of client computers; a communications network connecting the client computers to the master computer; an availability algorithm executing on each client computer, where the availability algorithm determines whether the client computer is an available client; an availability signal from the availability algorithm on each of the available clients sent via the network to the master control program, where the signal indicates the readiness of each available client to participate in one or more distributed computations; a client control program on each selected client that: (a) computes the group result by performing the assigned computation segments and group combine function, (b) communicates the group result via the network to the master control program; a job output means in signal connection to the master computer, the job output means used to present and/or store of the results of distributed computation; a master control program executing on the master computer, where the master control program is applications independent and includes logic for accepting job requests, coordinating the execution of computation segments by client computers, collecting group results sent by the client computers, computing the final result by the combine function, communicating the final result to the job output means via a job output signal; a qualification algorithm subordinate to the master control program, the qualification algorithm determining, for each available client, whether the available client shall be declared a selected client for a particular job request, an assignment algorithm subordinate to the master control program, the assignment algorithm (i) defining for a selected client a segment group package containing one or more computation segments and the combine function and (ii) downloading the segment group package to the selected client via the network, whereby, through the use of idle time on a plurality of networked general purpose computers, the results of distributed computations are produced more economically than they could be produced using dedicated computers.
Claim 13
Independent Claim
449 words
A system for performing one or more distributed computations on a plurality of general purpose computers that are connected by a communications network, each distributed computation comprising a hierarchy of (i) one or more subordinate computation segments distributed among the computers, each segment producing a segment result, and (ii) one or more combine functions that combine the results of subordinate computation segments into a combined result, the hierarchy arranged such that a topmost combine function produces a final result, wherein the system comprises: a master computer; a job request means in signal connection to the master computer used to submit one or more job requests for distributed computation, the job request including one or more files or file references required to perform the distributed computation, the files or file references including an executable job computation module; a plurality of client computers; a communications network connecting the client computers to the master computer; an availability algorithm executing on each client computer, where the availability algorithm determines whether the client computer is an available client; an availability signal from the availability algorithm on each of the available clients sent via the network to the master control program, where the signal indicates the readiness of each available client to participate in one or more distributed computations; a client control program on each selected client that: (a) computes the group result by performing the assigned computation segments and group combine function, (b) communicates the group result via the network to the master control program; a job output means in signal connection to the master computer, the job output means used to present and/or store of the results of distributed computation; a master control program executing on the master computer, where the master control program is applications independent and includes logic for accepting job requests, coordinating the execution of computation segments by client computers, collecting group results sent by the client computers, computing the final result by the combine function, communicating the final result to the job output means via a job output signal; a qualification algorithm subordinate to the master control program, the qualification algorithm determining, for each available client, whether the available client shall be declared a selected client for a particular job request, an assignment algorithm subordinate to the master control program, the assignment algorithm (i) defining for a selected client a segment group package containing one or more computation segments and the combine function and (ii) downloading the segment group package to the selected client via the network, whereby, through the use of idle time on a plurality of networked general purpose computers, the results of distributed computations are produced more economically than they could be produced using dedicated computers.
Claim 14
Dependent Claim
26 words
The system of claim 11, wherein the availability algorithm is embodied in a program activated by a screen saver function of the client computer's operating system.
Claim 15
Dependent Claim
20 words
The system of claim 11, wherein the availability algorithm is embodied in a program executed on a periodic, scheduled basis.
Claim 16
Dependent Claim
16 words
The system of claim 11 where the client control program is executed by a network browser.
Claim 17
Dependent Claim
15 words
The system of claim 11 where the availability algorithm is executed by a network browser.
Claim 18
Dependent Claim
34 words
The system of claim 11 where the availability algorithm includes functions of one or more parameters selected from the group consisting of time of user inactivity, pattern of user activity, time-of-day, day-of-week, scheduled holidays.
Claim 19
Dependent Claim
73 words
The system of claim 11 where the master control program and the client control program invoke copies of a single executable job computation module in distinct modes, the distinct modes performing functions including one or more from the group consisting of: calculate the number of subordinate computation segments based on input files, calculate one or more computation segment results, perform the combine function, format the final result for presentation on the output means.
Claim 20
Dependent Claim
86 words
The system of claim 11, wherein the master control program calculates (a) a download time required to download the segment group package to each selected client and (b) a compute time required by the each selected client to compute the group result, wherein the assignment algorithm adaptively computes the preferred number of computation segments in a segment group package based on previously calculated download times and compute times for one or more selected clients, whereby the total time required to produce the final result is reduced.
Claim 21
Dependent Claim
81 words
The system of claim 11, wherein the job request means communicates resource requirements in conjunction with requests for distributed computation, wherein the availability algorithm (i) determines a resource profile including the existence and configuration of specific resources on the client computer, and (ii) communicates the profile to the master control program, and wherein the qualification algorithm compares the resource requirements of each request to the resource profile of each available client in selecting the available client to be a selected client.
Claim 22
Dependent Claim
83 words
The system of claim 19, wherein resource requirements include one or more requirements selected from the group consisting of (a) a particular spreadsheet program is previously installed on the client computer, (b) a particular operating system is previously installed on the client computer, (c) a particular CPU type or family is installed on the client computer, (d) a specified amount of disk space is available on the client computer, (e) a specified amount of main CPU memory is installed on the client computer.