Dave Doyle

Dynamically generated static sites (1998)

[ Definition | Why | Case Study ]

What are these?

A dynamically created, static site (DCSS) is a site that uses page templates and a source of data and creates HTML pages. These pages, being programmatically created follow a standard format. By combining the individual page creation into a site creation program, you can cause pages to be 'aware' of each other and to link up in any format you want. You can also create indexes of pages automatically, causing sitemaps, menu pages and the like to be created.

Why would I want to use this?
A DCSS combines the advantages of standard CGI content without requiring the overhead. In CGI, pages are able to be created 'on-the-fly.' That is, the pages don't exist as actual files, but rather as the output of a program. This program can utilize data stored in any data archive to create the needed output. However, this flexibility comes at several prices.
  1. Dynamically created pages require additional processing and memory. For sites run on less powerful servers, a large number of webpage hits run using CGI can easily overload the server. For each page created a new CGI process is created. Depending on how heavy-weight the process is, the server could easily find itself running out of memory or becoming CPU bound.
  2. Extra processing also means extra delay. There are enough websites created by now that users don't have a lot of patience with pages that take a long time to load. Whether or not you are doing something 'new and interesting' behind-the-scenes is not important to them. A DCSS allows any amount of processing to occur without users incurring a penalty.
  3. The web hasn't quite adapted to dynamically created pages. For example, search engines cannot actually read and understand dynamic content. So, a CGI created sites cannot be indexed or searched. It also can be difficult to bookmark it.
  4. Perl is only available on UNIX systems. If you'd like to run a dynamic website on a windows-based system using its webserver, you're out of luck.
  5. Modification of pages and publishing of pages is separated. This means that the data for the website can be modified by content experts, the templates can be modified by page designers and the program itself can be modified by the programmer at any time. But the changes can be rolled out to the users when they are all ready.

Case Study
PetCARE ended up being an excellent candidate for being developed using DCSS. It had to be created on a Windows box, due to requirements by the department itself. This limited the choice of language to use Microsoft technologies. The server was essentially an extra workstation. It had a webserver on it, but it was by no means a powerful computer. At the time, this type of site was new and groundbreaking, and there was no way to determine exactly how much interest the site would garner. So we needed to utilize as much of the processing power as we could just for page delivery.

The content experts, who would ultimate update and run the site, were not technical in the least. Adding new pages, or modifying information within them, needed to be free of technological know-how.

These features together resulted in PetCARE being developed as a DCSS, created by an engine written in Visual Basic.

* later note: Remember, this research and website was created before web programming languages other than Perl existed.