CS290I - Scalable Internet Services and Systems

Thorsten von Eicken - UCSB - Winter 2002

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 tolerance 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 practical component. Students are expected to do significant reading, independent learning, designing, programming, and testing. 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 of knowledge. Not everyone is expected to know everything, but everyone is expected to pick-up a lot of new knowledge independently. The first project is done alone and the other two 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)