Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Cofax 1.5 Design Document What is the product Cofax? 2 Cofax is a framework. It is a set of realized ideas core to the MarketLeader product. Cofax is a collection of modules that do different things. Some of these modules are developed by us. Some of them are off-the-shelf. Cofax is not a single application. The Cofax modules can be integrated into an application using a control module. CofaxServlet and The Editors Tools are examples of this. J2EE Model 2 Java Server Pages Architecture Enterprise Servers & Databases Business Logic (Java Components/Beans) Controller (Servlet(s)) Presentation (JSP, WYSIWYG, DSP) Users (Web Browsers, PDAs, Cell Phones) 3 J2EE Model 2 Java Server Pages Architecture Industry standard overall architecture. Designed for integration with enterprise systems. Cofax’s design modularizes & separates the following: – – – – – 4 Business Logic Integration Code Presentation Content Site Management 5 CofaxServlet Example of a Controller Module Employs the various Cofax modules to maintain an interactive web site. Interacts with the user via Application Server Is able to take advantage of the application server – – 6 Under Apache-Tomcat, CofaxServlet is to be used. Under ATG Dynamo, CofaxDynamoServlet is to be used which takes advantage of ATG Dynamo functionality. Under Dynamo, this will comprise mostly of off-theshelf modules from ATG. There will be about 10% custom code in this. RequestHandler 7 Analyzes the request the user has made. Determines what content to serve, what presentation template to apply to it, and what medium to serve it to. Gives Cofax its ability to support configurable URLs. Enables Cofax to intelligently serve a variety of platforms ranging from Personal Computers to Cell Phones. This uses functionality provided by components of the application server. UserAgentAnalyzer Determines the capabilities of the user-agent Determines properties like: – – – – 8 What web browser it is. Whether it is a search engine crawler. Whether it is a Palm Pilot or Cell Phone. Whether it can display graphics. Uses off-the-shelf browser detection components. DataStore 9 Contains all the code that interacts with the data storage system, usually a Relational Database Management System (RDBMS). All Database interaction is done via this module. No other module may contain any databasespecific code or logic. Once a module is ready, it makes it easy to plug-in another database engine. E.g. MS SQL Server or Oracle. ConnectionPool 10 Makes the interaction with the database faster and more efficient. This module is only known to the DataStore module. Current implementation is ours. It will be replaced with a commercial off-the-shelf component in the next release. This replacement will be possible because our module is compliant to Sun’s JDBC 2.0 Optional API specification. TemplateLoader 11 Contains business-logic about what template to use for presentation of a certain content object. This module gives Cofax part of its’ edge. It allows a very flexible web site architecture. It allows sharing of templates across sites. (E.g. Palm Pilot or Cell Phone WAP Templates) It allows small sites to serve an entire publication using just two templates of their own. Is able to locate and load a variety of templates: Our own WYSIWYG, JSP, ATG Dynamo DSP. TemplateProcessor 12 This handles the application of the template (I.e.look-and-feel) to the content. In case of a J2EE (.JSP) template or an ATG Dynamo DSP (.JHTML) template, it internally forwards the actual processing to the application server. In case of our WYSIWYG templates, the TemplateProcessor called WYSIWYGTemplate is used. WYSIWYGTemplate is great for small newspapers that need to get up and running fast. It allows an easy migration to JSP later. CofaxCache 13 Handles the caching of frequently used objects for Cofax. Is one of the very few modules available that is capable of caching dynamic web pages. Is currently used to cache dynamic web pages, templates, common requests, database results. In the next release, the caching of dynamic web pages will be handled by a commercial off-the-shelf module or external server. CofaxPage 14 Is the content-object used by Cofax to represent content in an object-oriented form. Results from the database are converted to and stored in this object.