Computer Science Department
College of Arts and Sciences
Coordinates
Instructor: Azer Bestavros (with help from Mark Crovella and John Byers)
Meetings: Wed 1:00pm-03:00pm (Paper Presentations/Discussions)
Fri 1:00pm-03:00pm (Joint meeting with Commonwealth Group)
Place: MCS 135
Office Hours: Tuesday 11:00am-12:30pm (or by Appointments)
URL: http://www.cs.bu.edu/~best/crs/cs591/S99
Schedule: http://www.cs.bu.edu/~best/crs/cs591/S99/Schedule.html
Overview
This course will address recent advances in the design of large-scale
networked information systems, with a particular focus on the design
of high-performance clustered Web servers. Topics of interest include
(among possibly other topics...)
- Architecture and Design Issues for Clustered Servers
- Networking and OS Support for High Performance Servers
- Performance Evaluation and Characterization
- Caching, Prefetching and Replication
- Network and Server QoS Management
- Transport Protocols to Support "mass" Communication
This class should serve as ``testing grounds'' for those interested in
joining the Commonwealth Research
Project. The class will have two regular weekly meetings on
Wednesdays and Fridays as described below.
- The Wednesday meetings will be dedicated to reading and
discussing papers that describe recent advances related to large-scale
networked systems (a.k.a. the Web). A preliminary reading list is
being compiled and you can take a sneak preview of it at http://www.cs.bu.edu/~best/crs/cs591/S99/readings.
- The Friday meetings will be dedicated to presentations/progress
reports related to the Commonwealth Project as well as projects
undertaken as part of CS591. I am hoping that this will give an
opportunity for those taking the course to be "recruited" into
Commonwealth-related projects. Also, this should give Commonwealth
group members who are not taking the course for credit an opportunity
to benefit from discussions/projects that may be triggered by cs591
readings.
Requirements
Students taking this class will be required to complete the following
requirements:
- Class participation is vital for a full understanding and
appreciation of the material covered. This must be complemented
with a consistent and thorough reading of the assigned papers. Class
participation will constitute 10% of the final class grade.
- Make at least one class presentation and lead the discussion
of a set of papers from the course reading
list. Paper presentations will constitute 15% of the final class grade.
- Contribute to the writeup of on-line class notes for
a class presentation by another student. This writeup will constitute
15% of the final class grade.
- By 3/3/1999, submit a 2-page proposal for a project related
to the subject matter of the course. Proposals for class projects will
be presented/discussed on 3/5/1999. Students already working on
Masters or PhD projects on the subject matter need not submit new
projects. Students are encouraged to speak with faculty or other more
"senior" students early during the semester to identify suitable
projects.
- Complete (or show significant progress towards completion of) the
proposed class project by 4/21/1999. Final project presentations will
be scheduled during the last 2 weeks of the semester. The class
project will constitute 40% of the final class grade.
- There will be a final exam on the reading materials
assigned and discussed in the class. The exam will be quite easy for
students who kept up with assigned readings and with paper
presentations and discussions. The final exam will constitute 20% of
the final class grade.
Prerequisites
Consent of instructor(s) is required. Here are some guidelines
to gauge whether or not a prospective student is "fit" for the class.
- Prospective students should be familiar with basic concepts of
system design (e.g. resource management, performance evaluation,
and issues of concurrency and synchronization) as covered in
CS-350 or CS-552 (or equivalent).
- Prospective students should be familiar with basic networking
protocols (e.g. TCP/IP protocols and Socket API) as covered in
CS-555 (or equivalent).
- Here is a "Prerequisite Project" that should be a good indicator
(or should I say a "litmus test") to whether or not you are ready to
enroll in cs591.
Construct a simple web server. Although web servers typically
use port 80, you should use a port number > 1024 since those
ports are available without root priviledges. Your server should
listen on this port for "HTTP GET" requests and satisfy them when
they arrive. It will not be necessary to satisfy multiple
overlapping requests, so your server will be a single process and
need not create any new processes. (So you needn't test your
server with more than one request at a time). Your server will
need to correctly handle html text, postscript, gif images, and
jpg images; you should test your server with all four of these
data types. Testing should be possible using an unmodified
browser, (e.g., netscape navigator or internet explorer).
You may want to check the HTTP 1.1 spec, RFC
2068 (a typical RFC opaque document that you will need
practice digesting).
Created on: 1998.11.05
Updated on: 1998.11.15
Maintainer: Azer Bestavros