Method of automatically selecting a mirror server for web-based client-host interaction
First Claim
1. A method of selecting a mirror server for client-host interaction over a network comprising the steps of:
- creating an information request at a client computer;
sending the information request over the network from the client computer to a host server;
creating a list of mirror servers at the host server;
sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of mirror servers;
creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror server on the list of mirror servers;
sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
creating a plurality of mirror server responses to the mirror server requests, each mirror server response being created at one of the corresponding mirror servers responsive to the receipt of one of the mirror server requests;
sending the mirror server responses over the network from the corresponding mirror server to the client computer;
receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of selecting a mirror server for client-host interaction over a network provides automatic, user-transparent, selection of a particular mirror server from among multiple mirror servers that replicate a host server providing web content over the Internet. The method selects the mirror server that has the best response time for a given client computer requesting web content under changing web traffic and mirror server load conditions. The host server creates and maintains a list of addresses of available mirror servers, preferably ranked according to the load on the mirror servers. In response to an initial information request from the client computer, the host server sends the mirror server list to the client computer along with the requested web content. The client computer creates multiple mirror server requests, corresponding to the mirror servers on the address list, sends the requests to the mirror servers, then compares the round trip response times to determine the optimum mirror server site from which to continue subsequent client-host interaction. The invention also includes methods and apparatus, preferably in the form of computer program products, which are operable at the host server, to create, maintain and send the address list, and other methods and apparatus operable at the client computer, to receive the list, query the mirror servers and select the optimum mirror server for further interaction.
-
Citations
20 Claims
-
1. A method of selecting a mirror server for client-host interaction over a network comprising the steps of:
-
creating an information request at a client computer;
sending the information request over the network from the client computer to a host server;
creating a list of mirror servers at the host server;
sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of mirror servers;
creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror server on the list of mirror servers;
sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
creating a plurality of mirror server responses to the mirror server requests, each mirror server response being created at one of the corresponding mirror servers responsive to the receipt of one of the mirror server requests;
sending the mirror server responses over the network from the corresponding mirror server to the client computer;
receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
determining the response time of the mirror servers to the plurality of mirror server requests;
ranking the mirror servers according to the response times of the mirror servers; and
selecting the particular mirror server at the client computer having the fastest response time.
-
-
3. The method of selecting a mirror server for client-host interaction over a network according to claim 1 wherein the step, of creating a list of mirror servers at the host server includes the steps of:
-
creating load status messages at the mirror servers, each load status message containing load information corresponding to the load on the mirror server;
sending the load status messages over the network from the mirror servers to the host server; and
creating the list of mirror servers at the host server by ranking the mirror servers according to the load information.
-
-
4. The method of selecting a mirror server for client-host interaction over a network according to claim 3 wherein
the step of creating a list of mirror servers at the host server further includes the step of sending load inquiry requests over the network from the host server to the mirror servers; - and
the step of creating load status messages at the mirror servers comprises creating the load status messages at the mirror servers responsive to the load inquiry requests.
- and
-
5. The method of selecting a mirror server for client-host interaction over a network according to claim 3 wherein the step of creating a list of mirror servers at the host server comprises continuously maintaining an updated list of load-ranked mirror servers by periodically sending the load status messages from the mirror servers to the host server.
-
6. The method of selecting a mirror server for client-host interaction over a network according to claim 5 wherein the load status messages from the mirror servers to the host server are sent responsive to periodic load inquiry requests from the host server.
-
7. The method of selecting a mirror server for client-host interaction over a network according to claim 1 wherein:
-
the step of creating a plurality- of mirror server requests at the client computer includes the steps of;
initiating a plurality of calibration applets, each calibration applet corresponding to a mirror server on the list of mirror servers; and
creating the mirror server request for each mirror server in the calibration applet corresponding to said mirror server; and
the step of sending the plurality of mirror server requests over the network comprises sending the mirror server request for each mirror server from the calibration applet corresponding to said mirror server to said mirror server.
-
-
8. The method of selecting a mirror server for client-host interaction over a network according to claim 7 wherein the step of sending the plurality of mirror server requests over the network from each calibration applet further includes the step of starting a timer in each applet when the corresponding mirror server request is sent.
-
9. The method of selecting a mirror server for client-host interaction over a network according to claim 8 wherein the step of receiving a plurality of mirror server responses to the mirror server requests includes stopping the timer in each calibration applet corresponding to each responding mirror server.
-
10. The method of selecting a mirror server for client-host interaction over a network according to claim 9 wherein the step of selecting a particular mirror server at the client computer includes the steps of:
-
reporting the elapsed round trip time from the timers in each calibration applet;
ranking the mirror servers corresponding to the calibration applets reporting a round trip time; and
selecting the particular mirror server having the lowest reported round trip elapsed time.
-
-
11. The method of selecting a mirror server for client-host interaction over a network according to claim 10 wherein the step of selecting a particular mirror server at the client computer includes the steps of:
-
creating additional mirror server requests in each calibration applet;
sending the additional mirror server requests to the mirror server corresponding to the calibration applet creating the additional mirror server requests;
timing the round trip time with the timer in each calibration applet for the corresponding mirror server from the sending of each mirror server request to the receipt of each mirror server response;
averaging the round trip times in each calibration applet;
reporting averaged round trip times from each calibration applet; and
ranking the mirror servers corresponding to the calibration applets reporting the averaged round trip times.
-
-
12. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for selecting a mirror server for client-host interaction over a network, said method steps comprising:
-
creating an information request at a client computer;
sending the information request over the network from the client computer to a host server;
creating a list of mirror servers at the host server;
sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of mirror servers;
creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror server on the list of mirror servers;
sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
creating a plurality of mirror server responses to the mirror server requests, each mirror server response being created at one of the corresponding mirror servers responsive to the receipt of one of the mirror server requests;
sending the mirror server responses over the network from the corresponding mirror server to the client computer;
receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests.
-
-
13. A computer program product comprising a computer usable medium having computer readable program code means embodied thereon for selecting a mirror server for client-host interaction over a network, said computer program product having:
-
computer readable code means for creating an information request at a client computer;
computer readable code means for sending the information request over the network from the client computer to a host server;
computer readable code means for creating a list of mirror servers at the host server;
computer readable code means for sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of mirror servers;
computer readable code means for creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror server on the-list of mirror servers;
computer readable code means for sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
computer readable code means for creating a plurality of mirror server responses to the mirror server requests, each mirror server response being created at one of the corresponding mirror servers responsive to the receipt of one of the mirror server requests;
computer readable code means for sending the mirror server responses over the network from the corresponding mirror server to the client computer;
computer readable code means for receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
computer readable code means for selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests.
-
-
14. A method of selecting a mirror server at a client computer from among a list of mirror servers for client-host interaction over a network comprising the steps of:
-
creating an information request at the client computer;
sending the information request over the network from the client computer to a host server;
receiving a response to the information request from the host server, said response including a list of mirror servers;
creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror server on the list of mirror servers;
sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests.
-
-
15. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for selecting a mirror server at a client computer from among a list of mirror servers for client-host interaction over a network, said method steps comprising:
-
creating an information request at the client computer;
sending the information request over the network from the client computer to a host server;
receiving a response to the information request from the host server, said response including a list of mirror servers;
creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror-server on the list of mirror servers;
sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests.
-
-
16. A computer program product comprising a computer usable medium having computer readable program code means embodied thereon for selecting a mirror server at a client computer from among a, list of mirror servers for client-host interaction over a network, said computer program product having:
-
computer readable code means for creating an information request at the client computer;
computer readable code means for sending the information request over the network from the client computer to a host server;
computer readable code means for receiving a response to the information request from the host server, said response including a list of mirror servers;
computer readable code means for creating a plurality of mirror server requests at the client computer, each mirror server request corresponding to a mirror server on the list of mirror servers;
computer readable code means for sending the plurality of mirror server requests over the network from the client computer to the corresponding mirror servers;
computer readable code means for receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
computer readable code means for selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests.
-
-
17. A method of providing mirror server information to a client computer from a host server for client-host interaction over a network comprising the steps of:
-
receiving an information request at the host server from the client computer;
receiving load information from a plurality of mirror servers;
creating a list of mirror servers at the host server by ranking said mirror servers according to the load information from the plurality of mirror servers;
continuously updating the list of load-ranked mirror servers at the host server by periodically sending load status messages from the mirror servers to the host server, each load status message containing load information corresponding to the load on the mirror server; and
sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of load-ranked mirror servers.
-
-
18. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for providing mirror server information to a client computer from a host server for client-host interaction over a network, said method steps comprising:
-
receiving an information request at the host server from the client computer;
receiving load information from a plurality of mirror servers;
creating a list of mirror servers at the host server by ranking said mirror servers according to the load information from the plurality of mirror servers;
continuously updating the list of load-ranked mirror servers at the host server by periodically sending load status messages from the mirror servers to the host server, each load status message containing load information corresponding to the load on the mirror server; and
sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of load-ranked mirror servers.
-
-
19. A computer program product comprising a computer usable medium having computer readable program code means embodied thereon for providing mirror server information to a client computer from a host server for client-host interaction over a network, said computer program product having:
-
computer readable code means for receiving an information request at the host server from the client computer;
computer readable code means for receiving load information from a plurality of mirror servers;
computer readable code means for creating a list of mirror servers at the host server by ranking said mirror servers according to the load information from the plurality of mirror servers;
continuously updating the list of load-ranked mirror servers at the host server by periodically sending load status messages from the mirror servers to the host server, each load status message containing load information corresponding to the load on the mirror server; and
computer readable code means for sending a response to the information request, said response being sent from the host server to the client computer over the network and said response including the list of load-ranked mirror servers.
-
-
20. A system for selecting a mirror server for client-host interaction over a network comprising:
-
a host server;
a client computer;
a plurality of mirror servers replicating the host server;
a client computer program stored in program storage accessible by the client computer, the client computer program including computer readable code for;
creating an information request;
sending the information request over the network to the host server;
receiving a response to the information request from the host server, said response including a list of the mirror servers;
creating a plurality of mirror server requests, each mirror server request corresponding to one of the mirror servers on the list of mirror servers;
sending the plurality of mirror server requests over the network to the corresponding mirror servers;
receiving a plurality of mirror server responses to the mirror server requests from the corresponding mirror servers; and
selecting a particular mirror server at the client computer from among the mirror servers responding to the plurality of mirror server requests to continue client server interaction;
a host server computer program stored in program storage accessible by the host server, the host server computer program including computer readable code for;
receiving the information request from the client computer;
receiving load information from the plurality of mirror servers;
creating the list of mirror servers at the host server, said list of mirror servers being created responsive to the receipt of the load information from the plurality of mirror servers; and
sending the response to the information request from the client computer including the list of mirror servers; and
a plurality of mirror server computer programs stored in program storage accessible by the mirror servers, each mirror server computer program including computer readable code for;
sending load information-to the host server; and
responding to the mirror server request from the client computer.
-
Specification