Several leading companies recently announced support for Edge Side Includes (ESI) as an open specification for managing content transparently across Application Server solutions, Content Infrastructure, Content Management Systems, and Content Delivery Network industries. Edge Side Includes (ESI) "accelerates dynamic Web-based applications by defining a simple markup language to describe cacheable and non-cacheable Web page components that can be aggregated, assembled, and delivered at the network edge. The Edge Side Includes (ESI) specification defines an XML-based markup language that provides a means to assemble resources in HTTP clients. Unlike other in-markup languages, ESI is designed to leverage client tools like caches to improve end-user perceived performance, reduce processing overhead on the origin server, and enhanced availability. ESI allows for dynamic content assembly at the edge of the network, whether it is in a Content Delivery Network, end-user's browser, or in a 'Reverse Proxy' right next to the origin server. ESI is primarily intended for processing on surrogates (intermediaries that operate on behalf of the origin server, also known as 'Reverse Proxies') that understand the ESI language. However, its application is not restricted to these devices. ESI also specifies a content invalidation protocol for transparent content management across ESI-compliant solutions, such as application servers and content delivery networks. The ability to assemble dynamic pages from individual page fragments means that only non-cacheable or expired fragments need to be fetched from the origin Web site, thereby lowering the need to retrieve complete pages and decreasing the load on the Web site's content generation infrastructure."
From the 2001-05-15 announcement and specification:
Akamai, ATG, BEA Systems, Circadence, Digital Island, IBM, Interwoven, Oracle, and Vignette have co-authored the specification as a proposed open language for creating a uniform programming model that facilitates interoperability of ESI-compliant applications across multiple vendor implementations. In addition, Fort Point Partners, <kpe>, Macromedia, Mirror Image, Open Market, and SilverStream have endorsed ESI as a proposed specification to provide more flexible and cost-effective solutions to their customers.
ESI is an XML language designed to be interposed into markup to provide logic and dispatch services, targetted for processing after the markup has left the origin server, but before it is paginated by the end user's client. As a result, the markup that is emitted by the origin server is not valid; it contains interposed elements from the ESI namespace. Additionally, it may contain native markup (e.g., HTML) that will not exist in the paginated entity. XInclude is a W3C effort to standardize a general inclusion mechanism for XML. The inclusion aspect of ESI is somewhat similar to XInclude, with additional semantics for failure handling. Additionally, ESI processing is targetted (usually, to surrogates), while XInclude doesn't define explicit or implicit targetting of processing. It is our hope that future development of ESI and XInclude may be coordinated, bringing them into alignment. Additionally, ESI borrows some portions of the XSLT language for logic and processing control... There are several proprietary in-markup languages available (e.g., PHP, SSI, etc.), as well as a few standardized solutions (e.g., EMCAScript, etc.). ESI is not intended to replace these languages. It is expected that ESI will be used in concert with both content generation and client scripting markup. When ESI is processed on the same device as other markup (e.g., Server Side Includes), some form of precedence in processing will need to be defined. This determination is currently implementation-specific.
ESI elements are XML, in an ESI-specific XML Namespace http://www.edge-delivery.org/esi/1.0. This allows them to be embedded in many common Web document formats, including HTML and XML-based server-side processing languages. ESI Processors parse but do not process elements outside of the ESI namespace. When an ESI Processor processes a template, ESI elements are stripped from the output.
Principal references:
- Announcement: "Industry Leaders Co-Author Specification for Dynamic Assembly of Web Applications and Content. Akamai, ATG, BEA Systems, Circadence, Digital Island, Fort Point Partners, IBM, Interwoven, <kpe>, Macromedia, Mirror Image, Open Market, Oracle, SilverStream, and Vignette Promote Edge Side Includes (ESI) as Open Specification." [source, alt URL]
- ESI web site
- Overview
- ESI Technical FAQ
- ESI industry support
- Specification list from Akamai
- ESI Language Technical Specification 1.0
- Announcement April 30, 2001: "Oracle and Akamai Deliver Technology to Accelerate Web Applications and Content. Oracle9i Application Server and Akamai's EdgeSuiteSM service interoperate to enable companies to develop and deploy dynamic Web sites and applications."
- W3C XInclude as Last Call WD
- "Edge Side Includes (ESI)" - Main reference page.