| CS290I - Scalable Internet Services and Systems | |
|
Thorsten von Eicken - UCSB - Spring 2001 |
|
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):
TCP, HTTP, measuring performance
Apache, CGI, Perl, SQL
Servlets, JSP, app servers
SNMP, MRTG, monitoring
Advanced web servers (3 wks)
SSL, certificates
Firewalls, intrusion detection
Fast web servers
Routing
Parallelism, replication, advanced (3wks)
Clusters, load-balancing, fail-over
Parallelism, cache-coherence, virtual synchrony
Caching