Cleveland State University

Department of Electrical and Computer Engineering

EEC 681/781 Distributed Computing Systems

Fall Semester 2008

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 (4th Edition), by George Coulouris, Jean Dollimore and Tim Kindberg, Addison-Wesley, 2005

                                         

Instructor:                        Dr. Wenbing Zhao           

Office:                SH434

Phone:                (216) 523-7480

Fax:                    (216) 687-5405

E-mail:                wenbing@ieee.org

Lecture time:      M W 6:00-7:50pm

Office hours:      M W 2:00-4:00pm and by appointment

 

Tentative Schedule:

Week

Topics

Reading

1

(Aug 25 - 29)

Aug 25:

  • Lecture #1 - Overview of the course; syllabus; policies (notes)

Aug 27:

  • Lecture #2 - Introduction to distributed systems; differences between computer networks and distributed systems (notes)

 

Handout

 

 

Ch. 1.1

Ch. 2.1

2

(Sept 1 – 5)

Sept 1: Labor Day (No Class)

Sept 3:

  • Lecture #3 – Distributed systems design principles; Distributed systems models (notes)

 

 

Ch. 1.2

3

(Sept 8 – 12)

Sept 8:

  • Lecture #4 – RPC and RMI (notes)
  • Handout for Lab #0

Sept 10:

  • Lab #0 – Getting familiar with Linux and Java programming

 

Handout

 

4

(Sept 15 – 19)

Sept 15:

  • Lecture #5 Java Tutorial & Java RMI (notes1, notes2) (attendance optional)
  • Lab #0 report due
  • Handout for Lab #1

Sept 17:

  • Lab #1– Java RMI

 

Ch. 2.2-2.3

5

(Sept 22 – 26)

Sept 22:

  • Lecture #6 - Message-oriented communication; Java Message Service (notes)
  • Lab #1 report due
  • Handout for Lab #2

Sept 24:

  • Lab #2 – Java Message Service

 

 

 

Ch. 2.4, handout

 

6

(Sept 29 – Oct 3)

Sept 29:

  • Lecture #7 - Web services (notes)
  • Lab #2 report due
  • Handout for Lab #3

Oct 1:

  • Lab #3 – Web services with Apache Axis

 

 

 

Handout

7

(Oct 6 – 10)

Oct 6:

·         Review and discussion (notes)

  • Lab #3 report due

Oct 8:

  • Midterm Test #1 (lecture 1-7; lab 0-3)

 

 

 

8

(Oct 13 - 17)

Oct 13: Columbus Day (No Class)

Oct 15:

  • Lecture #8 – Process; Threads; Clients and servers; Code migration (notes)

 

 

Ch. 3.1-3.4

9

(Oct 20 – 24)

Oct 20:

  • Lecture #9 – Naming and Lightweight Directory Access Protocol (notes)
  • Handout for Lab #4

Oct 22:

  • Lab #4 (Session 1) – Java JNDI

 

Ch. 4.1

 

 

10

(Oct 27 – 31)

Oct 27:

  • Lecture #10 – Clock synchronization; logical clocks (notes)
  • Lab #4 report due

Oct 29:

  • Lecture #11 - Global state, election algorithms and mutual exclusion (notes)

 

Ch. 5.1-5.2

 

 

 

Ch. 5.3-5.5

11

(Nov 3 – 7)

Nov 3:

  • Lecture #12 – Transaction processing (notes)
  • Handout for Lab #5

Nov 5:

  • Lab #5 – MySQL/JDBC

 

Ch. 5.6, Ch. 7.5.1

 

12

(Nov 10 – 14)

Nov 10:

  • Discussion session
  • Lab #5 report due

Nov 12:

  • Midterm #2 (lecture 8-12, lab 3-5)

 

 

 

 

 

13

(Nov 17 – 21)

Nov 17:

  • Literature Review: Presentation and Discussion#1: Paxos Algorithm (Hua)

Nov 19:

  • Literature Review: Presentation and Discussion#2: Google File System (Swetha)

 

 

 

 

 

14

(Nov 24 – 28)

 

Nov 24:

  • Literature Review: Presentation and Discussion#3: End-to-End Arguments in System Design (Hasan)

Nov 26:

  • Canceled (Thanksgiving Eve)

 

 

 

 

 

15

(Dec 1 – 5)

Dec 1:

·         Literature Review: Presentation and Discussion#4: TBD (Chiluka)

Dec 3:

  • Literature Review: Presentation and Discussion#5: AMQP (Kevin)
  • Summary

 

16

(Dec 8 – 12)

Dec 10 (6-8pm):

  • Final Project report due

 

 

Project

For individual or a team of two. You get to choose the project topic and you can use a programming language of your choice. The topic must be closely related to distributed computing. Required submissions for the project:

  • Project report describing design, implementation, user’s guide for your program, and performance measurement results. You need to explicitly document to what degree of distribution transparency your program achieves and elaborate the mechanisms that you have used to realize the transparency.  If you have referenced other people’s work, you must cite them properly. Not doing so will be regarded as act of plagiarism and will lead to academic consequences based the CSU student code of conduct.
  • Fully commented source code (points will be deducted if not enough comment)
  • Test input and output data
  • Demonstration and possibly source code review. If you are found that you do not understand, or cannot explain clearly, the code and the program for your projects during the demo and code review, you will not get any credit. The evaluation is individual based. Different team members might not get the same credit.

To give you an idea what you might want to work on, the following is a list of projects that have been done by students in this class last time it was offered.

ü  Grid computing in JXTA

ü  Online lottery using Java RMI

ü  Epidemic algorithm in distributed systems

ü  Online marketplace

ü  Online menu ordering system

ü  e-Banking

ü  Instant messaging service using Java RMI

ü  A streaming media service using Java RMI

ü  Implementation of calendar service using Java RMI &JMS

ü  Text based group editor

 

Midterm Examinations

There is no makeup exam. The examinations are closed book and closed notes, except that you are allowed to bring with you a one-page hand-written cheat sheet no larger than the US letter size (double-sided allowed).

 

Labs

There will be no makeup lab. Exception may be granted to those who have strong background to complete the labs without my supervision (in which case, you do not have to show up during the designated lab sessions. However, lab reports are still required). If you are granted an exception, the related requirement on the lab session attendance for class participation credit is automatically waived.

 

Class Participation

10% of the course credit is allocated to encourage student class participation. I may perform a roll call in the beginning of each class to determine the attendance. To obtain the full credit for class participation, you must satisfy the following conditions:

  • You do not miss more than 2 lectures
  • You do not miss any examine and lab sessions
  • You have asked at least 10 questions during the semester. You are also encouraged to give me advice on how you would like me to improve my teaching to make it more conducive. For each piece of advice, it will be counted as 2 questions.

To help me keep track who asked me questions, please send me an email with the following information for each question you have asked within 24 hours after the lecture:

  • The question you asked
  • My response
  • Your comment on my response and suggestion for improvement, if any

 

Grading

Class participation 10%

Midterms 40%

Labs 20%

Literature Review and Presentation 10%

Project 20%

 

The final grading is based on your accumulated effort in this course. Your final grade is determined approximately based on the following schedule:

A: 90-100%

A-: 85-89%

B+: 75-84%

B: 65-74%

B-: 60-64%

C: 50-59%

F: <50%