Final Programming Design

Our final design was to treat our web site as a heirarchy of folders with xml and html data in each folder and web page.  Properties such as author email address could be overriden at any level of the site or inherited from the folders above.  This was relatively easy to program and was an intuitive data structure for  web site.

However, we wanted to distribute the editing work throughout the College and we didn't want to teach everyone in the College to edit xml.  Furthermore, we wanted a WYSIWYG interface for the actual HTML content and didn't want to write a GUI ourselves.  Our solution was to use Macromedia Contribute for the editing interface and treat the documents as xhtml rather than xml.

A Sample Static Web Page

To illustrate our architecture, its easiest to look at a static web page and how it is rendered: http://www.ed.uiuc.edu/cio/about/intro.html 

User Exprience

The user edits the following files using Contribute or Dreamweaver to affect a static web page.  More advanced users edit the menu and properties files, while all authors edit content documents.

Web Serving Process

The web server takes the following steps to serve the web page.  See also web pub system diagram and page manager diagram.

  1. The Microsoft IIS 5.1 web server gets a request for the URL http://www.ed.uiuc.edu/cio/about/intro.html 
  2. The rewrite ISAPI internally redirects the page to an Active Server Pages (ASP) application, though the browser's URL is not changed.  The rewrite ISAPI is basically the same as mod rewrite for Apache.
  3. The ASP application reads the appropriate menu.html, properties.html, content document, and derives browser information using browser detection.
  4. The ASP application creates an XML document with all the data derived in step 3.
  5. An XSLT is applied to the XML document to produce the final HTML document sent to the browser. A single XSLT is applied to for all web pages both static and dynamic: common.xslt  Common.xslt is static so is stored in cached, binary form.

Summary of Data Used to Produce A Web Page

The general classe of data are used to produce the resulting web page. (see also web pub system diagram )

  • menu: menu for left column
  • browser detection: browser type and assumed capabilities
  • page properties: author name, author email, template type
  • bread crumb or pathbar: where the page is within the site.
  • content: xhtml for each content section of the final page

 

This data comes from a variety of sources including:

  • Content documents . These are the XHTML files edited via Contribute or Dreamweaver. There is one for each "static" page on the site. Screenshot in new window.
  • Menu files . These are XHTML files edited via Contribute or Dreamweaver that contain the menu for a given directory in the site. If a directory has no menu file, it inherits the menu from the directory above it. Screenshot in new window
  • Properties files. These are XHTML files edited via Contribute or Dreamweaver that contain properties for a given directory in the site. Properties might include the author's name or the type of image used in the banner. Screenshot in new window
  • Data from SQL server, XML over HTTP, and other sources . This type of data has an XSLT applied to it to convert it to xhtml before it is aggregated into the data.xml document. Examples of these types of pages are:

    Page URL Data Source XSL
    Faculty Staff Directory http://www.ed.uiuc.edu/cio/fsd

    SQL Server stored procedures

    fsdsubindex.xslt
    Course Catalog http://www.ed.uiuc.edu/eps/courseapp XML from UIUC Web Services server courseapp.xslt
    Research Pages http://www.ed.uiuc.edu/eps/frp SQ Server stored procedures frpsubindex.xslt

  • Browser detection COM object . This is kind of rough now, but we expect it to get better when we migrate the application to .net. This provides basic browser detection.
  • Site definition xml file. A single XML file defines root properties for the entire site.
  • File and Folder Location and URL. 

to final results -->


Semantic Microformats for Addresses

College of Education
1310 S. 6th St.
ChampaignIL 61820, USA
(217) 333-0960
Fax(217) 333-5847
40.101432-88.230257