[May 24, 2001] Edge Side Includes (ESI) ia "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."
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.
"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..." - From the specification.
"ESI Version 1.0 includes the following functionality: (1) Inclusion - ESI can compose pages by assembling included content, which is fetched from the network. This allows each such fragment to have its own metadata (e.g., cacheability and handling information) seperately associated. (2) Variable support - ESI 1.0 supports the use of variables based on HTTP request attributes in a manner reminiscent of the Common Gateway Interface. These variables can be used by ESI statements or written directly into the processed markup. (3) Conditional processing - ESI allows conditional logic with Boolean comparisons to be used to influence how a template is processed. (4) Exception and error handling - ESI provides for specification of alternate and default resources in a number of situations. The ESI assembly model is comprised of a template containing fragments. The template is the container for assembly, with instructions for the retrival of fragments, and is the resource associated with the URL the end user requests. It includes ESI elements that instructs ESI Processors (clients that understand ESI) to fetch and include a fragment's URI. The fragments themselves can be any textual Web resource, typically HTML markup. Because fragments are separate resources, they can be assigned their own cacheability and handling information. For example, a cache time-to-live (TTL) of several days could be appropriate for the template, but a fragment containing a frequently-changing story or ad may require a much lower TTL. Some fragments may require being marked uncacheable."
"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." - From the announcement 2001-05-15.
- ESI web site
- ESI Technical FAQ
- ESI industry support
- Specification list from Akamai
- ESI Language Technical Specification 1.0, [cache]
- Edge Architecture Specification
- ESI Invalidation Protocol. "This specification defines the ESI Invalidation Protocol, to allow for tight coherence between origin serves and surrogates, also know as Reverse Proxies'."
- JESI Tag Library Specification. "The Java ESI tag library is intended to be the convenient JSP application-level interface to the ESI tags for web caching functionality. Its purpose is to facilitate the use of ESI tags within a JSP application."
- [December 20, 2001] "CDNs Edge Into App Delivery. [Content Networking.]" By Cathleen Moore, Stephen Lee, and Martin LaMonica. In InfoWorld Issue 51 (December 17, 2001), page 20. "The increased use of dynamic content and the rise of Web services are pushing enterprise application distribution to the edge of networks and into CDNs (content delivery networks). CDN providers such as Akamai Technologies are growing beyond first-generation Web content delivery functions into distributed application delivery, whereas network equipment providers such as Cisco are offering gear to build dynamic content networking platforms within enterprises. Cambridge, Mass.-based Akamai has tapped a technique called ESI (Edge Side Includes) to evolve its model for speeding Web content into a distributed computing network that executes applications at the edge of the network. Co-developed with Oracle, ESI is a markup language that creates an interface between application servers and a globally distributed network. Akamai has relationships with application server vendors, including IBM, Oracle, and BEA Systems. This month, CDN provider Speedera Networks, of Santa Clara, Calif., announced support for ESI... Akamai's network of 13,000 servers supports XSLT (Extensible Stylesheet Language Transformation), used to transform XML into various content formats. In the second half of next year, the company plans to build support for a variety of Web services standards and protocols into its network, said Kieran Taylor, Akamai director of product management..." [Edge Side Includes (ESI) is a simple markup language used to define Web page components for dynamic assembly and delivery of Web applications at the edge of the Internet. ESI provides a mechanism for managing content transparently across application server solutions, content management systems and content delivery networks. As a result, ESI enables companies to develop Web applications once and choose at deployment time where the application should be assembled -- on the content management system, the application server or the content delivery network, thus reducing complexity, development time and deployment costs. The ESI open standard specification is being co-authored by Akamai, ATG, BEA Systems, Circadence, Digital Island, IBM, Interwoven, Oracle, and Vignette."]
- [October 19, 2001] "Akamai and Interwoven Enhance Management and Distribution of Dynamic Web Content. Complementary Technologies Leverage Edge Side Includes (ESI) to Streamline the Creation, Testing and Delivery of Dynamic Content and Applications." - "Akamai Technologies, Inc. announced an expansion of its ongoing technology alliance with Interwoven Inc., the leading provider of Content Infrastructure, that will result in the industry's first integrated solution for managing and delivering ESI-based content and applications. Integrating complementary technologies, Akamai and Interwoven are now jointly leveraging the open specification Edge Side Includes (ESI), a simple mark-up language used to define Web page components for dynamic assembly and delivery from distributed servers at the Internet's edge. A customer using Interwoven TeamSite and the Akamai EdgeSuite offering will now be able to use TeamSite software to virtualize application fragments to be cached and delivered via Akamai's global network. As Interwoven's Content Infrastructure software and Akamai's content delivery services integrate with application server technologies from leaders such as BEA, IBM and Oracle, this becomes the first time that all of the elements that make up a Web infrastructure solution -- content infrastructure, application serving, and content delivery -- can communicate through a unified layer of technology... ESI technology enables Interwoven TeamSite customers to off-load the burden of assembling dynamic content to Akamai's network of over 13,000 servers. Interwoven TeamSite Templating software, an XML-based publishing solution that empowers all members of an organization to contribute content, will facilitate the inclusion of ESI tags and metadata thereby accelerating the creation of dynamic Web pages that can be delivered from the edge. Through the integrated solution, application fragments and ESI content managed within TeamSite can also be tested and previewed, behind the firewall, to improve efficiency and ensure quality prior to deployment for run-time delivery via Akamai's network."
- [October 02, 2001] "Akamai and IBM to Drive Advances in E-Business Infrastructure for Enterprises." - "Akamai Technologies, Inc. and IBM have announced next-generation Internet infrastructure services that will combine IBM's WebSphere e-infrastructure software, Web-hosting and content delivery for enterprises that use Akamai's globally distributed network of nearly 12,000 servers at the Internet's edge. Specifically, Akamai and IBM plan to collaborate on ways to use IBM's WebSphere e-infrastructure software to manage high-volume transactions and speed deployment of e-business applications on Akamai's global network... IBM's WebSphere software will be enabled to interoperate with the Akamai EdgeSuite service by leveraging Edge Side Includes (ESI), a simple mark-up language and proposed standard for the dynamic assembly of Web page fragments, such as stock quotes and individual catalog prices. By using the ESI-enabled WebSphere Edge Server and Akamai EdgeSuite, customers will be equipped to build, deploy, and manage highly dynamic Web sites and applications that capitalize on the performance and cost benefits of edge computing. For example, a retail site could construct Web pages by linking individual fragments, including a promotional graphic or sale price, targeted and delivered from Akamai's global network... The WebSphere Edge Server will benefit customers served by the Akamai network due to its ability to execute high-volume transactions - WebSphere customers manage billions of transactions per day around the world - and its support of Web services, which enables the linking and integration of business applications across a wide spectrum of different computing systems. In addition to ESI, the WebSphere family of products supports all major open Internet standards, including J2EE, XML and all of its derivative technologies such as UDDI and SOAP..."
- [September 28, 2001] "BEA and Akamai Team to Enhance Customer Experience by Optimizing Performance of E-Business Applications. Companies to align offerings for agile e-business infrastructure through Edge Side Includes (ESI)." - "BEA Systems, Inc. , one of the world's leading e-business infrastructure software companies, and Akamai Technologies, Inc., a leading provider of outsourced e-business infrastructure services and software, today announced a relationship designed to help e-businesses reliably deliver Web-based applications while minimizing their infrastructure requirements. The BEA WebLogic E-Business Platform, a single solution for enterprise and e-business applications that require commerce, portal, integration and Web Services, will support the Edge Side Includes (ESI) mark-up language and the Java-based custom tag library for ESI (JESI). As a result, BEA WebLogic will be able to interoperate with services such as Akamai's EdgeSuite service to simplify the development and deployment of dynamic e-business applications. Web-enabled enterprises are increasingly evolving beyond the display of static Web pages to include dynamically generated content, such as product catalogs, auctions, exchanges, stock quotes, and personalized content. The creation of this dynamic content places significant strain on traditional Web site architectures, and hinders performance - which means that pages download more slowly, the user experience is worsened, and impatient customers are potentially lost. By incorporating ESI functionality, BEA WebLogic will give users the flexibility and benefits of distributing the assembly of dynamic content and applications to Akamai's globally distributed network of nearly 12,000 servers at the Internet's edge - optimally located near end-users..."
- 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."
- 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]
- See: W3C XInclude as Last Call Working Draft