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 |
|
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 |
4.1-4.3 |
4.1-4.23 |
|
6 (Oct 4 – 8) |
Midterm Test #1 – Monday,
October 4 Clock Synchronization; Logical Clocks |
Ch. 1-45.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 8Reliable 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%
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.