18-845 Individual Programming Project

Assigned: Thu Jan 17, 2002
Due: 12:30pm, Thu, Feb 7, 2002

Note: in the following, $coursedir refers to /afs/ece/class/ece845/.

Intro

For this project, you will design and implement your own protocol for serving dynamic Web content. The purpose is to give you some practical context when we study research issues in server design.

Description

The project has three parts:

Part I: Baseline concurrent server

Here are the requirements for the baseline server:

Part II: Optimized concurrent server

The idea here is to improve the performance of your baseline server by replacing the standard CGI protocol with a protocol of your own design. This is entirely open-ended. Anything goes.

There are a number of existing standards for this kind of thing, such as ISAPI (Microsoft), NSAPI (Netscape), and fast-cgi. However, I would encourage you to forget about these and start from first principles. Design something that is simple and fast. A good design is likely to include some combination of dynamic linking, threads, and code caches.

Part III: Evaluation of baseline and optimized servers

In this part, you will evaluate how well your baseline and optimized servers can serve dynamic content. For your evaluations, start with the adder.c CGI program from the CS:APP network programming chapter.

The test program for your protocol should have similar functionality (but of course it can be different from adder.c in order to conform to your protocol).

Report performance of your baseline and optimized servers as server throughput (requests per second measured on the server).

Handin instructions

Tar up the directory containing your solution in a file called ANDREWID.tar", where ANDREWID is your Andrew login name, and copy it to $coursedir/ip/handin. You have list and insert privileges only in this directory. If you need to hand in twice, put a number after later handins, e.g., ANDREWID-1.tar, ANDREWID-2.tar, and so on.

Evaluation

Evaluation will be done by a live demo with the TA. Please arrange your demo time with the TA. The projects are open-ended and so is the evaluation. Here are some rough guidelines:

Hints and sources of information


Last modified: Wed Jan 8 18:52:58 EST 2003