Distributed Systems - 444

The exam will take place in room BIN 0.K.02 at 10-12h, February 13th  



Prof. Abraham Bernstein, Ph. D.


(Use “DS” in the “subject-line”!)


+41 1 635 45 79


Binzmühlestrasse 14, 2.D.06

Office hours:

By appointment with Eveline Suter (<lastname>


Tuesday, 10:15 – 12:00 am


BIN 0.K.02 (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, Jonas Luell, Peter Vorburger
Email: <lastname>


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


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


available from here


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

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.

The grading of the final exam will be published on March 19th.


  • Distributed Systems: Principles and Paradigms
    by Andrew S. Tanenbaum and Maarten van Steen.
    Prentice Hall. 2002
    A new edition is about to be published (Sept 06).
  • Distributed Systems: Concepts and Design   Fourth Edition (!)
    by George Coulouris, Jean Dollimore and Tim Kindberg.
    Addison Wesley/Pearson Education, June 2005


The slides will ususally be available at least 24 hours before class!

To get access to them please log in in the form right below and then follow this link (only active when logged in) or use the navigation menue on the left of the page.


Example questions

Here we provide some example questions which might be representative for some exam questions. Some questions are not written out in full.

Time Table (this is highly tentative!)



Tu 24.10.

Introduction; system models for distributed computing

Tu 31.10.

Interprocess communication; remote procedure calls I

Tu 7.11.

no class

Tu 14.11.


Tu 21.11.

Temporal decoupling of calls

Tu 28.11.

Referential decoupling of calls

Tu 5.12.

no class (ECOWS’06)

Tu 12.12.

Middleware: distributed file systems

Tu 19.12.

Middleware: replication

Tu 9.1.

Middleware: distributed shared memory

Tu 16.1.

Middleware: web services I

Tu 23.1.

Middleware: web services II

Tu 30.1.

Middleware: grid computing

Tu 6.2.


Tu 13.2.