Scalable content delivery network request handling mechanism with usage-based billing
First Claim
1. A system, comprising:
- a server managed by a content delivery network service provider on behalf of a plurality of content providers for delivering content associated with the content providers, the server having circuitry forming one or more processors coupled to memory holding non-transitory computer-program instructions to be executed by the one or more processors to run an HTTP proxy server application and with the HTTP proxy server application cause the server to;
receive a first request for particular content from a client device over a network interface, the particular content being associated with a given content provider;
in response to the first request, determine a configuration file stored at the server to apply for handling the first request, the configuration file being associated with any of;
the given content provider and a service provider to the given content provider that is distinct from the content delivery network service provider;
identify, within the configuration file, a content control that indicates how to handle the first request from within a set of content controls stored at the server in the configuration file, the content control comprising a function that relies on a variable;
wherein the content control has at least one dependency on particular control information, wherein the dependency comprises a reference to the particular control information that sets the value of the variable;
extract an identifier from the first request, the extracted identifier comprising any of (i) at least part of a URI, (ii) at least part of a hostname, and (iii) at least part of a request header field;
in response to the identification of the content control with the at least one dependency, send a second request that includes the extracted identifier to a remote host for the particular control information that will satisfy the dependency;
receive the particular control information from the remote host, the particular control information comprising a policy with logic for the server to execute to set the value of the variable;
satisfy the at least one dependency with the particular control information;
apply the content control to determine how to handle the first request, said application of the content control comprising executing the policy and the logic therein, said application occurring prior to serving a response to the first request;
determine a processing cost associated with the one or more processors of the server executing the policy and the logic therein;
log the processing cost;
the remote host having circuitry forming one or more processors coupled to memory holding non-transitory computer-program instructions to be executed by the one or more processors to cause the remote host to;
receive the second request for the particular control information;
select the policy from amongst a plurality of policies, based at least in part on the extracted identifier sent with the second request; and
,send the policy to the server, in response to the second request.
1 Assignment
0 Petitions
Accused Products
Abstract
Described herein are improved systems, methods, and devices for delivering and managing metadata in a distributed computing platform such as a content delivery network (CDN) so as to configure content servers to handle client requests. The teachings hereof provide, among other things, scalable and configurable solutions for delivering and managing metadata, preferably by leveraging dynamically obtained control information. For example, in one embodiment, a given content server may store metadata, e.g., in a configuration file, that references dynamic, late-bound control information for use in satisfying dependencies. This dynamic control information can be requested by the CDN content server, typically from a remote host, when needed to parse and execute the metadata.
-
Citations
25 Claims
-
1. A system, comprising:
-
a server managed by a content delivery network service provider on behalf of a plurality of content providers for delivering content associated with the content providers, the server having circuitry forming one or more processors coupled to memory holding non-transitory computer-program instructions to be executed by the one or more processors to run an HTTP proxy server application and with the HTTP proxy server application cause the server to; receive a first request for particular content from a client device over a network interface, the particular content being associated with a given content provider; in response to the first request, determine a configuration file stored at the server to apply for handling the first request, the configuration file being associated with any of;
the given content provider and a service provider to the given content provider that is distinct from the content delivery network service provider;identify, within the configuration file, a content control that indicates how to handle the first request from within a set of content controls stored at the server in the configuration file, the content control comprising a function that relies on a variable; wherein the content control has at least one dependency on particular control information, wherein the dependency comprises a reference to the particular control information that sets the value of the variable; extract an identifier from the first request, the extracted identifier comprising any of (i) at least part of a URI, (ii) at least part of a hostname, and (iii) at least part of a request header field; in response to the identification of the content control with the at least one dependency, send a second request that includes the extracted identifier to a remote host for the particular control information that will satisfy the dependency; receive the particular control information from the remote host, the particular control information comprising a policy with logic for the server to execute to set the value of the variable; satisfy the at least one dependency with the particular control information; apply the content control to determine how to handle the first request, said application of the content control comprising executing the policy and the logic therein, said application occurring prior to serving a response to the first request; determine a processing cost associated with the one or more processors of the server executing the policy and the logic therein; log the processing cost; the remote host having circuitry forming one or more processors coupled to memory holding non-transitory computer-program instructions to be executed by the one or more processors to cause the remote host to; receive the second request for the particular control information; select the policy from amongst a plurality of policies, based at least in part on the extracted identifier sent with the second request; and
,send the policy to the server, in response to the second request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 22, 24)
-
-
11. A method implemented with a server managed by a service provider on behalf of a plurality of content providers for delivering content associated with the content providers, and a remote host, the method comprising:
-
A. with the server; receiving a first request for particular content from a client device over a network interface, the particular content being associated with one of the content providers; in response to the first request, determining a configuration file stored at the server to apply for handling the first request, the configuration file being associated with any of;
the given content provider and a service provider to the given content provider that is distinct from the content delivery network service provider;identifying, within the configuration file, a content control that indicates how to handle the first request from within a set of content controls stored at the server in the configuration file, the content control comprising a function that relies on a variable; wherein the content control has at least one dependency particular control information, wherein the dependency comprises a reference to the particular control information that sets the value of the variable; extracting an identifier from the first request, the extracted identifier comprising any of (i) at least part of a URI, (ii) at least part of a hostname, and (iii) at least part of a request header field; in response to the identification of the content control with the at least one dependency, sending a second request that includes the extracted identifier to a remote host for the particular control information that will satisfy the dependency; receiving the particular control information from the remote host, the particular control information comprising a policy with logic for the server to execute to set the value of the variable; satisfy the at least one dependency with the particular control information; applying the content control to determine how to handle the first request, said application of the content control comprising executing the policy and the logic therein; determining a processing cost associated with the one or more processors of the server executing the policy and the logic therein; logging the processing cost; B. with the remote host; receiving the second request for the particular control information; selecting the policy from amongst a plurality of policies, based at least in part on the extracted identifier sent with the second request; and
,sending the policy to the server, in response to the second request. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25)
-
Specification