WO2001090943A2 - Distributed internet content delivery system - Google Patents
Distributed internet content delivery system Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000001668 ameliorated effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002089 crippling effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1038—Load balancing arrangements to avoid a single path through a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001587260A JP2004515834A (en) | 2000-05-19 | 2001-05-09 | Distributed web serving system |
DE10196218T DE10196218T1 (en) | 2000-05-19 | 2001-05-09 | Distributed web serving systems |
AU2001261293A AU2001261293A1 (en) | 2000-05-19 | 2001-05-09 | Distributed internet content delivery system |
GB0227022A GB2379307B (en) | 2000-05-19 | 2001-05-09 | Distributed web serving system |
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)
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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2281793A (en) * | 1993-09-11 | 1995-03-15 | Ibm | A data processing system for providing user load levelling in a network |
US5828847A (en) * | 1996-04-19 | 1998-10-27 | Storage Technology Corporation | Dynamic server switching for maximum server availability and load balancing |
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 |
-
2001
- 2001-05-09 AU AU2001261293A patent/AU2001261293A1/en not_active Abandoned
- 2001-05-09 DE DE10196218T patent/DE10196218T1/en not_active Withdrawn
- 2001-05-09 JP JP2001587260A patent/JP2004515834A/en not_active Withdrawn
- 2001-05-09 WO PCT/US2001/014905 patent/WO2001090943A2/en active Application Filing
- 2001-05-09 GB GB0227022A patent/GB2379307B/en not_active Expired - Fee Related
Cited By (6)
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 |
---|---|
GB2379307B (en) | 2004-07-28 |
GB2379307A (en) | 2003-03-05 |
AU2001261293A1 (en) | 2001-12-03 |
DE10196218T1 (en) | 2003-04-17 |
JP2004515834A (en) | 2004-05-27 |
WO2001090943A3 (en) | 2003-12-24 |
GB0227022D0 (en) | 2002-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6473781B1 (en) | Communication system and method | |
EP0338041B1 (en) | Naming service for networked digital data processing system | |
US7530115B2 (en) | Access to content addressable data over a network | |
EP1049989B1 (en) | Access to content addressable data over a network | |
US5892946A (en) | System and method for multi-site distributed object management environment | |
US5220655A (en) | Distributed computer network for tracking the access path of a user | |
EP1082651B1 (en) | Incremental updating | |
US20070214174A1 (en) | System for distributing files and transmitting/receiving distributed files | |
CN111242620A (en) | Data caching and querying method of block chain transaction system, terminal and storage medium | |
JP3526474B2 (en) | Distribution information management system in network | |
EP2710477B1 (en) | Distributed caching and cache analysis | |
US7493518B2 (en) | System and method of managing events on multiple problem ticketing system | |
CN1146816A (en) | Data storage | |
TW437205B (en) | An internet caching system and a method and an arrangement in such a system | |
US5996017A (en) | Method for information exchange in the customer/server mode between stations connected by a communication network | |
WO2001090943A2 (en) | Distributed internet content delivery system | |
US7693840B1 (en) | Method and system for distribution of common elements | |
JP2003330836A (en) | Data transmission method | |
JP2001331398A (en) | Server-managing system | |
JP2710329B2 (en) | User information management method in distributed system | |
AU755981B2 (en) | Communication system and method | |
JPH06175902A (en) | Distributed file system, file managing device, centralized controller and distributed file managing method | |
WO2007123580A2 (en) | System and method for routing directory service operations in a directory service network | |
JPH11232104A (en) | Object update and management method and client/server system | |
JP2002541544A (en) | Method of forming distributed object tree |
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 |