Cleveland State University

Department of Electrical and Computer Engineering

 

EEC 681/781 Distributed Computing Systems

Fall Semester 2004

 

Course Objectives:          This course provides a comprehensive overview of distributed computing principles with emphasis on state-of-art technologies for building a highly reliable distributed system. 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, replication techniques and other fault tolerance principles.

Pre- or co-requisite:        EEC 484, Computer Networks

Textbook:                         Distributed Systems: Principles and Paradigms, by Andrew S. Tanenbaum, and Maarten van Steen, Prentice Hall, 2002.

Reference Books             Distributed Systems: Concepts and Design (3rd Edition), by George Coulouris, Jean Dollimore and Tim Kindberg, Addison-Wesley, 2000

 

Advanced CORBA Programming with C++, by Michi Henning, et al., Addison-Wesley, 1999

 

Unix Network Programming: Volume 1 Sockets and XTI (2nd Edition), by Richard Stevens 1998

Instructor:                      Dr. Wenbing Zhao     

Office:                SH317

Phone:                (216) 523-7480

Fax:                    (216) 687-5405

E-mail:                w.zhao1 at csuohio.edu

Office hours:      T Th 4:00-6:00pm and by appointment

 

 


 

Week

Topics

Reading

Problems

1

(Aug 30 - Sep 3)

Introduction To Distributed Systems; Distributed Systems Models And Design Principles; End-To-End Arguments

 

1.1-1.5

1.1-1.19

2

(Sep 6 – 10)

Labor Day – September 6

Layered Protocols, Remote Procedure Call, Remote Object Invocation

 

2.1-2.3;

2.1-2.14

3

(Sep 13 - 17)

Examples Of Remote Object Invocation (DCE Remote Objects, Java RMI, CORBA); Message-Oriented Communication; Stream-Oriented Communication

 

2.3.5-2.3.6; 9.1.1-9.1.2; 2.4-2.5

2.15-2.26;

4

(Sep 20 – 24)

Threads; Clients And Servers; Code Migration And Software Agents

 

3.1-3.5

3.1-3.24

5

(Sep 27 – Oct 1)

Naming Entities, Locating Mobile Entities; Removing Unreferenced Entities

 

4.1-4.3

4.1-4.23

6

(Oct 4 – 8)

Midterm Test #1 – Monday, October 4

Clock Synchronization; Logical Clocks

 

Ch. 1-4

5.1-5.2

 

5.1-5.5

7

(Oct 11 – 15)

Columbus Day – Monday, October 11

Global State; Election Algorithms; Mutual Exclusion

 

5.3-5.5

5.6-5.13

8

(Oct 18 – 22)

Distributed Transactions; Introduction To Consistency And Replication; Data Centric Consistency Models

 

5.6; 6.1-6.2

 

5.14-5.22;

6.1-6.14

9

(Oct 25 – 29)

Client-Centric Consistency Models; Distribution Protocols

 

6.3-6.4

6.16-6.20

10

(Nov 1 – 5)

Consistency Protocols

Introduction To Fault-Tolerance; Process Resilience

6.5

 

6.21-6.27

11

(Nov 8 – 12)

Midterm #2 – Monday, November 8

Reliable Client-Server Communication

 

Ch. 5-6

7.1-7.3

 

7.1-7.8

12

(Nov 15 – 19)

Reliable Group Communication; Distributed Commit;

 

7.4-7.5

7.9-7.17

13

(Nov 22 – 26)

Recovery; Examples Of Fault Tolerance Infrastructures

 

7.6; 9.1.7

7.18-7.21

14

(Nov 29 – Dec 3)

 

Introduction To Security; Secure Channels

8.1-8.2

8.1-8.10

15

(Dec 6 – 10)

Access Control; Security Management; Examples Of Security Systems

 

8.3-8.7

8.11-8.7

16

(Dec 13 – 17)

Final Project Presentation

December 15, 6:00-8:00pm

 

 

 

Assignments

Programming assignments. For each assignment, the students are to submit the program source code together with documentation, containing a concise design specification (flow charts are encouraged), usage instructions and performance measurement results. Feel free to use a programming language that you prefer.

l         A reliable point-to-point basic file transfer tool using UDP/IP

l         A CORBA-based distributed naming service

l         Implementation of a few well-known distributed algorithms

l         Secure file transfer (extra credit)

Written Assignments

l         Problems in Chapter 5, 6, 7, 8

 

Late programming assignments are accepted within 5 calendar days after due date, but the scores will be lowered on a 20% per day basis.

 

Course Project

The students taking this course are expected to design, develop, document, and demonstrate a substantial distributed system. Students can form a group of 2 on the course project. Each group will be asked to select a project topic from the following list or to propose their own topic, by October 18, 2004. By this date, each group should submit a first draft of the specifications and technical design for their selected project. During the final examine, each group should give a presentation of the design, implementation and performance measurements of the selected project. Besides the presentation, for each project, it is required to turn-in the following:

 

l         A detailed specification of the distributed system developed, explaining the main concepts exhibited by the project, and the protocols and techniques that the student designed and applied

l         A well-documented programming framework/library with primitives and utilities that is relevant for the selected project topic

l         A demonstration application showing the functionality supported by the programming framework/library

 

Potential project topics:

1.       Implementation of a group communication system

2.       A fault tolerance infrastructure for CORBA servers

3.       Peer-to-peer file distribution service (read-only). Multicast of requests, caching, parallelized transfers.

4.       Stateless distributed file system: file server, client-side library, caching and consistency mechanisms.

5.       Secure anonymous storage, via a peer-to-peer network.

6.       Server clustering for high availability (failover)

 

Due date: December 15 (the same day that the final examination is scheduled). The printouts of the design, implementation and performance measurement document and the code are due at the time of presentation. The electronic copy is due on the same day at 11:59pm.

 

Late turn-in of the final course project is NOT accepted.

 

Grading

Midterms 40% (20% each)

Assignment 30% (programming assignments 10%, written assignments 20%; extra credit assignment 5%)

Course Projects 25% (presentation 5%, the rest 20%)

Class Participation 5%

 

Note

Midterms are closed-book and closed-notes. 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.

 

The date and time for the final examination (course project presentation) are specified by the University. No changes are allowed for any reason, including travel plans.