CS290I - Scalable Internet Services and Systems

Thorsten von Eicken - UCSB - Spring 2001

Handout #1 - Course Description

The growth of the Internet has been exponential and puts a tremendous strain on many web sites. In this course we will study how to architect scalable and fault tolerant web sites and Internet services. To achieve scalability and fault tolerance many techniques well known from massively parallel and distributed systems are applied. We will review the technology underlying existing Internet services and study open research issues.

The course gives an introduction to basic web technologies, related scalable computing techniques, and distributed fault tolerant techniques. The emphasis will be on building actual Internet services. Students will use Sun multiprocessors as their main experimental platform to develop their own Internet service.

Course format

The course will have a strong "research flair" to it. Students are expected to do significant reading and programming, as well as present some papers and projects in class. This is an "advanced topics" course intended to illustrate the "state of the art" and provide food for thought. The hands-on part of the course will consist of 4 major programming assignments that will offer room for substantial creativity, but will be constrained such that we can provide a reasonable experimental infrastructure.

Prerequisites

Students should have had a graduate level operating system course and must have basic familiarity with computer architecture, networking, distributed computing, C/C++, Java, and Unix.

This course will require significant breadth knowledge. Not everyone is expected to know everything. The first two projects are done alone and the third and fourth will be done in groups. You are expected to catch-up on the topics you feel less comfortable with and I will adapt the lectures to the average knowledge. The bottom line is that if you are determined to learn (and have the time!), you are welcome to the course.

Grading

The final grade will roughly be composed of: 20% ea. projects 1-3, 30% project 4, 10% class participation.

Administrative

Tentative Syllabus

Basic web technologies (4wks):

Advanced web servers (3 wks)

Parallelism, replication, advanced (3wks)