Claims
- 1. A replica routing system, comprising:
a processor; and a plurality of routers; the processor being programmed to transmit a request to one of the routers; the router being programmed:
A) to receive the request; B) to compare an address from which the request purports to originate with coverage zone information for the router that received the request and a hierarchy of the plurality of routers that are its progeny, the coverage zone information being stored in a database associated with the router that received the request; C) if the router that received the request is not within a preferred coverage zone as identified in step B, to redirect the processor to a router for which the address is within the preferred coverage zone; and D) if a router is not identified in step b for which the address is within a preferred coverage zone, but a router other than the router that received the request is identified in step b for which the address is within a regular coverage zone, to redirect the processor to the router for which the address is within the regular coverage zone.
- 2. A method of routing requests received from processors, comprising the steps of:
A) receiving, at a router, a request from a processor for data; B) comparing an address from which the request purports to originate with coverage zone information for the router that received the request and a hierarchy of routers that are its progeny, the coverage zone information being stored in a database associated with the router that received the request; C) if the router that received the request is not within a preferred coverage zone as identified in step B, redirecting the processor to a router for which the address is within the preferred coverage zone; and D) if a router is not identified in step B for which the address is within a preferred coverage zone, but a router other than the router that received the request is identified in step B for which the address is within a regular coverage zone, redirecting the processor to the router for which the address is within the regular coverage zone.
- 3. The method of claim 2, wherein the processor transmits the request for data using HTTP protocol.
- 4. The method of claim 2, further comprising:
E) transmitting a request for data from the processor to the router to which the processor has been redirected; F) repeating steps A through E until steps C and D cannot be performed; and then G) routing the data to the processor from the router that has most recently received a request for data from the processor.
- 5. The method of claim 2, wherein if more than one router is identified in step C or D, the processor is redirected toward an identified router that is lowest in the hierarchy.
- 6. A replica routing system, comprising:
a processor; and a plurality of routers; one of the routers being programmed to transmit a message from behind a firewall to a router outside the firewall, the message including an address of the router behind the firewall; the router outside the firewall being programmed to compare an apparent source address of the message with the address contained in the message, and if the apparent source address fails to match the address contained in the message, to store information associating the apparent source address and the address contained in the message; the processor being programmed to transmit a request to the router outside the firewall; the router outside the firewall being programmed to receive the request, to identify an apparent source address of the request as corresponding to the address contained in the previously received message, based on the stored information, and to redirect the processor to the address contained in the previously received message.
- 7. A method of routing requests received from processors, comprising the steps of:
A) transmitting a message from a router behind a firewall to a router outside the firewall, the message including an address of the router behind the firewall; B) at the router outside the firewall, comparing an apparent source address of the message with the address contained in the message; C) if the apparent source address fails to match the address contained in the message, storing information associating the apparent source address and the address contained in the message; D) receiving, at the router outside the firewall, a request from a processor for data; E) at the router outside the firewall, identifying an apparent source address of the request as corresponding to the address contained in the previously received message, based on the stored information; and F) redirecting the processor to the address contained in the previously received message.
- 8. The method of claim 7 wherein the processor transmits the request for data using HTTP protocol.
- 9. A hierarchy of computer servers, comprising:
a server in the hierarchy of servers; children of the server in the hierarchy; and a server to be registered; the server being registered being programmed to transmit a query to the server in the hierarchy; the server in the hierarchy being programmed A) to receive the query and B) to send identification of its children to the server to be registered; the server to be registered being programmed C) to select one of the server in the hierarchy and its children on the basis of its expected online performance with the server to be registered, D) if the selected server is the server in the hierarchy, to attach itself to the server that received the query, and E) if the selected server is one of the children, sending a query from the server to be registered to the selected server and to cause steps A-E to be repeated.
- 10. A method of registering a server in a hierarchy of computer servers, comprising the steps of:
A) receiving, at a server in the hierarchy, a query from the server to be registered; B) sending identification of children of the server to the server to be registered; C) selecting the one of the server that received the query and its children on the basis of its expected online performance with the server to be registered; D) if the selected server is the server that received the query, attaching the server to be registered to the server that received the query; E) if the selected server is one of the children, sending a query from the server to be registered to the selected server and repeating steps A-E.
- 11. The method of claim 10 wherein step C comprises measuring online performance between the server to be registered and the server in the hierarchy and between the server to be registered and the children of the server in the hierarchy, and selecting the one of the server in the hierarchy and its children on the basis of the online performance measurement.
- 12. The method of claim 11 wherein the step of measuring online performance comprises determining latency between servers.
- 13. The method of claim 12 wherein latency is determined by pinging and measuring time delay of response.
- 14. The method of claim 12 wherein latency is determined by exchange of a packet or small amount of data and measuring time delay of response.
- 15. The method of claim 10 wherein step D comprises:
if there is no firewall between the server to be registered and the server that received the query, attaching the server to be registered directly to the server that received the query; if there is a firewall between the server to be registered and the server that received the query, determining whether the server to be registered should be a primary server behind the firewall; if it is determined that the server to be registered should be the primary server behind the firewall, attaching the server to be registered directly to the server that received the query; and if it is determined that the server to be registered should not be the primary server behind the firewall, attaching the server to be registered to the server that received the query indirectly by attaching it to the primary server behind the firewall, which is attached directly to the server that received the query.
- 16. The method of claim 10 wherein the server to be registered is new to the hierarchy.
- 17. The method of claim 10 wherein the server to be registered is a server already registered in the hierarchy that is to be re-registered.
- 18. The method of claim 10 wherein at least some of the servers in the hierarchy are replica routers.
- 19. A hierarchy of computer servers, comprising:
a server in the hierarchy of servers; children of the server in the hierarchy; and a server to be registered; the server in the hierarchy being an identified server to which the server to be registered should be attached; the server to be registered being programmed to determine whether there is a firewall between itself and the server in the hierarchy, and if there is no firewall itself and the server in the hierarchy, to attach itself directly to the server in the hierarchy, and if there is a firewall between itself and the server in the hierarchy, to determine whether it should be a primary server behind the firewall, and if it is determined that it should be the primary server behind the firewall, to attach itself directly to the server in the hierarchy, and if it is determined that it should not be the primary server behind the firewall, to attach itself indirectly to the server in the hierarchy by attaching itself to the primary server behind the firewall, which is attached directly to the server in the hierarchy.
- 20. A method of registering a server in a hierarchy of servers, comprising the steps of:
A) identifying a server in the hierarchy to which the server to be registered should be attached; B) determining whether there is a firewall between the server to be registered and the server to which it is to be attached; C) if there is no firewall between the server to be registered and the server to which it is to be attached, attaching the server to be registered directly to the server to which it is to be attached; D) if there is a firewall between the server to be registered and the server to which it is to be attached, determining whether the server to be registered should be a primary server behind the firewall; E) if it is determined that the server to be registered should be the primary server behind the firewall, attaching the server to be registered directly to the server to which it is to be attached; and F) if it is determined that the server to be registered should not be the primary server behind the firewall, attaching the server to be registered indirectly to the server to which it is to be attached by attaching it to the primary server behind the firewall, which is attached directly to the server to which the server to be registered is to be attached.
- 21. The method of claim 20 wherein the step of determining whether the server to be registered should be a primary server behind the firewall is based on online performance measurements between the server to be registered and the server to which it is to be attached and between an existing primary server behind the firewall and the server that to which the server to be registered is to be attached.
- 22. The method of claim 20 wherein at least some of the servers in the hierarchy are replica routers.
- 23. A replica routing system, comprising:
a processor; and a plurality of routers; the processor being programmed to transmit a first request for data and a subsequent request for data to one of the routers; the router being programmed:
A) to receive the first request from the processor for data; B) to serve the first request; C) to compare an address from which the request purports to originate with coverage zone information for the router that received the request and a hierarchy of routers that are its progeny, the coverage zone information being stored in a database associated with the router that received the request, in order to identify one of the routers as a preferred router for serving the processor; D) to receive a subsequent request from the processor for data at the router that received and served the first request; and E) to redirect the processor to the preferred router for serving the subsequent request.
- 24. A method of routing requests received from processors, comprising the steps of:
A) receiving, at a router, a first request from the processor for data; B) serving the first request at the router; C) comparing an address from which the request purports to originate with coverage zone information for the router that received the request and a hierarchy of routers that are its progeny, the coverage zone information being stored in a database associated with the router that received the request, in order to identify one of the routers as a preferred router for serving the processor; D) receiving a subsequent request from the processor for data at the router that received and served the first request; and E) redirecting the processor to the preferred router for serving the subsequent request.
Parent Case Info
[0001] CROSS REFERENCE TO RELATED APPLICATION
[0002] This patent application is also related to a patent application entitled “Self-Organizing Distributed Appliances,” filed on the same day as the present application, the entire disclosure of which is hereby incorporated herein by reference. The router described herein may be appliances of the type described in this related patent application.
Divisions (1)
|
Number |
Date |
Country |
| Parent |
09294837 |
Apr 1999 |
US |
| Child |
10289665 |
Nov 2002 |
US |