When I deployed GroupCal, the servlet-based group calendar discussed in Chapter 10, most people liked it. But BYTE’s editor-in-chief complained that it didn’t work on airplanes, where he spent a lot of his time. Like all web-based software, GroupCal assumes that its display engine—that is, the browser—connects over a network to an HTTP server.
How hard could it be, I wondered, to run the servlet locally on a disconnected client? Not very hard at all, I found. That discovery prompted me to write a contact manager based on a tiny web server written in Perl. These experiments showed me that web-based groupware—such as a calendar or a contact manager—needn’t depend on a network connection to a conventional HTTP server. Such applications, written in Java, Perl, or any other productive, socket-capable language, can also rely on lightweight, local HTTP servers implemented in these same languages. My two prototypes, one in Java and one in Perl, exhibited the following characteristics:
Both weighed in at under a megabyte, so they could be delivered on a single floppy or by way of a reasonable download. That megabyte included the local web server, the application logic, and the data.
Both ran acceptably under Windows 95 on my aging 486-50, 16MB notebook PC.
Both could be installed by just unzipping the contents of a floppy, or equivalent download, into a single directory. One required a single environment variable, ...