Escenic is a leading template based Strategic Content Management System. It is a family of several products out of which the following are predominantly used in various media applications:
• Escenic Content Engine
• Escenic Web Studio
• Escenic Content Studio
• Escenic Modules
o Article Comments
o Article Categories and Taxonomy
o Forum
o Menu Editor
o Geotagging
o Poll
• Escenic Ad Manager
• Escenic Analysis Engine
For a complete list of Escenic products refer to: http://www.escenic.com/products/
Escenic Content Engine
The Escenic Content Engine is the heart for the Escenic Content System, storing all text, images, audio, video and other digital assets and provides the back-end functionality for applications such as Escenic Content Studio. Content is also made accessible through Java Server Pages tag libraries, RESTful web services and an open Java API.
Escenic templates need this content engine to run on.
Installation Requirements
Operating System
Application Server or Servlet Container
Database Server
JDBC Driver
LDAP Server
JDK
Web Server (optional)
Example Stack
OS: Solaris 10
Servlet Container: Tomcat 5.5.27
Database Server: Oracle 10g
JDBC Driver: Ojdbc 10.x
LDAP Server: Sun One (iPlanet)
Detailed Installation Instructions: http://technet.escenic.com/multimedia/archive/00001/ece-install-guide_pdf_1231a.pdf
Escenic Template System
An Escenic template system is analogous to a file system with the following mapping:
Folder -> Sections
Files -> Articles
Any Escenic site is a collection of templates where Sections and Articles present as data structures in the database are presented to the templates (web pages) in the form of regular Java Beans.
Thus for starters you can assume every page of an Escenic web site as a Section or an Article page. Each of these section or article pages has a template associated with it.
Section pages have ‘section’, ‘grid’ and ‘element’ templates associated with them whereas Article pages are associated to the ‘article’ template.
Typical Request Flow Mechanism of an Escenic Application
HTTP URL Request (by an end users browser)
↓
Escenic Servlet Filter Chain
↓
Escenic Template System
↓
HTTP Response
When the end user requests a URL, the request is handled by the application server, which forwards the request to the appropriate web application (Escenic web app in our case).
The request on reaching the web app is handled by the Escenic filter chain. The various filters configured as a part of the standard Escenic filter chain have the following two tasks:
1. Retrieve content beans from the database and make them available as java beans in the request scope to be used by a template.
2. Forward the request to an appropriate Escenic template page. Unless overridden by WEB-INF/localconfig/defaults.properties the request is always forwarded to a file called WEB_APP_ROOT/template/common.jsp
Article Page Request
Article pages are requested by URL patterns like below containing the Escenic ID of the article being requested.
http://www.timesonline.co.uk/tol/sport/football/article7002354.ece
When a request like above is handled by the Servlet chain, it knows it has to extract the content bean of article with ID: 7002354 from the database, within section the ‘football’ sub-section of the ‘sport’ section.
Based on the information in the request URL, the filters will set the following beans in the request scope before forwarding the request to the appropriate template page (WEB_APP_ROOT/template/common.jsp in most cases):
S No | Bean Name | Type | Description |
1 | publication | neo.xredsys.api.Publication | Publication object. Which publication object to set in request scope is determined from the context root of the URL. In this example, the Servlet filter would set the publication object corresponding to publication named ‘tol’. |
2 | section | neo.xredsys.api.Section | Again, which section object to set in scope is determined from the URL. In this example, football section, which is a sub-section of sport section will be set in scope |
3 | article | neo.xredsys.presentation.PresentationArticle | The article object with ID:7002354 will be set in request scope in this example |
After setting the above beans, the filter chain will forward control the template page: common.jsp.
Typical Template System Flow for an Article Request
Default Template (template/common.jsp)
↓
Wireframe (template/wireframe/classic.jsp)
↓
Article Layout (template/art_default.jsp or template/art_standard.jsp For an article request, the template system would look for a file with ‘art_’ prefixed to the default article template configured. Thus art_default.jsp or art_standard.jsp)
↓
template/[version number]/article/articleTypeSwitch.jsp (There is a concept of article types in Escenic. This JSP forwards control to a specific JSP after checking the ‘type’ of article bean set in request scope by the filter chain)
↓
Article Template (template/[version number]/article/standardArticle.jsp)
Section pages are requested by URL patterns like below:
http://www.timesonline.co.uk/tol/news/
Just like the case of an article request the following beans are set in request scope on a section page request:
1. publication – neo.xredsys.api.Publication
2. section – neo.xredsys.api.Section
3. pool – neo.xredsys.presentation.PresentationPool
Unlike an article page, which is composed of only one template – the article template, a section page is composed of the following three templates:
a. Section template
b. Grid template
c. Element template
After setting the above beans in scope, the control would be forwarded to common.jsp (unless overridden).
Typical Template System Flow for a Section Request
Default Template (template/common.jsp)
↓
Wireframe (template/wireframe/classic.jsp)
↓
Section Layout (template/sec_default.jsp or template/sec_standard.jsp For a Section request, the template system would look for a file with ‘sec_’ prefixed to the default section template configured. Thus sec_default.jsp or sec_standard.jsp)
↓
template/[version number]/section/standard.jsp
↓
Grid Template (a file with prefix ‘grid_’. The exact file invoked will depend on the grid template associated with the Section requested. For example, if the name of the grid template associated with the section requested is ‘indexPage’, then the file templat/grid_indexPage.jsp will be invoked)
↓ ↓ … ↓
Element template 1 Element template 2 … Element template n
(What element templates are invoked is controlled by the element templates associated with the particular Grid template. This is usually controlled by publishers using Escenic Content Studio)
Each module on the Section page has its own element template. Thus, element templates are the basic building blocks of a section page.
Publication Resources
A resource is nothing but a binary stream of data and Each Escenic publication (web-site) has the following essential resources:
1. Article-type (/escenic/article-type)
For starters, assume that every page in Escenic that is not a section page, is an article page. Now, there are various article types available in each Escenic publication. The article-type resource defines:
• Number of article-types available in the publication
• Name of each article type available in the publication
• Fields associated with each article type in the publication
For example: A publication may have an article type called: ‘standardArticle’ with the fields like: headline, teaser, body, main-image etc.
2. Layout (/escenic/layout)
This resource defines what grid elements are available in the publication and what element templates can constitute a particular grid template.
For example: A publication may have two grid templates defined, namely, ‘indexpage’ and ‘homepage’.
This resource first defines the article and section layouts available in the publication. The names of article and section layouts defined here are used to determine the names of JSP files with prefixes ‘sec_’ and ‘art_’ the template system forwards control to.
Next, the resource defines what grid templates are available in the publication. The name of the grip template is used to determine what JSP file is invoked in a Section request. For example, if section named ‘sport’ is invoked by a URL request and a grid template named ‘indexpage’ is assigned to the sport section then a file named grid_indexpage.jsp would be called. (For the sequence of invocation refer to the request flow diagram described previously)
This resource then defines what element templates are available in the publication. All element templates assigned to the grid template associated with the invoked Section request are called by the template system. The name of the element template JSP files is prefixed by ‘fp_’.
3. Image Versions (/escenic/image-version)
4. Features (/escenic/feature)
For detailed documentation refer to Escenic Page developers guide: http://technet.escenic.com/multimedia/archive/00001/page-dev_pdf_1228a.pdf
Disclaimer: This should not be treated as official Escenic documentation and should be only used as a beginners reference guide. The author does not take any responsibility for errors in the content. Please refer to technet.escenic.com for official documentation.
