Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
First Claim
1. A method for delivering resources to clients in a framework in which a plurality of repeater servers form a shared content delivery network (CDN) operable to serve resources to clients on behalf of a plurality of content providers, wherein a first resource is associated with a first content provider of said plurality of content providers, and wherein said first resource references a second resource via at least a first hostname, the method comprising:
- (A) associating the first content provider with the shared CDN such that at least the second resource can be served from the shared CDN to clients on behalf of the first content provider, wherein the associating act (A) comprises;
(a1) configuring each of the plurality of repeater servers with a table listing at least one identifier for each of the plurality of content providers; and
(a2) configuring each of the plurality of repeater servers to record activity related to serving resources therefrom on behalf of the content providers identified in the table; and
(B) after at least a portion of the first resource is served to a client from a content source distinct from said plurality of repeater servers, providing at least a second hostname that is at least partially distinct from the first hostname, and after resolution of the second hostname, serving the second resource to the client from a particular repeater server in the shared CDN selected based, at least in part, on a relative location corresponding to said client and at least some of the plurality of repeater servers, and wherein the serving act (B) comprises;
(b1) if a copy of the second resource is available on the particular repeater server, serving the copy of the second resource to the client from the particular repeater server;
otherwise,(b2) if a copy of the second resource is not available on the particular repeater server,(b21) replicating the second resource on the particular repeater server, and(b22) serving the replicated second resource to the client from the particular repeater server; and
(C) responsive to the serving act (B), recording by the particular repeater server, information related to the serving of the second resource.
9 Assignments
0 Petitions
Accused Products
Abstract
A plurality of repeater servers form a shared content delivery network (CDN) to serve resources to clients on behalf of a plurality of content providers. First and second resources are associated with a first content provider, the first resource referencing the second resource. The second resource is associated with a domain of the shared CDN. Responsive to a request that causes the first resource to be served to a client from a server in a domain associated with the first content provider, a CDN server is identified in the domain associated with the shared CDN to serve the second resource to the client. The CDN server is selected based, at least in part, on load conditions on at least some of the CDN servers, and on the client'"'"'s location. Responsive to the CDN server being requested to serve the second resource: if a copy of the second resource is available on the CDN server, the copy is served to the client from the CDN server; otherwise, the second resource is replicated on the CDN server and then served to the client from the CDN server.
-
Citations
34 Claims
-
1. A method for delivering resources to clients in a framework in which a plurality of repeater servers form a shared content delivery network (CDN) operable to serve resources to clients on behalf of a plurality of content providers, wherein a first resource is associated with a first content provider of said plurality of content providers, and wherein said first resource references a second resource via at least a first hostname, the method comprising:
-
(A) associating the first content provider with the shared CDN such that at least the second resource can be served from the shared CDN to clients on behalf of the first content provider, wherein the associating act (A) comprises; (a1) configuring each of the plurality of repeater servers with a table listing at least one identifier for each of the plurality of content providers; and (a2) configuring each of the plurality of repeater servers to record activity related to serving resources therefrom on behalf of the content providers identified in the table; and (B) after at least a portion of the first resource is served to a client from a content source distinct from said plurality of repeater servers, providing at least a second hostname that is at least partially distinct from the first hostname, and after resolution of the second hostname, serving the second resource to the client from a particular repeater server in the shared CDN selected based, at least in part, on a relative location corresponding to said client and at least some of the plurality of repeater servers, and wherein the serving act (B) comprises; (b1) if a copy of the second resource is available on the particular repeater server, serving the copy of the second resource to the client from the particular repeater server;
otherwise,(b2) if a copy of the second resource is not available on the particular repeater server, (b21) replicating the second resource on the particular repeater server, and (b22) serving the replicated second resource to the client from the particular repeater server; and (C) responsive to the serving act (B), recording by the particular repeater server, information related to the serving of the second resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for delivering resources to clients on behalf of a plurality of content providers, wherein at least a first resource maintained on an origin server associated with a first content provider of said plurality of content providers references a second resource via at least a first hostname, the method comprising:
-
(A) providing a plurality of repeater servers distinct from the origin server; (B) configuring each of the plurality of repeater servers with a table listing at least one identifier for each of the plurality of content providers; and (C) configuring each of the plurality of repeater servers to record activity related to serving resources therefrom on behalf of the content providers identified in the table; (D) after at least a portion of the first resource is served to a client from the origin server, providing at least a second hostname that is at least partially distinct from the first hostname, and after resolution of the second hostname, serving the second resource to the client from a particular repeater server of said plurality of repeater servers, and wherein the serving act (D) comprises; (d1) if a copy of the second resource is available on the particular repeater server, serving the copy of the second resource to the client from the particular repeater server;
otherwise,(d2) replicating the second resource on the particular repeater server and then serving the replicated second resource to the client from the particular repeater server, said particular repeater server having been selected based, at least in part, on a relative location corresponding to said client and at least some of the plurality of repeater servers; and (E) responsive to the serving act (D), recording, by the particular repeater server, information related to the serving of the second resource. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for delivering resources to clients in a distributed computing framework, said framework including a shared network formed by a plurality of repeater servers operable to serve resources to clients on behalf of the plurality of content providers, wherein at least a first resource associated with a first content provider of said plurality of content providers references a second resource via at least a first hostname, the method comprising:
-
(A) configuring each of the plurality of repeater servers with a table listing at least one identifier for each of the plurality of content providers, including the first content provider; (B) configuring each of the plurality of repeater servers to record activity related to serving resources therefrom on behalf of the content providers identified in the table; (C) after at least a portion of the first resource is served to a client from a content source distinct from said plurality of repeater servers, providing at least a second hostname that is at least partially distinct from the first hostname, and after resolution of the second hostname, serving the second resource to the client from a particular repeater server in the network selected based at least in part on a location corresponding to said client, and wherein the serving step comprises; and (c1) if a copy of the second resource is available on the particular repeater server, serving the copy of the second resource to the client from the particular repeater server;
otherwise,(c2) replicating the second resource on the particular repeater server and then serving the replicated second resource to the client from the particular repeater server; and (D) responsive to the serving act (C), recording, by the particular repeater server, information related to the serving of the second resource. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method for delivering resources to clients on behalf of a plurality of content providers, wherein at least a first resource is maintained on at least a first origin server associated with a first content provider of said plurality of content providers, and wherein at least a second resource is maintained on at least a second origin server associated with a second content provider of said plurality of content providers, said second content provider being distinct from said first content provider, and wherein said first resource references a third resource and wherein said second resource references a fourth resource, the method comprising:
-
(A) providing a plurality of repeater servers distinct from the first origin server and the second origin server; (B) configuring each of the plurality of repeater servers with a table listing at least one identifier for each of the plurality of content providers, including the first content provider and the second content provider, wherein the table configured on each of the plurality of repeater servers further comprises at least one origin server identifier corresponding to each of the content provider identifiers; (C) configuring each of the plurality of repeater servers to record activity related to serving resources therefrom on behalf of the content providers identified in the table; and (D) after the first resource has been served to a first client from the first origin server, serving the third resource to the first client from a particular repeater server of said plurality of repeater servers, wherein the serving act comprises; (d1) if a copy of the third resource is available on the particular repeater server, serving the copy of the third resource to the client from the particular repeater server;
otherwise,(d2) replicating the third resource on the particular repeater server and then serving the third resource to the client from the particular repeater server, the replicating act (d2) further comprising; referencing the table using at least the identifier of the first content provider to determine an origin server associated with the first content provider; and retrieving the third resource from the origin server associated with the first content provider, said particular repeater server having been selected to serve the third resource to the first client based, at least in part, on a relative location corresponding to said first client and at least some of the plurality of repeater servers; (E) responsive to said serving act (D), recording by the particular repeater server, information related to the serving of the third resource; and (F) after the second resource has been served to a second client from the second origin server, serving the fourth resource to the second client from the particular repeater server, wherein the serving act comprises; (f1) if a copy of the fourth resource is available on the particular repeater server, serving the copy of the fourth resource to the second client from the particular repeater server;
otherwise,(f2) replicating the fourth resource on the particular repeater server and then serving the fourth resource to the second client from the particular repeater server, the replicating act (f2) further comprising; referencing the table using at least the identifier of the second content provider to determine an origin server associated with the second content provider; and retrieving the fourth resource from the origin server associated with the second content provider, said particular repeater server having been selected to serve the fourth resource to the second client based, at least in part, on a relative location corresponding to said second client and at least some of the plurality of repeater servers; and (G) responsive to said serving act (F), recording by the particular repeater server, information related to the serving of the fourth resource. - View Dependent Claims (32, 33, 34)
-
Specification