Building Web Servers on Microcomputer Foundations

by Gregory T. Bean

Director of Administrative Computing, University of Maryland Baltimore County

Abstract

This presentation introduces the attendee to a variety of links and resources dealing with World Wide Web Servers for "microcomputer" platforms. These platforms include Microsoft Windows, Microsoft Windows NT, the Macintosh, and the PowerMac. The orientation of the material presented is based on microcomputer operating environments rather than Unix. Today, there are a number of factors that make microcomputer platforms equally attractive, or more attractive, than Unix on which to build your server.

Background

It matters little whether you fall into the category of "power user", "aspiring power user" or into the "technical support personnel" camp. University libraries, departments that provide their own computing support, small businesses, and distributed entities of large corporations are prime candidates for utilizing a microcomputer for building a World Wide Web (WWW) server. In other words, anyone who would like to make their information available to others on the Internet with a minimum investment in hardware, software, personnel, and that most precious of resources, time. If one doubts the growth of Web servers in large corporations, government, and international organizations, they need only peruse the World Wide Web. There you'll find the likes of IBM, Digital, NASA, NIH, and many, many, smaller organizations with a "large" presence on the Internet. Some of these organizations have extensive support staffs well steeped in Unix and TCP/IP, while others have increasingly taken an easier and more economical route to setting up servers, and that is via an Intel 386/486, Macintosh, or PowerMac. The operating environments discussed in this paper are those normally considered "native" to the platform in question (e.g. MacOS to Macintosh, Windows to Intel). A treatment of Unix on microcomputer platforms (e.g. Linux, NetBSD) is outside the scope of this paper, yet worthy of consideration.

Since the predominant operating environment of the Internet is Unix, it will come as no surprise that most World Wide Web servers have been built with the Unix operating system. Today, however, there are a number of factors that make microcomputer platforms, running Windows, Windows NT, or MacOS, equally attractive, or more attractive, on which to build your server:

- There are robust implementations of the World Wide Web and other servers available for microcomputers.

- The cost of a microcomputer, capable of adequate performance as a server, has dropped significantly. The hardware configurations necessary to support a Web server are priced in the $1500 - $2500 range.

- On the high end of the microcomputer continuum, machines such as the Intel Pentium, DEC Alpha, and PowerMac offer a tremendous degree of performance and scaleability formerly only found in the Unix workstation environment.

- There is a paradigm shift underway where "user departments" are developing applications (e.g. through HTML authoring) that previously were developed in the "glass house" (MIS department). This shift is similar to the transition of low-end mainframe database applications to departmental databases (e.g. dBase) in the eighties. Power users are discovering that HTML authoring is within the range of their talents and can be done through a variety of desktop software tools. They also are discovering that Internet servers can be installed in that same desktop environment.

- Support costs for microcomputer server implementations are significantly lower than those found in the Unix environment.

This paper covers the various implementations of a number of Web servers. The information provided has been assembled from the documentation accompanying the various servers' software distributions, as well as from the author's own experience in setting up the servers. With the software surveyed here, you should be able to set up your Web server in days, rather than months, and with considerably less money, complexity, and aggravation than with traditional avenues. The servers identified are adequate, and in many cases, robust implementations of the Hyper Text Transfer Protocol (HTTP). They are easily acquired, and easy to install, configure, and implement. Available distributions include:

For the Macintosh and PowerMac environment:

MacHTTP - by Chuck Shotton - University of Texas Houston

For the Microsoft Windows 3.1, Chicago, and Windows NT environment:

Win4HAM - by Gunter Hille - University of Hamburg Germany

SerWeb - by Gustavo Estrella - Bull Corporation

NCSA httpd - by Bob Denny - Alisa Systems

EMWACS - by Chris Adie - Emwac - University of Edinburgh, UK

TCP/IP Networking Foundation for your Server

MacTCP

One essential ingredient to the server mix, if you're working with the Macintosh, is the proper installation of MacTCP. Although this is quite easy when compared to installing TCP/IP under DOS (packet drivers, IRQs, memory management, etc.), this component can provide the greatest difficulty for those uninitiated to the TCP/IP world. MacTCP is Apple Computer's implementation of the TCP/IP protocol. MacTCP is installed in the Control Panel Folder within the System Folder. The Macintosh and PowerMacs are now shipping with MacTCP. If you need it for an older Macintosh, MacTCP is available from the Apple Programmers & Developers Association (APDA) (phone: 800-282-2732), product number M8113Z/A, as well as from a number of mail order houses.

Windows Sockets

If you have already installed Windows based TCP/IP networking software (e.g. Chameleon, from NetManage, Inc.) on your client (soon to be a server), you have all you need for your networking connection. However, if you have been using public domain client software available on the Internet such as HGopher or Mosaic, and you don't wish to buy a commercial TCP/IP package, you will probably use the same Winsock you've used for client applications for the server software. If you're new to all of this, the Trumpet Winsock is a Windows Sockets 1.1 compatible TCP/IP stack which provides a standard interface for many Windows networking applications to use. The Trumpet Winsock programs were written, and are distributed, as shareware by Peter R. Tattam. They are available from ftp://ftp.utas.edu.au/pc/trumpet/winsock. The filename is twsk10a.zip. Detailed documentation and sample configurations for the packet driver are available in the software distribution.

HTTP on The Apple Products

In 1984, the Apple Macintosh, with its simplicity and ease of use, was born into a world characterized by complicated computing. The Mac gradually made inroads into the corporate sector, but primarily within the bounds of its limited niche, desktop publishing. The Macintosh was not to be considered a true business machine, and even today, that stigma still lingers in the minds of many corporations. The Macintosh has slowly gained a greater acceptance, but still holds only an approximate 8% to 12% of the installed base of desktop business computers. The 1990's may carry a different message for the future of the Macintosh as it evolves into the PowerMac. Regardless of the market share the Macintosh and the PowerMac enjoy, there is one fact that remains: the Macintosh platform provides an unparalleled ease of use that fosters a more productive work environment. What's all this got to do with the Internet? Two things: the Macintosh provides excellent graphical tools for browsing and navigating the Internet. Secondly, the Macintosh platform is the quickest and easiest approach to setting up a server on the Internet, without the complexities of a more sophisticated computing environment such as Unix. What we are beginning to experience with Macintosh client and server software is the discovery of a new niche for Apple Macintosh, that of an excellent Internet hardware platform.

In the past two or three years, through the use of graphical tools, like those available on the Macintosh, many of the complexities of the Unix based Internet can be made transparent to the user. Most importantly, those "non-technical types", with an adequate understanding of their desktop computing environment, can now build and support Web servers.

MacHTTP

MacHTTP is a WWW server for the Apple Macintosh or PowerMac. Features include:

- MacHTTP documents are 100% compatible with those used by Unix-based HTTP servers. The server can communicate with clients running on any platform.

- MacHTTP supports the execution of AppleScripts that can return HTML.

- Security is provided by MacHTTP through a table of security directives. Hosts and networks can be ALLOWed or DENYed by specifying IP addresses in a configuration file.

- Includes a HyperCard CGI demo with sample stack and HTML form.

- ISMAP and ISINDEX support are provided for clickable maps and searchable documents.

- Forms, as implemented by XMosaic 2.0, are supported.

- C code example search engines are provided.

The server software (machttp.sit.hqx) may be retrieved from:

ftp://oac.hsc.uth.tmc.edu/public/mac/MacHTTP/

Extensive documentation and examples are available for MacHTTP at:

http://www.uth.tmc.edu/mac_info/machttp_info.html

HTTP in the Microsoft Windows environment

Machines running Windows and Windows for Workgroups have evolved as viable Internet servers due in large part to Microsoft's commitment to TCP/IP as its strategic networking protocol. With the widespread availability of lower cost Internet connections, and the maturation of TCP/IP software on all the Microsoft platforms, the number of Internet servers based on DOS and Windows will greatly increase. The Internet currently has over 3 million connected systems and there are approximately 40 million copies of Windows in the marketplace, growing at a rate of over a million a month. Just how many of the millions of Windows systems will be connected as servers remains to be seen. You can be sure that, with the advent and enhancement of Windows server software, and through the maturation of Chicago (Win 4.0) and Microsoft NT, some of the future server growth will be on Windows platforms.

Available Windows Software

Web4HAM - A Web Server for Windows

Web4HAM is a WWW server developed by Gunter Hille at the University of Hamburg. The product is in its early development (version 0.16) and offers an easy to install Web server with the following features:

- Produces a logfile of sessions in SDF format

- Allows private directories for special hosts or domains

- Handles GET and HEAD methods

The necessary zipped file, web4ham.zip, can be retrieved from:

ftp://ftp.informatik.uni-hamburg.de/pub/net/winsock

SerWeb: An HTTP Server for Win 3.1 and NT

SerWeb is a freeware World Wide Web (WWW) server that runs under Microsoft Windows 3.1 or Microsoft Windows NT. The Server was written in Visual C++ by Gustavo Estrella and the source code is available as part of the software distribution. The server can be run in the background on your PC, thereby freeing up your machine for other tasks.

The server software may be retrieved from:

ftp://sunsite.unc.edu/pub/micro/pc_stuff/ms-windows/winsock/apps

and the filename is serweb03.zip.

NCSA httpd for Windows

NCSA httpd for Windows is based on the NCSA Unix httpd Server and is written by Bob Denny. The operation and configuration of the Windows server closely parallels the Unix server. Some of the features supported include:

- HTTP/1.0 protocol support including proxy support via "If-modified-since"

- HEAD, GET, and POST methods

- Can support up to eight simultaneous connections

- Can deliver well over 25,000 requests per hour (based on 4kb average, 486DX/66, VLbus disk, Ethernet, Netmanage Winsock, Windows for Workgroups 3.11).

- Parallels features of Unix servers with Windows CGI interface, Imagemap support, access controls, logfile and logfile analysis, and more

There is an extensive set of HTML documentation included with the package, as well as demonstration pages that illustrate basic server functions, forms, image maps, access controls, and other important features.

The software is available from:

ftp://ftp.alisa.com/pub/win-httpd

The zipped file name is whttpd13.zip

HTTPS - HTTP in the Windows NT environment

One of the beauties of Windows NT is that it's probably the first commercial operating system which offers TCP/IP support right "out of the box". To date, with other operating systems, you've had to acquire additional TCP/IP software for your PC, or wrestle with public domain solutions. NT comes with an excellent TCP/IP implementation as well as related basic software such as FTP and Telnet, and very importantly, Windows Sockets support. Such tools have facilitated the development of quality commercial and public domain Internet client and server software.

The European Microsoft Windows NT Academic Centre (EMWAC) is a project based at the University of Edinburgh and sponsored by Datalink Computers, Digital Equipment Corporation, Microsoft, Research Machines, Sequent, and the University of Edinburgh. One of their first endeavors was to release an HTTP server based on the Microsoft Windows NT operating system. This WWW implementation, written by Chris Adie, and known as "HTTPS", has the following features:

- Runs as a Windows NT "service" with executables available for Intel, MIPS, or Digital Alpha based systems

- Is implemented as an HTTP/1.0 server which understands HEAD, GET, and POST methods

- Supports CGI scripts and HTML forms. Example scripts in C are included

- Supports clickable images (ISMAP)

- Handles multiple simultaneous connections using multiple threads

- Can search locally held WAIS databases (requires WAISTOOLS for Windows NT, also available from EMWAC).

- Utilizes NT system management functions, such as logging errors to the Event Logger, configuration through the Control Panel, and optionally logs HTTP transactions in the Event Logger

The server software may be retrieved from:

ftp://emwac.ed.ac.uk/pub/https

There are three zipped files, one for Intel based hardware, one for MIPS machines, and one for Digital Alphas. Be sure to select the proper one to match your hardware.

Conclusion

A recent version of NCSA Mosaic has a legend displayed on startup: "Changing as rapidly as time". That's the nature of just about all the software covered in this paper. As quickly as you get acquainted with the server software, the software author goes and enhances it. ThatŐs good! This does however, make it difficult to keep up with the changes. So to find the latest versions of the software in this paper, and to learn about new software, you can access the following URL (Uniform Resource Locator) with your favorite WWW browser: http://www.charm.net/~cyber

These web pages, titled Building Internet Servers, serve as a supplement to this paper, offering information on the latest server software, showing changes in the location of existing software, and detailing other valuable information for server builders. Add this page to your Mosaic hotlist at your first opportunity.

Greg Bean is Director of Administrative Computing at the University of Maryland Baltimore County in Catonsville, Maryland. In his role as Director, Greg is responsible for the business computing activities of the campus. In addition to his work at UMBC, he teaches short courses on Internet topics and local area networking at both the University of Maryland Baltimore County and Johns Hopkins University. Greg has over twenty years experience in information systems, having started his career with the Burroughs Corporation (now Unisys) in 1971. He writes a monthly column on Internetworking for INTERACT magazine, a publication for the Hewlett Packard user community and is a member of the Internet Society. In 1993, he founded The Baltimore Internet Users Group to pursue those same aims at a regional level.

Greg_Bean@umbc.edu