The Webmaster's Starter Kit

Jay C. Weber, Enterprise Integration Technologies Corporation

Abstract

The Webmaster's Starter Kit (WSK) is an interactive, HTML-forms based service for configuring, installing, and extending a basic Web server. The process was engineered to be as quick and as painless as possible: users enter five configuration parameters in a simple form and the service writes the server configuration files as the software is downloaded, so the server launches as soon as the software is unpacked. Typically, this process takes five minutes and minimal knowledge of the web details involved.

The basic server maintains a server administration page, which has the point and click ability to add server extensions for web building, server maintenance (link auditing, web mirroring, etc.), virtual document programming, or potentially any other provider-side software package. These extensions are automatically downloaded, unpacked, configured, and listed on the server administration page. As a result, the WSK is an interface for quickly finding and integrating the pieces of a custom web server. The WSK supports several UNIX server platforms, and an experimental version is freely accessible over the Web.

Introduction

The Webmaster's Starter Kit (WSK) has a simple goal: to significantly lower the effort required for an organization to get on the Web. The de facto process of finding, installing, and configuring a Web server simply consumes too much time and resources to appeal to the next wave of Web site visionaries, designers, and maintainers (a.k.a. webmasters). This is especially apparent when one considers that an operational Web site requires much more than the basic server software; it requires tools for Web document generation, logfile reporting, access management, virtual document programming, link structuring and validation, and performance analysis, at least. Location, selection, installation, and integration of these tools is a daunting process and can lead to a Web site that is hard to use and maintain.

The WSK simplifies this process and improves the resulting site through the following innovations:

This paper will summarize the WSK framework, example components, availability and use, and potential as a new open Web software distribution mechanism.

WSK Framework

Use of the WSK involves two servers: the ``parent'' server, and the ``child'' server. The parent server solicits configuration information from the webmaster, customizes the basic server distribution, delivers it to the webmaster's site, describes the process of unpacking and launching the child server, and later responds to requests for server extension distributions. The child server solicits server extension and advanced configuration information from the webmaster, downloads and installs server extension distributions, runs those extensions when requested, and of course, serves documents based on Web client requests.

The core HTTP protocol implementation on both parent and child servers is a standard, slightly enhanced HTTP daemon. The novel parts of the WSK are implemented in virtual documents on both parent and child servers using the Common Gateway Interface (CGI) specification. (The HTTP daemon is slightly enhanced, in particular, so that it can pass extended environment information to virtual documents running on the child server.) We implemented the virtual documents on both parent and child servers using our libCGI library for simplified CGI programming in C.

Virtual documents on the parent server process the configuration form inputs, customize the installation instructions based on those inputs, and produce a customized server distribution for download. The latter process matches patterns against lines in the outgoing distribution and substitutes appropriate configuration inputs. Parent servers store and transmit distributions in the UNIX shell-archive (shar) format, with compressed binary components. This format makes it easy to match patterns, and that format is widely usable on target UNIX systems.

Virtual documents on the child server present a list of possible extensions, solicit confirmation and any additional information needed to install the extension, download, unpack, and configure extensions. The extensions themselves are usually server maintenance tools with virtual document interfaces. Examples of these extensions appear in the next section.

Example Server Extensions

We have experimented with integrating several EIT server maintenance tools in the WSK framework, including:

Verify Links This tool traverses the documents on a server by following links from a start page, reporting on any links that produce error conditions (e.g., the infamous "404 Error not found" message). The implementation uses a combination of queues and parallel processing for efficiency. Runtime parameters include server and document on which to start (doesn't have to be the same server running the tool), the depth of links to traverse, whether to following links pointing outside the starting server, overall timeout.

libCGI This library aides C programmers creating virtual documents using the ``Common Gateway Interface'' (which includes all form-processing programs). Features include: support for multiple methods (GET, PUT, POST, HEAD), better code structuring, memory and runtime efficient parsing of forms entries, aides in generating HTML forms.

Home Page Builder This tool presents a simple form, that when filled in produces a standard HTML home page. Features include incorporation of a graphical logo, organizational description, and simple top-level links. The result is structured in such a way so other tools may easily add top-level links.

Hypermail This tool turns an Internet mailbox, as is produced by archiving a mailing list, into a set of HTML documents: individual messages are HTML-formatted, and hyperlinked message lists index the messages. New hypermailed archives are automatically linked into the local web though an interactive interface. Features include: multiple indexes (by date, subject, author), threading (replies are hyperlinked to the original message), URLs made active within messages, integrated reply mechanism.

Getstats This tool produces a number of different reports summarizing server activity, based on log files. Report types include: by client site, by time period, by domain class (.com, .edu, etc.), by document or directory. The reports are highly parameterized through command-line options and through an HTML form.

Availability and Use

Clearly the best way to appreciate the WSK is to try it out. An experimental freeware version is available on the Web and linked to EIT's home page (http://www.eit.com/). Since first availability in May 1994, and especially since an August 1994 announcement on the www-talk mailing list, thousands have consulted the experimental WSK, installing over 100 sites as of mid-September 1994.

The experimental WSK supports SunOS 4.1.3, Solaris 2.3, OSF/1 V2.0, AIX 3.2.5, and IRIX 5.2 operating systems. Additional ports, including Windows NT, are in progress.

Some problems have been reported, e.g., the lack of access management tools, trouble with firewalls and proxy servers, and missing operating system ports. However, feedback has been overwhelmingly positive, including reports of ``a total of 7 minutes to complete the installation, including putting our organization's logo on the home page.''

Future Potential

The experimental WSK version installs extensions with freeware licensing. However, it is certainly possible to charge for extensions within the WSK framework to at least two degrees.

First, the automated WSK installation process can serve as a distribution mechanism for software where payment was determined though some off-line means (telephone, etc.) Secure operation of such a mechanism could encrypt the distribution such that it can be decrypted using an authentication key transmitted to the webmaster during the off-line payment transaction. The installation virtual document on the child server would prompt for the authentication key and perform the encryption. Variations could dispense evaluation copies and timed licenses.

Going further, privacy and digital signature enhancements on the HTTP transactions would enable exchange of payment information on-line. The use of public-key crytography would minimize the exchange of keys and the associated risk. Extensions could be offered by lesser-knows parent servers as long as the distributions are digitally signed and thereby deemed trustworthy.

With the full range of freeware and payware server extension options, WSK parent servers could form a major new Web software marketing, sales, and distribution channel. This would serve freeware authors, payware authors, and would-be webmasters as the Web pushes out into the mainstream.

Acknowledgements

This work was funded, in part, through ARPA automated engineering and electronic commerce programs. The WSK basic server is an EIT-enhanced version of NCSA's HTTPD software, thanks to NCSA for putting that software into the public domain. The more interesting server tools are largely the product of others: Tom Gruber and Kevin Hughes with Hypermail, Kevin Hughes and Brian Behlendorf with Getstats/Statform, Jim McGuire with Verify Links. Thanks to them and those that helped make the tools useful, robust, and available.

About the author

Jay C. Weber is Director of Research and Development at Enterprise Integration Technologies Corporation in Palo Alto, CA. He has a Ph.D. in Computer Science from the University of Rochester.

Jay has been a Web developer for over a year and a half, with the T-shirts to prove it. In addition to supervising a variety of Web-related technology projects, he is the primary author of several Web-related software packages, including The Webmaster's Starter Kit, libCGI, and ServiceMail (a toolkit for developing MIME email servers). He developed the first real order-taking form on the Web (the original Document Center storefront) and even built a complete Web server whose only net connection is sendmail (fortunately it was never released).


weber@eit.com