Distributed Systems - 3800

Note: There is no class in Dec 1, 2008!



 Dr. Spyros Voulgaris




+41 44 632 72 59


ETH Zentrum(IFW B47.2)

Office hours:

By appointment with Evelyne Berger (


Monday, 16:15 – 18:00


BIN 2.A.10 (subject to change)


B.Sc. / M. Sc. / dipl. WI (5+)

Completion requirements:

50% of the points in assignments and passing grade in final exam

Teaching Assistants:

Jiwen Li
Email: li[at]


“469 - Kommunikation und Verteilte Systeme” or similar course.


(The final exam can be written in both, English and German)


Computer systems are increasingly invading every niche of our life. In restaurants, PDAs are used in conjunction with wireless networks and servers to transfer orders directly from the table to the kitchen. In hospitals, accounting and security is increasingly supported by smartcards and RFID readers everywhere. In the financial industry a myriad of distributed computers control the money flow of the economy and support instant access to capital markets. And, last but not least, most of us constantly carry a cell-phone around that can be used for buying tickets, sending around messages, voting, sending messages to the public on big-screens in open-air concerts, … as well as placing phone calls.

But how can those computer systems be coordinated? How do they work together? Building on existing network infrastructure this course explains how distributed computer systems can be built. Starting from simple host to host communication it explains issues such as remote procedure calls, synchronous vs. asynchronous calls, as well as the functionality of complex middleware systems and techniques for referentially decoupled calls).

Specifically the course will cover the following subjects:

  • Foundations
    • system models for distributed computing
    • interprocess communication
  • Remote invocation and distributed objects
    • remote procedure calls (classical, marshalling, simple web services)
    • remote object systems
  • Temporal decoupling of calls
    • synchronous vs. asynchronous processing
    • messaging infrastructure
  • Referential decoupling of calls
    • name-space related messaging
    • tuple spaces
  • Middleware
    • distributed file systems
    • replication
    • distributed shared memory
    • web services and beyond (grids)
  • Peer to peer systems

To top

Course Structure

The course is organized in the traditional lecture style with integrated exercises. It will be complemented by (probably) 4 take-home assignments. Where possible we will try to include practical case studies.


The final grade will be based on the total number achieved, which will be calculated as follows:

total number of points = final exam points + 1/5 * assignment points.

Also, you will have to achieve 50% of the assignment points in order to be allowed to participate at the final exam.

To top

Supporting Material


  • Distributed Systems: Principles and Paradigms(2nd Edition)
    by Andrew S. Tanenbaum and Maarten van Steen.
    Prentice Hall. 2007
  • Distributed Systems: Concepts and Design   Fourth Edition (!)
    by George Coulouris, Jean Dollimore and Tim Kindberg.
    Addison Wesley/Pearson Education, June 2005