Department of Electrical and Computer Engineering
EEC 681/781 Distributed Computing Systems
Spring 2006
Course Objectives: This course provides a comprehensive overview of
distributed computing principles with emphasis on practical techniques on
distributed computing. Through this course, students will get sufficient
understanding and hands-on experiences on distributed systems modeling,
inter-process communication, remote method invocation, processes and events
ordering, and synchronization.
Pre- or co-requisite: EEC484/584, Computer Networks
Textbook: Distributed Systems: Principles and
Paradigms, by Andrew S. Tanenbaum,
and Maarten van Steen, Prentice Hall, 2002.
Reference Book Distributed
Systems: Concepts and Design (3rd Edition), by George Coulouris, Jean Dollimore and Tim
Kindberg, Addison-Wesley, 2000
Instructor: Dr.
Wenbing Zhao
Office: SH317
Phone: (216)
523-7480
Fax: (216)
687-5405
E-mail: wenbing@ieee.org
Lecture time: T Th 4:00-5:50pm
Office hours: M W 4:00-6:00pm
and by appointment
|
Week |
Topics |
|
|
1 (Jan 16 - 20) |
Lecture 1 (notes): Introduction to
distributed systems Lecture 2 (notes): Distributed systems design
principles |
Distributed systems: chapter 1 |
|
2 (Jan 23 – 27) |
Lecture 3 (notes): Distributed systems
models; end-to-end arguments in system design Lab 0 – Getting familiar with Linux (Lab report due at the end of the lab) |
Distributed systems: chapter 1 End-to-end arguments in system design, by J. H. Saltzer, D. P. Reed, And D. D. Clark, ACM
Transactions on Computer Systems, Vol. 2, No. 4, November 1984, Pages
277-288. |
|
3 (Jan 30 – Feb 3) |
Lecture 4 (notes): RPC and RMI Lab 1 – Java RMI (session 1) (Lab report due at the end of the lab) |
Distributed systems: chapter 2 http://java.sun.com/developer/onlineTraining/rmi/RMI.html |
|
4 (Feb 6 – 10) |
Lab 1 – Java RMI (session 2) (Lab report due at the end of the lab) Lecture 5 (notes): Message-oriented
communication; Java Message Service |
Distributed systems: chapter 2 Handout |
|
5 (Feb 13 – 17) |
Lab 2 – Java Message Service (session 1) (Lab report due at the end of the lab) Lab 2 – Java Message Service (session 2) (Lab report due at the end of the lab) |
|
|
6 (Feb 20 – 24) |
Midterm Test #1 (lecture 1-5; lab 1-2) – Tuesday, Feb
21 Lecture 6 (notes): Process; Clients and
servers; Code migration |
Distributed systems: chapter 3 |
|
7 (Feb 27 – Mar 3) |
Lecture 7 (notes): Naming and Lightweight Directory
Access Protocol Lab 3 – Java JNDI (session 1) (Lab report due at the end of the lab) |
Distributed systems: chapter 4 |
|
8 (Mar 6 – 10) |
Lab 3 – Java JNDI (session 2) (Lab report due at the end of the lab) Lecture 8 (notes): Clock
synchronization; NTP |
|
|
9 (Mar 13 – 17) |
Spring Recess (no class) |
|
|
10 (Mar 20 – 24) |
Lecture 9 (notes): Logical clocks Lecture 10 (notes): Global state,
election algorithms and mutual exclusion |
|
|
11 (Mar 27 – 31) |
Midterm #2 (lecture 6-10, lab 3) – Tuesday, March 28,
Location: SH306 Lecture 11: Transaction and consistency models |
|
|
12 (Apr 3 – 7) |
Lab 4 – MySQL/JDBC (session 1) (Lab report due at the end of the lab) Lab 4 – MySQL/JDBC (session 2) (Lab report due at the end of the lab) |
|
|
13 (Apr 10 – 14) |
Lecture 12: ProSkills – by Jim Watson (Attendance
mandatory) Project outline due: April 11 Lecture 13: Web services |
|
|
14 (Apr 17 – 21) |
Lab 5 – Apache Axis (session 1) (Lab report due at the end of the lab) Lab 5 – Apache Axis (session 2) (Lab report due at the end of the lab) |
|
|
15 (Apr 24 – 28) |
Lecture 14: Peer-to-peer systems Project progress report due; April 25 Lab 6 –
JXTA Shell (P2P) (session 1) (Lab report due at the end of the lab) |
|
|
16 (May 1 – 5) |
Lab 6 –
JXTA Shell (P2P) (session 2) (Lab report due at the end of the lab) Project presentation – May 4 (Attendance mandatory) |
|
|
17 (May 8 – 12) |
Project presentation – May 9, Tuesday 4:00-6:00pm (Attendance mandatory) |
|
Course Project
Implementation track: You are expected to build a distributed
application/system based on the tools and systems you have learned during the
labs.
-
A team of no more than two students for each project
-
A presentation and a demo of your project is required
-
A typed comprehensive report of your project is required
Theory track: You are expected to survey comprehensively
a topic of your interest in the field of distributed systems.
-
Individual project
-
A presentation of your survey is required
-
A typed comprehensive report of your project is required
Grading
Midterms 40% (20% each)
Labs 40% (based on lab participation and lab report due at the end of each lab)
Course project: implementation track (30%), theory track (20%)
Examines are closed-book and closed-notes. However, you can bring with you one page of formulas and definitions (US Letter size or smaller). There will be no make-up tests. If you have serious reasons for missing a test (accident, medical emergency, death in the family), upon presentation of an official written document validating the circumstance the test will be rescheduled.