Show Contents Previous Page Next Page
Chapter 1 - Server-Side Programming with Apache
Ideas and Success Stories
To give you an impression of the power and versatility of the Apache API, here are some examples of what people have done with it. Some of the modules described here have been incorporated into Apache and are now part of the standard distribution. Others are third-party modules that have been developed to solve particular mission-critical tasks.
- A movie database
The Internet Movie Database (http://www.imdb.com/)
mod_perl to make queries against a vast database of
film and television movies. The system rewrites URLs on the fly in order
to present pages in the language of the user's choice and to quickly retrieve
the results of previously cached searches. In 1998, the site won the coveted
Webby award for design and service.
- No more URL spelling errors
URLs are hard things to type, and many HTML links are broken because
of a single typo in a long URL. The most frequent errors are problems
with capitalization, since many HTML authors grew up in a case-insensitive
MS-DOS/Windows world before entering the case-sensitive web.
mod_speling [sic], part of the standard Apache distribution,
is a C-language module that catches and fixes typographical errors on the
fly. If no immediate match to a requested URL is found, it checks for capitalization
variations and a variety of character insertions, omissions, substitutions,
and transpositions, trying to find a matching valid document on the site.
If one is found, it generates a redirect request, transparently forwarding
the browser to the correct resource. Otherwise, it presents the user with
a menu of closest guesses to choose from.
- An on-campus housing renewal system
At Texas A&M University, students have to indicate each academic
year whether they plan to continue living in campus-provided housing.
For the 1997-1998 academic year, the university decided to move the process
from its current error-prone manual system to a web-based solution. The
system was initially implemented using ActiveWare's PerlScript to drive
a set of Microsoft Internet Information Server Active Server Pages, but
with less than two weeks to go before deployment it was clear that the
system would be too slow to handle the load. The system was hurriedly
rewritten to use
mod_ perl on top of the NT version of Apache,
resulting in a measured 60-fold increase in performance. The system went
online in the nick of time and functioned without a hitch, serving 400,000
documents generated on the fly to 10,000 people over the course of the
four-day registration period.
- Scripting languages embedded in HTML
The PHP system (http://www.php.net/)
is a powerful scripting language that processes programs embedded within
HTML documents. The language provides support for persistent connections
to ODBC and Unix databases, on-the-fly graphics, and LDAP searches. The
language is implemented both as a CGI script that can run on top of any
server and as a high-performance C-language module for Apache.
The ePerl (http://www.engelschall.com/sw/eperl/)
and Embperl (http://perl.apache.org/ embperl/) systems are like PHP, but use
mod_perl to embed snippets of Perl code directly inside HTML
pages. They can do anything that Perl can do, including opening network
connections to other Internet services, accessing databases, and generating
dynamic documents based on user input.
- An advertising banner server
No web application needs higher performance than banner ad servers,
which are pummeled by millions of requests per day. One banner ad vendor,
whose conventional CGI- based system was topping out at 1.5 banners per
second, moved its system to
mod_perl and experienced a greater
than 10-fold performance boost. The vendor is now serving 10 million banners
a week from a single host.
- A dynamic map server
site uses the
mod_perl API with the ImageMagick graphics
library to create dynamic searchable tourist maps for Berlin and other
German cities. The system is fast and responsive, despite the computationally
intensive nature of its job and its frequently heavy load.
- A commodities trading system
Lind-Waldock & Co. (http://www.lind-waldock.com/),
the world's largest discount commodities trading firm, uses
running under the Stronghold version of Apache to generate live and delayed
quotes, dynamic charts, and late-breaking news, as well as a frontend
to their online order entry system. The system is tightly integrated with
the company's relational database system for customer authentication and
Brian Fitzpatrick, a member of the consulting team that designed and implemented
the system, was pleasantly surprised at how smooth the process was: "
allowed us to work the web server and code around our design--not the other
- A document management system
The Advanced Computer Communications company maintains more than 1500
documents in various formats scattered among multiple NFS-mounted file
systems in its internal network. Their document management system periodically
indexes the scattered documents by document name, creation date, and content,
then uses the
mod_perl interface to the Apache API to allow
users to search and retrieve documents of interest to them. The system
automatically performs document format conversion. Some are sent to the
browser for download, others are precompressed with PKZIP to reduce transmission
time, and still others are converted into formats that can be displayed
directly in the browser window.
These applications represent only a few of the possible uses for the Apache module API. What you can do with it is limited only by your imagination. The rest of this book shows you how to turn your ideas into reality.
Show Contents Previous Page Next Page
Copyright © 1999 by O'Reilly & Associates, Inc.