Syllabus for CS 537, Client-Server Interfaces

Spring 2004


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.

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

Readings
Chapters 1 & 2

Class notes
Distributed computing introduction
Client-server distributed computing

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

Readings
Chapters 4 & 5

One-minute reviews
27 & 29 January

Class notes
The IP protocol set
The Sockets API

Week 3 - Client and Server Architectures (3 & 5 February)

Readings
Chapters 6 & 8

Class notes
Client architectures
Server architectures

One-minute reviews
3 & 5 February

Project
Project 1a available (last modified on 5 February 2004) on Tuesday, 3 February, due on Tuesday, 17 February at 5:00 p.m.

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

Week 4 - Iterative Servers (10 & 12 February)

Readings
Chapters 9 & 10, Tips 20 & 21
(optional) Send-receive Considered Harmful by Sergei Gorlatch, ACM Transactions on Programming Languages and Systems, January 2004 (vol 26, no. 1).

Class notes
Iterative servers

One-minute reviews
10 & 12 February

Week 5 - Concurrency Issues (17 & 19 February)

Readings
Chapters 16 & 17

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

One-minute reviews
17 & 19 February

Project
Project 1a due on Tuesday, 17 February at 5:00 p.m.
The grades.
A code review.

Week 6 - Process-Based Concurrency (24 & 26 February)

Readings
Chapters 3 & 11

Class notes
Concurrency
Process concurrency

One-minute reviews
24 & 26 February

Week 7 - Thread-Based Concurrency (2 & 4 March)

Readings
Chapters 12 & 13

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

One-minute reviews
2 & 4 March

Test 1 - Tuesday, 2 March
The answers
The grades

Project
Project 1b due on Tuesday, 2 March at 5:00 p.m.
The grades.

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

Week 8 - Spring Recess (8-12 March)

Week 9 - Remote-Procedure Calls (16 & 18 March)

Readings
Chapter 21 & 22

Class notes
Introduction to remote procedure calls
Implementing RPC

Week 10 - Data Representations and Program Generation (23 & 25 March)

Readings
Chapters 20 & 23

Class notes
RPC case studies
CORBA

One-minute reviews
16 & 18 March

Week 11 - HTTP and CGI (30 March & 1 April)

Drop Day - Monday, 29 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

One-minute reviews
30 March & 1 April

Project
Project 3 available (last modified on 20 April 2004) on Wednesday, 7 April, due on Monday, 3 May at 5:00 p.m.

Project 2 due on Tuesday, 6 April at 5:00 p.m.
The grades.

Test 2 - Tuesday, 30 March
The answers
The grades

Week 12 - Tunneling and Gateways (6 & 8 April)

Readings
Chapters 18 & 19

Class notes
Gateways
Tunneling

One-minute reviews
6 & 8 April

Project
Project 2 due on Tuesday, 6 April at 5:00 p.m.

Week 13 - The Network File System (13 & 15 April)

Readings
Chapter 24

Class notes
Distributed file systems
Peer-to-peer systems

One-minute reviews
13 & 15 April

Week 14 - Multi-Protocol and Multi-Service Servers (20 & 22 April)

Readings
Chapters 14 & 15, Tips 17 & 18

Class notes
Multi-Protocol Servers
Multi-Service Servers

Week 15 - High-Performance Server Architectures (27 & 29 April)

Class notes
Java remote method invocation
Jini

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

Test 3 - Tuesday, 27 April
The answers
The grades

Week 16 - Wrap-Up (3 May)

Project
Project 3 due on Monday, 3 May at 5:00 p.m.

Open Lecture on a subject to be determined during the final-exam period from 7:45 to 9:45 p.m. on Thursday, 6 May, in Edison 156.


This page last modified on 9 May 2004.