Claims
- 1. A system for receiving and distributing user services for execution by any of a plurality of dynamically available resources registered by the system whereby a computational load of each of said services is distributed for execution among said dynamically available resources, the system comprising:
an Execution Server arranged to communicate with at least one user browser, the Execution Server including an Execution Manager servlet, and a Results Manager servlet; a Lookup Finder object for Load Balancers communicating an availability of Load Balancers to said Execution Manager servlet; at least one Load Balancer in communication with the Execution Manager servlet and the Load Balancer Lookup Finder object; at least one Compute Server in communication with at least one Load Balancer and the Results Manager servlet; and a Lookup Finder object for Compute Servers in communication with the at least one Load Balancer and the at least one Compute Server;
whereby the Execution Manager servlet waits for services to be submitted to it by the at least one user browser through the Execution Server, wherein the Execution Manager searches for dynamically available Load Balancers and submits the computationally intensive services to the first Load Balancer found, and wherein said first Load Balancer searches for available Compute Servers to distribute the user services for execution.
- 2. The system defined by claim 1, further including means for dynamically finding Load Balancers and Compute Servers each time a system service requires execution.
- 3. The system defined by claim 1, wherein a Compute Server Result is provided to the Results Manager servlet for storage in a Result Archive.
- 4. The system defined by claim 3, wherein the Result Archive is in communication with a Results Finder servlet which provides a URL of a Result to the user browser via the Execution Server.
- 5. A method for executing a user service within a system by distributing a load of the service across dynamically available resources of the system, the system comprising an Execution Server, an Execution Manager servlet, a Load Balancer Lookup Finder object, at least one Load Balancer, a Compute Server Lookup Finder object and at least one Compute Server, wherein the method comprises the steps of:
receiving a user request for execution of a service at the Execution Server; providing the service to the Execution Manager servlet for execution; searching for the at least one Load Balancer using the Load Balancer Lookup Finder object to define service load execution by the at least one Compute Server; submitting the service to the first Load Balancer found; searching by the at least one Load Balancer for Compute Servers which are available and capable of executing some portion of the service using the Compute Server Lookup Finder object; and distributing the service load for execution across the available Compute Servers such that each Compute Server is utilized in realizing a Result.
- 6. The method of claim 5 further including the steps of:
directing the Result to a Results Manager servlet; transferring the Result from the Results Manager servlet to a Result Archive; directing a pointer to the Result to a Results Finder servlet; and transferring the pointer to the Result stored in the Results Archive to the user.
- 7. A computer readable medium having computer readable program code means embodied therein for executing a user service within a system by distributing a load of the service across the dynamically available resources of the system, the system comprising an Execution Server, an Execution Manager servlet, a Load Balancer Lookup Finder object, at least one Load Balancer, a Compute Server Lookup Finder object and at least one Compute Server, the computer readable program code means comprising:
computer readable computer code means for receiving a user request for execution of a service at the Execution Server; computer readable computer code means for providing the service to the Execution Manager servlet for execution; computer readable computer code means for searching the at least one Load Balancer using the Load Balancer Lookup Finder object; computer readable computer code means for submitting the service to the first Load Balancer found; computer readable computer code means for searching by the at least one Load Balancer using the Compute Server Lookup Finder object for available Compute Servers capable of executing the service; and computer readable computer code means for distributing the service load across available Compute Servers for execution such that each Compute Server is utilized in realizing a result.
- 8. The computer readable medium of claim 7 further including computer readable computer code means for directing the Result of execution to a Results Manager servlet;
computer readable computer code means for transferring the Result from the Results Manager servlet to a Result Archive; computer readable computer code means for directing a pointer to the Result in the Result archive to a Results Finder servlet; and computer readable computer code means for transferring the pointer to the Result stored in the Results Archive to the user.
RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. ______ filed concurrently herewith entitled NETWORK DYNAMIC SERVICE AVAILABILITY by the same inventors as the present application and assigned to the same assignee as the present application, the entirety of which is hereby incorporated by reference.