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.
Examination
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.
Block 1
·
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
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
et.al., 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: https://plus.google.com/112678702228711889851/posts/eVeouesvaVX
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 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
et.al., 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 Protocols, Technical 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
Note: there are no lectures in 2012
Grades