Dynamic Systems
April 5, 1999
The word "dynamic" gets tossed around a lot, but I use it to
refer to Web pages that are generated from templates "on the fly"
- that is, at the time a user requests a page. A "flat" page is
one that exists on the server in its finished, complete form,
and is simply delivered to the browser when requested. A
"dynamic" page is one that is put together by the server, using
one or more pre-existing templates and combining them with
user input, and perhaps other elements, into the final page
which is delivered to the browser.
When a site gets to a certain size, it simply doesn't make
sense to stay flat, because maintenance becomes a nightmare.
Making changes to common page elements is easy with a dynamic
system. There are many different ways to make a site partially
or fully dynamic, from homemade scripts to big-ticket software
packages. In fact the world of "middleware" and "application
servers" is an anarchic jungle. ColdFusion, Active Server Pages
(ASP), NetObjects, WebObjects, Vignette, PhP
(see
PHP 3.0 - Full-power Web Scripting), Lotus Domino,
and many others all perform various dynamic page-generation tasks.
As with so many categories of software, each package claims to
do everything under the sun, so it's very hard to figure out
exactly what each one does and doesn't do. The word on the
street is that the biggest and coolest sites are moving to
server-side Java, or Server-Side JavaScript (SSJS, formerly
known as Livewire), which is the Netscape Web server equivalent
to ASP.
With a dynamic page-generation system, you embed programming
code into your
HTML,
which is run when the page is delivered by the Web server.
These technologies have the capability to make
database
queries and use that to build pages (or parts of them) on the fly.
You can use such a system to build a content management system.
Put your content into a database, and have the page pull in the
appropriate content at run-time. You would have a set of pages
which are essentially templates. For instance, you might have
/article.html, /review.html, /hub.html, etc. Articles might be
linked as /article.html?dynamic. Inside the /article.html page
you would have code that looks at what the URL given was - it
pulls out "dynamic" and uses that to look up the author's name,
the title, body, etc. in the database and plug it into the page.
You can also build pages to enter page data into the database.
This way the person putting articles onto the site doesn't need
to know any more HTML than paragraph breaks and anything else
that would need to go into the body of the article.
Personalization is generally done hand-in-hand with
content-management. Track users with
cookies
or other methods, and take content from the database tailored to
their interests. These can be built with the same technologies.
Sites such as my.yahoo.com do this, and it's becoming more common.
Buying a commercial page-generation software package is not the
only way to build a dynamic site. Scripting languages like
Perl
can be used to create very sophisticated content management
systems, customized for your site. The
Web Developer's Virtual Library
uses an in-house Perl-based system called
ht.
Strictly speaking, ht isn't a dynamic system, because it doesn't
generate pages on the fly. Instead, it provides a flexible
template-based system that allows changes to be easily made.
In some ways, this is superior to dynamically generating pages,
because there's less server load.
If you like the idea of a free solution,
PhP
is worth a close look. PhP is basically a server-side scripting
language that you can embed in your HTML code to perform various
functions, from simple popups to database-driven search engines.
PhP shares elements of Perl,
Java,
and C, runs on various operating systems, including NT, and is
free.
See
PHP 3.0 - Full-power Web Scripting.
If you prefer the idea of spending lots of money,
StoryServer and
BroadVision
provide out-of-the-box content management and personalization
- you don't have to design and code the system yourself. They
have massive price tags - generally they start at around $70k,
but most sites probably end up paying six or seven figures to
get going with it. It's complicated stuff which requires lots
of special training, consulting, and customizing.
These options all have their pros and cons, but the big baddie
in every case is the fact that it's a big prooooject to convert
an existing site to any all-inclusive dynamic system. Projects
of this kind tend to get put off in any business (Y2K, anyone?),
but in the hyper-accelerated Web world, site redesign can
languish on the back burner for so long that a site, like a city,
can grow to a huge sprawling mass that becomes impossible to
manage.
Let's say you currently have a completely flat site, which has
grown to the point that making modifications is a tedious and
imprecise nightmare. A dynamic system could solve your problems,
but you just don't have the time to evaluate, choose, buy,
implement, cajole and cuss. Plus, it may be that one of the
minor drawbacks of the latest super-duper all-in-one site
management suite just happens to prevent you from doing
something that you need to do. What will you do? What will
you do?
You'll do what any good manager does - Stick your finger in
the dike. The tedium of site maintenance can be greatly reduced
with a couple of simple tools, without spending a penny on
complex and cranky dynamic "solutions".
Content Management Tips and Tricks
Searchin'
|