Distributed Systems
Course: Distributed Systems (320301)
Instructor: Jürgen Schönwälder
Wednesday 11:15 - 12:30 West Hall 2
Thursday 15:45 - 17:00 West Hall 2
Start: February 4th 2004

Course topics: clock synchronization, logical and vector clocks, reliable, causal and atomic multicasts, virtual synchrony, election algorithms, voting algorithms, consistent snapshots, security.

Role of the course in the curriculum: This course focusses on distributed algorithms that are the foundation for complex and fault-tolerant distributed systems. The material covered has been selected to provide a solid overview over the key algorithms and to develop an understanding of the issues that influence solutions for a certain problem in a distributed system. This course is recommended for EECS students with a strong interest in communication networks.

Course Materials:
  • S.J. Mullender, "Distributed Systems", Addison-Wesley, New York, 1993" J
  • G.F. Coulouris, J. Dollimore, T. Kindberg, "Distributed Systems: Concepts and Design", Addison-Wesley, 2001
  • A.S. Tanenbaum, M.v. Steen, "Distributed Systems: Principles and Paradigms", Prentice Hall, 2002
  • G. Tel, "Introduction to Distributed Algorithms", Cambridge University Press, 2000
2004-02-04 2004-02-05 Introduction, General Concepts
2004-02-11 2004-02-12 RPCs, Middleware Systems
2004-02-18 2004-02-19 CORBA, Java RMI/JNDI/EJB
2004-02-25 2004-02-26 Web Services (XML, XSD, WSD)
2004-03-03 2004-03-04 Distributed File Systems (NFSv1, NFSv4)
2004-03-10 2004-03-11 Distributed File Systems (CIFS, AFS)
2004-03-17 2004-03-18 Distributed Algorithms
2004-03-24 2004-03-25 Mid-Term, Clocks and Time
2004-03-31 2004-04-01 Wave Algorithms
2004-04-14 2004-04-15 Synchronization and Deadlock Detection
2004-04-21 2004-04-22 - no classes -
2004-04-28 2004-04-29 Election Algorithms
2004-05-05 2004-05-06 Voting Algorithms
2004-05-12 2004-05-13 Fault Tolerance

The final grade is made up of the mid-term exam (30 %), ten homeworks (30 %, each 3 %) and the final exam (40 %).

The homeworks must be submitted individually. It is required to submit the solution for programming problems electronically and on paper to the instructor. Late submissions will not be accepted.

The overall percentage will be converted into IUB grades as follows:

[91-95]1.33Very Good
[86-90]1.67Very Good
[ 0-40]5.00Failing

Any programs which have to be written will be evaluated based on the following criteria:

  • correctness including proper handling of error conditions
  • proper use of programming language constructs
  • clarity of the program organization and design
  • readability of the source code and any output produced