Related Research
The research described here is work in progress. It is funded in part by Object Technologies International and by Eastman Kodak Company, Rochester, N.Y.

Overview

For a good discussion of general Web server issues, such as design, caching, and performance, read Web Server Technology: The Advanced Guide for World Wide Web Information Providers, by Nancy J. Yeager and Robert E. McGrath.

Benchmarking

Pointers to papers that discuss benchmarking efforts.
Apache Performance Notes
An excellent article by Dean Gaudet, discusses practical issues behind Web server performance, and how Apache has been designed to deal with them.
Performance of Several HTTP Demons on an HP 735 Workstation
Describes Web server performance measurement experiments conducted on an HP 735.
Web Server Workload Characterization: The Search for Invariants
The DISCUS research group has provided a detailed analysis of the workload characteristics of Web servers.
Measuring the Behavior of a World-Wide Web Server
Describes a performance measurement tool, called Webmonitor, and provides a detailed study of the performance of the Apache Web server on a Pentium running Linux. Study done by the OCEANS research group.
Web66 GStone Testing Laboratory Preliminary Report
This page describes the testbed and methodology for the Web66 GStone benchmark.
Web Server Comparative Benchmarking
WebCompare has some pointers to other benchmarking efforts.

Web Server Modeling

Sites which model the performance of Web servers. This is closely related to benchmarking, in that models are used to predict how a server will perform in particular situations.
A Model of Web Server Performance
Presents a simple, high-level, open queueing network model from which is derived several general performance results for Web servers on the Internet.

Web Server Design

Links to various sources which discuss designs and strategies for improving Web performance with better Web servers.
Keeping the 400lb. Gorilla at Bay
Describes strategies for improving Web server performance, and optimizations for HTTP.
A Scalable HTTP Server: The NCSA Prototype
Describes a design for a server which can allow for dynamic scaling of the Web server load capacity.
Service Configurator -- A Pattern for Dynamic Configuration of Services
A design pattern for a server which decouples the implementation of services from the time when they are configured.

Protocol Tweaking

The Case for Persistent-Connection HTTP
Written by Jeffrey C. Mogul, of WRL. Describes simulations demonstrating the benefits of persistent connections.
Hinted caching in the Web
Jeffrey Mogul describes a caching technique which exploits spatial locality instead of temporal locality. These take the form of hints provided by the Web server, which requires protocol modifications.
Keeping the 400lb. Gorilla at Bay
Describes strategies for improving Web server performance, and optimizations for HTTP.
ADAPTIVE: A Dynamically Assembled Protocol Transformation, Integration, and eValuation Environment
ADAPTIVE provides an integrated environment for developing and experimenting with flexible transport system architectures that support lightweight and adaptive communication protocols for diverse multimedia applications running on high-performance networks.
Network Performance Effects of HTTP/1.1, CSS1, and PNG
CERN demonstrates how speedups in performance can be gained by using new protocol technologies.

Performance Tuning

Web Server Tuning And Monitoring
OS and Web server configuration tips to increase Web server performance on Solaris systems.
Tuning UNIX for Web service
Chuck Musciano explains how to tune OS network parameters to gain server performance.

Caching + Others

Hinted caching in the Web
Jeffrey Mogul describes a caching technique which exploits spatial locality instead of temporal locality. These take the form of hints provided by the Web server, which requires protocol modifications.
Characterizing Reference Locality in the WWW
A paper which attempts to model requests made to Web servers in terms of both spatial and temporal locality, leveraging from observations of self-similarity in Web traffic.
Using speculation to reduce server load and service time on the WWW
Speculation refers to a statistical technique, where the Web server caches information about other pages likely to be requested given the current request. In anticipation of these future requests, the server may push the data to the client even before the client requests it.
Main Memory Caching of Web Documents
This paper compares and evaluates simulations of different caching techniques based on traces collected from several Web sites. It includes a case where an adaptive technique outperformed all the other evaluated algorithms.
Cisco Cache Engine
An implementation of a transparent Web server proxy. From their Web page:
Cisco Systems' Cache Engine performs shared network caching of Web content on the local network to eliminate repeated transmission of identical content over wide-area network (WAN) links.
Cisco LocalDirector
Transparent load balancing hardware. From their Web page:
LocalDirector is a device that dynamically load-balances traffic between multiple co-located servers to ensure timely access and response to requests. It is independent of domain name servers and applications; rather, it functions as a front end to a group of servers, intelligently load balancing traffic demands between servers and speeding user access to server-based applications. Servers can be added and removed transparently, but to end users LocalDirector provides the appearance of a single, "virtual" server.

Thread Programming

An OO Encapsulation of Lightweight OS Concurrency Mechanisms in the ACE Toolkit
This describes the ACE concurrency components.
Beyond Multiprocessing ... Multithreading the SunOS Kernel
Overview of the SunOS threaded kernel architecture.
Writing Multithreaded Code in Solaris
Examples of how to use threads in applications.

Network Programming

Acceptor and Connector -- A Family of Object Creational Patterns for Initializing Communication Services
This paper jointly describes the Acceptor and Connector patterns. The intent of these patterns is to decouple the active and passive connection roles, respectively, from the tasks a communication service performs once connections are established.
An Object-Oriented Framework for Dynamically Configuring Extensible Distributed Systems
Describes the ADAPTIVE Service eXecutive (ASX) framework, an object-oriented framework composed of automated tools and reusable components to simplify the development, configuration, and reconfiguration of applications in a distributed environment.
W. Richard Stevens' Home Page
Author of UNIX Network Programming and Advanced Programming in the UNIX Environment, standard programming reference book.

James Hu <jxh@cs.wustl.edu>
Last modified: Fri Nov 14 17:03:08 CST 1997