Cleveland State University

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

reading

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%)

 

Note

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.