The objective of this course is to introduce fundamental concepts of distributed systems and recent developments in this area. We will introduce the role of distributed systems in the contemporary computing landscape. We will also discuss requirements for (large-scale) distributed systems and different models of distributed systems. The focus is on fundamental concepts, methods, and algorithms as well as their advantages, disadvantages, and applicability for distributed systems.
The course lectures are divided into the following building blocks, each will be covered in one or more lectures.
1. Course Overview, Distributed Systems - Overview, Principles and Models
- Goal:
- Course overview
- Understand what a distributed system is
- Understand basic principles of distributed systems
- Introduce basic architectural models of distributed systems
- Lecture: 2 hours
- Student self-study time: 4 hours
2. Processes and Communication
- Goal:
- Overview of communication issues in distributed systems
- Introduce different communication mechanisms (architectures, protocols, layers, algorithms)
- Overview of communication middleware and technologies
-
Lecture: 2x2 hours
- Student self-study time: 8 hours
3. Naming
- Goal:
- Overview about the roles and issues of naming and discovery
- Introduce naming and discovery mechanisms
-
Lecture: 2 hours
- Student self-study time: 4 hours
4. Fault Tolerance in Distributed Systems
- Goal:
- Introduction to Fault Tolerance
- Process Resilience
- Reliable Client-Server Communication
-
Lecture: 2 hours
- Student self-study time: 4 hours
5. Synchronization and Timing
- Goal:
- Physical clocks, logical clocks, vector clocks
- Mutual exclusion algorithms
- Leader election algorithms
-
Lecture: 2 hours
- Student self-study time: 4 hours
6. Consistency and Replication
- Goal:
- Data-centric Consistency Models
- Client-centric Consistency Models
- Replica Management
- Consistency Protocols
-
Lecture: 2 hours
- Student self-study time: 4 hours
7. Distributed File Systems
- Goal:
- Introduction to distributed file systems
- NFS as Client-Server Architecture
- Cluster-based File Systems (NSF, Google File System)
- Symmetric Architectures / Peer-to-Peer Architectures
-
Lecture: 2 hours
- Student self-study time: 4 hours
8. Security
- Goal:
- Introduction to Security of Distributed Systems
- Secure Channels
- Security Management
- Access Control
-
Lecture: 2 hours
- Student self-study time: 4 hours
9. Applications and Technology Trends
- Goal:
- Overview of current applications and technologies in distributed systems
- Peer-to-Peer
- Service-oriented Architectures
- Cloud Computing
-
Lecture: 2 hours
- Student self-study time: 4 hours
10. Examination preparation (study@home, no lecture unit)
- Goal:
- Recap all concepts and principles for the final examination
- Student self-study time: 15 hours
Teaching language of the lecture is German.
ECTS-Breakdown:
3 ECTS = 75 hrs: 20 hrs lecture, 40 hrs preparation for the lecture and 15 hrs exam preparation.
Concrete Lecture Dates:
The lecture is held in two-hour lectures on the following days:
03.10.2016 - Introduction
17.10.2016 - Processes and Communication I
19.10.2016 - Processes and Communication II
07.11.2016 - Naming
09.11.2016 - Fault Tolerance
16.11.2016 - Synchronization
21.11.2016 - Consistency and Replication
23.11.2016 - Distributed File Systems
28.11.2016 - Security
30.11.2016 - Applications and Technology Trends
On every other day, there is no lecture (unless announced otherwise via TUWEL). Attentendance is not mandatory.
In general, the AIC TUWEL course has the most up-to-date and comprehensive information about lecture dates and times.