Alternatives for Dynamic Web Development Projects

Dennis provides a starting point for developers seeking solutions for their web application development requirements.

I was recently afforded the opportunity
to work with the internet department of a large medical publishing
firm located in Philadelphia, Pennsylvania. The department assisted
the company's various marketing departments with regard to content
destined to be posted on the Internet as well as coordination of
scheduling and placement of content on the company's web site.
Ultimately the department served as a conduit between various
marketing and product management departments at sites in
Philadelphia, New York, Chicago and the Baltimore-based IT
department that physically housed the company's web servers.

As a result of these activities, there were a great many
files finding their way into the department via a number of paths.
Most arrived by e-mail, some on diskette via interoffice mail and
some were uploaded directly to ftp servers in Baltimore. This
created a flurry of activity as the marketing staff and developers
in the department attempted to organize and coordinate a variety of
content. To add to the confusion, there were also numerous versions
of documents that were submitted due to last-minute changes made by
the supported departments. My task was to develop an interim
solution to reduce the confusion created by content submission
activity by organizing all the various content in one central
application. I attempted to do this by building a small web
application prototype that would serve to track each project's
title, manager, department, department code and cost accounting
code.

The application needed to be built quickly and cheaply
because constraints in the purchasing and tenuous acquisition
processes ruled out any new requisitions until the beginning of the
next fiscal quarter. It needed to run on standard PC equipment that
was readily available in the department. Technical support for the
application by experienced system administrators would be limited.
The applications needed to be light, fast, easy to use, stable and
easily maintained by the department's staff that approached web
development from a marketing, as opposed to technical, perspective.
Despite the fact that this was the Department of the Internet, the
focus of the department's activities was on content coordination.
The IT department administered the heavier-duty web servers and
telecommunications that were off-site.

Objective

This document will relay the lessons learned from my
investigation into the software tools required and available for
building a rudimentary, dynamic internet application. Consideration
will be given to commercial and free software alike. We'll begin
with some definitions and background of the elements of a dynamic
web application and then continue on to a tour of some of the
available technologies. It is my intention that this article serve
as an informative starting point for developers and would-be
developers as they begin to seek solutions for their web
application development requirements.

What Is a Dynamic Web Site?

Advanced web designers often use a scripting language called
JavaScript and a system of naming the parts of the web page—the
Document Object Model, or DOM—together with HTML and CSS to create
dynamic content on a page. These effects are sometimes called
Dynamic HTML or DHTML. I, however, am limiting the scope of this
project to building a web site that will generate dynamic content
by interacting with a database. I was not interested so much in
effects displayed to the user but in focusing on building an
intuitive web application. The project scripts will be executed at
the server, not at the client as occurs with JavaScript. The tools
and methods presented here will not limit the addition of
interactive or stylistic features to the application at a later
time.

What Is a Database?

Data is defined as a general term meaning the facts, numbers,
letters and symbols processed by a computer or communications
system to produce information. In a computer system these items are
typically stored in files. A collection of related files is a
database. Within these files, records of items are organized into
rows and columns. In this case, I need something more sophisticated
than a simple collection of files.

The project requires a RDBMS, or Relational Database
Management System. An RDBMS is a software package that stores data
in rows and columns as tables. Various tables can be related to one
another in order to answer questions posed by the end user. These
questions are known as queries. The RDBMS is a concept first
introduced by Codd in an academic paper in 1970 but was not
commercially available until the mid 1970s. The RDBMS responds to
all queries whether they ask the RDBMS to retrieve, add, update or
delete data from the tables.

Sometimes the RDBMS that services a web site is called the
back end. The web pages that the end user will see is often called
the front end. Questions are posed to the back end using a language
called SQL (Structured Query Language). In short, if there is data
that needs to be processed, a DBMS of some kind is required. The
most popular at this time are Relational DBMS, that respond to
questions/commands via SQL.