Distributed Systems
Course: Distributed Systems (320312)
Instructor: Jürgen Schönwälder
TAs: Stefan Markov
Wednesday 08:15 - 09:30 West Hall 2
Friday 11:15 - 12:30 East Hall 1
Start: February 1st 2006

The first part of the course focuses on distributed file systems and generic middleware systems such as CORBA or Web Services. The second part of the course focuses 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. The third part of the course focuses on security aspects (authentication, access control, privacy) in distributed systems and covers key mechanisms.

Topics: Middleware systems, distributed file systems, clock synchronization, logical and vector clocks, reliable, causal and atomic multicasts, virtual synchrony, election algorithms, voting algorithms, consistent snapshots, security, authentication, access control, privacy

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
2006-02-01 2006-02-03 Introduction, General Concepts
2006-02-08 2006-02-10 Middleware Systems (Corba, Java RMI)
2006-02-15 2006-02-17 Web Services (XML, XML Schema, WSDL, SOAP)
2006-02-22 2006-02-24 Distributed File Systems (NFS, CIFS, AFS)
2006-03-01 2006-03-03 Distributed File Sharing (Gnutella, P2P, DHTs)
2006-03-08 2006-03-10 Time and Clocks
2006-03-15 2006-03-17 Synchronization
2006-03-22 2006-03-24 Election and Voting
2006-03-29 2006-03-31 Multicasts and Virtual Synchrony
2006-04-05 2006-04-07 Viruses, Worms, Torjan Horses, Backdoors, Rootkits, Buffer Overflows
2006-04-19 2006-04-21 Cryptographic Algorithms (DES, AES, RSA, MD5, SHA-1)
2006-04-26 2006-04-28 Pretty Good Privacy (PGP), TLS, SSH, IPsec, DNSsec
2006-05-03 2006-05-05 Key exchange (Diffie-Hellman, Needham Schroeder, Kerberos)
2006-05-10 2006-05-12 Access Control (DAC, RBAC)

The final grade is made up of the mid-term exam (30 %), the final exam (30 %), biweekly quizzes (20 %) and some homeworks / mini projects (20 %). It is required to submit the solution for programming problems electronically and on paper to the instructor. Late submissions will not be accepted. Homeworks and project work must be defended in an oral interview.

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
  • Midterm Exam (2006-03-31 at 11:15, East Hall 1)
  • Final Exam (2006-05-19 at 12:30, R1-87)

    12:30Todor Stoyanov
    13:00Georgi Chulkov
    13:30Vladislav Marinov
    14:00Veddad Zahiragic