Syllabus for CS 537, Client-Server Interfaces

Spring 2002


The chapter readings are from Comer and Stevens; the tips are from Snader. I have matched only selected tips from Snader with chapters from Comer and Stevens; you should read all of Snader before (preferably well before) the end of the semester.

I will try hard not to change the syllabus during the semester, but I make no promises.

Week 1 - Introduction to Client-Sever Computing (22 & 24 January)

Readings
Chapters 1 & 2

Class notes
Distributed computing introduction
Client-server distributed computing An axiomatic definition of distributed computing

Week 2 - The Socket API (29 & 31 January)

Readings
Chapters 4 & 5, Tip 5

Class notes
The IP protocol set
The Sockets API

Week 3 - Iterative Servers (5 & 7 February)

Readings
Chapters 9 & 10, Tips 20 & 21

Class notes
Iterative servers

Project
Project 1 available (last modified on 2 March 2002) on Tuesday, 5 February, due on Tuesday, 5 March at 2:00 p.m.

Week 4 - Client and Server Algorithms (6 & 8 February)

Readings
Chapters 6 & 8, Tip 4

Class notes
Client architectures
Server architectures

Week 5 - Forked-Based Concurrency (12 & 14 February)

Readings
Chapters 3 & 11

Class notes
Concurrency
Unix fork concurrency

Week 6 - Remote-Procedure Calls (19 & 21 February)

Readings
Chapter 21

Class notes
Introduction to remote procedure calls

Week 7 - Data Representations and Program Generation (26 & 28 February)

Readings
Chapters 20 & 22

Class notes
XDR and the presentation layer
Building RPC systems
RPC case studies

Week 8 - Thread-Based Concurrency (5 & 7 March)

Readings
Chapters 12 & 13

Class notes
Thread based concurrency
Single-threaded concurrency
Process vs threads performance

Project
Project 1 due on Tuesday, 5 March at 2:00 p.m.
Project 2 available on Tuesday, 5 March, due on Tuesday, 2 April at 2:00 p.m.

Test 1 - Tuesday, 5 March
The answers
The grades

Week 9 - Spring Break (11-17 March)

Week 10 - Concurrency Issues (19, 21 March)

Readings
Chapters 16 & 17

Class notes
Concurrency and Server Architectures
Concurrency and Client Architectures
Concurrency and Server Performance

Week 11 - HTTP and CGI (26, 28 March)

Readings
Hypertext Transfer Protocol - HTTP/1.0 (rfc 1945)
The Common Gateway Interface (CGI)

Class notes
The Hypertext Transfer Protocol
Fun with HTTP
The Common Gateway Interface
Fun with CGI

Drop Day - 1 April

Week 12 - The Network File System (2 & 4 April)

Readings
Chapter 24

Class notes
Distributed File Systems

Project
Project 2 due on Tuesday, 2 April at 2:00 p.m.
Project 3 available (last modified on 3 May 2002) on Tuesday, 2 April, due on Friday, 3 May at 2:00 p.m.

Test 2 - Tuesday, 2 April
The answers
The grades

Week 13 - Tunneling and Gateways (9 & 11 April)

Readings
Chapters 18 & 19

Class notes
Tunneling
Gateways

Week 14 - Multi-Protocol and Multi-Service Servers (16 & 18 April)

Readings
Chapters 14 & 15, Tips 17 & 18

Class notes
Multi-Protocol Servers
Multi-Service Servers

Week 15 - Streaming Media (23 & 25 April)

Readings
Chapter 28

Class notes
Streaming media
CORBA

Week 16 - High-Performance Server Architectures (30 April & 2 May)

Readings
The SEDA event-driven architecture.
The Flash web server architecture.

Project
Project 3 due on Tuesday, 30 April at 2:00 p.m.

Test 3 - Tuesday, 30 April
The answers
The grades

Open Lecture on Jini during the final-exam period from 7:45 p.m. to 9:45 p.m. on Thursday, 9 May, in HH 522.


This page last modified on 9 May 2002.