CA2720353C - Handling long-tail content in a content delivery network (cdn) - Google Patents
Handling long-tail content in a content delivery network (cdn) Download PDFInfo
- Publication number
- CA2720353C CA2720353C CA2720353A CA2720353A CA2720353C CA 2720353 C CA2720353 C CA 2720353C CA 2720353 A CA2720353 A CA 2720353A CA 2720353 A CA2720353 A CA 2720353A CA 2720353 C CA2720353 C CA 2720353C
- Authority
- CA
- Canada
- Prior art keywords
- resource
- server
- servers
- popularity
- tier
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 38
- 238000002716 delivery method Methods 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012419 revalidation Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17345—Control of the passage of the selected programme
- H04N7/17354—Control of the passage of the selected programme in an intermediate station common to a plurality of user terminals
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
Abstract
A content delivery network has at least a first tier of servers. A content delivery method includes, at a first server in the first tier or servers, obtaining a request from a client for a resource. If the resource is available at the first server or at a peer of the first server, then the resource is served to the client from the first server. Otherwise, it is determined whether the resource is popular, and if the resource is determined to be popular, then the first server obtains the resource and the first server serves the resource to the client. If the resource is determined not to be popular, the client is directed to a second server, not in the first tier of servers, and the second server serves the resource to the client. The second server may be in a second tier of servers or it may be an origin server.
Description
HANDLING LONG-TAIL CONTENT IN A CONTENT DELIVERY NETWORK
(CDN) RELATED APPLICATIONS
[0001] This application is related to the following co-owned and co-pending patent applications:
Application No. Filing Date 10/073,938 02-14-2002 11/715,316 03-08-2007 11/978,656 10-30-2007 11/980,672 10-31-2007 10/259,497 09-30-2002 11/932,162 10-31-2007 11/976,648 10-26-2007 FIELD OF THE INVENTION
(CDN) RELATED APPLICATIONS
[0001] This application is related to the following co-owned and co-pending patent applications:
Application No. Filing Date 10/073,938 02-14-2002 11/715,316 03-08-2007 11/978,656 10-30-2007 11/980,672 10-31-2007 10/259,497 09-30-2002 11/932,162 10-31-2007 11/976,648 10-26-2007 FIELD OF THE INVENTION
[0002] This invention relates to content delivery, to content delivery networks (CDNs), and to frameworks and systems using CDNs.
SUMMARY OF THE INVENTION
According to an aspect of the present invention there is provided a method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
at a first server in said first tier of servers, obtaining a request from a client for a resource;
if said resource is available at said first server or at a peer of said first server, serving the resource to the client from the first server;
otherwise, if said resource is not available at said first server or at a peer of said first server, determining whether said resource is to be served based on popularity of the resource; and when a determination is not made that said resource is not to be served based on popularity of the resource, obtaining the resource at said first server and serving the resource to the client from the first server; and when the determination is made that said resource is to be served based on popularity of the resource:
determining whether said resource is popular, and if the resource is determined to be popular, then said first server obtaining said resource and said first server serving the resource to the client, otherwise, if the resource is determined not to be popular, directing said client to a second server, said second server not in said first tier of servers, and said second server serving the resource to the client.
According to another aspect of the present invention there is provided a method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
(A) at a first server in said first tier of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being distinct from said first tier of servers, said redirecting being based, at least in part, on whether or not said resource is to be served based on popularity of the resource and on a current popularity value for said resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from.
According to a further aspect of the present invention there is provided a content delivery framework comprising:
a plurality of edge servers forming a first tier of servers; and -1a-a plurality of parent servers forming a second tier of servers, said parent servers being distinct from said edge servers, at least one popularity service constructed and adapted to obtain information from at least some of said edge servers about requests for content that has been designated to be handled based on popularity of the content, and to provide said edge servers with information about which tier of servers should handle those requests for content, said popularity service making determinations based, at least in part, on a measure of popularity of requested content, wherein said handling comprises serving said requests and said handling based on said popularity uses the popularity to determine where the content will be served from.
According to a further aspect of the present invention there is provided a method of content delivery in a content delivery network comprising a plurality of tiers of servers, including at least a first tier of servers and a second tier of servers, the method comprising:
(A) at a first server in one tier of said tiers of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being in a tier distinct from said one tier containing said first server, said redirecting being based, at least in part, on: (i) whether or not said resource is to bc served based on popularity of the resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from; and (ii) a current popularity value for said resource.
DETAILED DESCRIPTION OF PRESENTLY PREFERRED EXEMPLARY
EMBODIMENTS
GLOSSARY
[00031 As used herein, unless stated otherwise, the following terms or abbreviations have the following meanings:
1. IP means Internet Protocol.
- lb -2. "IP address" means an address used in the Internet Protocol to identify electronic devices such as servers and the like.
SUMMARY OF THE INVENTION
According to an aspect of the present invention there is provided a method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
at a first server in said first tier of servers, obtaining a request from a client for a resource;
if said resource is available at said first server or at a peer of said first server, serving the resource to the client from the first server;
otherwise, if said resource is not available at said first server or at a peer of said first server, determining whether said resource is to be served based on popularity of the resource; and when a determination is not made that said resource is not to be served based on popularity of the resource, obtaining the resource at said first server and serving the resource to the client from the first server; and when the determination is made that said resource is to be served based on popularity of the resource:
determining whether said resource is popular, and if the resource is determined to be popular, then said first server obtaining said resource and said first server serving the resource to the client, otherwise, if the resource is determined not to be popular, directing said client to a second server, said second server not in said first tier of servers, and said second server serving the resource to the client.
According to another aspect of the present invention there is provided a method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
(A) at a first server in said first tier of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being distinct from said first tier of servers, said redirecting being based, at least in part, on whether or not said resource is to be served based on popularity of the resource and on a current popularity value for said resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from.
According to a further aspect of the present invention there is provided a content delivery framework comprising:
a plurality of edge servers forming a first tier of servers; and -1a-a plurality of parent servers forming a second tier of servers, said parent servers being distinct from said edge servers, at least one popularity service constructed and adapted to obtain information from at least some of said edge servers about requests for content that has been designated to be handled based on popularity of the content, and to provide said edge servers with information about which tier of servers should handle those requests for content, said popularity service making determinations based, at least in part, on a measure of popularity of requested content, wherein said handling comprises serving said requests and said handling based on said popularity uses the popularity to determine where the content will be served from.
According to a further aspect of the present invention there is provided a method of content delivery in a content delivery network comprising a plurality of tiers of servers, including at least a first tier of servers and a second tier of servers, the method comprising:
(A) at a first server in one tier of said tiers of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being in a tier distinct from said one tier containing said first server, said redirecting being based, at least in part, on: (i) whether or not said resource is to bc served based on popularity of the resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from; and (ii) a current popularity value for said resource.
DETAILED DESCRIPTION OF PRESENTLY PREFERRED EXEMPLARY
EMBODIMENTS
GLOSSARY
[00031 As used herein, unless stated otherwise, the following terms or abbreviations have the following meanings:
1. IP means Internet Protocol.
- lb -2. "IP address" means an address used in the Internet Protocol to identify electronic devices such as servers and the like.
3. HTTP means Hypertext Transfer Protocol.
4. URL means Uniform Resource Locator.
5. DNS means Domain Name System.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The present invention can be better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Furthermore, like referenced numerals designate corresponding parts throughout the several views.
[0005] Fig. 1 depicts a general hierarchical, multi-tiered content delivery network (CDN);
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The present invention can be better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Furthermore, like referenced numerals designate corresponding parts throughout the several views.
[0005] Fig. 1 depicts a general hierarchical, multi-tiered content delivery network (CDN);
[0006] Fig. 2 shows the logical organization of servers into groups or clusters in a CDN;
[0007] Fig. 3 depicts a content delivery framework (CDF) using a content delivery network (CDN);
[0008] Fig. 4 depicts the operation of a two-level content delivery network in a content delivery framework;
[0009] Fig. 5 is a flowchart show operation of the popularity services of the CDN of Fig. 4; and
[0010] Fig. 6 is an exemplary data structure for maintaining the popularity data for a particular popularity server.
BACKGROUND AND OVERVIEW
BACKGROUND AND OVERVIEW
[0011] The Internet and the so-called World Wide Web (the "WWW") have become ubiquitous. Thousands or even tens of thousands of so-called content providers (publishers) now use the Internet (and, particularly, the WWW) to provide all sorts of content to tens or even hundreds of thousands of clients all over the world.
[0012] In order to offload the job of serving some or all of their content, many content providers now subscribe to so-called content delivery networks (CDNs). Using a CDN, some (or all) of a content provider's content can be served to clients from the CDN (i.e., from one or more servers in the CDN) instead of from the content provider's server(s). In a caching CDN, content that is served may also be cached on some or all of the CDN servers, either before being served or in response to specific requests for that content.
[0013] The term content as used herein means any kind of data, in any form, regardless of its representation and regardless of what it represents.
Content may include, without limitation, static and/or dynamic images, text, audio content, including streamed audio, video content, including streamed video, web pages, computer programs, documents, files, and the like. Some content may be embedded in other content, e.g., using markup languages such as HTML and XML. Content includes content which is created or formed or composed specifically in response to a particular request. The term "resource"
is sometimes used herein to refer to content.
Content may include, without limitation, static and/or dynamic images, text, audio content, including streamed audio, video content, including streamed video, web pages, computer programs, documents, files, and the like. Some content may be embedded in other content, e.g., using markup languages such as HTML and XML. Content includes content which is created or formed or composed specifically in response to a particular request. The term "resource"
is sometimes used herein to refer to content.
[0014] Certain publishers have large content libraries in which only a small proportion of the content (the so-called "short head") is popular enough to benefit from serving through a caching CDN, while the majority of the content (the so-called "long tail") is accessed only occasionally and not generally worth caching (or even serving from an edge server). This situation would be typical for a content publisher with a very large music or video library. Some music content ¨ the popular content ¨ may be regularly requested, whereas other music ¨ the not popular (also referred to as unpopular) content ¨ may be seldom if ever requested.
[0015] Content can become popular (by various measures of popularity) or fade into relative obscurity dynamically, so a content library cannot easily be explicitly partitioned. Instead, the CDN tracks popularity of certain content, and selectively migrates content toward the edge (i.e., toward the tier 1 servers) as that content becomes popular.
[0016] A CDN may have one or more tiers of servers, organized hierarchically. Fig. 1 depicts a content delivery network 100 that includes multiple tiers of servers. Specifically, the CDN 100 of Fig. 1 shows j tiers of servers, denoted Tier 1, Tier 2, Tier 3, ..., Tier j. Each tier of servers may comprise a number of servers organized into server groups (sometimes referred to as server clusters). The Tier 1 servers are also referred to as edge servers, and Tier 1 is sometimes also referred to as the "edge" or the "edge of the CDN." The Tier 2 servers (when present in a CDN) are also referred to as parent servers.
[0017] For example, in the CDN 100 of Fig. 1, Tier 1 has n groups of servers (denoted "Edge Server Group 1", "Edge Server Group 2", ..., "Edge Server Group n"); tier 2 (the parent servers' tier) has m server groups (the i-th group being denoted "Parent Server Group i"); and tier 3 has k server groups, and so on. Preferably each tier has the same number of server groups.
[0018] Fig. 2 shows the logical organization / grouping of servers in a CDN of Fig. 1. In the exemplary CDN of Fig. 2, each tier of servers has the same number (n) of server groups. Those of skill in the art will know and understand, upon reading this description, that each server group may have the same or a different number of servers. Additionally, the number of servers in a server group may vary dynamically. For example, additional servers may be added to a server group to deal with increased load on the group.
[0019] The servers in a server group may be homogenous or heterogeneous, and each server in a server group may comprise a cluster of physical servers sharing the same name and/or network address. An example of such a cluster is described in co-pending and co-owned patent application no. 61/064,339 (titled "Load-balancing cluster", filed 02/28/2008), the entire contents of which are incorporated herein by reference for all purposes.
[0020] Servers in the same tier and the same group are referred to as peers or peer servers.
[0021] A typical CDN has only one or two tiers of servers. A CDN with only one tier will have only edge servers, whereas a CDN with two tiers will have edge servers and parent servers. (At a minimum, a CDN should have at least one tier of servers ¨ the edge servers.)
[0022] The grouping of servers in a tier may be based, e.g., on their physical or geographical location. For example, a particular CDN may have six groups ¨ four groups of servers in the United States, group 1 for the West Coast, group 2 for the mid-west, Group 3 for the northeast and Group 4 for the south east; and one group each for Europe and Asia.
[0023] A particular CDN server is preferably in only one server group.
[0024] In general, some or all of the servers in each tier can exchange data with some or all of the servers in each other tier. Thus, some or all of the parent servers can exchange information with some or all of the edge servers.
For the sake of simplicity, in the drawings, each tier of servers is shown as being operationally connectable to each other tier. In some CDNs, however, it may be preferable that the servers in a particular tier can only exchange information with other servers in the same group (i.e., with peer servers) and/or with other servers in the same group in a different tier. For example, in some CDNs, the edge servers in edge server group k, can exchange information with each other and with all servers in parent server group k, and so on.
[0026] A content provider's / customer's server (or servers) are also referred to as origin servers. A content provider's origin servers may be owned and/or operated by that content provider or they may be servers provided and/or operated by a third party such as a hosting provider. The hosting provider for a particular content provider may also provide CDN services to that content provider.
[0026] A CDN may also include a CDN origin/content cache tier which may be used to cache content from the CDN's subscribers (i.e., from the CDN
subscribers' respective origin servers). Those of skill in the art will know and understand, upon reading this description, that a CDN can support one or more subscribers, i.e., that a CDN can function as a shared infrastructure supporting numerous subscribers. The CDN origin tier may also consist of a number of servers, and these servers may also be organized (physically and logically) into a number of regions and/or groups. The server(s) in the CDN origin tier obtain content from the subscribers' origin servers, either on an as needed basis (a pull) or in advance (via a push).
[0027] A popularity service 102 (described in greater detail below) is associated with one or more of the server groups in one or more tiers. In a presently preferred exemplary embodiment, some of the parent server groups have popularity services 102 associated therewith. Although shown as a separate component of the group, the popularity service 102 may be integrated into one of the servers in the group. In some cases, the popularity service may have its own server, distinct from any of the CDN servers. The terms "popularity service" and "popularity server" are used interchangeable herein.
[0028] In operation, when a client requests content that is to be served using a content delivery framework, the client may be served that content from a server in the CDN or, in some cases, from the subscriber/customer's origin server.
[0029] A client may be directed to a CDN and/or to a server in the CDN
in any manner using any kind of server selector system 104. As understood by those of skill in the art, the server selector system 104 generally operates to direct a client's requests for content to an appropriate server in order for that content to be served to the requesting client. An appropriate server may be one which is close to the client (by some measure of cost) and/or one which is not too heavily loaded. All sorts of conditions may be applied to the term "appropriate", and all sorts of information and tests, both static and dynamic, may be used to determine an appropriate server. The server selector system 106 may, e.g., include or operate fully or partially in Domain Name Service (DNS) servers, standalone devices, or a combination thereof. For example, the server selector system 106 may comprise a single level DNS server that selects an appropriate server based at least in part on some combination of the location of the requesting client and the load on some or all of the CDN servers. Those of skill in the art will know and understand, upon reading this description, that a client's location in a network such as the Internet may sometimes only be roughly determined, and the term "location of the client" is generally taken to be a network location corresponding to the client's network service provider.
[0030] Although shown as a component in the drawings, the server selector 106 may comprise numerous components. For example, some or all of the server selection may be based on anycast routing, and the server selector 106 may then include routers and associated tables.
[0031] In a presently preferred embodiment the server selector 106 is an intelligent traffic manager (ITM) / adaptive traffic controller (ATC) such as described in co-pending U.S. patent application no. 10/259,497, filed 09-30-2002, and titled "Configurable Adaptive Global Traffic Control And Management," (published as US 2003-0065762 Al); and in U.S. patent application no. 11/976,648, filed 10-26-2007, titled "Policy-based content delivery network selection," (collectively the "ITM applications"), the entire contents of each of which have been incorporated herein by reference for all purposes. In some embodiments the server selector 106 may include a "best"
or "optimal" server selector such as disclosed in U.S. Patent No. 6,185,598 titled, "Optimized Network Resource Location," the entire contents of which are incorporated herein by reference for all purposes. The '598 patent refers to CDN servers as so-called repeater servers, and describes a so-called "Best Repeater Selector (BRS) mechanism".
[0032] Fig. 3 shows a content delivery framework 300 with a two-level hierarchical CDN consisting of a tier of edge servers (Tier 1) and a tier of parent servers (Tier 2). Some or all of the edge servers can communicate with some or all of the parent servers. The edge servers are divided into n edge server groups, and the parent servers are divided into m parent server groups.
In a presently preferred embodiment, the value of m is equal to the value of n, i.e., in this presently preferred embodiment there are the same number of edge server groups as there are parent server groups. A CDN origin/content cache tier stores subscriber content which it obtains from the various subscribers' origin servers. At least one of the parent server groups (in the drawing, Group 1) has a popularity service 102-1 associated therewith. Preferably more than one parent server group has an associated popularity service, and more preferably each parent server group has an associated popularity service.
[0033] Although shown in a parent tier, the popularity service may located anywhere in the system, including in the edge tier.
[0034] The popularity service may be used by certain, though not necessarily all, content. When only certain content uses the popularity service, content should be designated in order to use the popularity service.
[0035] Some or all of the edge servers in a group may use a popularity service to manage the long-tail content of various subscribers. Each edge server that uses a popularity service is referred to as being bound to that popularity service. An edge server that is bound to a popularity service is sometimes referred to herein as a "longtail coserver."
[0036] Figs. 4 and 5 show the operation of the popularity services of the CDN of Fig. 3.
[0037] When a client 106 requests content (e.g., using an HTTP GET
request), that request is directed (e.g., by server selector 104-1) to an edge server in order for the content to be served to the client. For certain designated content a popularity check is interposed into the fill side of the caching operation. Figure 4 illustrates the flow of messages and data in the content delivery framework 300, and Fig. 5 is a flowchart show operation of the popularity services of the CDN of Fig. 4. For the sake of this particular explanation, assume that the client's request has been directed to edge server 108. (Those of skill in the art will know and understand, upon reading this description, that the client's initial request may be directed to any tier in the CDN hierarchy, including, e.g., to the parent tier.) This server is selected using the server selection mechanisms 104-1 associated with the CDN, e.g., using one or more DNS servers and selecting an edge server based on such factors as the location of the requesting client, the load on the network, network traffic conditions, CDN policies, subscriber policies, and the like.
[0038] A client 104 requests content from an edge server 108 (at 500 in Fig. 5). The request from the client 104 arrives at edge server 108 (Si in Fig.
4). The edge server 108 checks to see if object is present (locally or on a peer) and fresh (at 502). If so, the edge server 108 serves the object to the client from the cache (S2, 504), obtaining the object from a peer, if necessary.
[0039] In some embodiments, the system may distinguish between on-net and off-net peers and same-switch peers. An on-net peer is a peer on the same backbone network; an off-net peer is a peer located on a different backbone network; and a same-switch peer is a peer directly connected to the same switch as the agent performing the check. In some embodiments, the edge server 108 may only look for the object on some of its peers (e.g., only on same-switch peers) (at 502).
[0040] If the object is not available on the edge server 108 or on a peer, the edge server 108 ascertains whether this object is served based on its popularity (i.e., whether this object has been designated so that the object's popularity will be used to determine where it will be served from) (at 506).
If so, then the request is sent to the popularity service 102 associated with the edge server 108, in this case, to the popularity server for the this group (53a).
[0041] The determination as to whether this object is designated to be served from a different location, depending on its popularity (at 506), may be made based, at least in part, on the name (hostname) used to request the object.
[0042] It is preferably to allow for a mix of edge servers, some performing popularity checking (as described above), while others do not. For those that are not running the popularity service, the name (hostname) used to request an object will resolve to a parent server (that may or may not provide popularity services). If the parent server does not provide popularity services, then the content will be obtained by the edge server from that parent server, and the content will be served to the client. On the other hand, if that parent server does provide popularity services, it can determine whether or not the edge server is a Longtail coserver based, e.g., on the IP (Internet Protocol) address of the edge server. For no-coservers, the parent server can handle the request without any popularity processing.
[0043] A request for content may be an initial request for an object or it may be a request for another part of an object, the initial part having already been served to the client. If the request is for the first part of the object (at 508), e.g., the request includes a request for the first byte of the resource (i.e., it is not a range request that starts after the beginning of the file), the popularity service 102 determines (as described below) if the object is currently popular.
First, the popularity count for the current period is incremented (at 510).
Based on its determination, the popularity service 102 returns one of three possible responses to the edge server 108 (S3b):
1. If the object has not reached a first / minimal level of popularity (at 512): the popularity service sends the edge server an instruction (e.g., HTTP 302) to redirect the client's request to the origin server (or to the CDN origin cache) (if origin redirects are enabled) (at 514).
2. If the object's popularity has exceeded the first / minimal level of popularity but has not yet exceeded a second, mid-tier threshold (at 516): the popularity service sends the edge server an instruction (e.g., HTTP 302) to redirect the client's request to a parent server (if mid-tier redirects are enabled) (at 518).
3. If the object's popularity has exceeded the mid-tier threshold (i.e., the object is popular): The popularity service sends the edge server an instruction to serve the content itself (at 520). In a presently preferred implementation, the popularity service sends the edge server a redirect (HTTP 302) with a "follow me" flag set, to the origin server or, if there is one, to the parent tier.
[0044] If the edge server 108 receives a redirect from the popularity service 102 without the "follow me" flag set (cases 1 and 2 above), it simply forwards the redirect to the client 104 (S4a, 522, 524). If the edge server receives a "follow me" redirect, it obtains and caches the resource (at 526) and serves it to the client (at 528).
[0045] If the popularity service 102 is unreachable, unresponsive, or returns a status code indicating an error (other than HTTP 404), the object is served out of the edge's cache server (and an alert condition is raised).
[0046] Once content has been cached at an edge server, the edge server will send notifications (e.g., in the form of revalidations) to the popularity service every time it gets another request for that content. E.g., with reference to the flowchart of Fig. 5, if the edge server 108 determines (at 502) that it has the requested content (or can obtain it from a peer), then, in addition to serving the content (at 504), it also instructs the popularity server to increment the objects popularity count for the current period (at 530). This process keeps the popularity servers up to date on the relative popularity of content being served in their region.
[0047] In presently preferred embodiments, the server selection mechanism 104 does not rendezvous clients to parent servers/caches. In other words, in these embodiments, client requests are always initially directed by the server selection mechanism to an edge server. In these cases, when a request for a resource arrives at a parent server/cache, that request should preferably be served (and filled if necessary) unconditionally (since any request from a client is assumed to be the result of a redirect served by an edge server).
[0048] In an embodiment where the server selector 104 can direct client requests directly to parent servers (or to any tier other than the edge tier), a server obtaining a client request may choose to redirect that request, e.g., based on popularity. However, those of skill in the art will know and understand, upon reading this description, that it is advisable to track the redirection of a request to avoid circular and/or infinite redirection. One way to avoid such a problem is to limit the number of levels of redirection (i.e., to limit the number of redirects to follow). In a presently preferred implementation, if no final server is selected after following, e.g., thirty two redirects, an error is issued.
In some embodiments, if no final sever is selected after a predefined number of redirects, then the last server reached may be used to serve the content. One way to prevent looping is to use different server names (aliases) or IP
addresses when redirecting requests so that a server receiving a request can tell whether or not it is a redirect. Those of skill in the art will know and understand, upon reading this description, that information can be transferred between servers using, e.g., HTTP headers or the like.
[0049] Those of skill in the art will know and understand, upon reading this description, that in a multi-tier CDN, the popularity service may be located at any tier, or there may be popularity services at more than one tier.
[0050] The middle (Parent) tier is optional.
[0051] Step (4a) may reply with content (if popular), or with a redirect to a parent or origin server (if not), in which the client will make another request (5a or 5b) to that tier to obtain the content.
[0052] If the request is an HTTP GET request or the like, it is forwarded to the popularity service. HTTP POST requests should always be forwarded directly to the origin, since that is where they will need to be processed, and the response to a POST request should not be cached. It may sometimes be preferable to direct GET requests to a different origin server than POST
requests.
[0053] While the invention has been described with reference to the HTTP protocol, those of skill in the art will know and understand, upon reading this description, that different and/or other protocols may be used and are contemplated by the inventors. HTTP is described in various documents, e.g., Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, Network Working Group, the entire contents of which are incorporated herein by reference.
[0054] Those of skill in the art will know and understand, upon reading this description, that different thresholds may be established for each tier in the CDN. Further, those of skill in the art will know and understand, upon reading this description, that each content item may have its own thresholds associated therewith. In this manner, the system can check all content for popularity, with the default thresholds being zero. In this manner, every request will automatically cause the popularity to exceed the threshold and will cause the content to be cached.
[0055] By positioning Popularity Servers regionally (paired with parent cache servers), popularity and cache tiers can be managed independently, on a regional basis. Content that is popular in one region / group may not be popular in another region/group (especially if each region / group corresponds to a geographic and/or political region).
[0056] We consider it desirable that rendezvous to popularity servers prioritize so-called "regional" proximity, so that clients within the same region will tend to cast their popularity "votes" within that region and get consistent treatment of popular resources. However, if there are multiple parent cache servers available, there will generally be no attempt to rendezvous particular clients to particular parents.
DEFINING & MEASURING POPULARITY
[0057] In preferred embodiments, popularity of an object/resource is measured based on the number of times that object/resource is requested in various time periods. Fig. 6 is an exemplary data structure for maintaining the popularity data for a particular popularity server. The data structure 600 in Fig. 6 is a so-called tally hash structure.
[0058] In preferred embodiments, some or all edge servers are associated with (or bound to) popularity servers. An edge server that is bound to a popularity server is sometimes referred to as a bound Longtail coserver.
Each popularity server in the system allocates a tally hash structure 800 per bound Longtail coserver. A configuration provides the number of resource (hash) slots to allocate. For a presently preferred implementation, the number of hash slots is on the order of 100 million slots per coserver. Each slot is divided into a number of time buckets, preferably 16 time buckets, each bucket being represented by, e.g., a 4-bit unsigned integer. Those of skill in the art will know and understand, upon reading this description, that the selection of the size of the value in each time bucket depends on policy decisions about bounds for the popularity thresholds, and for keeping very popular resources at the edge. The size, however, is heavily influenced by a need for compactness.
One 8-byte word can store all time buckets for one resource slot, and therefore, 800 MB would be required per property, and five to eight such properties could be managed per popularity server without paging.
[0059] Each time bucket represents a time period, preferably a number of seconds.
[0060] The mapping of requests/content to slots is based on some function of the object name and perhaps other information associated with the request for the object. Preferably the mapping of objects to slots is based on a hash or message digest function (such as MAD or the like) over the object name (and preferably including some parts of the query string). Each slot may therefore represent one or more resources. Each time a query/request arrives at a popularity server for an object, the hash is computed and the slot in the table 800 (for the appropriate co-server) is determined, and the counts in that slot are used. In event of a hash collision, it is therefore possible that one bucket will be receiving and representing counts for more than one object. Since this result is generally undesirable (since it could result in cache fills and edge caching of unpopular objects), the number of buckets should be chosen to be as large as practical.
[0061] Those of skill in the art will know and understand, upon reading this description, that different and / or other data structures may be used to implement the popularity counting. For example, since in most cases the total number of resources is expected to far exceed the number of popular resources, a balanced b-tree may be preferable to a hash table. In addition, it is possible to reduce the size of the hash slot by using only some part of the of the hash.
However, reducing the number of bytes of the hash used can result in more name collisions.
[0062] Although described above with respect to popularity, those of skill in the art will know and understand, upon reading this description, that other factors may be used along with (or instead of) popularity to determine whether or not to redirect requests. A rule base may be used to augment and/or override the popularity measures for certain resources. The rules in the rule base may be static or dynamic and may be set by the CDN administrator and/or the subscriber. For example, a subscriber may not want to pay for certain content to be served from the edge, regardless of its popularity, and may set a rule accordingly (this particular result could also be achieved by setting the thresholds for that particular content to prevent it from ever being cached at the edge).
[0063] Occasional log mining could be used to look for hash collisions in actual subscriber content libraries, and the hash function and bucket sizes could be tuned as needed.
[0064] At each time bucket boundary, the popularity service will logically "rotate" the buckets and zero out the oldest tally data for each object.
[0065] Whenever a coserver's enrollment in the popularity service changes (added or dropped, or perhaps hints changed), the data structures are to be updated.
[0066] The popularity of a given object may be determined as a weighted sum of its popularity over successive time periods. More recent time periods may be given higher weights.
[0067] In order to determine which content is to be managed by the popularity service, the CDN operator and/or the subscriber may specify:
= The tiers at which the content will be managed ¨ edge, intermediate (i.e., parent), or origin (subscriber's or storage tier). In order to be meaningful, at least one of intermediate and origin service should be enabled.
= content that is to be managed based on its popularity, rather than simply always being served from a cache.
[0068] There are several reasons why a publisher /subscriber may not want the so-called "long-tail" content served from a caching CDN service, for example:
= If cache fills are done from the subscriber's origin server and the subscriber pays for cache fill bandwidth, unnecessary fills for unpopular resources increase bandwidth costs without providing any value.
= Serving an unpopular resource through a CDN cache adds latency (due to the cache fill), and risks forcing actually popular resources out of cache, potentially causing thrashing. The result is lower efficiency and the risk of degraded service.
[0069] For related or similar reasons, a CDN provider generally also does not want to serve long-tail content from an edge cache:
= If cache fills are done from origin storage, unnecessary cache fills consume bandwidth both from the storage and cache systems, increasing (doubling) the internal cost to serve. This lowers efficiency, requiring relatively more bandwidth internally to serve the same content to the outside.
= The second argument above also applies from the CDN's perspective: a CDN operator wants to minimize latency as well as the risk of thrashing in order to satisfy all of its subscribers.
NAMES, ADDRESSES & CONFIGURATION DATA
[0070] As is well known, each server in a network may be addressed by means of one or more network address (e.g., Internet Protocol or IP
addresses).
Each server in a network may also be known by one or more names (so-called hostnames ¨ fully qualified domain names). Hostnames may be mapped to one or more IP addresses. A hostname may correspond to (and thus resolve to) more than one server.
[0071] A system such as ITM (described in the ITM patent applications mentioned above), allows a kind of hostname (called a supername) to refer to multiple servers, and resolves the supername to a nearby server.
[0072] Preferably the server selection mechanism is ITM, and each popularity server will have supername that resolves to reach nearby popularity server.
[0073] When a popularity server shares or is co-located with a parent server, the parent server may use the name by which it was addressed to determine whether to direct a request to the popularity service. That is, parent cache servers that provide popularity service may recognize requests that use one of the aliases reserved for popularity requests, and call into the popularity service to make the fill/no fill decision and return a redirect as described above.
[0074] As noted earlier, if the server selector mechanism does not send initial requests to non-edge servers, then all parent cache servers must recognize requests that have been redirected and serve the requested resource, filling it from the origin (or another tier), if necessary.
[0075] A servers hostnames are also referred to as its aliases. Each Longtail coserver preferably has at least two aliases (three if a parent cache/server tier is used): the published supername, the hostname used for popularity service requests, and (if used) the hostname used for parent cache redirects.
[0076] Popularity servers will preferably be reached via an ITM
supername, and ITM will monitor for the service's availability across the set of servers. Popularity servers should be reached using real IP addresses, and not virtual IPs, and will not necessarily be redundant within a cluster.
Redundancy can be provided by having multiple servers per supername. However, preferably there will be no attempt to synchronize the popularity tallies on popularity servers, with the expected desirable effect of managing popularity separately on a "regional" basis, the granularity being determined by the number and distribution of popularity servers deployed. Should a popularity server fail, this could cause a discontinuity in popularity responses as a new server becomes active for a given edge location, but this may be mitigated (for very popular resources) by periodic background refreshes.
[0077] Information about the resources and caching strategy include the following:
¨ the expected total number of resources associated with this coserver.
¨ the number of buckets used to store hit counts for each resource.
¨ the number of seconds that each bucket represents. Every time this interval goes by, the count in the oldest bucket is thrown out and a new bucket is started with a count of zero.
¨ when the sum of all buckets for a given resource reaches this number on any popularity server, the parent caches (if any) that use that server will start to cache the resource.
¨ when the sum of all buckets for a given resource reaches this number on any popularity server, the edge caches that use that server will start to cache the resource.
¨ the hash algorithm to apply to the resource names (optional). If not specified, a default algorithm (e.g. MD5) will be used.
¨ the maximum number of this coserver's resources that should be in cache at an edge at any given time. This value may be ignored in certain embodiments.
¨ the maximum number of this coserver's resources that should be in cache at a parent at any given time. This value may be ignored in certain embodiments.
[0078] Preferably resources should not be pre-expired on parent cache servers, as that will cause unnecessary requests to the origin server or queries to peer caches.
[0079] Those of skill in the art will know and understand, upon reading this description, that a decision to serve at a given tier that is based only on popularity counts, will not take into account capacity to serve at that tier ¨
so this scheme could overload an origin server or parent tier if they do not have sufficient capacity. Further, if popularity is measured in terms of absolute thresholds on numbers of requests, and if the library is sufficiently large, this could cause cache thrashing at the parent or edge tiers.
[0080] Authentication with the origin cache or server, if needed, should be done by the server that receives the initial request from the client.
During processing of a redirected request.
[0081] Various documents, including patents and patent applications, have been incorporated by reference into this application. In case of any conflict between an incorporated document and the present application, the present application, including any definitions herein, will control.
[0082] Thus is provided a feature that allows a CDN to be responsive to increasing or decreasing "popularity" of content by shaping where in the CDN
content is positioned and served from.
[0083] The foregoing description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. The embodiment or embodiments discussed were chosen and described to provide the best illustration of the principles of the invention and its practical application to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated.
All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.
For the sake of simplicity, in the drawings, each tier of servers is shown as being operationally connectable to each other tier. In some CDNs, however, it may be preferable that the servers in a particular tier can only exchange information with other servers in the same group (i.e., with peer servers) and/or with other servers in the same group in a different tier. For example, in some CDNs, the edge servers in edge server group k, can exchange information with each other and with all servers in parent server group k, and so on.
[0026] A content provider's / customer's server (or servers) are also referred to as origin servers. A content provider's origin servers may be owned and/or operated by that content provider or they may be servers provided and/or operated by a third party such as a hosting provider. The hosting provider for a particular content provider may also provide CDN services to that content provider.
[0026] A CDN may also include a CDN origin/content cache tier which may be used to cache content from the CDN's subscribers (i.e., from the CDN
subscribers' respective origin servers). Those of skill in the art will know and understand, upon reading this description, that a CDN can support one or more subscribers, i.e., that a CDN can function as a shared infrastructure supporting numerous subscribers. The CDN origin tier may also consist of a number of servers, and these servers may also be organized (physically and logically) into a number of regions and/or groups. The server(s) in the CDN origin tier obtain content from the subscribers' origin servers, either on an as needed basis (a pull) or in advance (via a push).
[0027] A popularity service 102 (described in greater detail below) is associated with one or more of the server groups in one or more tiers. In a presently preferred exemplary embodiment, some of the parent server groups have popularity services 102 associated therewith. Although shown as a separate component of the group, the popularity service 102 may be integrated into one of the servers in the group. In some cases, the popularity service may have its own server, distinct from any of the CDN servers. The terms "popularity service" and "popularity server" are used interchangeable herein.
[0028] In operation, when a client requests content that is to be served using a content delivery framework, the client may be served that content from a server in the CDN or, in some cases, from the subscriber/customer's origin server.
[0029] A client may be directed to a CDN and/or to a server in the CDN
in any manner using any kind of server selector system 104. As understood by those of skill in the art, the server selector system 104 generally operates to direct a client's requests for content to an appropriate server in order for that content to be served to the requesting client. An appropriate server may be one which is close to the client (by some measure of cost) and/or one which is not too heavily loaded. All sorts of conditions may be applied to the term "appropriate", and all sorts of information and tests, both static and dynamic, may be used to determine an appropriate server. The server selector system 106 may, e.g., include or operate fully or partially in Domain Name Service (DNS) servers, standalone devices, or a combination thereof. For example, the server selector system 106 may comprise a single level DNS server that selects an appropriate server based at least in part on some combination of the location of the requesting client and the load on some or all of the CDN servers. Those of skill in the art will know and understand, upon reading this description, that a client's location in a network such as the Internet may sometimes only be roughly determined, and the term "location of the client" is generally taken to be a network location corresponding to the client's network service provider.
[0030] Although shown as a component in the drawings, the server selector 106 may comprise numerous components. For example, some or all of the server selection may be based on anycast routing, and the server selector 106 may then include routers and associated tables.
[0031] In a presently preferred embodiment the server selector 106 is an intelligent traffic manager (ITM) / adaptive traffic controller (ATC) such as described in co-pending U.S. patent application no. 10/259,497, filed 09-30-2002, and titled "Configurable Adaptive Global Traffic Control And Management," (published as US 2003-0065762 Al); and in U.S. patent application no. 11/976,648, filed 10-26-2007, titled "Policy-based content delivery network selection," (collectively the "ITM applications"), the entire contents of each of which have been incorporated herein by reference for all purposes. In some embodiments the server selector 106 may include a "best"
or "optimal" server selector such as disclosed in U.S. Patent No. 6,185,598 titled, "Optimized Network Resource Location," the entire contents of which are incorporated herein by reference for all purposes. The '598 patent refers to CDN servers as so-called repeater servers, and describes a so-called "Best Repeater Selector (BRS) mechanism".
[0032] Fig. 3 shows a content delivery framework 300 with a two-level hierarchical CDN consisting of a tier of edge servers (Tier 1) and a tier of parent servers (Tier 2). Some or all of the edge servers can communicate with some or all of the parent servers. The edge servers are divided into n edge server groups, and the parent servers are divided into m parent server groups.
In a presently preferred embodiment, the value of m is equal to the value of n, i.e., in this presently preferred embodiment there are the same number of edge server groups as there are parent server groups. A CDN origin/content cache tier stores subscriber content which it obtains from the various subscribers' origin servers. At least one of the parent server groups (in the drawing, Group 1) has a popularity service 102-1 associated therewith. Preferably more than one parent server group has an associated popularity service, and more preferably each parent server group has an associated popularity service.
[0033] Although shown in a parent tier, the popularity service may located anywhere in the system, including in the edge tier.
[0034] The popularity service may be used by certain, though not necessarily all, content. When only certain content uses the popularity service, content should be designated in order to use the popularity service.
[0035] Some or all of the edge servers in a group may use a popularity service to manage the long-tail content of various subscribers. Each edge server that uses a popularity service is referred to as being bound to that popularity service. An edge server that is bound to a popularity service is sometimes referred to herein as a "longtail coserver."
[0036] Figs. 4 and 5 show the operation of the popularity services of the CDN of Fig. 3.
[0037] When a client 106 requests content (e.g., using an HTTP GET
request), that request is directed (e.g., by server selector 104-1) to an edge server in order for the content to be served to the client. For certain designated content a popularity check is interposed into the fill side of the caching operation. Figure 4 illustrates the flow of messages and data in the content delivery framework 300, and Fig. 5 is a flowchart show operation of the popularity services of the CDN of Fig. 4. For the sake of this particular explanation, assume that the client's request has been directed to edge server 108. (Those of skill in the art will know and understand, upon reading this description, that the client's initial request may be directed to any tier in the CDN hierarchy, including, e.g., to the parent tier.) This server is selected using the server selection mechanisms 104-1 associated with the CDN, e.g., using one or more DNS servers and selecting an edge server based on such factors as the location of the requesting client, the load on the network, network traffic conditions, CDN policies, subscriber policies, and the like.
[0038] A client 104 requests content from an edge server 108 (at 500 in Fig. 5). The request from the client 104 arrives at edge server 108 (Si in Fig.
4). The edge server 108 checks to see if object is present (locally or on a peer) and fresh (at 502). If so, the edge server 108 serves the object to the client from the cache (S2, 504), obtaining the object from a peer, if necessary.
[0039] In some embodiments, the system may distinguish between on-net and off-net peers and same-switch peers. An on-net peer is a peer on the same backbone network; an off-net peer is a peer located on a different backbone network; and a same-switch peer is a peer directly connected to the same switch as the agent performing the check. In some embodiments, the edge server 108 may only look for the object on some of its peers (e.g., only on same-switch peers) (at 502).
[0040] If the object is not available on the edge server 108 or on a peer, the edge server 108 ascertains whether this object is served based on its popularity (i.e., whether this object has been designated so that the object's popularity will be used to determine where it will be served from) (at 506).
If so, then the request is sent to the popularity service 102 associated with the edge server 108, in this case, to the popularity server for the this group (53a).
[0041] The determination as to whether this object is designated to be served from a different location, depending on its popularity (at 506), may be made based, at least in part, on the name (hostname) used to request the object.
[0042] It is preferably to allow for a mix of edge servers, some performing popularity checking (as described above), while others do not. For those that are not running the popularity service, the name (hostname) used to request an object will resolve to a parent server (that may or may not provide popularity services). If the parent server does not provide popularity services, then the content will be obtained by the edge server from that parent server, and the content will be served to the client. On the other hand, if that parent server does provide popularity services, it can determine whether or not the edge server is a Longtail coserver based, e.g., on the IP (Internet Protocol) address of the edge server. For no-coservers, the parent server can handle the request without any popularity processing.
[0043] A request for content may be an initial request for an object or it may be a request for another part of an object, the initial part having already been served to the client. If the request is for the first part of the object (at 508), e.g., the request includes a request for the first byte of the resource (i.e., it is not a range request that starts after the beginning of the file), the popularity service 102 determines (as described below) if the object is currently popular.
First, the popularity count for the current period is incremented (at 510).
Based on its determination, the popularity service 102 returns one of three possible responses to the edge server 108 (S3b):
1. If the object has not reached a first / minimal level of popularity (at 512): the popularity service sends the edge server an instruction (e.g., HTTP 302) to redirect the client's request to the origin server (or to the CDN origin cache) (if origin redirects are enabled) (at 514).
2. If the object's popularity has exceeded the first / minimal level of popularity but has not yet exceeded a second, mid-tier threshold (at 516): the popularity service sends the edge server an instruction (e.g., HTTP 302) to redirect the client's request to a parent server (if mid-tier redirects are enabled) (at 518).
3. If the object's popularity has exceeded the mid-tier threshold (i.e., the object is popular): The popularity service sends the edge server an instruction to serve the content itself (at 520). In a presently preferred implementation, the popularity service sends the edge server a redirect (HTTP 302) with a "follow me" flag set, to the origin server or, if there is one, to the parent tier.
[0044] If the edge server 108 receives a redirect from the popularity service 102 without the "follow me" flag set (cases 1 and 2 above), it simply forwards the redirect to the client 104 (S4a, 522, 524). If the edge server receives a "follow me" redirect, it obtains and caches the resource (at 526) and serves it to the client (at 528).
[0045] If the popularity service 102 is unreachable, unresponsive, or returns a status code indicating an error (other than HTTP 404), the object is served out of the edge's cache server (and an alert condition is raised).
[0046] Once content has been cached at an edge server, the edge server will send notifications (e.g., in the form of revalidations) to the popularity service every time it gets another request for that content. E.g., with reference to the flowchart of Fig. 5, if the edge server 108 determines (at 502) that it has the requested content (or can obtain it from a peer), then, in addition to serving the content (at 504), it also instructs the popularity server to increment the objects popularity count for the current period (at 530). This process keeps the popularity servers up to date on the relative popularity of content being served in their region.
[0047] In presently preferred embodiments, the server selection mechanism 104 does not rendezvous clients to parent servers/caches. In other words, in these embodiments, client requests are always initially directed by the server selection mechanism to an edge server. In these cases, when a request for a resource arrives at a parent server/cache, that request should preferably be served (and filled if necessary) unconditionally (since any request from a client is assumed to be the result of a redirect served by an edge server).
[0048] In an embodiment where the server selector 104 can direct client requests directly to parent servers (or to any tier other than the edge tier), a server obtaining a client request may choose to redirect that request, e.g., based on popularity. However, those of skill in the art will know and understand, upon reading this description, that it is advisable to track the redirection of a request to avoid circular and/or infinite redirection. One way to avoid such a problem is to limit the number of levels of redirection (i.e., to limit the number of redirects to follow). In a presently preferred implementation, if no final server is selected after following, e.g., thirty two redirects, an error is issued.
In some embodiments, if no final sever is selected after a predefined number of redirects, then the last server reached may be used to serve the content. One way to prevent looping is to use different server names (aliases) or IP
addresses when redirecting requests so that a server receiving a request can tell whether or not it is a redirect. Those of skill in the art will know and understand, upon reading this description, that information can be transferred between servers using, e.g., HTTP headers or the like.
[0049] Those of skill in the art will know and understand, upon reading this description, that in a multi-tier CDN, the popularity service may be located at any tier, or there may be popularity services at more than one tier.
[0050] The middle (Parent) tier is optional.
[0051] Step (4a) may reply with content (if popular), or with a redirect to a parent or origin server (if not), in which the client will make another request (5a or 5b) to that tier to obtain the content.
[0052] If the request is an HTTP GET request or the like, it is forwarded to the popularity service. HTTP POST requests should always be forwarded directly to the origin, since that is where they will need to be processed, and the response to a POST request should not be cached. It may sometimes be preferable to direct GET requests to a different origin server than POST
requests.
[0053] While the invention has been described with reference to the HTTP protocol, those of skill in the art will know and understand, upon reading this description, that different and/or other protocols may be used and are contemplated by the inventors. HTTP is described in various documents, e.g., Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, Network Working Group, the entire contents of which are incorporated herein by reference.
[0054] Those of skill in the art will know and understand, upon reading this description, that different thresholds may be established for each tier in the CDN. Further, those of skill in the art will know and understand, upon reading this description, that each content item may have its own thresholds associated therewith. In this manner, the system can check all content for popularity, with the default thresholds being zero. In this manner, every request will automatically cause the popularity to exceed the threshold and will cause the content to be cached.
[0055] By positioning Popularity Servers regionally (paired with parent cache servers), popularity and cache tiers can be managed independently, on a regional basis. Content that is popular in one region / group may not be popular in another region/group (especially if each region / group corresponds to a geographic and/or political region).
[0056] We consider it desirable that rendezvous to popularity servers prioritize so-called "regional" proximity, so that clients within the same region will tend to cast their popularity "votes" within that region and get consistent treatment of popular resources. However, if there are multiple parent cache servers available, there will generally be no attempt to rendezvous particular clients to particular parents.
DEFINING & MEASURING POPULARITY
[0057] In preferred embodiments, popularity of an object/resource is measured based on the number of times that object/resource is requested in various time periods. Fig. 6 is an exemplary data structure for maintaining the popularity data for a particular popularity server. The data structure 600 in Fig. 6 is a so-called tally hash structure.
[0058] In preferred embodiments, some or all edge servers are associated with (or bound to) popularity servers. An edge server that is bound to a popularity server is sometimes referred to as a bound Longtail coserver.
Each popularity server in the system allocates a tally hash structure 800 per bound Longtail coserver. A configuration provides the number of resource (hash) slots to allocate. For a presently preferred implementation, the number of hash slots is on the order of 100 million slots per coserver. Each slot is divided into a number of time buckets, preferably 16 time buckets, each bucket being represented by, e.g., a 4-bit unsigned integer. Those of skill in the art will know and understand, upon reading this description, that the selection of the size of the value in each time bucket depends on policy decisions about bounds for the popularity thresholds, and for keeping very popular resources at the edge. The size, however, is heavily influenced by a need for compactness.
One 8-byte word can store all time buckets for one resource slot, and therefore, 800 MB would be required per property, and five to eight such properties could be managed per popularity server without paging.
[0059] Each time bucket represents a time period, preferably a number of seconds.
[0060] The mapping of requests/content to slots is based on some function of the object name and perhaps other information associated with the request for the object. Preferably the mapping of objects to slots is based on a hash or message digest function (such as MAD or the like) over the object name (and preferably including some parts of the query string). Each slot may therefore represent one or more resources. Each time a query/request arrives at a popularity server for an object, the hash is computed and the slot in the table 800 (for the appropriate co-server) is determined, and the counts in that slot are used. In event of a hash collision, it is therefore possible that one bucket will be receiving and representing counts for more than one object. Since this result is generally undesirable (since it could result in cache fills and edge caching of unpopular objects), the number of buckets should be chosen to be as large as practical.
[0061] Those of skill in the art will know and understand, upon reading this description, that different and / or other data structures may be used to implement the popularity counting. For example, since in most cases the total number of resources is expected to far exceed the number of popular resources, a balanced b-tree may be preferable to a hash table. In addition, it is possible to reduce the size of the hash slot by using only some part of the of the hash.
However, reducing the number of bytes of the hash used can result in more name collisions.
[0062] Although described above with respect to popularity, those of skill in the art will know and understand, upon reading this description, that other factors may be used along with (or instead of) popularity to determine whether or not to redirect requests. A rule base may be used to augment and/or override the popularity measures for certain resources. The rules in the rule base may be static or dynamic and may be set by the CDN administrator and/or the subscriber. For example, a subscriber may not want to pay for certain content to be served from the edge, regardless of its popularity, and may set a rule accordingly (this particular result could also be achieved by setting the thresholds for that particular content to prevent it from ever being cached at the edge).
[0063] Occasional log mining could be used to look for hash collisions in actual subscriber content libraries, and the hash function and bucket sizes could be tuned as needed.
[0064] At each time bucket boundary, the popularity service will logically "rotate" the buckets and zero out the oldest tally data for each object.
[0065] Whenever a coserver's enrollment in the popularity service changes (added or dropped, or perhaps hints changed), the data structures are to be updated.
[0066] The popularity of a given object may be determined as a weighted sum of its popularity over successive time periods. More recent time periods may be given higher weights.
[0067] In order to determine which content is to be managed by the popularity service, the CDN operator and/or the subscriber may specify:
= The tiers at which the content will be managed ¨ edge, intermediate (i.e., parent), or origin (subscriber's or storage tier). In order to be meaningful, at least one of intermediate and origin service should be enabled.
= content that is to be managed based on its popularity, rather than simply always being served from a cache.
[0068] There are several reasons why a publisher /subscriber may not want the so-called "long-tail" content served from a caching CDN service, for example:
= If cache fills are done from the subscriber's origin server and the subscriber pays for cache fill bandwidth, unnecessary fills for unpopular resources increase bandwidth costs without providing any value.
= Serving an unpopular resource through a CDN cache adds latency (due to the cache fill), and risks forcing actually popular resources out of cache, potentially causing thrashing. The result is lower efficiency and the risk of degraded service.
[0069] For related or similar reasons, a CDN provider generally also does not want to serve long-tail content from an edge cache:
= If cache fills are done from origin storage, unnecessary cache fills consume bandwidth both from the storage and cache systems, increasing (doubling) the internal cost to serve. This lowers efficiency, requiring relatively more bandwidth internally to serve the same content to the outside.
= The second argument above also applies from the CDN's perspective: a CDN operator wants to minimize latency as well as the risk of thrashing in order to satisfy all of its subscribers.
NAMES, ADDRESSES & CONFIGURATION DATA
[0070] As is well known, each server in a network may be addressed by means of one or more network address (e.g., Internet Protocol or IP
addresses).
Each server in a network may also be known by one or more names (so-called hostnames ¨ fully qualified domain names). Hostnames may be mapped to one or more IP addresses. A hostname may correspond to (and thus resolve to) more than one server.
[0071] A system such as ITM (described in the ITM patent applications mentioned above), allows a kind of hostname (called a supername) to refer to multiple servers, and resolves the supername to a nearby server.
[0072] Preferably the server selection mechanism is ITM, and each popularity server will have supername that resolves to reach nearby popularity server.
[0073] When a popularity server shares or is co-located with a parent server, the parent server may use the name by which it was addressed to determine whether to direct a request to the popularity service. That is, parent cache servers that provide popularity service may recognize requests that use one of the aliases reserved for popularity requests, and call into the popularity service to make the fill/no fill decision and return a redirect as described above.
[0074] As noted earlier, if the server selector mechanism does not send initial requests to non-edge servers, then all parent cache servers must recognize requests that have been redirected and serve the requested resource, filling it from the origin (or another tier), if necessary.
[0075] A servers hostnames are also referred to as its aliases. Each Longtail coserver preferably has at least two aliases (three if a parent cache/server tier is used): the published supername, the hostname used for popularity service requests, and (if used) the hostname used for parent cache redirects.
[0076] Popularity servers will preferably be reached via an ITM
supername, and ITM will monitor for the service's availability across the set of servers. Popularity servers should be reached using real IP addresses, and not virtual IPs, and will not necessarily be redundant within a cluster.
Redundancy can be provided by having multiple servers per supername. However, preferably there will be no attempt to synchronize the popularity tallies on popularity servers, with the expected desirable effect of managing popularity separately on a "regional" basis, the granularity being determined by the number and distribution of popularity servers deployed. Should a popularity server fail, this could cause a discontinuity in popularity responses as a new server becomes active for a given edge location, but this may be mitigated (for very popular resources) by periodic background refreshes.
[0077] Information about the resources and caching strategy include the following:
¨ the expected total number of resources associated with this coserver.
¨ the number of buckets used to store hit counts for each resource.
¨ the number of seconds that each bucket represents. Every time this interval goes by, the count in the oldest bucket is thrown out and a new bucket is started with a count of zero.
¨ when the sum of all buckets for a given resource reaches this number on any popularity server, the parent caches (if any) that use that server will start to cache the resource.
¨ when the sum of all buckets for a given resource reaches this number on any popularity server, the edge caches that use that server will start to cache the resource.
¨ the hash algorithm to apply to the resource names (optional). If not specified, a default algorithm (e.g. MD5) will be used.
¨ the maximum number of this coserver's resources that should be in cache at an edge at any given time. This value may be ignored in certain embodiments.
¨ the maximum number of this coserver's resources that should be in cache at a parent at any given time. This value may be ignored in certain embodiments.
[0078] Preferably resources should not be pre-expired on parent cache servers, as that will cause unnecessary requests to the origin server or queries to peer caches.
[0079] Those of skill in the art will know and understand, upon reading this description, that a decision to serve at a given tier that is based only on popularity counts, will not take into account capacity to serve at that tier ¨
so this scheme could overload an origin server or parent tier if they do not have sufficient capacity. Further, if popularity is measured in terms of absolute thresholds on numbers of requests, and if the library is sufficiently large, this could cause cache thrashing at the parent or edge tiers.
[0080] Authentication with the origin cache or server, if needed, should be done by the server that receives the initial request from the client.
During processing of a redirected request.
[0081] Various documents, including patents and patent applications, have been incorporated by reference into this application. In case of any conflict between an incorporated document and the present application, the present application, including any definitions herein, will control.
[0082] Thus is provided a feature that allows a CDN to be responsive to increasing or decreasing "popularity" of content by shaping where in the CDN
content is positioned and served from.
[0083] The foregoing description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. The embodiment or embodiments discussed were chosen and described to provide the best illustration of the principles of the invention and its practical application to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated.
All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.
Claims (29)
1. A method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
at a first server in said first tier of servers, obtaining a request from a client for a resource;
if said resource is available at said first server or at a peer of said first server, serving the resource to the client from the first server;
otherwise, if said resource is not available at said first server or at a peer of said first server, determining whether said resource is to be served based on popularity of the resource; and when a determination is not made that said resource is not to be served based on popularity of the resource, obtaining the resource at said first server and serving the resource to the client from the first server; and when the determination is made that said resource is to be served based on popularity of the resource:
determining whether said resource is popular, and if the resource is determined to be popular, then said first server obtaining said resource and said first server serving the resource to the client, otherwise, if the resource is determined not to be popular, directing said client to a second server, said second server not in said first tier of servers, and said second server serving the resource to the client.
at a first server in said first tier of servers, obtaining a request from a client for a resource;
if said resource is available at said first server or at a peer of said first server, serving the resource to the client from the first server;
otherwise, if said resource is not available at said first server or at a peer of said first server, determining whether said resource is to be served based on popularity of the resource; and when a determination is not made that said resource is not to be served based on popularity of the resource, obtaining the resource at said first server and serving the resource to the client from the first server; and when the determination is made that said resource is to be served based on popularity of the resource:
determining whether said resource is popular, and if the resource is determined to be popular, then said first server obtaining said resource and said first server serving the resource to the client, otherwise, if the resource is determined not to be popular, directing said client to a second server, said second server not in said first tier of servers, and said second server serving the resource to the client.
2. The method of claim 1 wherein the network further comprises a second tier of servers, distinct from said first tier of servers, and wherein said second server is in said second tier of servers.
3. The method of claim 1 wherein the second server is a content provider's origin server.
4. The method of claim 1 wherein the step of determining whether said resource is popular comprises: determining whether a current popularity value for said resource exceeds a first predetermined popularity threshold.
5. A method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
(A) at a first server in said first tier of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being distinct from said first tier of servers, said redirecting being based, at least in part, on whether or not said resource is to be served based on popularity of the resource and on a current popularity value for said resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from.
(A) at a first server in said first tier of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being distinct from said first tier of servers, said redirecting being based, at least in part, on whether or not said resource is to be served based on popularity of the resource and on a current popularity value for said resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from.
6. The method of claim 5 wherein the network further comprises a second tier of servers, said servers in said second tier being distinct from said servers in said first tier, and wherein said second server is in said second tier of servers.
7. The method of claim 5 wherein the network further comprises a second tier of servers, said servers in said second tier being distinct from said servers in said first tier, and wherein said second server is an origin server.
8. A content delivery framework comprising:
a plurality of edge servers forming a first tier of servers; and a plurality of parent servers forming a second tier of servers, said parent servers being distinct from said edge servers, at least one popularity service constructed and adapted to obtain information from at least some of said edge servers about requests for content that has been designated to be handled based on popularity of the content, and to provide said edge servers with information about which tier of servers should handle those requests for content, said popularity service making determinations based, at least in part, on a measure of popularity of requested content, wherein said handling comprises serving said requests and said handling based on said popularity uses the popularity to determine where the content will be served from.
a plurality of edge servers forming a first tier of servers; and a plurality of parent servers forming a second tier of servers, said parent servers being distinct from said edge servers, at least one popularity service constructed and adapted to obtain information from at least some of said edge servers about requests for content that has been designated to be handled based on popularity of the content, and to provide said edge servers with information about which tier of servers should handle those requests for content, said popularity service making determinations based, at least in part, on a measure of popularity of requested content, wherein said handling comprises serving said requests and said handling based on said popularity uses the popularity to determine where the content will be served from.
9. A method of content delivery in a content delivery network comprising a plurality of tiers of servers, including at least a first tier of servers and a second tier of servers, the method comprising:
(A) at a first server in one tier of said tiers of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being in a tier distinct from said one tier containing said first server, said redirecting being based, at least in part, on: (i) whether or not said resource is to be served based on popularity of the resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from; and (ii) a current popularity value for said resource.
(A) at a first server in one tier of said tiers of servers, obtaining a request from a client for a resource;
(B) if said resource is not available at said first server or at a peer of said first server, then selectively redirecting the request from the client to a second server in the network, said second server being in a tier distinct from said one tier containing said first server, said redirecting being based, at least in part, on: (i) whether or not said resource is to be served based on popularity of the resource, wherein said serving based on said popularity uses the popularity to determine where the resource will be served from; and (ii) a current popularity value for said resource.
10. A method as in claim 9 wherein said first tier of servers comprises a plurality of edge servers and said second tier of servers comprises a plurality of parent servers, and wherein said first server is a parent server in said second tier and said second server is an edge server in said first tier.
11. A method as in claim 9 wherein said first tier of servers comprises a plurality of edge servers and said second tier of servers comprises a plurality of parent servers, and wherein said first server is an edge server in said first tier and said second server is a parent server in said second tier.
12. A method as in claim 9 wherein said first tier of servers comprises a plurality of edge servers and said second tier of servers comprises a plurality of parent servers, and wherein said plurality of tiers of servers further comprises an origin tier, and wherein said first server is a parent server in said second tier and said second server is a server in said origin tier.
13. The method of claim 1 wherein determining whether said resource is popular is based at least in part on a dynamic measure of popularity of the resource.
14. The method of claim 1 wherein the resource is part of an object, and wherein determining whether said resource is popular is based at least in part on whether the resource is an initial part of the object.
15. The method of claim 1 wherein the resource is part of an object, and wherein determining whether said resource is popular is based at least in part on whether the resource is for another part of the object, the initial part of the object having already been served to the client.
16. The method of claim 1 wherein the determining whether said resource is popular is determined, at least in part, using one or more popularity servers.
17. The method of claim 1 wherein the first server determines whether said resource is popular based on information obtained from a popularity service.
18. The method of claim 17 wherein the popularity service runs on a popularity server.
19. The method of claim 18 wherein the popularity server maintains information on relative popularity of content being served.
20. The method of claim 19 wherein the popularity server maintains information on relative popularity of content being served in a region comprising the first server.
21. The method of claim 1 wherein determining whether said resource is popular comprises:
determining a relative popularity said resource.
determining a relative popularity said resource.
22. The method of claim 21 wherein determining whether said resource is popular comprises:
determining a relative popularity said resource in a region comprising the first server.
determining a relative popularity said resource in a region comprising the first server.
23. The method of claim 5 wherein the current popularity value for the resource is based at least in part on a dynamic measure of popularity of the resource.
24. The method of claim 9 wherein the current popularity value for the resource is based at least in part on a dynamic measure of popularity of the resource.
25. The method of claim 9 wherein the resource is part of an object, and wherein the current popularity value for the resource is based at least in part on whether the resource is an initial part of the object.
26. The method of claim 9 wherein the resource is part of an object, and wherein the current popularity value for the resource is based at least in part on whether the resource is for another part of the object, the initial part of the object having already been served to the client.
27. The method of claim 1 wherein the act of determining whether said resource is to be served based on popularity of the resource comprises:
determining whether said resource is designated to be served based on popularity of the resource.
determining whether said resource is designated to be served based on popularity of the resource.
28. The method of claim 5 wherein whether or not said resource is to be served based on popularity of the resource is based at least in part on whether or not said resource is designated to be served based on popularity of the resource.
29. The method of claim 9 wherein whether or not said resource is to be served based on its popularity is based at least in part on whether or not said resource is designated to be served based on popularity of the resource.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4241208P | 2008-04-04 | 2008-04-04 | |
US61/042,412 | 2008-04-04 | ||
PCT/US2009/037904 WO2009123868A2 (en) | 2008-04-04 | 2009-03-21 | Handling long-tail content in a content delivery network (cdn) |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2720353A1 CA2720353A1 (en) | 2009-10-08 |
CA2720353C true CA2720353C (en) | 2016-01-19 |
Family
ID=41134280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2720353A Active CA2720353C (en) | 2008-04-04 | 2009-03-21 | Handling long-tail content in a content delivery network (cdn) |
Country Status (6)
Country | Link |
---|---|
US (1) | US8930538B2 (en) |
EP (1) | EP2274684A4 (en) |
CN (1) | CN102047244B (en) |
CA (1) | CA2720353C (en) |
HK (1) | HK1157466A1 (en) |
WO (1) | WO2009123868A2 (en) |
Families Citing this family (142)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4160506B2 (en) | 2001-09-28 | 2008-10-01 | レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. | Configurable adaptive wide area traffic control and management |
US7860964B2 (en) * | 2001-09-28 | 2010-12-28 | Level 3 Communications, Llc | Policy-based content delivery network selection |
US9167036B2 (en) | 2002-02-14 | 2015-10-20 | Level 3 Communications, Llc | Managed object replication and delivery |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8156243B2 (en) | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US9762692B2 (en) | 2008-04-04 | 2017-09-12 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US10924573B2 (en) | 2008-04-04 | 2021-02-16 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
WO2011024930A1 (en) * | 2009-08-24 | 2011-03-03 | 日本電気株式会社 | Content distribution system, content distribution method and content distribution-use program |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US8219645B2 (en) * | 2009-10-02 | 2012-07-10 | Limelight Networks, Inc. | Content delivery network cache grouping |
US9781197B2 (en) * | 2009-11-30 | 2017-10-03 | Samsung Electronics Co., Ltd. | Methods and apparatus for selection of content delivery network (CDN) based on user location |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
WO2011096865A1 (en) * | 2010-02-05 | 2011-08-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and node entity for enhancing content delivery network |
US20110276679A1 (en) * | 2010-05-04 | 2011-11-10 | Christopher Newton | Dynamic binding for use in content distribution |
KR101371900B1 (en) * | 2010-08-26 | 2014-03-10 | 한국전자통신연구원 | Method and apparatus for multiplexing service delivery with quality-of-service guarantee |
US8938526B1 (en) | 2010-09-28 | 2015-01-20 | Amazon Technologies, Inc. | Request routing management based on network components |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US8930513B1 (en) | 2010-09-28 | 2015-01-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8924528B1 (en) | 2010-09-28 | 2014-12-30 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
CN102148855A (en) * | 2010-11-23 | 2011-08-10 | 华为技术有限公司 | Content acquisition and delivery methods and devices |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
JP5846451B2 (en) * | 2011-01-19 | 2016-01-20 | 日本電気株式会社 | Router, cache utilization method and program when content server is not delivered |
WO2012116078A1 (en) | 2011-02-23 | 2012-08-30 | Level 3 Communications, Llc | Analytics management |
US8340690B2 (en) | 2011-04-08 | 2012-12-25 | International Business Machines Corporation | Mechanism for content management in wireless mobile networks |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
ES2397911B1 (en) * | 2011-05-12 | 2014-01-15 | Telefónica, S.A. | METHOD FOR DISTRIBUTION OF CONTENT IN A NETWORK OF DISTRIBUTION OF CONTENT. |
CN102427577A (en) * | 2011-12-06 | 2012-04-25 | 安徽省徽商集团有限公司 | System for pushing information from collaboration server to mobile terminal and method thereof |
US9451045B2 (en) | 2011-12-14 | 2016-09-20 | Level 3 Communications, Llc | Content delivery network |
CN102438020A (en) * | 2011-12-23 | 2012-05-02 | 华为技术有限公司 | Method and equipment for distributing contents in content distribution network, and network system |
CN102447712B (en) * | 2012-01-20 | 2015-07-08 | 华为技术有限公司 | Method and system for interconnecting nodes in content delivery network (CDN) as well as nodes |
US9167049B2 (en) | 2012-02-02 | 2015-10-20 | Comcast Cable Communications, Llc | Content distribution network supporting popularity-based caching |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US8356074B1 (en) | 2012-08-09 | 2013-01-15 | Limelight Networks, Inc. | Inter point of presence split architecture |
US8612588B1 (en) | 2012-08-09 | 2013-12-17 | Limelight Networks, Inc. | Point of presence to point of presence web page compression |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9537973B2 (en) * | 2012-11-01 | 2017-01-03 | Microsoft Technology Licensing, Llc | CDN load balancing in the cloud |
US9374276B2 (en) | 2012-11-01 | 2016-06-21 | Microsoft Technology Licensing, Llc | CDN traffic management in the cloud |
US9128892B2 (en) | 2012-12-10 | 2015-09-08 | Netflix, Inc. | Managing content on an ISP cache |
US10652087B2 (en) | 2012-12-13 | 2020-05-12 | Level 3 Communications, Llc | Content delivery framework having fill services |
US10701148B2 (en) | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having storage services |
US9634918B2 (en) * | 2012-12-13 | 2017-04-25 | Level 3 Communications, Llc | Invalidation sequencing in a content delivery framework |
US9654353B2 (en) | 2012-12-13 | 2017-05-16 | Level 3 Communications, Llc | Framework supporting content delivery with rendezvous services network |
US10791050B2 (en) | 2012-12-13 | 2020-09-29 | Level 3 Communications, Llc | Geographic location determination in a content delivery framework |
US10701149B2 (en) | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having origin services |
US20140337472A1 (en) | 2012-12-13 | 2014-11-13 | Level 3 Communications, Llc | Beacon Services in a Content Delivery Framework |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
CN105706412B (en) * | 2013-07-03 | 2019-09-24 | 爱立信股份有限公司 | Band-width tactics management in self-correcting content delivery network |
CN104301353B (en) * | 2013-07-18 | 2019-10-08 | 腾讯科技(深圳)有限公司 | A kind of methods, devices and systems for subscribing to long-tail category information |
CN103747072A (en) * | 2013-12-30 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | Data reading and writing method and application server |
US20150281367A1 (en) * | 2014-03-26 | 2015-10-01 | Akamai Technologies, Inc. | Multipath tcp techniques for distributed computing systems |
JP2017536606A (en) * | 2014-09-30 | 2017-12-07 | レベル スリー コミュニケーションズ,エルエルシー | Long tail content processing in content distribution networks |
US9241174B1 (en) * | 2014-11-18 | 2016-01-19 | Concurrent Computer Corporation | Demand-based edge caching video content system and methods |
US20160156733A1 (en) * | 2014-12-01 | 2016-06-02 | Fujitsu Limited | Content placement in hierarchical networks of caches |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10237592B2 (en) | 2014-12-30 | 2019-03-19 | Alcatel Lucent | Method and apparatus for video transmission |
JP2018507579A (en) * | 2014-12-31 | 2018-03-15 | レベル スリー コミュニケーションズ,エルエルシー | Network address resolution |
SG11201705147UA (en) * | 2014-12-31 | 2017-07-28 | Level 3 Communications Llc | Network address resolution |
US10382385B2 (en) * | 2015-02-27 | 2019-08-13 | Level 3 Communications, Llc | Network address resolution |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
EP3348038B1 (en) | 2015-09-10 | 2021-09-08 | Vimmi Communications Ltd. | Content delivery network |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
CN105871975A (en) * | 2015-11-17 | 2016-08-17 | 乐视云计算有限公司 | Method and device for selecting source server |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10469609B2 (en) * | 2015-12-31 | 2019-11-05 | Time Warner Cable Enterprises Llc | Methods and apparatus for serving content to customer devices based on dynamic content popularity |
US9591047B1 (en) | 2016-04-11 | 2017-03-07 | Level 3 Communications, Llc | Invalidation in a content delivery network (CDN) |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US10375154B2 (en) | 2016-07-29 | 2019-08-06 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of content |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10693947B2 (en) | 2016-09-09 | 2020-06-23 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of sensitive content via private content distribution networks |
CN106453123A (en) * | 2016-09-30 | 2017-02-22 | 广州视睿电子科技有限公司 | Cross-region business processing method and apparatus |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
WO2018165190A1 (en) | 2017-03-07 | 2018-09-13 | Akamai Technologies, Inc. | Cooperative multipath |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10834180B2 (en) * | 2017-10-09 | 2020-11-10 | Level 3 Communications, Llc | Time and location-based trend prediction in a content delivery network (CDN) |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US10931778B2 (en) * | 2019-01-09 | 2021-02-23 | Margo Networks Pvt. Ltd. | Content delivery network system and method |
US11930439B2 (en) | 2019-01-09 | 2024-03-12 | Margo Networks Private Limited | Network control and optimization (NCO) system and method |
US11470176B2 (en) * | 2019-01-29 | 2022-10-11 | Cisco Technology, Inc. | Efficient and flexible load-balancing for clusters of caches under latency constraint |
CN109672757B (en) * | 2019-02-26 | 2022-02-25 | 北京奇艺世纪科技有限公司 | File access method and file access processing device |
CN110336848B (en) * | 2019-04-23 | 2022-12-20 | 网宿科技股份有限公司 | Scheduling method, scheduling system and scheduling equipment for access request |
US11695855B2 (en) | 2021-05-17 | 2023-07-04 | Margo Networks Pvt. Ltd. | User generated pluggable content delivery network (CDN) system and method |
WO2023039341A1 (en) | 2021-09-08 | 2023-03-16 | Level 3 Communications, Llc | Systems and methods for configuration of sequence handlers |
WO2023224680A1 (en) | 2022-05-18 | 2023-11-23 | Margo Networks Pvt. Ltd. | Peer to peer (p2p) encrypted data transfer/offload system and method |
WO2024014591A1 (en) * | 2022-07-15 | 2024-01-18 | 라쿠텐 심포니 코리아 주식회사 | Technology for transmitting file on local network |
Family Cites Families (406)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4495570A (en) | 1981-01-14 | 1985-01-22 | Hitachi, Ltd. | Processing request allocator for assignment of loads in a distributed processing system |
FR2555388B1 (en) | 1983-11-23 | 1986-02-21 | Cit Alcatel | BACKUP DEVICE OF A SUBSCRIBER TERMINAL IN A DIGITAL CONCENTRATOR |
US4803641A (en) | 1984-06-06 | 1989-02-07 | Tecknowledge, Inc. | Basic expert system tool |
US4591983A (en) | 1984-07-09 | 1986-05-27 | Teknowledge, Inc. | Hierarchical knowledge system |
JPS61114363A (en) | 1984-11-07 | 1986-06-02 | Hitachi Ltd | Job transfer system between computer systems |
US4726017A (en) | 1985-05-21 | 1988-02-16 | Fla. | Multidrop data concentrator communication network |
US5287537A (en) | 1985-11-15 | 1994-02-15 | Data General Corporation | Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command |
US4922417A (en) | 1986-10-24 | 1990-05-01 | American Telephone And Telegraph Company | Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers |
US4943932A (en) | 1986-11-25 | 1990-07-24 | Cimflex Teknowledge Corporation | Architecture for composing computational modules uniformly across diverse developmental frameworks |
US4847784A (en) | 1987-07-13 | 1989-07-11 | Teknowledge, Inc. | Knowledge based tutor |
DE3876617T2 (en) | 1987-09-04 | 1993-04-08 | Digital Equipment Corp | CONNECTION CONTROL IN A NETWORK FOR A DIGITAL DATA PROCESSING SYSTEM THAT SUPPLIES MULTIPLE TRANSMISSION PROTOCOLS. |
US4920432A (en) | 1988-01-12 | 1990-04-24 | Eggers Derek C | System for random access to an audio video data library with independent selection and display at each of a plurality of remote locations |
US5191573A (en) | 1988-06-13 | 1993-03-02 | Hair Arthur R | Method for transmitting a desired digital video or audio signal |
US4949248A (en) | 1988-07-15 | 1990-08-14 | Caro Marshall A | System for shared remote access of multiple application programs executing in one or more computers |
CA1341310C (en) | 1988-07-15 | 2001-10-23 | Robert Filepp | Interactive computer network and method of operation |
JPH0766829B2 (en) | 1988-08-24 | 1995-07-19 | 東京瓦斯株式会社 | Fuel cell system with exhaust heat energy recovery device |
US4949187A (en) | 1988-12-16 | 1990-08-14 | Cohen Jason M | Video communications system having a remotely controlled central source of video and audio data |
US5029232A (en) | 1989-01-12 | 1991-07-02 | Cycle-Sat., Inc. | Satellite communications network |
US5341477A (en) | 1989-02-24 | 1994-08-23 | Digital Equipment Corporation | Broker for computer network server selection |
US5287499A (en) | 1989-03-22 | 1994-02-15 | Bell Communications Research, Inc. | Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table |
US5471622A (en) | 1989-10-04 | 1995-11-28 | Paralogic, Inc. | Run-time system having nodes for identifying parallel tasks in a logic program and searching for available nodes to execute the parallel tasks |
US5130792A (en) | 1990-02-01 | 1992-07-14 | Usa Video Inc. | Store and forward video system |
US5544347A (en) | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US5633999A (en) | 1990-11-07 | 1997-05-27 | Nonstop Networks Limited | Workstation-implemented data storage re-routing for server fault-tolerance on computer networks |
US5172413A (en) | 1990-12-20 | 1992-12-15 | Sasktel | Secure hierarchial video delivery system and method |
US6002720A (en) | 1991-01-07 | 1999-12-14 | H. Lee Browne, D/B/A Greenwich Information Technologies Llc | Audio and video transmission and receiving system |
US5132992A (en) | 1991-01-07 | 1992-07-21 | Paul Yurt | Audio and video transmission and receiving system |
US5253275A (en) | 1991-01-07 | 1993-10-12 | H. Lee Browne | Audio and video transmission and receiving system |
US5253341A (en) | 1991-03-04 | 1993-10-12 | Rozmanith Anthony I | Remote query communication system |
US5590288A (en) | 1991-07-30 | 1996-12-31 | Restaurant Technology, Inc. | Distributed data processing system and method utilizing peripheral device polling and layered communication software |
EP0529864B1 (en) | 1991-08-22 | 2001-10-31 | Sun Microsystems, Inc. | Network video server apparatus and method |
US5247347A (en) | 1991-09-27 | 1993-09-21 | Bell Atlantic Network Services, Inc. | Pstn architecture for video-on-demand services |
US5528281A (en) | 1991-09-27 | 1996-06-18 | Bell Atlantic Network Services | Method and system for accessing multimedia data over public switched telephone network |
JP3217821B2 (en) | 1991-12-16 | 2001-10-15 | マツダ株式会社 | Vehicle air conditioner |
US5371532A (en) | 1992-05-15 | 1994-12-06 | Bell Communications Research, Inc. | Communications architecture and method for distributing information services |
US5291554A (en) | 1992-05-28 | 1994-03-01 | Tv Answer, Inc. | Shared-price custom video rentals via interactive TV |
CA2095755C (en) | 1992-08-17 | 1999-01-26 | Mark J. Baugher | Network priority management |
US5442389A (en) | 1992-12-28 | 1995-08-15 | At&T Corp. | Program server for interactive television system |
US5508732A (en) | 1993-03-22 | 1996-04-16 | International Business Machines Corporation | Data server, control server and gateway architecture system and method for broadcasting digital video on demand |
DE69317267T2 (en) | 1993-05-19 | 1998-06-25 | Alsthom Cge Alcatel | Network for video on request |
US5550982A (en) | 1993-06-24 | 1996-08-27 | Starlight Networks | Video application server |
US5442390A (en) | 1993-07-07 | 1995-08-15 | Digital Equipment Corporation | Video on demand with memory accessing and or like functions |
US5414455A (en) | 1993-07-07 | 1995-05-09 | Digital Equipment Corporation | Segmented video on demand system |
GB2281793A (en) | 1993-09-11 | 1995-03-15 | Ibm | A data processing system for providing user load levelling in a network |
US5446736A (en) | 1993-10-07 | 1995-08-29 | Ast Research, Inc. | Method and apparatus for connecting a node to a wireless network using a standard protocol |
US5542087A (en) | 1993-10-15 | 1996-07-30 | Hewlett-Packard Company | Linear hashing for distributed records |
JPH07175868A (en) | 1993-10-15 | 1995-07-14 | Internatl Business Mach Corp <Ibm> | Method and system for output of digital information to medium |
JPH07212712A (en) | 1993-10-29 | 1995-08-11 | Eastman Kodak Co | Method and equipment for adding and deleting digital watermark in hierarchical picture memory and fetch system |
CA2130395C (en) | 1993-12-09 | 1999-01-19 | David G. Greenwood | Multimedia distribution over wide area networks |
US5475615A (en) | 1993-12-23 | 1995-12-12 | U S West Advanced Technologies, Inc. | Method and system for sizing interactive video delivery systems |
US5644714A (en) | 1994-01-14 | 1997-07-01 | Elonex Plc, Ltd. | Video collection and distribution system with interested item notification and download on demand |
US5515510A (en) | 1994-01-14 | 1996-05-07 | Consilium Overseas Limited | Communications internetwork system connecting a client node array to a resource array |
US5845090A (en) | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
US5544327A (en) | 1994-03-01 | 1996-08-06 | International Business Machines Corporation | Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied |
US6185619B1 (en) | 1996-12-09 | 2001-02-06 | Genuity Inc. | Method and apparatus for balancing the process load on network servers according to network and serve based policies |
US5544313A (en) | 1994-05-11 | 1996-08-06 | International Business Machines Corporation | Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system |
US5768521A (en) | 1994-05-16 | 1998-06-16 | Intel Corporation | General purpose metering mechanism for distribution of electronic information |
JP2601189B2 (en) | 1994-05-20 | 1997-04-16 | 日本電気株式会社 | Video on demand system |
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5515511A (en) | 1994-06-06 | 1996-05-07 | International Business Machines Corporation | Hybrid digital/analog multimedia hub with dynamically allocated/released channels for video processing and distribution |
US5884028A (en) | 1994-07-29 | 1999-03-16 | International Business Machines Corporation | System for the management of multiple time-critical data streams |
US6038310A (en) | 1994-08-01 | 2000-03-14 | British Telecommunications Public Limited Company | Service node for a telephony network |
US5519435A (en) | 1994-09-01 | 1996-05-21 | Micropolis Corporation | Multi-user, on-demand video storage and retrieval system including video signature computation for preventing excessive instantaneous server data rate |
US5614940A (en) | 1994-10-21 | 1997-03-25 | Intel Corporation | Method and apparatus for providing broadcast information with indexing |
DE69511425T2 (en) | 1994-11-08 | 2000-03-09 | Vermeer Tech Inc | PRODUCTION AID FOR ONLINE SERVICES WITH CHARGING CHARGES |
US5638443A (en) | 1994-11-23 | 1997-06-10 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
US5619648A (en) | 1994-11-30 | 1997-04-08 | Lucent Technologies Inc. | Message filtering techniques |
US5845303A (en) | 1994-12-06 | 1998-12-01 | Netpodium, Inc. | Document processing using frame-based templates with hierarchical tagging |
US5603026A (en) | 1994-12-07 | 1997-02-11 | Xerox Corporation | Application-specific conflict resolution for weakly consistent replicated databases |
US5623656A (en) | 1994-12-15 | 1997-04-22 | Lucent Technologies Inc. | Script-based data communication system and method utilizing state memory |
US5920701A (en) | 1995-01-19 | 1999-07-06 | Starburst Communications Corporation | Scheduling data transmission |
US5592611A (en) | 1995-03-14 | 1997-01-07 | Network Integrity, Inc. | Stand-in computer server |
JP4008049B2 (en) | 1995-03-20 | 2007-11-14 | 富士通株式会社 | Address transmitting apparatus, address transmitting method and address transmitting system |
US5802291A (en) | 1995-03-30 | 1998-09-01 | Sun Microsystems, Inc. | System and method to control and administer distributed object servers using first class distributed objects |
US5699513A (en) | 1995-03-31 | 1997-12-16 | Motorola, Inc. | Method for secure network access via message intercept |
US5680619A (en) | 1995-04-03 | 1997-10-21 | Mfactory, Inc. | Hierarchical encapsulation of instantiated objects in a multimedia authoring system |
EP0826181A4 (en) | 1995-04-11 | 2005-02-09 | Kinetech Inc | Identifying data in a data processing system |
DE19514616A1 (en) | 1995-04-25 | 1996-10-31 | Sel Alcatel Ag | Communication system with hierarchical server structure |
US5742762A (en) | 1995-05-19 | 1998-04-21 | Telogy Networks, Inc. | Network management gateway |
US5646676A (en) | 1995-05-30 | 1997-07-08 | International Business Machines Corporation | Scalable interactive multimedia server system for providing on demand data |
JP2853731B2 (en) | 1995-06-02 | 1999-02-03 | 日本電気株式会社 | Voice recognition device |
US6181867B1 (en) | 1995-06-07 | 2001-01-30 | Intervu, Inc. | Video storage and retrieval system |
US6003030A (en) | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
WO1996042041A2 (en) | 1995-06-07 | 1996-12-27 | Open Market, Inc. | Internet server access control and monitoring systems |
US5710918A (en) | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5774668A (en) | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5956489A (en) | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US5799141A (en) | 1995-06-09 | 1998-08-25 | Qualix Group, Inc. | Real-time data protection system and method |
US5682512A (en) | 1995-06-30 | 1997-10-28 | Intel Corporation | Use of deferred bus access for address translation in a shared memory clustered computer system |
US5896533A (en) | 1995-07-06 | 1999-04-20 | Intel Corporation | Accessing internets world-wide web through object linking and embedding technology |
US5666362A (en) | 1995-07-25 | 1997-09-09 | 3Com Corporation | Method and apparatus for asynchronous PPP and synchronous PPP conversion |
US5878212A (en) | 1995-07-31 | 1999-03-02 | At&T Corp. | System for updating mapping or virtual host names to layer-3 address when multimedia server changes its usage state to busy or not busy |
US5649186A (en) | 1995-08-07 | 1997-07-15 | Silicon Graphics Incorporated | System and method for a computer-based dynamic information clipping service |
US5815662A (en) | 1995-08-15 | 1998-09-29 | Ong; Lance | Predictive memory caching for media-on-demand systems |
US5721914A (en) | 1995-09-14 | 1998-02-24 | Mci Corporation | System and method for hierarchical data distribution |
WO1997012311A2 (en) | 1995-09-15 | 1997-04-03 | Cable & Wireless, Inc. | System and method for quality management |
US5712979A (en) | 1995-09-20 | 1998-01-27 | Infonautics Corporation | Method and apparatus for attaching navigational history information to universal resource locator links on a world wide web page |
US5812769A (en) | 1995-09-20 | 1998-09-22 | Infonautics Corporation | Method and apparatus for redirecting a user to a new location on the world wide web using relative universal resource locators |
US5737495A (en) | 1995-09-29 | 1998-04-07 | Intel Corporation | Method and apparatus for managing multimedia data files in a computer network by streaming data files into separate streams based on file attributes |
US5913028A (en) | 1995-10-06 | 1999-06-15 | Xpoint Technologies, Inc. | Client/server data traffic delivery system and method |
US5925142A (en) | 1995-10-06 | 1999-07-20 | Micron Technology, Inc. | Self-test RAM using external synchronous clock |
US5572643A (en) | 1995-10-19 | 1996-11-05 | Judson; David H. | Web browser with dynamic display of information objects during linking |
US6029175A (en) | 1995-10-26 | 2000-02-22 | Teknowledge Corporation | Automatic retrieval of changed files by a network software agent |
US5625781A (en) | 1995-10-31 | 1997-04-29 | International Business Machines Corporation | Itinerary list for interfaces |
US5764906A (en) | 1995-11-07 | 1998-06-09 | Netword Llc | Universal electronic resource denotation, request and delivery system |
US5671279A (en) | 1995-11-13 | 1997-09-23 | Netscape Communications Corporation | Electronic commerce using a secure courier system |
US5832069A (en) | 1995-11-17 | 1998-11-03 | Sprint Communications Co L.P. | Object oriented system for modeling telecommunications circuits to estimate the access cost for leasing selected circuits |
US5777989A (en) | 1995-12-19 | 1998-07-07 | International Business Machines Corporation | TCP/IP host name resolution for machines on several domains |
US5903723A (en) | 1995-12-21 | 1999-05-11 | Intel Corporation | Method and apparatus for transmitting electronic mail attachments with attachment references |
US5740423A (en) | 1995-12-28 | 1998-04-14 | Csg Systems, Inc. | System and method for accessing distributed data on a plurality of databases |
US6098078A (en) | 1995-12-29 | 2000-08-01 | Lucent Technologies Inc. | Maintaining consistency of database replicas |
US6233623B1 (en) | 1996-01-11 | 2001-05-15 | Cabletron Systems, Inc. | Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state |
GB2309558A (en) | 1996-01-26 | 1997-07-30 | Ibm | Load balancing across the processors of a server computer |
US6081829A (en) | 1996-01-31 | 2000-06-27 | Silicon Graphics, Inc. | General purpose web annotations without modifying browser |
US5751961A (en) | 1996-01-31 | 1998-05-12 | Bell Communications Research, Inc. | Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point |
US5659729A (en) | 1996-02-01 | 1997-08-19 | Sun Microsystems, Inc. | Method and system for implementing hypertext scroll attributes |
US5856974A (en) | 1996-02-13 | 1999-01-05 | Novell, Inc. | Internetwork address mapping gateway |
US5781909A (en) | 1996-02-13 | 1998-07-14 | Microtouch Systems, Inc. | Supervised satellite kiosk management system with combined local and remote data storage |
EP0790559B1 (en) | 1996-02-14 | 2002-05-15 | Hitachi, Ltd. | Method of monitoring a computer system, featuring performance data distribution to plural monitoring processes |
US6189030B1 (en) | 1996-02-21 | 2001-02-13 | Infoseek Corporation | Method and apparatus for redirection of server external hyper-link references |
US5751956A (en) | 1996-02-21 | 1998-05-12 | Infoseek Corporation | Method and apparatus for redirection of server external hyper-link references |
US5761507A (en) | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
AU2343097A (en) | 1996-03-21 | 1997-10-10 | Mpath Interactive, Inc. | Network match maker for selecting clients based on attributes of servers and communication links |
US5832506A (en) | 1996-03-29 | 1998-11-03 | Intel Corporation | Directory for network servers |
US5867799A (en) | 1996-04-04 | 1999-02-02 | Lang; Andrew K. | Information system and method for filtering a massive flow of information entities to meet user information classification needs |
US6081835A (en) | 1996-04-04 | 2000-06-27 | British Telecommunications Public Limited Company | Internet server and method of controlling an internet server |
US5835718A (en) | 1996-04-10 | 1998-11-10 | At&T Corp | URL rewriting pseudo proxy server |
US6044405A (en) | 1996-04-12 | 2000-03-28 | Wam!Net Inc. | Service network incorporating geographically-remote hubs linked by high speed transmission paths |
US5777988A (en) | 1996-04-17 | 1998-07-07 | Bell Communications Research, Inc. | System and method for equalizing delay in a dynamic packet switching network |
DE59610895D1 (en) | 1996-04-17 | 2004-02-19 | Siemens Ag | Control device in the intelligent network |
US5828847A (en) | 1996-04-19 | 1998-10-27 | Storage Technology Corporation | Dynamic server switching for maximum server availability and load balancing |
US5894554A (en) | 1996-04-23 | 1999-04-13 | Infospinner, Inc. | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests |
US5734831A (en) | 1996-04-26 | 1998-03-31 | Sun Microsystems, Inc. | System for configuring and remotely administering a unix computer over a network |
US5778187A (en) | 1996-05-09 | 1998-07-07 | Netcast Communications Corp. | Multicasting method and apparatus |
US6023470A (en) | 1996-05-17 | 2000-02-08 | Lee; Warren S. | Point of presence (POP) for digital facsimile network with virtual POPs used to communicate with other networks |
US5784058A (en) | 1996-05-28 | 1998-07-21 | Sun Microsystems, Inc. | User-controllable persistent browser display pages |
US5715453A (en) | 1996-05-31 | 1998-02-03 | International Business Machines Corporation | Web server mechanism for processing function calls for dynamic data queries in a web page |
US5918013A (en) | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5935207A (en) | 1996-06-03 | 1999-08-10 | Webtv Networks, Inc. | Method and apparatus for providing remote site administrators with user hits on mirrored web sites |
JP3178342B2 (en) | 1996-06-17 | 2001-06-18 | 松下電器産業株式会社 | Information provision system using network |
US6014686A (en) | 1996-06-21 | 2000-01-11 | Telcordia Technologies, Inc. | Apparatus and methods for highly available directory services in the distributed computing environment |
US5832514A (en) | 1996-06-26 | 1998-11-03 | Microsoft Corporation | System and method for discovery based data recovery in a store and forward replication process |
US6094680A (en) | 1996-06-27 | 2000-07-25 | Microsoft Corporation | System and method for managing distributed resources on networks |
US6360256B1 (en) | 1996-07-01 | 2002-03-19 | Sun Microsystems, Inc. | Name service for a redundant array of internet servers |
US6154777A (en) | 1996-07-01 | 2000-11-28 | Sun Microsystems, Inc. | System for context-dependent name resolution |
US6134583A (en) | 1996-07-01 | 2000-10-17 | Sun Microsystems, Inc. | Method, system, apparatus and article of manufacture for providing identity-based caching services to a plurality of computer systems (#16) |
US5862339A (en) | 1996-07-09 | 1999-01-19 | Webtv Networks, Inc. | Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server |
JPH1027148A (en) | 1996-07-10 | 1998-01-27 | Hitachi Ltd | Server systesm for internet |
US5919247A (en) | 1996-07-24 | 1999-07-06 | Marimba, Inc. | Method for the distribution of code and data updates |
AU714336B2 (en) | 1996-07-25 | 1999-12-23 | Clearway Acquisition, Inc. | Web serving system with primary and secondary servers |
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 |
US5890171A (en) | 1996-08-06 | 1999-03-30 | Microsoft Corporation | Computer system and computer-implemented method for interpreting hypertext links in a document when including the document within another document |
EP0853788A1 (en) | 1996-08-08 | 1998-07-22 | Agranat Systems, Inc. | Embedded web server |
GB2316200A (en) | 1996-08-08 | 1998-02-18 | Ibm | Accessing information about executable code |
US20010055299A1 (en) | 1996-08-16 | 2001-12-27 | Keith C. Kelly | Method and apparatus for establishing communications between packet-switched and circuit-switched networks |
JPH1069423A (en) | 1996-08-28 | 1998-03-10 | Nec Corp | Hypermedia system and its directory data managing method |
JPH1093552A (en) | 1996-09-11 | 1998-04-10 | Nippon Telegr & Teleph Corp <Ntt> | Communication connection method with a plurality of hosts having common identifier |
JP4025379B2 (en) | 1996-09-17 | 2007-12-19 | 株式会社ニューズウオッチ | Search system |
US5893116A (en) | 1996-09-30 | 1999-04-06 | Novell, Inc. | Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network |
US6092204A (en) | 1996-10-01 | 2000-07-18 | At&T Corp | Filtering for public databases with naming ambiguities |
US5931904A (en) | 1996-10-11 | 1999-08-03 | At&T Corp. | Method for reducing the delay between the time a data page is requested and the time the data page is displayed |
SE507138C2 (en) | 1996-10-14 | 1998-04-06 | Mirror Image Internet Ab | Procedure and apparatus for information transmission on the Internet |
US5958008A (en) | 1996-10-15 | 1999-09-28 | Mercury Interactive Corporation | Software system and associated methods for scanning and mapping dynamically-generated web documents |
US5870559A (en) | 1996-10-15 | 1999-02-09 | Mercury Interactive | Software system and associated methods for facilitating the analysis and management of web sites |
US6138141A (en) | 1996-10-18 | 2000-10-24 | At&T Corp | Server to client cache protocol for improved web performance |
US6038216A (en) | 1996-11-01 | 2000-03-14 | Packeteer, Inc. | Method for explicit data rate control in a packet communication environment without data rate supervision |
US6049831A (en) | 1996-11-08 | 2000-04-11 | Gte Laboratories Incorporated | System for transmitting network-related information where requested network information is separately transmitted as definitions and display information |
US5802106A (en) | 1996-12-06 | 1998-09-01 | Packeteer, Inc. | Method for rapid data rate detection in a packet communication environment without data rate supervision |
US6098096A (en) | 1996-12-09 | 2000-08-01 | Sun Microsystems, Inc. | Method and apparatus for dynamic cache preloading across a network |
US6046980A (en) | 1996-12-09 | 2000-04-04 | Packeteer, Inc. | System for managing flow bandwidth utilization at network, transport and application layers in store and forward network |
US6131095A (en) | 1996-12-11 | 2000-10-10 | Hewlett-Packard Company | Method of accessing a target entity over a communications network |
US5913033A (en) | 1996-12-20 | 1999-06-15 | International Business Machines Corporation | Apparatus and method for retrieving information using standard objects |
US6052718A (en) | 1997-01-07 | 2000-04-18 | Sightpath, Inc | Replica routing |
US6052730A (en) | 1997-01-10 | 2000-04-18 | The Board Of Trustees Of The Leland Stanford Junior University | Method for monitoring and/or modifying web browsing sessions |
WO1998037473A2 (en) | 1997-02-07 | 1998-08-27 | General Internet, Inc. | Collaborative internet data mining system |
US6078943A (en) | 1997-02-07 | 2000-06-20 | International Business Machines Corporation | Method and apparatus for dynamic interval-based load balancing |
US6173311B1 (en) | 1997-02-13 | 2001-01-09 | Pointcast, Inc. | Apparatus, method and article of manufacture for servicing client requests on a network |
US6108673A (en) | 1997-02-25 | 2000-08-22 | International Business Machines Corporation | System for creating a form from a template that includes replication block |
US6370571B1 (en) | 1997-03-05 | 2002-04-09 | At Home Corporation | System and method for delivering high-performance online multimedia services |
US6157648A (en) | 1997-03-06 | 2000-12-05 | Bell Atlantic Network Services, Inc. | Network session management |
US6012090A (en) | 1997-03-14 | 2000-01-04 | At&T Corp. | Client-side parallel requests for network services using group name association |
US6421726B1 (en) | 1997-03-14 | 2002-07-16 | Akamai Technologies, Inc. | System and method for selection and retrieval of diverse types of video data on a computer network |
US6470389B1 (en) | 1997-03-14 | 2002-10-22 | Lucent Technologies Inc. | Hosting a network service on a cluster of servers using a single-address image |
US5987606A (en) | 1997-03-19 | 1999-11-16 | Bascom Global Internet Services, Inc. | Method and system for content filtering information retrieved from an internet computer network |
US5796952A (en) | 1997-03-21 | 1998-08-18 | Dot Com Development, Inc. | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
AU6882998A (en) | 1997-03-31 | 1998-10-22 | Broadband Associates | Method and system for providing a presentation on a network |
US6111567A (en) | 1997-04-03 | 2000-08-29 | Microsoft Corporation | Seamless multimedia branching |
US6189039B1 (en) | 1997-04-10 | 2001-02-13 | International Business Machines Corporation | Selective tunneling of streaming data |
CA2202572C (en) | 1997-04-14 | 2004-02-10 | Ka Lun Eddie Law | A scaleable web server and method of efficiently managing multiple servers |
US5884038A (en) | 1997-05-02 | 1999-03-16 | Whowhere? Inc. | Method for providing an Internet protocol address with a domain name server |
US5944780A (en) | 1997-05-05 | 1999-08-31 | At&T Corp | Network with shared caching |
US6256675B1 (en) | 1997-05-06 | 2001-07-03 | At&T Corp. | System and method for allocating requests for objects and managing replicas of objects on a network |
US6286045B1 (en) | 1997-05-19 | 2001-09-04 | Matchlogic, Inc. | Information storage and delivery over a computer network using centralized intelligence to monitor and control the information being delivered |
US6314565B1 (en) | 1997-05-19 | 2001-11-06 | Intervu, Inc. | System and method for automated identification, retrieval, and installation of multimedia software components |
US6014698A (en) | 1997-05-19 | 2000-01-11 | Matchlogic, Inc. | System using first banner request that can not be blocked from reaching a server for accurately counting displays of banners on network terminals |
US6119143A (en) | 1997-05-22 | 2000-09-12 | International Business Machines Corporation | Computer system and method for load balancing with selective control |
US6351775B1 (en) | 1997-05-30 | 2002-02-26 | International Business Machines Corporation | Loading balancing across servers in a computer network |
US6173322B1 (en) | 1997-06-05 | 2001-01-09 | Silicon Graphics, Inc. | Network request distribution based on static rules and dynamic performance data |
US6125394A (en) | 1997-06-06 | 2000-09-26 | At&T Corporation | Computer system having a plurality of resources and utilizing a selection mechanism to select the resources based upon historical loading |
US5983227A (en) | 1997-06-12 | 1999-11-09 | Yahoo, Inc. | Dynamic page generator |
US6112239A (en) | 1997-06-18 | 2000-08-29 | Intervu, Inc | System and method for server-side optimization of data delivery on a distributed computer network |
ES2208908T3 (en) | 1997-06-20 | 2004-06-16 | Swisscom Fixnet Ag | SYSTEM AND PROCEDURE FOR CODING AND DISSEMINATION OF VOCAL INFORMATION. |
US6105028A (en) | 1997-06-26 | 2000-08-15 | Digital Equipment Corporation | Method and apparatus for accessing copies of documents using a web browser request interceptor |
US6098108A (en) | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6115357A (en) | 1997-07-01 | 2000-09-05 | Packeteer, Inc. | Method for pacing data flow in a packet-based network |
US6021426A (en) | 1997-07-31 | 2000-02-01 | At&T Corp | Method and apparatus for dynamic data transfer on a web page |
US5968121A (en) | 1997-08-13 | 1999-10-19 | Microsoft Corporation | Method and apparatus for representing and applying network topological data |
US5987430A (en) | 1997-08-28 | 1999-11-16 | Atcom, Inc. | Communications network connection system and method |
US6112240A (en) | 1997-09-03 | 2000-08-29 | International Business Machines Corporation | Web site client information tracker |
US6226642B1 (en) | 1997-09-11 | 2001-05-01 | International Business Machines Corporation | Content modification of internet web pages for a television class display |
US6163779A (en) | 1997-09-29 | 2000-12-19 | International Business Machines Corporation | Method of saving a web page to a local hard drive to enable client-side browsing |
US6085193A (en) | 1997-09-29 | 2000-07-04 | International Business Machines Corporation | Method and system for dynamically prefetching information via a server hierarchy |
US6035332A (en) | 1997-10-06 | 2000-03-07 | Ncr Corporation | Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants |
US6240462B1 (en) | 1997-10-14 | 2001-05-29 | At&T | System for providing enhanced grade of service for connections over a large network |
US6421714B1 (en) | 1997-10-14 | 2002-07-16 | Lucent Technologies | Efficient mobility management scheme for a wireless internet access system |
US6081840A (en) | 1997-10-14 | 2000-06-27 | Zhao; Yan | Two-level content distribution system |
US6070191A (en) | 1997-10-17 | 2000-05-30 | Lucent Technologies Inc. | Data distribution techniques for load-balanced fault-tolerant web access |
US5996025A (en) | 1997-10-31 | 1999-11-30 | International Business Machines Corp. | Network transparent access framework for multimedia serving |
US6230196B1 (en) | 1997-11-12 | 2001-05-08 | International Business Machines Corporation | Generation of smart HTML anchors in dynamic web page creation |
US6018516A (en) | 1997-11-14 | 2000-01-25 | Packeteer, Inc. | Method for minimizing unneeded retransmission of packets in a packet communication environment supporting a plurality of data link rates |
US6041324A (en) | 1997-11-17 | 2000-03-21 | International Business Machines Corporation | System and method for identifying valid portion of computer resource identifier |
US6016512A (en) | 1997-11-20 | 2000-01-18 | Telcordia Technologies, Inc. | Enhanced domain name service using a most frequently used domain names table and a validity code table |
US6591299B2 (en) | 1997-11-25 | 2003-07-08 | Packeteer, Inc. | Method for automatically classifying traffic with enhanced hierarchy in a packet communications network |
WO1999027684A1 (en) | 1997-11-25 | 1999-06-03 | Packeteer, Inc. | Method for automatically classifying traffic in a packet communications network |
US6029176A (en) | 1997-11-25 | 2000-02-22 | Cannon Holdings, L.L.C. | Manipulating and analyzing data using a computer system having a database mining engine resides in memory |
AU1710099A (en) | 1997-12-08 | 1999-06-28 | Packeteer, Inc. | Method for data rate control for heterogenous or peer internetworking |
US6065062A (en) | 1997-12-10 | 2000-05-16 | Cisco Systems, Inc. | Backup peer pool for a routed computer network |
US6266335B1 (en) | 1997-12-19 | 2001-07-24 | Cyberiq Systems | Cross-platform server clustering using a network flow switch |
US6178160B1 (en) | 1997-12-23 | 2001-01-23 | Cisco Technology, Inc. | Load balancing of client connections across a network using server based algorithms |
US6151624A (en) | 1998-02-03 | 2000-11-21 | Realnames Corporation | Navigating network resources based on metadata |
US7054935B2 (en) | 1998-02-10 | 2006-05-30 | Savvis Communications Corporation | Internet content delivery network |
US6185598B1 (en) | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US7047300B1 (en) | 1998-02-10 | 2006-05-16 | Sprint Communications Company L.P. | Survivable and scalable data system and method for computer networks |
US6094706A (en) | 1998-03-02 | 2000-07-25 | International Business Machines Corporation | Caching in a data processing system using the pigeon hole principle |
US6553420B1 (en) | 1998-03-13 | 2003-04-22 | Massachusetts Institute Of Technology | Method and apparatus for distributing requests among a plurality of resources |
US6430618B1 (en) | 1998-03-13 | 2002-08-06 | Massachusetts Institute Of Technology | Method and apparatus for distributing requests among a plurality of resources |
US6691148B1 (en) | 1998-03-13 | 2004-02-10 | Verizon Corporate Services Group Inc. | Framework for providing quality of service requirements in a distributed object-oriented computer system |
US6205120B1 (en) | 1998-03-13 | 2001-03-20 | Packeteer, Inc. | Method for transparently determining and setting an optimal minimum required TCP window size |
EP1062766A1 (en) | 1998-03-16 | 2000-12-27 | Reuters America Incorporated | Method, apparatus, and medium for minimal time multicast graft/join restoration |
US6065051A (en) | 1998-04-15 | 2000-05-16 | Hewlett-Packard Company | Apparatus and method for communication between multiple browsers |
US6915307B1 (en) | 1998-04-15 | 2005-07-05 | Inktomi Corporation | High performance object cache |
US6128623A (en) | 1998-04-15 | 2000-10-03 | Inktomi Corporation | High performance object cache |
US6591288B1 (en) | 1998-05-19 | 2003-07-08 | Nortel Networks Limited | Data network accelerated access system |
US6115752A (en) | 1998-05-21 | 2000-09-05 | Sun Microsystems, Inc. | System and method for server selection for mirrored sites |
US6405257B1 (en) | 1998-06-26 | 2002-06-11 | Verizon Laboratories Inc. | Method and system for burst congestion control in an internet protocol network |
US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6195680B1 (en) | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US6317787B1 (en) | 1998-08-11 | 2001-11-13 | Webtrends Corporation | System and method for analyzing web-server log files |
CA2338414C (en) | 1998-08-13 | 2006-05-09 | International Business Machines Corporation | Secure electronic content management system |
US7110984B1 (en) | 1998-08-13 | 2006-09-19 | International Business Machines Corporation | Updating usage conditions in lieu of download digital rights management protected content |
US6859791B1 (en) | 1998-08-13 | 2005-02-22 | International Business Machines Corporation | Method for determining internet users geographic region |
US6226618B1 (en) | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US6144375A (en) | 1998-08-14 | 2000-11-07 | Praja Inc. | Multi-perspective viewer for content-based interactivity |
US6442588B1 (en) | 1998-08-20 | 2002-08-27 | At&T Corp. | Method of administering a dynamic filtering firewall |
US6212565B1 (en) | 1998-08-26 | 2001-04-03 | Sun Microsystems, Inc. | Apparatus and method for improving performance of proxy server arrays that use persistent connections |
US6338117B1 (en) | 1998-08-28 | 2002-01-08 | International Business Machines Corporation | System and method for coordinated hierarchical caching and cache replacement |
US6324580B1 (en) | 1998-09-03 | 2001-11-27 | Sun Microsystems, Inc. | Load balancing for replicated services |
US6130890A (en) | 1998-09-11 | 2000-10-10 | Digital Island, Inc. | Method and system for optimizing routing of data packets |
US6625643B1 (en) | 1998-11-13 | 2003-09-23 | Akamai Technologies, Inc. | System and method for resource management on a data network |
US6272566B1 (en) | 1998-11-18 | 2001-08-07 | International Business Machines Corporation | System for maintaining proper buffering within video play list |
US6553376B1 (en) | 1998-11-18 | 2003-04-22 | Infolibria, Inc. | Efficient content server using request redirection |
US6466949B2 (en) | 1998-11-23 | 2002-10-15 | Myway.Com Corporation | Performing event notification in a database having a distributed web cluster |
US6564251B2 (en) | 1998-12-03 | 2003-05-13 | Microsoft Corporation | Scalable computing system for presenting customized aggregation of information |
US6427170B1 (en) | 1998-12-08 | 2002-07-30 | Cisco Technology, Inc. | Integrated IP address management |
US6389462B1 (en) | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
JP2000207270A (en) | 1999-01-13 | 2000-07-28 | Hitachi Ltd | Www proxy device |
US6529477B1 (en) | 1999-02-02 | 2003-03-04 | Mentat Inc. | Internet over satellite system |
US6584083B1 (en) | 1999-02-02 | 2003-06-24 | Mentat Inc. | Internet over satellite method |
US6460085B1 (en) | 1999-02-02 | 2002-10-01 | Mentat Inc. | Method and system for managing memory in an internet over satellite connection |
US6654344B1 (en) | 1999-02-02 | 2003-11-25 | Mentat Inc. | Method and system for controlling data flow in an internet over satellite connection |
US6934255B1 (en) | 1999-02-02 | 2005-08-23 | Packeteer, Inc. | Internet over satellite apparatus |
US6981050B1 (en) | 1999-02-11 | 2005-12-27 | Loudeye Corp. | Digital remote recorder |
US6249810B1 (en) | 1999-02-19 | 2001-06-19 | Chaincast, Inc. | Method and system for implementing an internet radio device for receiving and/or transmitting media information |
US6901604B1 (en) | 1999-02-19 | 2005-05-31 | Chaincast, Inc. | Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system |
EP1157524B1 (en) | 1999-03-03 | 2007-12-19 | Ultradns, Inc. | Scalable and efficient domain name resolution |
US6338044B1 (en) | 1999-03-17 | 2002-01-08 | Loudeye Technologies, Inc. | Personal digital content system |
US6505248B1 (en) | 1999-03-24 | 2003-01-07 | Gte Data Services Incorporated | Method and system for monitoring and dynamically reporting a status of a remote server |
US8191097B1 (en) | 1999-04-01 | 2012-05-29 | Comcast Ip Holdings I, Llc | Method and apparatus for hierarchical distribution of video content for an interactive information distribution system |
US6345294B1 (en) | 1999-04-19 | 2002-02-05 | Cisco Technology, Inc. | Methods and apparatus for remote configuration of an appliance on a network |
US6487555B1 (en) | 1999-05-07 | 2002-11-26 | Alta Vista Company | Method and apparatus for finding mirrored hosts by analyzing connectivity and IP addresses |
US6463454B1 (en) | 1999-06-17 | 2002-10-08 | International Business Machines Corporation | System and method for integrated load distribution and resource management on internet environment |
US6460082B1 (en) | 1999-06-17 | 2002-10-01 | International Business Machines Corporation | Management of service-oriented resources across heterogeneous media servers using homogenous service units and service signatures to configure the media servers |
US6275470B1 (en) | 1999-06-18 | 2001-08-14 | Digital Island, Inc. | On-demand overlay routing for computer-based communication networks |
US6973490B1 (en) | 1999-06-23 | 2005-12-06 | Savvis Communications Corp. | Method and system for object-level web performance and analysis |
JP2001007844A (en) | 1999-06-24 | 2001-01-12 | Canon Inc | Network status server, information distribution system, and its control method and storage medium storing its control program |
US6463508B1 (en) | 1999-07-19 | 2002-10-08 | International Business Machines Corporation | Method and apparatus for caching a media stream |
US6801576B1 (en) | 1999-08-06 | 2004-10-05 | Loudeye Corp. | System for accessing, distributing and maintaining video content over public and private internet protocol networks |
US6763388B1 (en) | 1999-08-10 | 2004-07-13 | Akamai Technologies, Inc. | Method and apparatus for selecting and viewing portions of web pages |
US6834306B1 (en) | 1999-08-10 | 2004-12-21 | Akamai Technologies, Inc. | Method and apparatus for notifying a user of changes to certain parts of web pages |
US6785704B1 (en) | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6594260B1 (en) | 1999-09-03 | 2003-07-15 | Cisco Technology, Inc. | Content routing |
US6490580B1 (en) | 1999-10-29 | 2002-12-03 | Verizon Laboratories Inc. | Hypervideo information retrieval usingmultimedia |
US6493707B1 (en) | 1999-10-29 | 2002-12-10 | Verizon Laboratories Inc. | Hypervideo: information retrieval using realtime buffers |
US6351776B1 (en) | 1999-11-04 | 2002-02-26 | Xdrive, Inc. | Shared internet storage resource, user interface system, and method |
US6577595B1 (en) | 1999-11-12 | 2003-06-10 | Genuity Inc. | Systems and methods for transporting associated data signals over a network |
US6754699B2 (en) | 2000-07-19 | 2004-06-22 | Speedera Networks, Inc. | Content delivery and global traffic management network system |
US6405252B1 (en) | 1999-11-22 | 2002-06-11 | Speedera Networks, Inc. | Integrated point of presence server network |
US6484143B1 (en) | 1999-11-22 | 2002-11-19 | Speedera Networks, Inc. | User device and system for traffic management and content distribution over a world wide area network |
US6694358B1 (en) | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US6754706B1 (en) | 1999-12-16 | 2004-06-22 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US6415368B1 (en) | 1999-12-22 | 2002-07-02 | Xerox Corporation | System and method for caching |
US20020040404A1 (en) | 2000-01-28 | 2002-04-04 | Ibeam Broadcasting Corporation. | System and method for performing broadcast-enabled disk drive replication in a distributed data delivery network |
AU2001234620A1 (en) | 2000-01-28 | 2001-08-07 | Ibeam Broadcasting Corporation | Method and apparatus for client-side authentication and stream selection in a content distribution system |
WO2001055913A1 (en) | 2000-01-28 | 2001-08-02 | Williams Communications, Llc | Method of utilizing a single uniform resource locator for resources with multiple formats |
WO2001056266A2 (en) | 2000-01-28 | 2001-08-02 | Ibeam Broadcasting Corporation | Method and apparatus for encoder-based distribution of live video and other streaming content |
AU2001236577A1 (en) | 2000-01-28 | 2001-08-07 | Williams Communications, Llc | A system and method for mirroring and caching compressed data in a content distribution system |
MXPA02007308A (en) | 2000-01-28 | 2004-11-12 | Williams Comm Llc | A system and method for determining optimal server in a distributed network for serving content streams. |
AU2001234628A1 (en) | 2000-01-28 | 2001-08-07 | Ibeam Broadcasting Corporation | Method and system for real-time distributed data mining and analysis for networks |
US6718328B1 (en) | 2000-02-28 | 2004-04-06 | Akamai Technologies, Inc. | System and method for providing controlled and secured access to network resources |
US20020116444A1 (en) | 2000-02-29 | 2002-08-22 | Imran Chaudhri | Method and system for providing intelligent network content delivery |
US6963910B1 (en) | 2000-03-03 | 2005-11-08 | International Business Machines Corporation | Graphical user interface for creating assets |
US6763377B1 (en) | 2000-03-03 | 2004-07-13 | International Business Machines Corporation | Asset management and scheduling graphical user interface for media streamer |
US7117259B1 (en) | 2000-03-03 | 2006-10-03 | International Business Machines Corporation | Server time window for multiple selectable servers in a graphical user interface |
US6981180B1 (en) | 2000-03-16 | 2005-12-27 | Akamai Technologies, Inc. | Method and apparatus for testing request-response service using live connection traffic |
US20010027491A1 (en) | 2000-03-27 | 2001-10-04 | Terretta Michael S. | Network communication system including metaswitch functionality |
JP3617406B2 (en) | 2000-03-30 | 2005-02-02 | 日本電気株式会社 | Quality assurance type communication service providing method and service providing method corresponding to multi-domain and service mediating apparatus |
US7058706B1 (en) | 2000-03-31 | 2006-06-06 | Akamai Technologies, Inc. | Method and apparatus for determining latency between multiple servers and a client |
US7024466B2 (en) | 2000-04-07 | 2006-04-04 | Movielink, Llc | Network configured for delivery of content for download to a recipient |
JP2001290787A (en) | 2000-04-10 | 2001-10-19 | Ntt Communications Kk | Data distribution method and storage medium with data distribution program stored therein |
US6996616B1 (en) | 2000-04-17 | 2006-02-07 | Akamai Technologies, Inc. | HTML delivery from edge-of-network servers in a content delivery network (CDN) |
US6976090B2 (en) | 2000-04-20 | 2005-12-13 | Actona Technologies Ltd. | Differentiated content and application delivery via internet |
JP2001312434A (en) | 2000-04-28 | 2001-11-09 | Nippon Telegr & Teleph Corp <Ntt> | Information distribution system |
US7577754B2 (en) | 2000-04-28 | 2009-08-18 | Adara Networks, Inc. | System and method for controlling access to content carried in a caching architecture |
US20030158923A1 (en) | 2000-05-04 | 2003-08-21 | Reed Burkhart | System and method for automated negotiation for and allocation of a broadcast satellite, communication and caching system resource |
US7562153B2 (en) | 2000-05-12 | 2009-07-14 | AT&T Intellectual Property II, L. P. | Method and apparatus for content distribution network brokering and peering |
US20020016835A1 (en) | 2000-05-25 | 2002-02-07 | Gary Gamerman | System and method for cascaded distribution of processing |
JP4690628B2 (en) | 2000-05-26 | 2011-06-01 | アカマイ テクノロジーズ インコーポレイテッド | How to determine which mirror site should receive end-user content requests |
US7096263B2 (en) | 2000-05-26 | 2006-08-22 | Akamai Technologies, Inc. | Method for predicting file download time from mirrored data centers in a global computer network |
US7028083B2 (en) | 2000-05-26 | 2006-04-11 | Akomai Technologies, Inc. | Method for extending a network map |
CA2410853A1 (en) | 2000-06-01 | 2001-12-06 | Aerocast.Com, Inc. | Preloading content objects on content exchanges |
US20010049732A1 (en) | 2000-06-01 | 2001-12-06 | Raciborski Nathan F. | Content exchange apparatus |
US20010051980A1 (en) | 2000-06-01 | 2001-12-13 | Raciborski Nathan F. | Preloading content objects on content exchanges |
US6829654B1 (en) | 2000-06-23 | 2004-12-07 | Cloudshield Technologies, Inc. | Apparatus and method for virtual edge placement of web sites |
US6999988B2 (en) | 2000-07-13 | 2006-02-14 | Lucent Technologies Inc. | Method and system for data layout and replacement in distributed streaming caches on the Internet |
US7725602B2 (en) | 2000-07-19 | 2010-05-25 | Akamai Technologies, Inc. | Domain name resolution using a distributed DNS network |
US7912978B2 (en) | 2000-07-19 | 2011-03-22 | Akamai Technologies, Inc. | Method for determining metrics of a content delivery and global traffic management network |
US7155723B2 (en) | 2000-07-19 | 2006-12-26 | Akamai Technologies, Inc. | Load balancing service |
US20020016831A1 (en) | 2000-08-07 | 2002-02-07 | Vidius Inc. | Apparatus and method for locating of an internet user |
US7103564B1 (en) | 2000-08-17 | 2006-09-05 | International Business Machines Corporation | Method and apparatus for performing personalization based on classification |
US6732237B1 (en) | 2000-08-29 | 2004-05-04 | Oracle International Corporation | Multi-tier caching system |
WO2002019097A1 (en) | 2000-09-01 | 2002-03-07 | International Interactive Commerce, Ltd. | System and method for collaboration using web browsers |
US6950623B2 (en) | 2000-09-19 | 2005-09-27 | Loudeye Corporation | Methods and systems for dynamically serving in-stream advertisements |
US7010578B1 (en) | 2000-09-21 | 2006-03-07 | Akamai Technologies, Inc. | Internet content delivery service with third party cache interface support |
US20020083124A1 (en) | 2000-10-04 | 2002-06-27 | Knox Christopher R. | Systems and methods for supporting the delivery of streamed content |
KR20020030610A (en) | 2000-10-19 | 2002-04-25 | 스톰 씨엔씨 인코포레이티드 | A method for preventing reduction of sales amount of phonograph records by way of digital music file unlawfully circulated through communication network |
AU2002237748A1 (en) | 2000-10-19 | 2002-05-21 | Loudeye Technologies, Inc. | System and method for selective insertion of content into streaming media |
US6970939B2 (en) | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
US6963980B1 (en) | 2000-11-16 | 2005-11-08 | Protegrity Corporation | Combined hardware and software based encryption of databases |
WO2002077971A1 (en) | 2000-11-22 | 2002-10-03 | Williams Communications, Llc | Real time internet transcript presentation system |
US20020066038A1 (en) | 2000-11-29 | 2002-05-30 | Ulf Mattsson | Method and a system for preventing impersonation of a database user |
US6651141B2 (en) * | 2000-12-29 | 2003-11-18 | Intel Corporation | System and method for populating cache servers with popular media contents |
US6751673B2 (en) | 2001-01-03 | 2004-06-15 | Akamai Technologies, Inc. | Streaming media subscription mechanism for a content delivery network |
US20020138437A1 (en) | 2001-01-08 | 2002-09-26 | Lewin Daniel M. | Extending an internet content delivery network into an enterprise environment by locating ICDN content servers topologically near an enterprise firewall |
US20020092026A1 (en) | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for broadcast delivery of content to a client-side cache based on user preferences |
US20020131645A1 (en) | 2001-01-16 | 2002-09-19 | Packeteer Incorporated | Method and apparatus for optimizing a JPEG image using regionally variable compression levels |
WO2002057917A2 (en) | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US6963981B1 (en) | 2001-01-29 | 2005-11-08 | Akamai Technologies, Inc. | Method and apparatus for remote installation of an operating system over a network connection |
US6859840B2 (en) | 2001-01-29 | 2005-02-22 | Kasenna, Inc. | Prefix caching for media objects |
KR100392089B1 (en) | 2001-02-02 | 2003-07-22 | 스톰 씨엔씨 인코포레이티드 | A method for preventing reduction of sales amount of phonograph records by way of digital music file unlawfully circulated through communication network |
US6699418B2 (en) | 2001-02-23 | 2004-03-02 | Kuraray Co., Ltd. | Method for producing biaxially stretched film made of ethylene-vinyl alcohol copolymer |
US7003572B1 (en) | 2001-02-28 | 2006-02-21 | Packeteer, Inc. | System and method for efficiently forwarding client requests from a proxy server in a TCP/IP computing environment |
WO2002071242A1 (en) | 2001-03-01 | 2002-09-12 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
EP1374080A2 (en) | 2001-03-02 | 2004-01-02 | Kasenna, Inc. | Metadata enabled push-pull model for efficient low-latency video-content distribution over a network |
US20020133537A1 (en) | 2001-03-12 | 2002-09-19 | Whizz Technology Ltd. | Server cluster and server-side cooperative caching method for use with same |
KR100413627B1 (en) | 2001-03-19 | 2003-12-31 | 스톰 씨엔씨 인코포레이티드 | System for jointing digital literary works against unlawful reproduction through communication network and method for there of |
WO2002079905A2 (en) | 2001-04-02 | 2002-10-10 | Akamai Technologies, Inc. | Scalable, high performance and highly available distributed storage system for internet content |
US7197536B2 (en) | 2001-04-30 | 2007-03-27 | International Business Machines Corporation | Primitive communication mechanism for adjacent nodes in a clustered computer system |
US7185052B2 (en) | 2001-05-16 | 2007-02-27 | Akamai Technologies, Inc. | Meta content delivery network system |
US6741990B2 (en) | 2001-05-23 | 2004-05-25 | Intel Corporation | System and method for efficient and adaptive web accesses filtering |
US7007089B2 (en) | 2001-06-06 | 2006-02-28 | Akarnai Technologies, Inc. | Content delivery network map generation using passive measurement data |
AU2002334947A1 (en) | 2001-06-14 | 2003-01-21 | Cable And Wireless Internet Services, Inc. | Secured shared storage architecture |
US6970432B1 (en) | 2001-06-18 | 2005-11-29 | Packeteer, Inc. | System and method for dynamically identifying internal hosts in a heterogeneous computing environment with multiple subnetworks |
WO2002103521A1 (en) | 2001-06-19 | 2002-12-27 | Cable & Wireless Internet Services, Inc. | Real-time streaming media measurement system and method |
US20020199016A1 (en) | 2001-06-22 | 2002-12-26 | Freedman Avraham T. | Automated control of outbound transist links in a multi-homed BGP routing environment |
US6986018B2 (en) | 2001-06-26 | 2006-01-10 | Microsoft Corporation | Method and apparatus for selecting cache and proxy policy |
US7734781B2 (en) | 2001-07-09 | 2010-06-08 | Savvis Communications Corporation | Methods and systems for shared storage virtualization |
US6708137B2 (en) | 2001-07-16 | 2004-03-16 | Cable & Wireless Internet Services, Inc. | System and method for providing composite variance analysis for network operation |
US7188085B2 (en) | 2001-07-20 | 2007-03-06 | International Business Machines Corporation | Method and system for delivering encrypted content with associated geographical-based advertisements |
JP4198053B2 (en) | 2001-08-04 | 2008-12-17 | コンティキ・インコーポレイテッド | Method and apparatus for facilitating distribution and delivery of content over a computer network |
US7012900B1 (en) | 2001-08-22 | 2006-03-14 | Packeteer, Inc. | Method for measuring network delay using gap time |
WO2003027875A1 (en) | 2001-09-24 | 2003-04-03 | Loudeye Corp. | Systems and methods or enhancing streaming media |
US7406522B2 (en) | 2001-09-26 | 2008-07-29 | Packeteer, Inc. | Dynamic partitioning of network resources |
US7860964B2 (en) | 2001-09-28 | 2010-12-28 | Level 3 Communications, Llc | Policy-based content delivery network selection |
US6839758B2 (en) | 2001-09-28 | 2005-01-04 | Intel Corporation | Network processor for cache array routing |
JP4160506B2 (en) | 2001-09-28 | 2008-10-01 | レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. | Configurable adaptive wide area traffic control and management |
US7373644B2 (en) | 2001-10-02 | 2008-05-13 | Level 3 Communications, Llc | Automated server replication |
US20030095660A1 (en) | 2001-10-15 | 2003-05-22 | Overpeer, Inc. | System and method for protecting digital works on a communication network |
US20030079027A1 (en) | 2001-10-18 | 2003-04-24 | Michael Slocombe | Content request routing and load balancing for content distribution networks |
US7054902B2 (en) | 2001-10-23 | 2006-05-30 | Packeteer, Inc. | Multicast delivery systems and methods |
US7013342B2 (en) | 2001-12-10 | 2006-03-14 | Packeteer, Inc. | Dynamic tunnel probing in a communications network |
US6954456B2 (en) | 2001-12-14 | 2005-10-11 | At & T Corp. | Method for content-aware redirection and content renaming |
US7032072B1 (en) | 2001-12-31 | 2006-04-18 | Packeteer, Inc. | Method and apparatus for fast lookup of related classification entities in a tree-ordered classification hierarchy |
US7127713B2 (en) | 2002-01-11 | 2006-10-24 | Akamai Technologies, Inc. | Java application framework for use in a content delivery network (CDN) |
US9167036B2 (en) | 2002-02-14 | 2015-10-20 | Level 3 Communications, Llc | Managed object replication and delivery |
US7133905B2 (en) * | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
JP2004005309A (en) | 2002-06-03 | 2004-01-08 | Matsushita Electric Ind Co Ltd | Content delivery system, and method, or recording medium or program for the same |
GB2389479B (en) | 2002-06-07 | 2005-12-28 | Hewlett Packard Co | Method of serving out video over a network of video servers |
US20030149581A1 (en) | 2002-08-28 | 2003-08-07 | Imran Chaudhri | Method and system for providing intelligent network content delivery |
US7219153B1 (en) | 2002-12-02 | 2007-05-15 | Cisco Technology, Inc. | Methods and apparatus for distributing content |
US7774495B2 (en) | 2003-02-13 | 2010-08-10 | Oracle America, Inc, | Infrastructure for accessing a peer-to-peer network environment |
US20040205162A1 (en) | 2003-04-11 | 2004-10-14 | Parikh Jay G. | Method of executing an edge-enabled application in a content delivery network (CDN) |
US7085893B2 (en) | 2003-09-11 | 2006-08-01 | International Business Machines Corporation | Negotiated distribution of cache content |
US7865508B2 (en) | 2004-04-23 | 2011-01-04 | Tvworks, Llc | Data structures and methods adapted for heterogeneous clients in an information distribution system |
CN101087403B (en) * | 2007-05-31 | 2010-10-06 | 杭州搜视网络有限公司 | Distributed stream media order system based on P2P technology and implementation method for stream media program order |
US20100312861A1 (en) * | 2007-11-30 | 2010-12-09 | Johan Kolhi | Method, network, and node for distributing electronic content in a content distribution network |
US8799806B2 (en) | 2008-12-31 | 2014-08-05 | Verizon Patent And Licensing Inc. | Tabbed content view on a touch-screen device |
-
2009
- 2009-03-21 CA CA2720353A patent/CA2720353C/en active Active
- 2009-03-21 WO PCT/US2009/037904 patent/WO2009123868A2/en active Application Filing
- 2009-03-21 US US12/408,681 patent/US8930538B2/en active Active
- 2009-03-21 EP EP09727342A patent/EP2274684A4/en not_active Ceased
- 2009-03-21 CN CN2009801200430A patent/CN102047244B/en not_active Expired - Fee Related
-
2011
- 2011-10-31 HK HK11111689.0A patent/HK1157466A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP2274684A2 (en) | 2011-01-19 |
CN102047244B (en) | 2013-02-27 |
US8930538B2 (en) | 2015-01-06 |
CN102047244A (en) | 2011-05-04 |
HK1157466A1 (en) | 2012-06-29 |
WO2009123868A3 (en) | 2010-01-07 |
EP2274684A4 (en) | 2012-12-05 |
CA2720353A1 (en) | 2009-10-08 |
US20090254661A1 (en) | 2009-10-08 |
WO2009123868A2 (en) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10218806B2 (en) | Handling long-tail content in a content delivery network (CDN) | |
CA2720353C (en) | Handling long-tail content in a content delivery network (cdn) | |
US11032387B2 (en) | Handling of content in a content delivery network | |
US20220086254A1 (en) | Content delivery network (CDN) cold content handling | |
US8307088B2 (en) | HTML delivery from edge-of-network servers in a content delivery network (CDN) | |
US7185052B2 (en) | Meta content delivery network system | |
US9065809B2 (en) | Method and node for distributing electronic content in a content distribution network | |
US20040255016A1 (en) | Hierarchical caching in telecommunication networks | |
US10924573B2 (en) | Handling long-tail content in a content delivery network (CDN) | |
WO2001089172A2 (en) | Meta content delivery network system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |