Architecture of Distributed Systems (2IMN10)
Academic year 2019/2020, Semester A, Quarter 1
See also CANVAS for information. Eventually, the information on this page will migrate to CANVAS.
"For the time being, in case of inconsistencies THIS PAGE will be decisive.
General information
- Target audience:
-
Business Information Systems (Graduate School) |
|
Master's degree program (year 1) |
|
Optional |
Computer Science & Engineering (Graduate School) |
|
Master's degree program (year 1) |
|
Optional |
Cyber Physical Systems (Graduate School) |
|
Master's degree program (year 1) |
|
Optional |
EIT ICT labs Embedded Systems (Graduate School) |
|
Master's degree program (year 2) |
|
Optional |
Embedded Networking (Graduate School) |
|
Master's degree program (year 1) |
|
Mandatory |
Embedded Software (Graduate School) |
|
Master's degree program (year 1) |
|
Optional |
Embedded Systems (Graduate School) |
|
Master's degree program (year 1) |
|
Mandatory |
Software Science (Graduate School) |
|
Master's degree program (year 1) |
|
Optional |
System Science (Graduate School) |
|
Master's degree program (year 1) |
|
Mandatory |
Web Science (Graduate School) |
|
Master's degree program (year 1) |
|
Optional |
- Credits:
- ECTS BaMa 5
- Lecturer:
- Dr. R.H. Mak, MF. 6.067, tel. 3719,
(expertise group SAN,
r.h.mak@tue.nl)
- Prior knowledge:
- 2IP25 - Software engineering (recommended)
Announcements
This page will be updated regularly during the lecturing season. The table below
contains all updates. The most recent ones are indicated in color.
Announcements
|
Answers to the exam of January 30, 2020 available.
|
Answers to the exam of November 7, 2019 available.
|
Slides from last year on scalability replaced by this year's slides.
|
Slides from last year on replication replaced by this year's slides.
|
Slides from last year on replication and scalability available.
Will be updated in due time.
|
Essay assignment available. Deadline Friday, October 25 at Midnight.
|
Slides lecture on Blockchains and Consensus available.
|
Slides lecture on Naming available.
|
Slides lecture on Quality Attributes available.
|
Slides with answers to HWA1 available.
|
Homework Assignment 2 available.
|
No lecture on Friday, September 27 .
|
Slides lecture on Interaction styles available.
|
Slides lecture on Architectural styles available.
|
Slides Introduction lecture on architecture modified.
Slide on ISO/IEC 25010 added. Occasional, minor layout modification.
|
Homework Assignment 1 available.
Deadline: Friday, Sept 20, 8:45 (at start of the lecture)
|
Slides Introduction lecture on architecture available.
|
Slides introduction lecture on distributed systems available.
|
Course outline slides available.
|
Last change:
Feb 13 2020, 9:37 |
Lectures
- Course material:
- M. van Steen and A.S. Tanenbaum, Distributed Systems, 3rd ed., distributed-systems.net, 2017.
Distributed systems
A free copy of the above book should be obtainable from the web-site.
In case you already own a copy of the previous edition of this book
Andrew S. Tanenbaum; Maarten Van Steen (second edition)
Distributed systems Principles and Paradigms
,
Pearson Prentice Hall, 2007.
that will suffice as well, but downloading the third edition is strongly recommended. Indications of material from the book covered in the lectures will be given for the 3rd edition only.
-
Powerpoint presentations in pdf-format (and as slideshow if relevant)
- Course outline
(pdf)
- Lectures 1 + 2 + 3: Introductions ,
(IntroDS.pdf
, IntroArch.pdf
)
- Further reading
- (mandatory)
Distributed Systems 3rd ed.:
Chapter 1, excluding notes 1.5, 1.6, 1.8, 1.9, 1.11, 1.12.
ISO/IEC/IEEE 42010-2011 standard on Systems and software engineering-Architecture description
- (optional)
The website of Software Systems Architecture by Rozanski and Woods
- (optional)
Kruchten, Architectural Blueprints --The "4+1" View Model of Software Architecture, IEEE Software 12 (6), Nov. 1995, pp42-50
- (optional)
P. Kruchten, R. Capilla, J.C. Duenas, The Decision View's role in Software Architecting Practice, IEEE Software March/April 2009, pp1-8.
- Lecture 4 + 5:
Architectural styles,
(ArchitecturalStyles.pdf)
- Further reading
- (mandatory)
Distributed Systems 3rd ed.:
Chapter 2, excluding Section 2.2 inceptors, excluding Section 2.3 unstructured P2P systems and hybrid architectures, and excluding Notes 2.3, 2.6, 2.7, 2.8, 2.9.
Section 3.3 X-windows,
- (optional)
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.
- Lecture 6 + 7:
Interaction styles / Communication
(InteractionStyles.pdf)
- Lecture 8:
No lecture, due to the MomenTUm event
- Lectures 9 + 10:
Quality attributes
Quality attributes; in general + specifically:availability/reliability, modifiability and scalability
(pdf1 on availability/reliability and modifiability)
- Further reading
- (mandatory)
Distributed Systems 3rd ed.:
Chapter 8, Section 8.1, Section 8.2 without consensus algorithms (pp. 436,half way-460), Section 8.3, Section 8.4 only atomic multicast and virtual synchrony, Section 8.6 excluding message logging. Only notes 8.1, 8.2, 8.3, 8.9.
- (optional) Part of the slides is based on chapters 4 and 5 of Software Architecture in Practice, 2nd edition
(here is the online version)
- (optional) Ariane 5 Failure Report.
- (optional)CMU/SEI-TR-2001-005, CMU/SEI-2002-TR-025, CMU/SEI-2009-TR-006, CMU/SEI TN-017,
Electronic library of the Software Engineering Institute, Carnegie Mellon University
- (optional) Algirdas Avizienis, Jean-Claude Laprie, Brian Randell, and Carl Landwehr
Basic Concepts and Taxonomy of Dependable and Secure Computing
- (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.
- Lecture 11 + 13:
Naming and references
(Naming.pdf)
- Further reading
- (mandatory)
Distributed Systems 3rd ed.:
Section 3.4 from server cluster until the end (pp. 141-152), Chapter 5, excluding 5.2 hierarchical approaches (pp. 251-256), 5.3 NFS example (pp. 278-283) and 5.4 LDAP (pp. 285-294), excluding notes 5.1, 5.2, 5.5, 5.6, 5.13, 5.14
- Guest lecture by Mike Holenderski 12:
Consensus and Blockchains
(Blockchain.pdf)
- Further reading
- (mandatory)
Distributed Systems 3rd ed., Chapter 8, consensus pp. 436-460 (without Paxos).
- (optional)
Leslie Lamport, Robert Shostak, Marshal Pease,
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS), Vol 4, Issue 3, 1982, ACM NY USA, pp. 382-401.
-
Miguel Castro and Barbara Liskov,
Practical Byzantine Fault Tolerance
in OSDI '99 Proceedings of the third symposium on Operating systems design and implementation, Usenix Association, Berkeley, CA, USA, pp. 173-186.
- Lecture 14 + 15:
Replication
Part one: (slides on replication and consistency)
Part two: (slides on architectural issues of replication)
- Further reading
- (mandatory)
Distributed Systems 3rd ed.:
Chapter 7, excluding Subsection 7.2 grouping operations, Subsection 7.5. cache coherence and implementing client-centric consistency, and Section 7.6. From notes only 7.1 7.3, 7.7, 7.9.
- (optional)
Chapter 18 of Coulouris, Dollimore, Kindberg, Blaire, Distributed systems: Replication, except 18.5
- (optional)
M. Wiesmann, F. Pedone, A. Schiper, B. Kemme, G. Alonso,
Understanding Replication in Databases and Distributed Systems
- Lecture 16: Scalability
(slides on scalability)
- Further reading
- (optional) Narang et.al.,
Highly Scalable Algorithm For Distributed Real-Time Text Indexing, HiPC 2009.
Discusses different ways of measuring scalability for a particular problem.
- Schedule:
-
Day | Date |
Hour | Location |
Remarks |
Homework |
Wednesday | September 4 |
5 + 6 | AUDITORIUM 9 |
| --- |
Friday | September 6 |
1 + 2 | AUDITORIUM 9 |
| --- |
Wednesday | September 11 |
5 + 6 | AUDITORIUM 9 |
| Hand out HWA 1 |
Friday | September 13 |
1 + 2 | AUDITORIUM 9 |
| --- |
Wednesday | September 18 |
5 + 6 | AUDITORIUM 9 |
| --- |
Friday | September 20 |
1 + 2 | AUDITORIUM 9 |
| Hand in HWA 1 (before 8:45) |
Wednesday | September 25 |
5 + 6 | AUDITORIUM 9 |
| --- |
Friday | September 27 |
| NO LECTURE |
MomenTUm | Hand out HWA 2 |
Wednesday | October 2 |
5 + 6 | AUDITORIUM 9 |
| --- |
Friday | October 4 |
1 + 2 | AUDITORIUM 9 |
| --- |
Wednesday | October 9 |
5 + 6 | AUDITORIUM 9 |
| Hand in HWA 2 (before 13:30) |
Friday | October 11 |
1 + 2 | AUDITORIUM 9 |
| --- |
Wednesday | October 16 |
5 + 6 | AUDITORIUM 9 |
| Hand out Essay |
Friday | October 18 |
1 + 2 | AUDITORIUM 9 |
| --- |
Wednesday | October 23 |
5 + 6 | AUDITORIUM 9 |
| --- |
Friday | October 25 |
1 + 2 | AUDITORIUM 9 |
| Hand in Essay (before 23:59) |
At the end of the quart, on
Thursday, November 7, 2019 (09:00 - 12:00) there will be a written exam.
Furthermore, you will have to make a series of homework assignments and write an essay on a research paper.
Homework assignments and the essay may be done in groups of two/three (tba) students, to be registered in CANVAS.
Grades for homework and essay obtained in previous academic years are null and void.
Your final grade will be based on
- the written exam (50%)
- the essay (30%)
- the homework assignments (20%)
Moreover, your score for each part has to be at least 4.0.
For the written exam part there will be a re-exam on
Thursday, January 30, 2020 (18:00 - 21:00 !!!).
For the essay and homework there will be no second opportunity offered.
The results obtained for essay and homework can be combined with either the regular written exam or the re-exam.
If you take both the regular written exam and the re-exam, the highest score will count.
For the answers to the exam of November 7, 2019 see
here.
For the answers to the exam of January 30, 2020 see
here.
For this course you will be assigned obligatory homework. Your answers should be written in English and should be handed in as a pdf-file via CANVAS.
Ensure that your work is registered for all members of your group.
Furthermore, ensure that you identify your work appropriately, i.e., choose a traceable filename, e.g.,
"2IMN10_HW<nmb>_<author1>_<author2>_<author3>.pdf".
In addition the pdf-file itself should contain a title page with your names and student identity numbers.
-
Assignment HWA1:
Classification of models
   (pdf)
   (pptx)
- Assignment HWA2:
Architectural description of a system (choose 1 out of 2)
   (pdf)
   (pptx)
Beware, in the pdf-versions the hyperlinks may not work. In that case, you have to type them yourselves in your web-browser.
Submission and deadlines will be arranged via CANVAS.
Anwers to exercises:
-
See
here
for answers to Assignment H1.
-
Answers to exercise 2 will not be made available
For the final assignment of the course, the essay (30% of the final grade), you must choose one out of the following list of topics:
- Highly available data stores
- Architecture of massive multiplayer online games
- Scalability of Google technologies
- Multicast and group communication
- Consensus and blockchains
Students that follow this course as a reprise of course (2IMN10) in 2018-2019 and that handed in an essay then, MUST CHOOSE A DIFFERENT TOPIC this year.
This holds for ALL students of a group. If this presents a problem consult the responsible lecturer.
The outcome of the assignment is a research paper of at most 10 pages (single column, fontsize 11pt, and not counting larger diagrams or cover page), which should start with a half page abstract. Using double column format, fontsize 11pt, is also ok, but then the essay should be at most 6 pages. (see e.g. IEEEtran template).
See the schedule for the deadline for handing in your essay.
In view of prior experience, mind the guidelines below. In particular, pay attention to the remarks concerning copying literature:
--- copying without proper indication about what is copied will be considered fraud ---
Mind the following aspects:
-
Do not forget the questions / points enumerated in the exercise above!
- Add a cover page to your essay containing:
- title
- essay topic (1, ..., 5)
- for each author: name (incl. full initials), id.nr.
- course code 2IMN10
- date
- Ensure that there is abstract that summarizes your essay, not the topics it discusses. You will loose points if the abstract is absent.
- Spell check and grammar check your text.
- In your conclusion, reflect on your work, and on the material you examined (was it clear?, did it conform to concepts and vocabulary of the lectures?) and indicate the lessons you learned. Again you will loose points if reflection is not present.
- For references and citations adhere to the following guidelines:
- In the references section, provide complete information (follow standards: see e.g. the IEEE Citation Style Guide, which can easily be found at various locations on the WWW.).
Avoid dangling sources (without reference from the text).
- In the text, include precise references to relevant sources. Basically, it should be clear to the reader what the source is of every piece of text:
- a literal quotation (enclosed by quotation marks, the text should make clear what the purpose of the quote is);
- a rephrasing of text from one or more sources (provide references)
- your own contribution
(be careful when mixing the latter two)
- Make the references as precise as possible. Do not just refer to a book, but include chapter, section, or even page numbers. Do not just refer to the home page of a website, but provide a deeper link, or further navigation information. When evaluating your essay, it may be important for us to consult your sources quickly.
- For some topics the list of suggested papers is extensive, and it is not mandatory to read them all. However, it should be clear from your citations which articles you have consulted and which not. In general, you should have consulted a sufficient number to meaningfully address the questions accompanying the assignment. It is part of the assignment for you to determine when that criterion is met.
Since the essay is handed out before the end of the lecture series, it might be convenient to browse the slides of forthcoming lectures to
get an idea of how to address certain concerns in your essay (e.g. ). For this purpose, these slides will be made available
in advance, although updates may become available later.
Beware that answers to questions, especially in the older exams, contain references to slides of slide sets that have been modified since.
So the answer you are looking for may, in fact, not be on the indicated slide. With a little additional search effort, however, you should be
able to find a corresponding slide in the current slide sets.
- November 5, 2009
- October 29, 2010
- November 9, 2011
- January 29, 2013
- January 22, 2014
- April 14, 2014
- October 27, 2014
- January 21, 2015
- November 2, 2015
- January 25, 2016
- November 7, 2016
- January 30, 2017
- November 9, 2017
- January 25, 2018
- November 8, 2018
- January 31, 2019
Literature
Besides the mandatory book
the following books are recommended
-
Cristian Cachin, Rachid Guerraoui, Luís Rodrigues
Introduction to Reliable and Secure Distributed Programming
,
Springer, 2011.
- George Coulouris; Jean Dollimore; Tim Kindberg; Gorden Blair
Distributed systems Concepts and Design (fifth edition)
,
Pearson Addison Wesley, 2012.
- Nick Rozanski; Eoin Woods
Software Systems Architecture Working With Stakeholders Using Viewpoints and Perspectives
,
Addison Wesley, 2011.
- L. Bass, P. Clements, R. Kazman,
Software Architecture in Practice, Third Edition
,
SEI Series in Software Engineering,
Addison-Wesley, 2013
-
Enabling Things to Talk, Designing IoT solutions
with the IoT Architectural Reference Model
,
Eds. Alessandro Bassi, Martin Bauer, Martin
Fiedler, Thorsten Kramp, Rob van Kranenburg,
Sebastian Lange, Stefan Meissner,
Springer, 2013
- Martin Kleppmann
Designing Data-Intensive Applications:
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
,
O'Reilly Media, 2017
Remarks regarding this page can be sent to
R.H. Mak