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.
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.
Remainder of previous week
Distributed systems, scalability [last mod. on sept 22]
· Reading (optional):
Characteristics of Scalability and Their Impact on Performance, ACM WOSP 2000.
Discusses different types of scalability giving (implicit) metrics accordingly.
et.al., Highly Scalable Algorithm For Distributed Real-Time Text Indexing, HiPC
Discusses different ways of measuring scalability for a particular problem.
3. First two chapters of the book by Tanenbaum & van Steen.
Remainder of previous week.
Architecture Styles [last mod. on sept 28]
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.
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: https://plus.google.com/112678702228711889851/posts/eVeouesvaVX
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.
A.S. Tanenbaum & R. van Renesse, A Critique of the
Remote Procedure Call Paradigm.
Puts some thought on the use and applicability of RPCs.
von Eicken et.al., Active
messages, a mechanism for integrated communication and computation, Proc.
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
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
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 Protocols, Technical report TU Twente.
8. Quality attributes, in particular Availability and Modifiability
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
Note: there are no lectures in 2012