The present invention relates to accessing data in a network environment via a computer system. In particular, the present invention relates to a system and method for selecting a redundant service.
With the growing popularity of the Internet, providing speedy access to a requested location on the Internet is fast becoming a significant issue. For example, when a popular web page is hosted by a single computer, the Internet traffic to that computer can be overwhelming. To manage this problem, several computers can be utilized to host the same web page such that each hosting computer, typically referred to as a server, maintains a copy of the web page. If there are many servers at the same location, then the network connection to that location can become choked during a time of high Internet traffic. To avoid choking the network connection, mirrored servers are often located at different sites. These sites are herein referred to as mirrored sites. The use of multiple computers to host a network service, such as a web page, is typically referred to as mirrored services.
FIG. 1 is a block diagram illustrating a path taken by a client""s request for a particular address. A client may be any entity which attempts to access a service. For example, the client may be a user, a company, or an automated computer system. FIG. 1 shows a client 10 requesting an address for a network site, such as www.cisco.com, from a local domain name server 12. The client""s local domain name server 12 may be a service such as Netcom or ATandT. The local domain name server 12 then eventually learns the address of one of the mirrored services 14A-14B, and replies to the client 10 with the address of one of the mirrored services 14A-14B.
FIG. 2 illustrates a basic organization of the Internet. The Internet includes groups of networks and routers which combine to create a autonomous systems (ASs) 50A-50E. A client may be located in one AS, such as AS 50A, while the service that the client is attempting to access may be located in another AS, such as AS 50E. In order to reach service 14, the request from client 10 may be passed from AS 50A to AS 50B through AS 50C, through AS 50D, and finally reaching service 14 at AS 50E.
In a mirrored service environment, the client 10 may be in one AS, such as AS 50A, while the mirrored services may be located in various different autonomous systems, such as AS 50E and AS 50C. An address of one of these mirrored services is typically needed in response to the client""s request.
There are several conventional ways of determining which mirrored service should be assigned to a requesting client. A selection of a mirrored service can be based on several factors. Ideally, the requested address should be returned to the client very quickly and downloaded into the client""s computer system as quickly as possible. The time between the request being sent out by the client and the address being received is referred to as latency. The time it takes to download the requested address is typically determined by the bandwidth.
One conventional service assignment scheme is a round robin scheme. The round robin simply takes turns on which mirrored service is to be used. A potential problem with the round robin scheme is that it does not take into consideration the various loads of the mirrored services at any given time. Additionally, the round robin scheme also fails to take into consideration the location of the user. Accordingly, the two factors of latency and bandwidth are not typically considered in the round robin scheme.
When the service is a mirrored service, the mirrored services may be located in different autonomous systems. Some service selection methods attempt to measure a metric between the client 10 and each of the services 14. Metric is herein meant to include a measurement of some characteristic of a connection, for example, a unit which indicates distance or time or both. For example, one such method measures xe2x80x9chop countxe2x80x9d, wherein the number of autonomous systems located between client 10 and service 14 are counted. The mirrored service with the smallest hop count may be considered the best selection for that particular client.
Although the metric measurement methods are effective in many situations, there may be situations in which it is an advantage to have an alternate method for determining which mirrored service is best for a particular client. For example, one such situation is if the hop count between a client and a first server is the same as the hop count between the client and a second server. Although the hop count may be the same, the actual distances between the client and the first service and the client and the second service may be different. Another example of when an alternative method would be beneficial, is when an autonomous system is so large as to encompass more than one mirrored service. A client within that same autonomous system would not be able to use the hop count in order to determine which mirrored service is better for that client.
It would be desirable to have an alternative reliable system and method to determine which mirrored service is the best selection for a given client. It would also be desirable to quickly and efficiently obtain information regarding mirrored services to facilitate the selection of a mirrored service. The present invention addresses such a need.
The present invention relates to a system and method for selecting a service. According to an embodiment of the present invention, a priority array indicates an order of priority levels; a residual array indicates each service to be evaluated for selection; and a result array indicates the results of selection at a priority level. An order of priority is configured for various metrics. The first priority metric is determined for each service in the residual array. If there is no tie in the result array for a server meeting a predetermined criteria, herein referred to as a xe2x80x9cbestxe2x80x9d service, then a xe2x80x9cbestxe2x80x9d service is selected. If a tie occurs in the result array, then the next priority metric is evaluated for the services that tied in the previous priority metric. If no tie occurs, then a xe2x80x9cbestxe2x80x9d service is selected.
A method according to an embodiment of the present invention for selecting an electronic service is presented. The method comprises determining a first metric and a second metric at a first priority level, wherein the first metric is associated with a first service and the second metric is associated with a second service. The method also compares the first metric and the second metric. It is then determined whether the first metric and the second metric are approximately equivalent. If the first metric and the second metric are approximately equivalent, it is also determined whether a third metric and a fourth metric at a second priority level, wherein the third metric is associated with the first service and the fourth metric is associated with the second service.
A system according to an embodiment of the present invention for selecting an electronic service is also presented. The system comprises a processor configured to determine a first metric and a second metric at a first priority level. The first metric is associated with a first service and the second metric is associated with a second service. The processor is also configured to compare the first metric and the second metric. The processor is also configured to determine whether the first metric and the second metric are approximately equivalent. Additionally, if the first metric and the second metric are approximately equivalent, the processor is configured to determine a third metric and a fourth metric at a second priority level, wherein the third metric is associated with the first service and the fourth metric is associated with the second service. A memory is coupled to the processor to provide instructions to the processor.