AUTOMATIC NETWORK FORMATION AND ROLE DETERMINATION IN A CONTENT DELIVERY FRAMEWORK
A computer in a content delivery network (CDN) may take on one or more roles within the CDN. A particular computer takes on a first at least one role within the CDN; and then, in response to a change in configuration information, takes on a second at least one role within the CDN, the second at least one role being distinct from the first at least one role.
1 . A method, operable within a content delivery network (CDN), said CDN comprising at least one computer, wherein a computer may take on one or more roles within the CDN, the method comprising, by a particular computer:
(A) taking on a first at least one role within the CDN; and then,
(B) in response to a change in configuration information, taking on a second at least one role within the CDN, said second at least one role being distinct from said first at least one role.
2 . The method of claim 1 wherein each role that the particular computer takes on represents the particular computer's functional role and its relationships to other computers in one or more subnetworks of computers in the CDN.
3 . The method of claim 1 wherein the one or more roles that a computer may take in a CDN are selected from: caching, rendezvous, controlling, collecting, and reducing.
4 . The method of claim 1 wherein the one or more roles that a computer may take in a CDN are implemented by CD services selected from: caching services, rendezvous services, controlling services, collecting services, and reducing services.
5 . The method of claim 2 wherein,
(i) when the particular computer takes on a caching role then the particular computer becomes part of a caching subnetwork in the CDN;
(ii) when the particular computer takes on a rendezvous role then the particular computer becomes part of a rendezvous subnetwork in the CDN;
(iii) when the particular computer takes on a controlling role then the particular computer becomes part of a controlling subnetwork in the CDN;
(iv) when the particular computer takes on a collecting role then the particular computer becomes part of a collecting subnetwork in the CDN; and
(v) when the particular computer takes on a reducing role then the particular computer becomes part of a reducing subnetwork in the CDN.
6 . The method of claim 1 wherein the particular computer is assigned the first at least one role within the CDN upon joining the CDN.
7 . The method of claim 1 wherein the first at least one role comprises a first service constellation and wherein the second at least one role comprises a second service constellation.
8 . The method of claim 1 wherein a role of the particular computer is changed to meet capacity needs in the CDN.
9 . The method of claim 8 wherein the role of the particular computer is changed based on feedback from the CDN.
10 . The method of claim 1 further comprising:
obtaining said configuration information.
11 . A method, operable within a content delivery network (CDN), said CDN comprising at least one computer, wherein a computer may take on one or more roles within the CDN, the method comprising, by a particular computer:
(A)(1) obtaining first configuration information; and then
(A)(2) based on said first configuration information, taking on a first at least one role within the CDN; and then,
(B)(1) obtaining second configuration information; and then
(B)(2) based on said second configuration information, taking on a second at least one role within the CDN, said first configuration information being distinct from said second configuration information,
wherein the second configuration reflects a change in a role of said particular computer, and wherein said role of the particular computer is changed to meet capacity needs in the CDN.
12 . The method of claim 11 wherein the role of the particular computer is changed by said second configuration based on feedback from the CDN.
13 . The method of claim 11 wherein said taking on said first at least one role within the CDN comprises joining a first at least one subnetwork of computers in the CDN.
14 . The method of claim 11 wherein said taking on said second at least one role within the CDN comprises joining a second at least one subnetwork of computers in the CDN.
15 . A method, operable within a content delivery network (CDN), said CDN comprising at least one computer, wherein a computer may take on one or more roles within the CDN, the method comprising, by a particular computer:
(A) joining a first at least one subnetwork of computers in the CDN; and then,
(B) in response to a change in configuration information, joining a first at least one subnetwork of computers in the CDN, said second at least one subnetwork of computers being distinct from said first at least one subnetwork of computers.
16 . The method of claim 15 wherein each said subnetwork of computers corresponds to a role of said particular computer in said CDN.
17 . The method of claim 15 wherein the one or more roles that a computer may take in a CDN are selected from: caching, rendezvous, controlling, collecting, and reducing.
18 . The method of claim 17 wherein subnetworks of computers are selected from: a caching subnetwork, a rendezvous subnetwork, a controlling subnetwork, a collecting subnetwork, and a reducing subnetwork.
19 . A computer program product having computer readable instructions stored on non-transitory computer readable media, the computer readable instructions including instructions for implementing a computer-implemented method, said method operable on a device comprising hardware including memory and at least one processor and running a service on said hardware, said method operable in a content delivery framework, the method comprising, by said device:
(A) taking on a first at least one role within the CDN; and then,
(B) in response to a change in configuration information, taking on a second at least one role within the CDN, said second at least one role being distinct from said first at least one role.
20 . The computer program product of claim 19 wherein the first at least one role and the second at least one role are selected from: caching, rendezvous, controlling, collecting, and reducing.