Architecture of Distributed Systems (2II45) 2011-2012


In this course we look at distributed systems from the perspective of the architecture. The architecture which will be the context in which we discuss technical aspects and concepts of distributed systems.


The course is a master level course and aims at providing


The course is distributed over two blocks. In the first block we discuss the architecture of software intensive distributed systems. The concepts of distributed systems that play a role in the architecture are further discussed and we introduce architectural styles.  In the second block the emphasis will lie on extra-functional properties and also on presentations from practice with some contributions from external presenters.


The material we present is coming from several sources: books and articles. In contrast to previous years we do not require a single text book though much of the material is based on the contents of two or three books. We give references for reading with each lecture.


The first block discusses concepts of distributed systems, mainly based on: Distributed Systems, Principles and Paradigms, by Tanenbaum & van Steen, but also based on articles. Together with the lectures we will provide articles for reference and obligatory reading. In both blocks we also present cases as illustrations, sometimes by invited speakers.



The first block will have an exam with a retry in the second block. The second block is concluded with an essay/research report. Over the entire course some 4-5 take-home exercises for two students will be handed out which will include questions around architecture and arhcitecture design.


Grading will be on three points:


The type of questions you may expect on the exam target knowledge and insight. A one or two line answer will suffice. Two typical questions:


The take-home exercises



The research report/essay: details are found here






Lectures are on Thursdays, 9.45-10.30, see owinfo. The location is AUD 2 for block A with the exception of Oct 6: PAV U46. Block B is in AUD 5 with the exception of Nov 24 and Dec 22 when it is in AUD 7.


Lectures & slides (on a weekly basis)

There are two hours of lecture per week. Students are expected to study the material to a large extent by themselves. The material placed below may change, but from the moment it has been presented it will not, unless explicitly mentioned.


If you systematically cannot come in time, please contact the teacher. If you do come late, refrain from entering until the 2nd hour.


Block 1

  1. Introduction to system and software architecture [last mod. on sept 14]

·         Reading

1.      (mandatory) IEEE Recommended Practice for Architectural Description of Software Intensive Systems

2.      (optional) Kruchten, Architectural Blueprints—The “4+1” View Model of Software Architecture, IEEE Software 12 (6), Nov. 1995, pp42-50

3.      (optional) P. Kruchten, R. Capilla, J.C. Dueñas, The Decision View’s role in Software Architecting Practice, IEEE Software March/April 2009, pp1-8.


2.      Remainder of previous week
Distributed systems, scalability [last mod. on sept 22]

·         Reading (optional):

1.      Bondi, Characteristics of Scalability and Their Impact on Performance, ACM WOSP 2000.
Discusses different types of scalability giving (implicit) metrics accordingly.

2.      Narang, Highly Scalable Algorithm For Distributed Real-Time Text Indexing, HiPC 2009.
Discusses different ways of measuring scalability for a particular problem.

3.      First two chapters of the book by Tanenbaum & van Steen.


3.      Remainder of previous week.
Architecture Styles [last mod. on sept 28]

·          (mandatory) Architectural Patterns Revisited – A Pattern Language
A nice way of discussing architectural styles, rather close to the discusion in the slides. Note that different authors present these topics rather differently.

·         (optional) Architectural Styles and the Design of Network-based Software Architectures, PhD thesis of Roy Fielding, 2000. Chapters 3 and 5.
The definition of REST, the WWW architecture.

·         (optional) J. Newmarch, A RESTful approach: clean UPnP without SOAP, Proceedings CCNC 2005, p134-138.

·         An interesting ‘inside’ weblog:


4.      Remainder of previous week
Interaction styles (communication) [last mod. on sept 28]

·          (mandatory) Chapters 4, Chapter 8.3, and Chapter 10.3 of Distributed Systems, Principles and Paradigms
This represents the majority of the presented material in the slides.

·         (optional) A.S. Tanenbaum & R. van Renesse, A Critique of the Remote Procedure Call Paradigm.
Puts some thought on the use and applicability of RPCs.

·         (optional) von Eicken, Active messages, a mechanism for integrated communication and computationProc. of the annual symposium on Computer Architecture, pp. 256-266, 1992
This is not discussed in the slides but used in a later lecture as example.

5.      Catching up

6.      An example: the Open Service Architecture for Sensors

·         Reading (optional):

1.      R. Bosman, An integral approach to programming sensor networks, Proceedings CCNC 2009
The paper underlying the slide set.

2.      T. von Eicken, D. Culler, et al. Active messages: a mechanism for integrated communication and computation, proc. of ISCA, 1992.

The first introduction of active messages.

4.      See also references in the slides (last two) for an overview.

7.       Naming and references, including the example of DNS

·         Reading

1.       (mandatory) Chapter 5 of Distributed Systems, Principles and Paradigms, except 5.4; relevant parts of chapter 3. These underly the slides.

2.      (optional) Wessels, Fomenkov, Wow, that’s a lot of packets (obtained through San Diego University)
This is an analysis of a days worth of packets in f-root-servers, done in 2002.

3.      (optional) Raluca Marin-Perianu, Pieter Hartel Hans Scholten, A Classification of Service Discovery ProtocolsTechnical report TU Twente.

8.      Quality attributes, in particular Availability and Modifiability

·         Reading;

1.      (optional) The slides are based on chapters 4 and 5 of Software Architecture in Practice, 2nd edition (here is the online version)

2.      (mandatory) plus some material from Distributed Systems, Principles and Paradigms (on availability (fault tolerance) and synchronization of backups): 8.1, 8.3,

3.      (optional) D.L. Parnas, On the Criteria To Be Used in Decomposing Systems into Modules, Communications of the ACM, Volume 15, Issue 12 (December 1972), Pages: 1053 – 1058.

4.       (optional) Ariane 5 Failure Report.


In the second block we address issues in the software architecture of distributed systems that are close to recent research and practice. Guest lectures come from different researchers and one from industry. Presentation will be published


Block 2

  1. Concerns surrounding the development view, viz. reasoning about the dependencies in modules and subsystems, presented by dr. Reinder Bril.
  2. A part of the process view of Vehicle-to-vehicle safety communication: scalability concerns around periodic broadcast.
  3. Grids and Peer to Peer Systems, presented by prof. dr. Dick Epema (Delft & Eindhoven University)
  4. The component view, particularly from the perspective of component-based software engineering (Lukkien), with the FLUENT framework as large example of a (distributed) resource-aware component composition framework (dr. Bojan Orlic).
  5. Service Oriented Architectures using OSGi, presented by ir. Angelo van der Sijpt from Luminis.
  6. On Model Driven Engineering, presented by prof. dr. Mark van de Brand.


Note: there are no lectures in 2012




Sample examinations (references refer to last years’ slides (add /2010 or /2010/2009 to the url))