WO2001090943A2 - Distributed internet content delivery system - Google Patents

Distributed internet content delivery system Download PDF

Info

Publication number
WO2001090943A2
WO2001090943A2 PCT/US2001/014905 US0114905W WO0190943A2 WO 2001090943 A2 WO2001090943 A2 WO 2001090943A2 US 0114905 W US0114905 W US 0114905W WO 0190943 A2 WO0190943 A2 WO 0190943A2
Authority
WO
WIPO (PCT)
Prior art keywords
content
server
client
database
secondary server
Prior art date
Application number
PCT/US2001/014905
Other languages
French (fr)
Other versions
WO2001090943A3 (en
Inventor
Mark E. Kriegsman
Original Assignee
Clearway Technologies, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Clearway Technologies, Llc filed Critical Clearway Technologies, Llc
Priority to AU2001261293A priority Critical patent/AU2001261293A1/en
Priority to JP2001587260A priority patent/JP2004515834A/en
Priority to GB0227022A priority patent/GB2379307B/en
Priority to DE10196218T priority patent/DE10196218T1/en
Publication of WO2001090943A2 publication Critical patent/WO2001090943A2/en
Publication of WO2001090943A3 publication Critical patent/WO2001090943A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers

Definitions

  • This invention relates to web serving systems, and in particular, to distributed web-serving systems.
  • a crippling problem in conventional content delivery systems on the Internet is the sheer volume of data traffic being tunneled into a limited number of content- providing primary servers. To some extent, this difficulty has been ameliorated by deploying distributed systems of secondary content servers that, to some extent, replicate the content available on the primary servers. By requesting content from one of these secondary servers instead of from the primary server, a browser competes with less data traffic and is therefore more likely to receive prompt service.
  • a system of secondary server is useful only to the extent that a browser is aware of its existence.
  • this is achieved by having the primary server provide, in response to a client's request for content, data indicative of a secondary web server from which that content can be obtained.
  • the conventional method requires two network-accessing events.
  • the requesting client asks the primary server where to obtain the content that it seeks.
  • the requesting client connects to the secondary server specified in the first network-accessing event.
  • This inefficiency is in many ways analogous to telephoning a department store to obtain information on goods sold by a particular department, obtaining a telephone number for that department, hanging up, and then placing a new telephone call to that department.
  • the system and method ofthe invention overcomes the foregoing disadvantage by providing a database to the requesting client. From information contained in the database, the client can identify an optimal secondary server from which it can request the desired content with an expectation of rapid content delivery. By empowering the client with this ability, the system dispenses with the primary server's need to intercede in each requests for content by providing to the client, inter alia., a pointer to a secondary server.
  • a system includes at least one secondary server in communication with a primary server for receiving content from the primary server and for transmitting that content, upon request, to a client.
  • the system also includes a database that is both remote from the primary server and accessible to the client. This database contains information leading to the desired content.
  • the system also includes a processor, other than the primary server, for transmitting the desired content to the client.
  • the database includes information that leads to a secondary server that contains a copy ofthe content.
  • Examples of such information include a list of secondary servers that can be interrogated in order to determine whether they contain the desired information or a list of secondary servers together with the content stored by each of those secondary servers.
  • the database is typically a local database, stored, for example, on the client on a proxy server, or on a secondary server.
  • the system can also include a management server for providing the database and, if necessary, for updating the database in response to changes in the list of secondary servers or changes in the list of contents stored on the secondary servers.
  • a management server for providing the database and, if necessary, for updating the database in response to changes in the list of secondary servers or changes in the list of contents stored on the secondary servers.
  • FIG. 1 shows the architecture for a distributed web serving system inco ⁇ orating the principles ofthe invention
  • FIG. 2 shows a method implemented on the system in FIG. 1 for delivering desired content to a client
  • FIG. 3 shows an alternate method implemented on the system in FIG. 1 for delivering desired content to a client.
  • a distributed web serving system 10 for delivering content to a client 12 includes a primary server 14 that contains an original copy ofthe content.
  • the primary server 14 is in data communication with a plurality of secondary servers 16a-n, each of which can, but need not necessarily, have a copy of all or part ofthe original content stored on the primary server 14.
  • the distribution of content from the primary server 14 to selected secondary servers 16a-n is under the control of a management server 18 that is in data communication with both the secondary servers 16a-n and the primary server 14.
  • That web page can contain embedded objects. In some cases, some portions ofthe web page are retrieved from a primary server 14 while other portions are retrieved from secondary servers 16a-n.
  • the term "content" is intended to include particular objects embedded in a web page and to include the web page as a whole.
  • the management server 18 determines which, if any, ofthe secondary servers 16a-n is to receive particular content stored on the primary server 14. If the management server 18 determines that a particular secondary server 16b is to have a copy of particular content, the management server 18 causes the replication of that content and its transmission from the primary server 14 to the particular secondary server 16b. If the content on the primary server 14 changes, the management server 18 also causes an updated copy of that content to be provided to the appropriate secondary servers 16a-n.
  • the replication of content as described above carries with it the potential of reducing the load on the primary server 14. This allows the primary server 14 to operate with reduced bandwidth requirements. In order to realize this advantage, however, the client 12 must have some way of knowing that the content is available from a location other than the primary server 14.
  • both the client 12 and the management server 18 are in communication with a database 20.
  • This database 20 is generally stored locally, for example at the client 12, or on a proxy server. Alternatively, the database can be stored at the management server 18. The database can also be stored in a distributed fashion, with some of its content residing on the management server 18 and the remainder of its content residing at the client 12. What is important is that the information contained in the database 20 be stored at one or more locations in a manner that does not require the intervention ofthe primary server 14 in a client's initial request for content.
  • the database 20 contains information that leads the client 12 to the content of interest. This information can include the IP addresses ofthe secondary servers, thereby allowing the client 12 to bypass the DNS system. This information is updated by the management server 18 when necessary.
  • the client 12 executes interface software 21 for interacting with the daltabase in a manner described in connection with FIGS. 2 and 3.
  • the database 20 includes a list of secondary servers 16a-n together with the content stored on each secondary server in that list.
  • the database 20 further includes information indicating the geographical relationship between each secondary server and the client 12, and optionally, the topological relationship between each secondary server 16a-n and the client 12. From this information, the client 12 can determine the secondary server 16a-c that would most likely minimize the time required for retrieval of content from that secondary server. The client can then interrogate that secondary server to determine whether it contains the desired content.
  • setup software executed either by the client or by the management server, ranks the secondary servers in an order that represents the expected service time required for receiving content from that server (step 22).
  • interfacing software 21 executing on the client initializes a counter (step 24) and searches the database to determine whether the primary server has stored the desired content on the secondary server identified by the current value ofthe counter (step 26). If it has, the client transmits a message to that secondary server to request a copy ofthe desired content (step 28). Otherwise, the client checks to see if there are additional secondary servers (step 30). If there are, the client increments the counter (step 32) and repeats the foregoing steps with a secondary server identified by the new value ofthe counter. Otherwise, the client transmits a message to the primary server requesting a copy ofthe desired content (step 34).
  • the database 20 includes only a list of secondary servers 16a-n.
  • the database 20 further includes information indicating the geographical relationship between each secondary server and the client 12, and optionally, the. topological relationship between each secondary server 16a-n and the client 12. From this information, the client 12 can determine the secondary server 16a- that would most likely minimize the time required for retrieval of content.
  • setup software executed either by the client or by the management server ranks the secondary servers in an order that represents the expected service time required for the client to receive content from that server (step 36).
  • interfacing software executing on the client initializes a counter (step 38) and interrogates the server identified by that counter (step 40) to determine whether the desired content has been stored on that secondary server.
  • the client determines, from the secondary server's response, whether that server has a copy ofthe desired content (step 42). If it does, then the client transmits a message to that secondary server to request a copy ofthe desired content (step 44).
  • the client checks to see if there are additional secondary servers available for interrogation (step 46). If there are additional secondary servers available for interrogation, the client increments the counter (step 48) and repeats the foregoing steps with a secondary server identified by the new value of the counter. Otherwise, the client transmits a message to the primary server requesting a copy ofthe desired content (step 50) directly from the primary server.
  • An optional feature ofthe distributed web-serving system 10 is fault-tolerant software 23 for correcting errors in the client's choice ofthe best secondary server from which to retrieve desired content. It may be, for example, that the database 20 stored on the client 12 is obsolete, or that it contains erroneous information. Under these circumstances, a client 12 will attempt to obtain desired content from an incorrect secondary server, such as a non-optimal secondary-server or an optimal secondary-server that lacks a copy ofthe desired content.
  • the error-correction software 23 which typically executes on the incorrect secondary server, recognizes the client's error and determines the client's identity. Knowing the client's identity, the error-correction software 23 uses another copy ofthe database 20 to identify the best available secondary server for satisfying the client's request. Essentially, what the error-correction software 23 does is to repeat the client's original, but erroneous, determination of an optimal secondary-server. To the extent that the incorrect secondary server has access to a database that does not include the erroneous or obsolete information, the error-correction software 23 will correctly identify the optimal secondary-server for the client. The incorrect secondary-server can then return the identity, either the domain name or the IP address, ofthe optimal secondary- server to the client 12. Alternatively, the incorrect secondary-server can itself retrieve the desired content from the optimal secondary-server and provide that content to the client 12.
  • An optional feature ofthe distributed web serving system 10 is error correction software 23 for correcting errors in the client's choice ofthe best secondary server from which to retrieve desired content. It may be, for example, that the database 20 stored on the client 12 is obsolete, or that it contains erroneous information. Under these circumstances, a client 12 will attempt to obtain desired content from an incorrect server, such as a non-optimal secondary server or an optimal secondary server that lacks a copy ofthe desired content.
  • Error correction software 23 executing on the incorrect secondary server recognizes the client's error, determines the client's identity, and uses it, together with information on its own local database, to identify the best available secondary server for satisfying the client's request. Essentially, what the incorrect secondary server does is to repeat the client's original, but erroneous, determination of an optimal secondary server. To the extent that the incorrect secondary server has access to a database that does not include the erroneous or obsolete information, the incorrect secondary server will correctly identify the best available secondary server for the client. The incorrect secondary server can then return the identity ofthe optimal secondary server to the client. Alternatively, the incorrect secondary server can itself retrieve the desired content from the optimal secondary server and provide the desired content to the client.
  • the processing overhead incurred by the primary server 14 is reduced because the primary server 14 does not need to intercede in each request for content.
  • the primary server 14 it is not necessary for the primary server 14 to determine, for each request for content, the best secondary server 16b to deliver that content to the client 12.
  • the method and system ofthe invention empower the client 12 itself to determine the best secondary server 16b from which to obtain desired content. This is achieved by maintaining a database 20 containing
  • the processing that is no longer performed by the primary server 14 is carried out by the client 12.
  • the management server 18 provides considerable information in the database 20 and frequently updates that information.
  • the same processing is split between the client 14 and the secondary servers 16a-n who respond to the client's interrogation.
  • the database 20 accessible to the client 14 does not need to list the content available on each secondary server 16a-n. Accordingly, in this second embodiment, it is not necessary for the management server 18 to create a large database 20 and to update it frequently.
  • the database 20 needs to be provided to the client 12 by the management server 18 only once, during a brief set-up procedure.
  • the primary server 14 will send the client 12 a message offering it the opportunity to receive the database in order to obtain documents from the primary server 14 more quickly the next time the client 12 has occasion to do so.
  • the primary server 14 either delivers content to the client in a conventional manner, either directly or by providing the client 12 with a pointer to a secondary server, for example, server 16b, from which that content is available. Otherwise, the primary server 14 causes the management server 18 to provide a copy ofthe database 20 to the client 12 for use by the client 12 in subsequent attempts to retrieve content from the primary server 14.
  • this task can also be performed by another processor acting on the client's behalf, providing that other processor is not the primary server.
  • the management server, or a proxy server having access to the database can carry out this task on the client's behalf.
  • a secondary server can also perform this function on behalf of the client. What is common to these cases is that a processor other than the primary server performs this task and that in all these cases, the primary server need not intervene in a client's initial request for content.

Abstract

A distributed web serving system for delivering content from a primary server to a client includes a database accessible to the client. The database includes information from which the client can itself identify a secondary server from which to obtain a copy of content from the primary server. The system also includes a processor, other than the primary server, for delivering the content to the client. As a result, the primary server does not need to intervene in a client's initial request for content.

Description

DISTRIBUTED WEB SERVING SYSTEM
FIELD OF THE INVENTION
This invention relates to web serving systems, and in particular, to distributed web-serving systems.
BACKGROUND
A crippling problem in conventional content delivery systems on the Internet is the sheer volume of data traffic being tunneled into a limited number of content- providing primary servers. To some extent, this difficulty has been ameliorated by deploying distributed systems of secondary content servers that, to some extent, replicate the content available on the primary servers. By requesting content from one of these secondary servers instead of from the primary server, a browser competes with less data traffic and is therefore more likely to receive prompt service.
However, a system of secondary server is useful only to the extent that a browser is aware of its existence. In known distributed web serving systems, this is achieved by having the primary server provide, in response to a client's request for content, data indicative of a secondary web server from which that content can be obtained.
Although the foregoing method reduces the response time required to service each requesting client, it does not address the fact that the primary server must still intercede in every initial request for content. Instead, this conventional method merely changes the nature ofthe primary server's response to the requesting client from a time-consuming download of content to instructions to seek some or all ofthe content elsewhere.
From the requesting client's point of view, the conventional method requires two network-accessing events. In the first network accessing event, the requesting client asks the primary server where to obtain the content that it seeks. Then, in the second network- accessing event, the requesting client connects to the secondary server specified in the first network-accessing event. This inefficiency is in many ways analogous to telephoning a department store to obtain information on goods sold by a particular department, obtaining a telephone number for that department, hanging up, and then placing a new telephone call to that department.
SUMMARY OF THE INVENTION
The system and method ofthe invention overcomes the foregoing disadvantage by providing a database to the requesting client. From information contained in the database, the client can identify an optimal secondary server from which it can request the desired content with an expectation of rapid content delivery. By empowering the client with this ability, the system dispenses with the primary server's need to intercede in each requests for content by providing to the client, inter alia., a pointer to a secondary server.
A system according to the invention includes at least one secondary server in communication with a primary server for receiving content from the primary server and for transmitting that content, upon request, to a client. The system also includes a database that is both remote from the primary server and accessible to the client. This database contains information leading to the desired content. The system also includes a processor, other than the primary server, for transmitting the desired content to the client.
In one embodiment, the database includes information that leads to a secondary server that contains a copy ofthe content. Examples of such information include a list of secondary servers that can be interrogated in order to determine whether they contain the desired information or a list of secondary servers together with the content stored by each of those secondary servers.
To reduce the processing load on the primary server, the database is typically a local database, stored, for example, on the client on a proxy server, or on a secondary server.
The system can also include a management server for providing the database and, if necessary, for updating the database in response to changes in the list of secondary servers or changes in the list of contents stored on the secondary servers. W
These and other features ofthe invention will be apparent from a review ofthe following detailed description and the accompanying figures in which:
BRIEF DESCRIPTION OF THE FIGURES
FIG. 1 shows the architecture for a distributed web serving system incoφorating the principles ofthe invention;
FIG. 2 shows a method implemented on the system in FIG. 1 for delivering desired content to a client; and
FIG. 3 shows an alternate method implemented on the system in FIG. 1 for delivering desired content to a client.
DETAILED DESCRIPTION
Referring to FIG. 1, a distributed web serving system 10 for delivering content to a client 12 includes a primary server 14 that contains an original copy ofthe content. The primary server 14 is in data communication with a plurality of secondary servers 16a-n, each of which can, but need not necessarily, have a copy of all or part ofthe original content stored on the primary server 14. The distribution of content from the primary server 14 to selected secondary servers 16a-n is under the control of a management server 18 that is in data communication with both the secondary servers 16a-n and the primary server 14.
When a client 12 retrieves a web page, that web page can contain embedded objects. In some cases, some portions ofthe web page are retrieved from a primary server 14 while other portions are retrieved from secondary servers 16a-n. The term "content" is intended to include particular objects embedded in a web page and to include the web page as a whole.
The management server 18 determines which, if any, ofthe secondary servers 16a-n is to receive particular content stored on the primary server 14. If the management server 18 determines that a particular secondary server 16b is to have a copy of particular content, the management server 18 causes the replication of that content and its transmission from the primary server 14 to the particular secondary server 16b. If the content on the primary server 14 changes, the management server 18 also causes an updated copy of that content to be provided to the appropriate secondary servers 16a-n.
By allowing the client 12 to retrieve content from one of several secondary servers 16a-n rather than funneling all such requests to the primary server 14, the replication of content as described above carries with it the potential of reducing the load on the primary server 14. This allows the primary server 14 to operate with reduced bandwidth requirements. In order to realize this advantage, however, the client 12 must have some way of knowing that the content is available from a location other than the primary server 14.
As shown in FIG. 1, both the client 12 and the management server 18 are in communication with a database 20. This database 20 is generally stored locally, for example at the client 12, or on a proxy server. Alternatively, the database can be stored at the management server 18. The database can also be stored in a distributed fashion, with some of its content residing on the management server 18 and the remainder of its content residing at the client 12. What is important is that the information contained in the database 20 be stored at one or more locations in a manner that does not require the intervention ofthe primary server 14 in a client's initial request for content.
The database 20 contains information that leads the client 12 to the content of interest. This information can include the IP addresses ofthe secondary servers, thereby allowing the client 12 to bypass the DNS system. This information is updated by the management server 18 when necessary. The client 12 executes interface software 21 for interacting with the daltabase in a manner described in connection with FIGS. 2 and 3.
In a first embodiment, the database 20 includes a list of secondary servers 16a-n together with the content stored on each secondary server in that list. The database 20 further includes information indicating the geographical relationship between each secondary server and the client 12, and optionally, the topological relationship between each secondary server 16a-n and the client 12. From this information, the client 12 can determine the secondary server 16a-c that would most likely minimize the time required for retrieval of content from that secondary server. The client can then interrogate that secondary server to determine whether it contains the desired content.
Referring now to FIG. 2, in this first embodiment, setup software executed either by the client or by the management server, ranks the secondary servers in an order that represents the expected service time required for receiving content from that server (step 22). In response to a request to retrieve data from the primary server, interfacing software 21 executing on the client initializes a counter (step 24) and searches the database to determine whether the primary server has stored the desired content on the secondary server identified by the current value ofthe counter (step 26). If it has, the client transmits a message to that secondary server to request a copy ofthe desired content (step 28). Otherwise, the client checks to see if there are additional secondary servers (step 30). If there are, the client increments the counter (step 32) and repeats the foregoing steps with a secondary server identified by the new value ofthe counter. Otherwise, the client transmits a message to the primary server requesting a copy ofthe desired content (step 34).
In a second embodiment ofthe invention, the database 20 includes only a list of secondary servers 16a-n. The database 20 further includes information indicating the geographical relationship between each secondary server and the client 12, and optionally, the. topological relationship between each secondary server 16a-n and the client 12. From this information, the client 12 can determine the secondary server 16a- that would most likely minimize the time required for retrieval of content.
Referring now to FIG.3, in this second embodiment, setup software executed either by the client or by the management server ranks the secondary servers in an order that represents the expected service time required for the client to receive content from that server (step 36). In response to a request to retrieve data from the primary server, interfacing software executing on the client initializes a counter (step 38) and interrogates the server identified by that counter (step 40) to determine whether the desired content has been stored on that secondary server. The client then determines, from the secondary server's response, whether that server has a copy ofthe desired content (step 42). If it does, then the client transmits a message to that secondary server to request a copy ofthe desired content (step 44). If that secondary server does not have a copy ofthe desired content, the client checks to see if there are additional secondary servers available for interrogation (step 46). If there are additional secondary servers available for interrogation, the client increments the counter (step 48) and repeats the foregoing steps with a secondary server identified by the new value of the counter. Otherwise, the client transmits a message to the primary server requesting a copy ofthe desired content (step 50) directly from the primary server.
An optional feature ofthe distributed web-serving system 10 is fault-tolerant software 23 for correcting errors in the client's choice ofthe best secondary server from which to retrieve desired content. It may be, for example, that the database 20 stored on the client 12 is obsolete, or that it contains erroneous information. Under these circumstances, a client 12 will attempt to obtain desired content from an incorrect secondary server, such as a non-optimal secondary-server or an optimal secondary-server that lacks a copy ofthe desired content.
The error-correction software 23, which typically executes on the incorrect secondary server, recognizes the client's error and determines the client's identity. Knowing the client's identity, the error-correction software 23 uses another copy ofthe database 20 to identify the best available secondary server for satisfying the client's request. Essentially, what the error-correction software 23 does is to repeat the client's original, but erroneous, determination of an optimal secondary-server. To the extent that the incorrect secondary server has access to a database that does not include the erroneous or obsolete information, the error-correction software 23 will correctly identify the optimal secondary-server for the client. The incorrect secondary-server can then return the identity, either the domain name or the IP address, ofthe optimal secondary- server to the client 12. Alternatively, the incorrect secondary-server can itself retrieve the desired content from the optimal secondary-server and provide that content to the client 12.
An optional feature ofthe distributed web serving system 10 is error correction software 23 for correcting errors in the client's choice ofthe best secondary server from which to retrieve desired content. It may be, for example, that the database 20 stored on the client 12 is obsolete, or that it contains erroneous information. Under these circumstances, a client 12 will attempt to obtain desired content from an incorrect server, such as a non-optimal secondary server or an optimal secondary server that lacks a copy ofthe desired content.
Error correction software 23 executing on the incorrect secondary server recognizes the client's error, determines the client's identity, and uses it, together with information on its own local database, to identify the best available secondary server for satisfying the client's request. Essentially, what the incorrect secondary server does is to repeat the client's original, but erroneous, determination of an optimal secondary server. To the extent that the incorrect secondary server has access to a database that does not include the erroneous or obsolete information, the incorrect secondary server will correctly identify the best available secondary server for the client. The incorrect secondary server can then return the identity ofthe optimal secondary server to the client. Alternatively, the incorrect secondary server can itself retrieve the desired content from the optimal secondary server and provide the desired content to the client.
It is apparent that in the method and system ofthe invention, the processing overhead incurred by the primary server 14 is reduced because the primary server 14 does not need to intercede in each request for content. In particular, it is not necessary for the primary server 14 to determine, for each request for content, the best secondary server 16b to deliver that content to the client 12. Instead, the method and system ofthe invention empower the client 12 itself to determine the best secondary server 16b from which to obtain desired content. This is achieved by maintaining a database 20 containing
In the first embodiment, the processing that is no longer performed by the primary server 14 is carried out by the client 12. To support the processing by the client 12, the management server 18 provides considerable information in the database 20 and frequently updates that information. In the second embodiment, the same processing is split between the client 14 and the secondary servers 16a-n who respond to the client's interrogation. In this second embodiment, the database 20 accessible to the client 14 does not need to list the content available on each secondary server 16a-n. Accordingly, in this second embodiment, it is not necessary for the management server 18 to create a large database 20 and to update it frequently.
In this second embodiment, the database 20 needs to be provided to the client 12 by the management server 18 only once, during a brief set-up procedure. Typically, the first time a client 12 attempts to retrieve content from the primary server 14, the primary server 14 will send the client 12 a message offering it the opportunity to receive the database in order to obtain documents from the primary server 14 more quickly the next time the client 12 has occasion to do so. If the client 12 declines the offer, the primary server 14 either delivers content to the client in a conventional manner, either directly or by providing the client 12 with a pointer to a secondary server, for example, server 16b, from which that content is available. Otherwise, the primary server 14 causes the management server 18 to provide a copy ofthe database 20 to the client 12 for use by the client 12 in subsequent attempts to retrieve content from the primary server 14.
Although the foregoing description is of an embodiment in which the client attends to the task of identifying a suitable secondary server, this task can also be performed by another processor acting on the client's behalf, providing that other processor is not the primary server. For example, the management server, or a proxy server having access to the database can carry out this task on the client's behalf. As discussed above in connection with the error-correction software, a secondary server can also perform this function on behalf of the client. What is common to these cases is that a processor other than the primary server performs this task and that in all these cases, the primary server need not intervene in a client's initial request for content.
The foregoing embodiments are representative of systems and methods in which the subject matter ofthe invention is made manifest. However, these embodiments, being but examples ofthe manner in which the invention can be implemented, do not represent the entire scope ofthe invention. Instead, what is claimed as new and secured by letters patent is:

Claims

1. A system for delivering content from a primary sever to a client, the system comprising:
a secondary server in communication with said primary server for receiving said content therefrom and in communication with said client for transmitting said content thereto;
a database accessible to said client, said database containing information leading to said content; and
a processor other than the primary server for accessing the database to identify an optimal secondary server for transmitting said content to the client.
2. The system of claim 1 wherein the processor is selected from a group consisting of said client, said secondary server, a proxy server, or a management server.
3. The system of claim 1 wherein said information leading to said content comprises information leading to a secondary server to be interrogated to determine whether said secondary server contains a copy of said content stored thereon.
4. The system of claim 1 wherein said information leading to said content comprises a list of content available on said secondary server.
5. The system of claim 1 wherein said database is a database local to said client.
6. The system of claim 5 wherein said database is stored on said client.
7. The system of claim 5 wherein said database is stored on a proxy server.
8. The system of claim 1 further comprising a management server for providing said database accessible to said client.
9. The system of claim 1 further comprising a management server for updating said database.
10. The system of claim 1 further comprising error-correction software for executing on an incorrectly identified secondary server.
11. The system of claim 10 wherein said error-correction software includes instructions for determining a correct secondary-server and providing to said client information leading to said correct secondary-server.
12. The system of claim 10 wherein said error-correction software includes instructions for determining a correct secondary-server, retrieving said content from said correct secondary-server, and providing said content to said client.
13. A system for delivering content from a primary server to a client, said system comprising;
a plurality of secondary servers in communication with said primary server, a subset of said plurality of secondary servers containing said content stored thereon; and
a database accessible to said client, said database containing information leading to said content.
14. The system of claim 13 wherein said information leading to said content comprises information leading to a secondary server to be interrogated to determine whether said secondary server contains a copy of said content stored thereon.
15. The system of claim 13 wherein said information leading to said content comprises a list of content available on said secondary server.
16. A method for delivering content from a primary server to a client, the method comprising:
storing a copy of said content on a secondary server in communication with said client; and updating a database accessible to said client with information leading to said content on said secondary server. . The method of claim 16 wherein updating said database comprises adding to said database information leading to said secondary server. . The method of claim 16 wherein updating said database comprises adding to said database information indicating content available on said secondary server. . The method of claim 16 further comprising storing said database on said client. . The method of claim 16 further comprising storing said database on a proxy server. . The method of claim 16 further comprising providing said database accessible to said client. . The method of claim 16 further comprising updating said database. . Computer-readable media having encoded thereon software for delivering content from a primary server to a client, said software comprising instructions for:
storing a copy of said content on a secondary server in communication with said client; and
updating a database accessible to said client with information leading to said content. . The computer-readable media of claim 23 wherein said instructions for updating said database comprise instructions for adding information leading to said secondary server to said database. . The computer-readable media of claim 23 wherein said instructions for updating said database comprise instructions for adding to said database information indicating content available on said secondary server. . The computer-readable media of claim 23 wherein said software further comprises instructions for storing said database on said client.
27. The computer-readable media of claim 23 wherein said software further comprises instructions for storing said database on a proxy server.
28. The computer-readable media of claim 23 wherein said software further comprises instructions for providing said database accessible to said client.
29. The computer-readable media of claim 23 wherein said software further comprises instructions for updating said database.
30. A computer-readable medium having encoded thereon software for enabling a client to retrieve desired content from a secondary server, said software including instructions for from a primary server to a client, said software comprising instructions for:
directing said client to a database containing information leading to said content on said secondary server; and
retrieving said content from said secondary server.
31. The computer-readable medium having of claim 30 further comprising said database containing information leading to said content on said secondary server.
32. The computer-readable medium of claim 31 wherein said information leading to said content comprises information leading to a secondary server to be interrogated to determine whether said secondary server contains of copy of said content stored thereon.
33. The computer-readable medium of claim 31 wherein said information leading to said content comprises a list of content available on said secondary-server.
34. The computer-readable medium of claim 30 wherein said software further comprises instructions for providing access to said database by a management server for updating said database.
35. A method for retrieving desired content from a secondary server, said method comprising:
consulting a database containing information leading to said desired content, said information including a plurality of secondary servers;
selecting, from said plurality of secondary servers an optimal secondary server having a copy of said desired content stored thereon; and
retrieving said desired content from said optimal secondary-server.
36. The method of claim 35 wherein selecting an optimal secondary server comprises identifying, on the basis of information from said database, an expected service time for providing content to said client from said optimal secondary server.
37. The method of claim 35 wherein selecting an optimal secondary server comprises identifying a secondary server having access to said desired content.
38. The method of claim 37 wherein identifying a secondary server having access to said desired content comprises determining, on the basis of information from said database, whether a secondary server has access to said desired content.
39. The method of claim 37 wherein identifying a secondary server having access to said desired content comprises interrogating a secondary server to determine whether said secondary server has access to said desired content.
40. The method of claim 35 further comprising providing a management server with access to said database for updating said database.
41. A computer readable medium having encoded thereon software for retrieving desired content from a secondary server, said software comprising:
means for consulting a database containing information leading to said desired content, said information including a plurality of secondary servers; means for selecting, from said plurality of secondary servers, an optimal secondary server having a copy of said desired content stored thereon; and
means for retrieving said desired content from said optimal secondary-server.
42. The method of claim 41 wherein said means for selecting an optimal secondary server comprises means for identifying, on the basis of information from said database, an expected service time for providing content to said client from said optimal secondary server.
43. The method of claim 41 wherein said means for selecting an optimal secondary server comprises means for identifying a secondary server having access to said desired content.
44. The method of claim 43 wherein identifying a secondary server having access to said desired content comprises determining, on the basis of information from said database, whether a secondary server has access to said desired content.
45. The method of claim 43 wherein identifying a secondary server having access to said desired content comprises interrogating a secondary server to determine whether said secondary server has access to said desired content.
46. The method of claim 41 further comprising providing a management server with access to said database for updating said database.
47. A system for delivering content from a primary server to a client, said system comprising:
serving means for communicating with said primary server for receiving said content therefrom and for communicating with said client for transmitting said content thereto; and
storage means for storing information leading to said content; and means for accessing said storage means for identifying an optimal serving means for transmitting said content to said client.
48. The system of claim 47 wherein said information leading to said content comprises information leading to a communication means to be interrogated to determine whether said communication means has access to a copy of said content stored thereon.
49. The system of claim 47 wherein said information leading to said content comprises a list of content available on said serving means.
50. The system of claim 47 further comprising means for providing said storage means to said client.
51. The system of claim 47 further comprising means for updating said storage means.
PCT/US2001/014905 2000-05-19 2001-05-09 Distributed internet content delivery system WO2001090943A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AU2001261293A AU2001261293A1 (en) 2000-05-19 2001-05-09 Distributed internet content delivery system
JP2001587260A JP2004515834A (en) 2000-05-19 2001-05-09 Distributed web serving system
GB0227022A GB2379307B (en) 2000-05-19 2001-05-09 Distributed web serving system
DE10196218T DE10196218T1 (en) 2000-05-19 2001-05-09 Distributed web serving systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US57541400A 2000-05-19 2000-05-19
US09/575,414 2000-05-19

Publications (2)

Publication Number Publication Date
WO2001090943A2 true WO2001090943A2 (en) 2001-11-29
WO2001090943A3 WO2001090943A3 (en) 2003-12-24

Family

ID=24300225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/014905 WO2001090943A2 (en) 2000-05-19 2001-05-09 Distributed internet content delivery system

Country Status (5)

Country Link
JP (1) JP2004515834A (en)
AU (1) AU2001261293A1 (en)
DE (1) DE10196218T1 (en)
GB (1) GB2379307B (en)
WO (1) WO2001090943A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2391744A (en) * 2002-06-07 2004-02-11 Hewlett Packard Development Co Demand Director server satisfying a demand on a network for a network resource
WO2004019588A1 (en) * 2002-08-26 2004-03-04 Koninklijke Philips Electronics N.V. Internet device providing quality and link information
JP2005327291A (en) * 2004-05-14 2005-11-24 Microsoft Corp Distributed hosting of web content using partial replication
WO2006134502A1 (en) * 2005-06-13 2006-12-21 Nokia Corporation Access to fragmented database system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0648038A2 (en) * 1993-09-11 1995-04-12 International Business Machines Corporation A data processing system for providing user load levelling in a network
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828847A (en) * 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0648038A2 (en) * 1993-09-11 1995-04-12 International Business Machines Corporation A data processing system for providing user load levelling in a network
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GOLDSZMIDT G ET AL: "ShockAbsorber: A TCP Connection Router" IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE. PHOENIX, ARIZONA, NOV. 3 - 8, 1997, GLOBAL TELECOMMUNICATIONS CONFERENCE (GLOBECOM), NEW YORK, IEEE, US, vol. 3, 3 November 1977 (1977-11-03), pages 1919-1923, XP002238295 ISBN: 0-7803-4199-6 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2391744A (en) * 2002-06-07 2004-02-11 Hewlett Packard Development Co Demand Director server satisfying a demand on a network for a network resource
GB2391744B (en) * 2002-06-07 2005-10-12 Hewlett Packard Development Co Satisfying a demand for a network resource on a network
US7822862B2 (en) 2002-06-07 2010-10-26 Hewlett-Packard Development Company, L.P. Method of satisfying a demand on a network for a network resource
WO2004019588A1 (en) * 2002-08-26 2004-03-04 Koninklijke Philips Electronics N.V. Internet device providing quality and link information
JP2005327291A (en) * 2004-05-14 2005-11-24 Microsoft Corp Distributed hosting of web content using partial replication
WO2006134502A1 (en) * 2005-06-13 2006-12-21 Nokia Corporation Access to fragmented database system

Also Published As

Publication number Publication date
JP2004515834A (en) 2004-05-27
DE10196218T1 (en) 2003-04-17
WO2001090943A3 (en) 2003-12-24
AU2001261293A1 (en) 2001-12-03
GB0227022D0 (en) 2002-12-24
GB2379307A (en) 2003-03-05
GB2379307B (en) 2004-07-28

Similar Documents

Publication Publication Date Title
US6473781B1 (en) Communication system and method
EP0338041B1 (en) Naming service for networked digital data processing system
US6243715B1 (en) Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated
US8074289B1 (en) Access to content addressable data over a network
US5220655A (en) Distributed computer network for tracking the access path of a user
EP1049989B1 (en) Access to content addressable data over a network
EP1825376B1 (en) Content addressed storage device configured to maintain content address mapping
US5892946A (en) System and method for multi-site distributed object management environment
US7657543B1 (en) Method and system for creating and using shadow roots
US20070214174A1 (en) System for distributing files and transmitting/receiving distributed files
JP3526474B2 (en) Distribution information management system in network
CN111242620A (en) Data caching and querying method of block chain transaction system, terminal and storage medium
EP2710477B1 (en) Distributed caching and cache analysis
US8478898B2 (en) System and method for routing directory service operations in a directory service network
US6697859B1 (en) Apparatus, method, program, and information processing system for prioritized data transfer to a network terminal
JPH07311744A (en) Resource presence position detection system
WO2001090943A2 (en) Distributed internet content delivery system
US20030177233A1 (en) Proxy client-server communication system
CN111901243B (en) Service request routing method, scheduler and service platform
US7693840B1 (en) Method and system for distribution of common elements
US7058773B1 (en) System and method for managing data in a distributed system
JP2003330836A (en) Data transmission method
JP2710329B2 (en) User information management method in distributed system
Zhou The design and implementation of the Berkeley Internet Name Domain (BIND) servers
AU755981B2 (en) Communication system and method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: GB0227022.1

Country of ref document: GB

RET De translation (de og part 6b)

Ref document number: 10196218

Country of ref document: DE

Date of ref document: 20030417

Kind code of ref document: P

WWE Wipo information: entry into national phase

Ref document number: 10196218

Country of ref document: DE

122 Ep: pct application non-entry in european phase