A method in a computer network for downloading digital data from one of a plurality of servers to a client computer using a hierarchical algorithm that determines a group of candidate servers based on the ability of the servers to deliver the required digital data and network considerations such as proximity to the client.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for downloading a package of digital data from a server computer to a client computer, the method comprising the steps of: a) receiving a request to download a specified package of digital data to a requesting client computer; b) receiving a client identifier from the requesting client computer, the client identifier identifying the requesting client computer; c) retrieving server redirection information from storage, the server redirection information comprising a plurality of types of server groups, wherein a first type of server group comprises a first representation of one or more groups of candidate server identities, each group of first candidate server identities comprising one or more first candidate server identities, wherein a candidate server identity identifies a server, wherein a second type of server group comprises a representation of one or more groups of second candidate server identities, each group of second candidate server identities comprising one or more second candidate server identities, wherein according to a predetermined designation the second type of server group is designated to provide the specified package when the first type of server group is unable to provide the specified package; d) retrieving availability information from storage, the availability information comprising the identities of servers having the specified package of digital data available for downloading; e) selecting from the first type of server group a group of first candidate server identities the selection based on retrieved server redirection information in combination with the received client identifier; f) determining from the selected group of first candidate server identities, target first candidate server identities identifying target first servers having the specified package of digital data, the determination based on the retrieved availability information; g) when the target first servers are identified, selecting one of the target first candidate server identities as a selected target first server identity; h) when the selected target first server is identified, downloading components of the specified package of digital data from the selected target first server identified by the selected target first candidate server identity having the specified package; i) when the specified package of digital data is not downloadable from a server of the group of first candidate server identities, selecting from the second type of server group a group of second candidate server identities the selection based on retrieved server redirection information in combination with the received client identifier; j) determining from the selected group of second candidate server identities, target second candidate server identities identifying target second servers having the specified package of digital data, the determination based on the retrieved availability information; k) when the target second servers are identified, selecting one of the target second candidate server identities as a selected target second server identity; and l) when the selected target second server is identified, downloading components of the specified package of digital data from the selected target second server identified by the selected target second candidate server identity having the specified package.
2. The method according to claim 1 , wherein the client identifier comprises any one of a client name, a client IP address, a client Internet domain or a client Internet subnet mask.
3. The method according to claim 1 , wherein any one of the availability information or the server redirection information comprises a table of server identities.
4. The method according to claim 1 , wherein any one of the target first server is selected from the selected group of candidate servers using any one of a randomizing algorithm or a load balancing algorithm or the target second server is selected from the selected group of candidate servers using any one of a randomizing algorithm or a load balancing algorithm.
5. The method according to claim 1 , comprising the further step of downloading at least some of the specified package of digital data from a third server.
6. The method according to claim 1 , comprising the further steps of: w) when the specified package of digital data is not downloadable from the selected target first server, eliminating the target first candidate server identity associated with the selected target first server from the selected group of first candidate server identities; and x) repeating steps g) through h).
7. The method according to claim 1 , comprising the further steps of: y) when the specified package of digital data is not downloadable from the selected target second server, eliminating the target second candidate server identity associated with the selected target second server from the selected group of second candidate server identities; and z) repeating steps k) through l).
8. The method according to claim 1 , wherein a type of server group is defined according to any one of geography, organization, Internet Domain, Internet Subnet, custom default or Master default.
9. The method according to claim 1 , wherein any one of the first type of server group or the second type of server group comprises any one of a domain specific server group a subnet specific server group, a custom default server group or a master default server group.
10. The method according to claim 1 , wherein the first type of server group and the second type of server group are selected from the plurality of types of server groups according to a predetermined hierarchical sequence.
11. The method according to claim 1 , comprising the further steps of: periodically connecting to servers of the plurality of types of server groups; discovering whether the specified package of digital data is contained on the servers; updating the availability information according to the discovery step; and storing the updated availability information.
12. The method according to claim 1 , wherein a package of digital data is associated with availability information for the package of digital data.
13. A system for downloading a package of digital data from a server computer to a client computer, the system comprising: a network; a client computer system in communication with the network; a server computer system in communication with the network, wherein the server computer system includes instructions to execute a method comprising the steps of: a) receiving a request to download a specified package of digital data to a requesting client computer; b) receiving a client identifier from the requesting client computer, the client identifier identifying the requesting client computer; c) retrieving server redirection information from storage, the server redirection information comprising a plurality of types of server groups, wherein a first type of server group comprises a first representation of one or more groups of candidate server identities, each group of first candidate server identities comprising one or more first candidate server identities, wherein a candidate server identity identifies a server, wherein a second type of server group comprises a representation of one or more groups of second candidate server identities, each group of second candidate server identities comprising one or more second candidate server identities, wherein according to a predetermined designation the second type of server group is designated to provide the specified package when the first type of server group is unable to provide the specified package; d) retrieving availability information from storage, the availability information comprising the identities of servers having the specified package of digital data available for downloading; e) selecting from the first type of server group a group of first candidate server identities the selection based on retrieved server redirection information in combination with the received client identifier; f) determining from the selected group of first candidate server identities, target first candidate server identities identifying target first servers having the specified package of digital data, the determination based on the retrieved availability information; g) when the target first servers are identified, selecting one of the target first candidate server identities as a selected target first server identity; h) when the selected target first server is identified, downloading components of the specified package of digital data from the selected target first server identified by the selected target first candidate server identity having the specified package; i) when the specified package of digital data is not downloadable from a server of the group of first candidate server identities, selecting from the second type of server group a group of second candidate server identities the selection based on retrieved server redirection information in combination with the received client identifier; j) determining from the selected group of second candidate server identities, target second candidate server identities identifying target second servers having the specified package of digital data, the determination based on the retrieved availability information; k) when the target second servers are identified, selecting one of the target second candidate server identities as a selected target second server identity; and l) when the selected target second server is identified, downloading components of the specified package of digital data from the selected target second server identified by the selected target second candidate server identity having the specified package.
14. The system according to claim 13 , wherein the client identifier comprises any one of a client name, a client IP address, a client Internet domain or a client Internet subnet mask.
15. The system according to claim 13 , comprising the further steps of: w) when the specified package of digital data is not downloadable from the selected target first server, eliminating the target first candidate server identity associated with the selected target first server from the selected group of first candidate server identities; and x) repeating steps g) through h).
16. The system according to claim 13 , wherein any one of the first type of server group or the second type of server group comprises any one of a domain specific server group a subnet specific server group, a custom default server group or a master default server group.
17. The system according to claim 13 , comprising the further steps of: periodically connecting to servers of the plurality of types of server groups; discovering whether the specified package of digital data is contained on the servers; updating the availability information according to the discovery step; and storing the updated availability information.
18. A computer program product for downloading a package of digital data from a server computer to a client computer, the computer program product comprising: a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising the steps of: a) receiving a request to download a specified package of digital data to a requesting client computer; b) receiving a client identifier from the requesting client computer, the client identifier identifying the requesting client computer; c) retrieving server redirection information from storage, the server redirection information comprising a plurality of types of server groups, wherein a first type of server group comprises a first representation of one or more groups of candidate server identities, each group of first candidate server identities comprising one or more first candidate server identities, wherein a candidate server identity identifies a server, wherein a second type of server group comprises a representation of one or more groups of second candidate server identities, each group of second candidate server identities comprising one or more second candidate server identities, wherein according to a predetermined designation the second type of server group is designated to provide the specified package when the first type of server group is unable to provide the specified package; d) retrieving availability information from storage, the availability information comprising the identities of servers having the specified package of digital data available for downloading; e) selecting from the first type of server group a group of first candidate server identities the selection based on retrieved server redirection information in combination with the received client identifier; f) determining from the selected group of first candidate server identities, target first candidate server identities identifying target first servers having the specified package of digital data, the determination based on the retrieved availability information; g) when the target first servers are identified, selecting one of the target first candidate server identities as a selected target first server identity; h) when the selected target first server is identified, downloading components of the specified package of digital data from the selected target first server identified by the selected target first candidate server identity having the specified package; i) when the specified package of digital data is not downloadable from a server of the group of first candidate server identities, selecting from the second type of server group a group of second candidate server identities the selection based on retrieved server redirection information in combination with the received client identifier; j) determining from the selected group of second candidate server identities, target second candidate server identities identifying target second servers having the specified package of digital data, the determination based on the retrieved availability information; k) when the target second servers are identified, selecting one of the target second candidate server identities as a selected target second server identity; and l) when the selected target second server is identified, downloading components of the specified package of digital data from the selected target second server identified by the selected target second candidate server identity having the specified package.
19. The computer program product according to claim 18 , wherein the client identifier comprises any one of a client name, a client IP address, a client Internet domain or a client Internet subnet mask.
20. The computer program product according to claim 18 , wherein any one of the availability information or the server redirection information comprises a table of server identities.
21. The computer program product according to claim 18 , wherein any one of the target first server is selected from the selected group of candidate servers using any one of a randomizing algorithm or a load balancing algorithm or the target second server is selected from the selected group of candidate servers using any one of a randomizing algorithm or a load balancing algorithm.
22. The computer program product according to claim 18 , comprising the further step of downloading at least some of the specified package of digital data from a third server.
23. The computer program product according to claim 18 , comprising the further steps of: w) when the specified package of digital data is not downloadable from the selected target first server, eliminating the target first candidate server identity associated with the selected target first server from the selected group of first candidate server identities; and x) repeating steps g) through h).
24. The computer program product according to claim 18 , comprising the further steps of: y) when the specified package of digital data is not downloadable from the selected target second server, eliminating the target second candidate server identity associated with the selected target second server from the selected group of second candidate server identities; and z) repeating steps k) through l).
25. The computer program product according to claim 18 , wherein a type of server group is defined according to any one of geography, organization, or default.
26. The computer program product according to claim 18 , wherein any one of the first type of server group or the second type of server group comprises any one of a domain specific server group a subnet specific server group, a custom default server group or a master default server group.
27. The computer program product according to claim 18 , wherein the predetermined designation comprises a server group type sequence wherein the search priority relationship of each server group type to be searched is defined.
28. The computer program product according to claim 18 , comprising the further steps of: periodically connecting to servers of the plurality of types of server groups; discovering whether the specified package of digital data is contained on a server of the plurality of types of server groups; updating the availability information according to the discovery step; and storing the updated availability information.
29. The computer program product according to claim 18 , wherein a separate availability information file is stored for each package of digital data requiring availability information.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
May 5, 2000
August 9, 2005
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.