Dynamic content assembly on edge-of-network servers in a content delivery network
First Claim
1. A method, operative at a network server, for processing a request for a container, wherein the container comprises markup identifying one or more content fragments and the container and each content fragment may have a distinct cache profile, comprising:
- determining if the container is cached at the server or needs to be refreshed;
if the container is not cached at the server or needs to be refreshed, contacting an origin server or another network server to obtain the container;
instantiating a given processor selected based on a content type of the container;
processing the container to identify page assembly instructions and markup for a given content fragment;
determining if the given content fragment identified by the markup is cached at the server or needs to be refreshed; and
if the given content fragment identified by the markup is not cached at the server or needs to be refreshed, contacting an origin server or another network server to obtain the given content fragment;
assembling the given content fragment into the container according to the page assembly instructions; and
delivering the container having the given content fragment assembled therein as a response to the request.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention enables a content provider to dynamically assemble content at the edge of the Internet, preferably on content delivery network (CDN) edge servers. Preferably, the content provider leverages an “edge side include” (ESI) markup language that is used to define Web page fragments for dynamic assembly at the edge. Dynamic assembly improves site performance by catching the objects that comprise dynamically generated pages at the edge of the Internet, close to the end user. The content provider designs and develops the business logic to form and assemble the pages, for example, by using the ESI language within its development environment. Instead of being assembled by an application/web server in a centralized data center, the application/web server sends a page template and content fragments to a CDN edge server where the page is assembled. Each content fragment can have its own cacheability profile to manage the “freshness” of the content. Once a user requests a page (template), the edge server examines its cache for the included fragments and assembles the page on-the-fly.
194 Citations
20 Claims
-
1. A method, operative at a network server, for processing a request for a container, wherein the container comprises markup identifying one or more content fragments and the container and each content fragment may have a distinct cache profile, comprising:
-
determining if the container is cached at the server or needs to be refreshed; if the container is not cached at the server or needs to be refreshed, contacting an origin server or another network server to obtain the container; instantiating a given processor selected based on a content type of the container; processing the container to identify page assembly instructions and markup for a given content fragment; determining if the given content fragment identified by the markup is cached at the server or needs to be refreshed; and if the given content fragment identified by the markup is not cached at the server or needs to be refreshed, contacting an origin server or another network server to obtain the given content fragment; assembling the given content fragment into the container according to the page assembly instructions; and delivering the container having the given content fragment assembled therein as a response to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A mechanism operative on a network server for assembling content fragments into a container, wherein the container comprises markup identifying one or more content fragments and the container and each content fragment may have a distinct cacheability and access profile, comprising:
-
a set of one or more processors, wherein a given processor is associated with a given content type; an application programming interface (API) responsive to a request for the container or a given content fragment for (a) parsing markup and generating a representation of the markup, and (b) for instantiating a given processor to process the request depending on the given content type in the markup; wherein the given processor serializes given data generated during the processing of the request according to the representation to generate a response. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus operating as a surrogate origin server in a content delivery network for receiving end user requests for a container, wherein the container comprises markup identifying one or more content fragments, comprising:
-
a cache; a set of one or more processors, wherein a given processor is associated with a given content type; and code responsive to a request for a container (a) for instantiating a base processor according to content provider-specific metadata, and (b) for instantiating one or more additional processors as needed by the base processor to thereby assemble given content fragments into the container to produce an assembled document; wherein the container and each content fragment may each have a distinct cacheability and/or refresh profile.
-
Specification