194.024 Distributed Systems
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2023W, VU, 4.0h, 6.0EC, to be held in blocked form
TUWELLectureTube

Properties

  • Semester hours: 4.0
  • Credits: 6.0
  • Type: VU Lecture and Exercise
  • LectureTube course
  • Format: Hybrid

Learning outcomes

After successful completion of the course, students are able to:

VO:

  • Describe requirements and design options of complex, distributed systems
  • Apply basic methods and algorithms of distributed systems, and explain their shortcomings, benefits, and possible applications
  • Understand and apply paradigms and concepts of state-of-the-art technologies and tools for distributed systems
  • Discuss limitations of distributed systems

UE:

  • Implement fundamental network communications for distributed applications. They are able to explain the concepts of language-specific techniques, e.g., language independent security mechanisms for data transfer in distributed systems (Confidentiality, Integrity, Authenticity), as well as crosscutting concepts of parallel programming.

--------------------------------------

Please note: If you have already successfully passed the VO or the UE in the previous years, you do not have to repeat the respective part of the course, i.e., you do not have to retake the written exam or the UE assignment, respectively! More specifically:

1) If you already successfully completed the UE, you only need to take the exam part of the VU course. You can take the exam during any of the exam dates listed below.  We will also offer an additional exam during WS 2023. The exact date of the exam will be announced here in TISS.

2) If you already passed the VO course exam, you only need to do the exercises of the VU course. After you have successfully completed the exercises, you will be issued a certificate. In this case, you don't need to take the VU course exam to successfully pass the course.

Subject of course

VO:

This lecture is divided into the following modules. Each module is held on one or more dates. The duration of the individual lectures given below are average values. It is possible that individual topics have already been adequately discussed after 75 minutes, while other topics take longer than 90 minutes.

1. Course overview: Distributed Systems - Introduction and Architecture

  • Content/goals:
    • Course overview
    • Understanding what a distributed system is
    • Understanding the basic principles of distributed systems
    • Introduction of basic architecture models of distributed systems
  • Lecture: 2 hours
  • Student self-study time: 4 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapters 1+2

2. Processes and Communication

  • Content/goals:
    • Overview of processes, threads, and communication in Distributed Systems
    • Introduction to different communication mechanisms (architectures, protocols, layers, algorithms)
    • Overview of communication middleware and technologies
  • Lecture: 2x2 hours
  • Student self-study: 8 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapters 3+4

3. Naming

  • Content/goals:
    • Overview of the tasks and challenges of naming and name resolution
    • Introduction to naming systems and name resolution: flat naming, structured naming, and attribute-based naming
  • Lecture: 2 hours
  • Student self-study: 4 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapter 5

4. Fault tolerance in distributed systems

  • Content/goals:
    • Introduction to fault tolerance
    • Process resilience
    • Reliable client-server communication
  • Lecture: 2 hours
  • Student self-study: 4 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapter 8

5. Synchronization and coordination

  • Content/goals:
    • Physical clocks, logical clocks, vector clocks
    • Leader election algorithms
  • Lecture: 2 hours
  • Student self-study: 4 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapter 6

6. Consistency and replication

  •  Content/goals:
    • Data-centric consistency models
    • Client-centric consistency models
    • Replica management
    • Consistency protocols
    • Caching
  • Lecture: 2x2 hours
  • Student self-study: 8 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapter 7

7. Security

  •  Content/goals:
    • Introduction to distributed systems security
    • Secure channels
    • Security management
    • Access control
    • Selected topics in distributed systems security
  • Lecture: 2 hours
  • Student self-study: 4 hours
  • Literature: van Steen/Tanenbaum - Distributed Systems, Chapter 9

8. Applications and technology trends

  •  Content/lectures:
    • Overview of current trends and technologies in distributed systems
    • Peer-to-peer computing
    • Service-oriented computing
    • Cloud computing
  • Lecture: 2 hours
  • Student self-study: 4 hours
  • Literature: will be announced in TUWEL

9. Exam preparation and self-study (no lecture)

  • Goal: Review all concepts and principles for the final exam
  • Student self-study: 15 hours

UE:

In the Distributed Systems Lab, your task will be to develop software that deals with concepts such as Sockets, Remote Method Invocations (RMI), and basic security mechanisms. The aim of the lab is to give you "hands-on" practical experience in developing distributed applications and to learn to do network programming.

Teaching methods

VO:

In the lecture, the lecturers will teach the theory of distributed systems and provide links between the single subtopics. It is expected that students prepare for and follow-up the single lecture topics, using the textbook.

Please note: Selected topics of the VO are further investigated in terms of development exercises within the lab exercises (Distributed Systems UE).

UE:

  • Implementation of an introduction assignment (logins for lab environment) on your own
  • Implementation of first assignment on your own with an subsequent interview (online)
  • Implementation of second assignment in a group of three with an subsequent interview (online)
  • Multiple choice test (online)

Mode of examination

Immanent

Additional information

ECTS-Breakdown: 6 ECTS = 150 hrs

  • VO (75 hrs): 20h lecture, 40h preparation for the lecture and 15h exam preparation.
  • UE (75 hrs): 1h Initial meeting, 32h First assignment, 35h Second assignment, 7h Preparation for test

VO:

Teaching language of the lecture is German and English.

Concrete Lecture Dates:

The recordings are available in TUWel on the following days:

09.10.2023 - Introduction
16.10.2023 - Processes and Communication I
23.10.2023 - Processes and Communication II
30.10.2023 - Naming
06.11.2023 - Fault Tolerance
13.11.2023 - Synchronization and Coordination
20.11.2023 - Consistency and Replication I
27.11.2023 - Consistency and Replication II
04.12.2023 - Security
11.12.2023 - Applications and Technology Trends - Online

In general, the TUWEL course has the most up-to-date and comprehensive information about lecture dates and times.

UE:

See the corresponding TUWEL course information for up to date information.

 


Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Mon13:00 - 15:0009.10.2023 - 22.01.2024GM 1 Audi. Max.- ARCH-INF Lecture
Mon15:00 - 17:0009.10.2023GM 1 Audi. Max.- ARCH-INF Kick-off Meeting Lab
Distributed Systems - Single appointments
DayDateTimeLocationDescription
Mon09.10.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon09.10.202315:00 - 17:00GM 1 Audi. Max.- ARCH-INF Kick-off Meeting Lab
Mon16.10.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon23.10.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon30.10.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon06.11.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon13.11.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon20.11.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon27.11.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon04.12.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon11.12.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon18.12.202313:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon08.01.202413:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon15.01.202413:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Mon22.01.202413:00 - 15:00GM 1 Audi. Max.- ARCH-INF Lecture
Course is held blocked

Examination modalities

VO:

Written exam.
Details about the examination can be found on TUWEL. Examination dates are stated in TISS.

UE:

The DSLab comprises 75h working effort consisting of:

1h Initial meeting
32h First assignment
35h Second assignment
7h Preparation for test

The grade is determined by:

  • Implementation and submission interview of the first assigment (35%)
  • Implementation and submission interview of the second assigment (45%)
  • Result of the optional lab test (20%)

Exams

DayTimeDateRoomMode of examinationApplication timeApplication modeExam
Mon13:00 - 15:0017.06.2024 Zoom (access through TUWEL)written01.06.2024 00:00 - 13.06.2024 23:59TISS2. Nebentermin-23W

Course registration

Begin End Deregistration end
22.09.2023 23:59 11.10.2023 23:59 13.10.2023 23:59

Registration modalities

Registration in TISS is mandatory.

Curricula

Study CodeObligationSemesterPrecon.Info
033 521 Informatics Mandatory5. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 526 Business Informatics Mandatory5. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 532 Media Informatics and Visual Computing Mandatory5. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 533 Medical Informatics Mandatory electiveSTEOP
Course requires the completion of the introductory and orientation phase
033 534 Software & Information Engineering Mandatory5. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 535 Computer Engineering Mandatory electiveSTEOP
Course requires the completion of the introductory and orientation phase

Literature

No lecture notes are available.

Previous knowledge

VO:

Algorithms and data structures, basic programming skills.

UE:

Java, systems programming, operating systems (Linux, Windows)

Language

if required in English