220 likes | 249 Views
CAIDA’s XML-based Web Publishing Environment. Web Technology Forum at San Diego Supercomputer Center, Tuesday, 25 July 2000 Margaret Murray Cooperative Association for Internet Data Analysis (CAIDA). Presentation Outline. Motivation for Using XML XML Strategy: Technologies, Tools, Timing
E N D
CAIDA’s XML-based Web Publishing Environment Web Technology Forum at San Diego Supercomputer Center, Tuesday, 25 July 2000 Margaret Murray Cooperative Association for Internet Data Analysis (CAIDA)
Presentation Outline • Motivation for Using XML • XML Strategy: Technologies, Tools, Timing • Website Features • Planned Enhancements
Strengths Large readership Developers control their own web content Flexible organization Weaknesses Difficulty with navigation No recognizable CAIDA ‘look’ Consistency and Quality Control Issues Repetitive, bloated web coding Motivation: Legacy Website
Site Redesign Goals • Clean up web tree; implement consistently named directory structure • Let developers control content but not necessarily its placement • Enforce version control • Reduce site maintenance
Experience: Apache web server in use since ‘97 (on Solaris 2.5) Apache Jserv Java servlet engine CAIDA Java servlets available on website: Otter GTrace New Apache Tools: Cocoon Web Publishing Framework 100% Java Open source W3C standards based (XML, DOM, XSL) Positive reviews http://xml.apache.org/cocoon/ CAIDA History with Apache
Strategy: The Cocoon Approach • Separate content, processing, and style • Content = XML files • Parsed by Cocoon’s Xerces XML parser • Processing = Cocoon processors • Built-in processors (e.g., XSP, XSLT, SQL ) • Style = XSL • Implemented by Xalan stylesheet processor
Key Transition Milestones • Organize new directory structure • Define a ‘concordance’ • Write a redirect cgi script • Make it easy to translate existing HTML into XML • Develop a CAIDA-specific DTD • Incorporate a new navigation paradigm
Transition Schedule • Organize directory structure and design navigation paradigm: 1 mo • Install and test Cocoon components 1 mo • Develop CAIDA DTD, site-specific XSL, and content template: 1mo • Convert existing HTML to XML: 2 mos • Train web page developers (cvs, tidy, xml):as required
Expected Change is hard Non-programmers had big ramp-up to learn cvs Some missing pages Auto-redirect script not entirely complete Unexpected Discovered bad DNS mapping for main URL Load-related errors cvs server memory limitations restricted scope of checkouts, updates Problems with Initial Deployment
XML Development site = mirror.caida.org Dynamic XML processing http://mirror.caida.org/~username/ Developer checks in tested page Webmaster updates main web tree HTML Public site = www.caida.org wget gens HTML file for each XML page All non-XML files are shared via symbolic links No more load related errors Fast! Solution:
Common Errors Syntax; missing end tag; unmatched quotes Cached copy displayed Weird Errors “Method longer than 65535 bytes” Broken image maps --> ‘?’ Daily cron job(scripts by Dan Andersen) Makefile driven xml-wget (Gnu) Rotate-dirs: www --> www.old, www.pre --> www Symlinks for all non-XML files Emergency script Cocoon Maintenance
Directory Structure • Emphasize easy-to-type, easy-to-say URLs • All lower case • Meaningful, recognizable directory names • Use default index.xml; drop filename from URL • Match to navigation paradigm
Some CAIDA tags <navbar /> <footinfo (lastupdated, maintainedby?, URL) > Page Layout Design (by Oliver Jakubiec) 3-level navbar Site-map Color scheme Tools tidy html config file xml config file checkbot find sed scripts Site DTD and Tools
Solaris 7 jdk/jre 1.2.2 jserv 1.1 API Apache httpd 1.3.6 jserv, modperl, modssl modules Webalizer 2.00 cvs 1.9 Cocoon 1.7.5-dev Xerces-J 1.0.4 XML Parser Xalan-J 1.1 httpd.conf, jserv.conf cocoon.properties Cocoon Install
Documentation and Training • “How to Update CAIDA Web Pages” • Two target audiences (programmers, non-programmers) • One-page Overview • One-on-one training sessions • Problems • arcane cvs syntax • Testing procedures
In .xml file: <navbar /> location.txt contains <location section="HOME" subsection="overview" /> In root.xsl: Selects menus (3 layers) Sets up clickable image maps Sets color scheme Adds file ‘locater’ text to top of page Website Features (navbar)
In .xml file: <url> http:// <xsp:expr>request.getServerName() </xsp:expr> <xsp:expr>request.getRequestURI() </xsp:expr> </url> XSP gets server name (www.caida.org or mirror.caida.org) XSP gets page name XSL adds formatting; places at bottom of page Website Features (auto-gen URL)
Table of Contents List style Pulldown style Table style http://www.caida.org/home/sitemap/ All pages at top three levels have access to sitemap Want to automatically generate Website Features (tocs, sitemap)
Planned Enhancements • Searchable databases • Tools taxonomy • IEC courses • Internet Atlas • Context-driven contact email • cvs “crutches” or substitute
Summary • Apache XML technology holds great promise • Apache Cocoon provides an extensible website infrastructure • CAIDA is just beginning to take advantage of Cocoon’s capabilities
For more information on XML-Apache and Cocoon: • www.apache.org • Apache Server • XML-Apache • xml.apache.org/cocoon/ • http://mailman.real-time.com/pipermail/cocoon-users/ • http://mailman.real-time.com/pipermail/cocoon-devel/
Margaret Murray, CAIDA Technical Mgr. margaret@caida.org