The objective of this course is to introduce foundation concepts of distributed systems and recent developments in distributed systems. In this course, we will introduce the role of distributed systems in contemporary computing landscape. We will discuss requirements for (large-scale) distributed systems and different models of distributed systems. We will introduce foundation 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 given by one or more lectures.
1 Course Overview, Distributed Systems - Overview, Principles and Models
- Goal:
- Overview the course
- Understand what is a distributed system
- Understand basic principles of distributed systems
- Introduce basic architectural models of distributed systems
- Lecture time: 2 hours
- Student self-study time: 4 hours
2. Processes and Communication
- Goal:
- Overview communicaton issues in distributed systems
- Introduce different communication mechanisms (protocols, layers, algorithms)
- Overview communication middleware and technologies
- Lecture time:
- Two lectures, each of 2 hours
- Student self-study time: 8 hours
3. Naming and Time
- Goal:
- Overview the roles and issues of naming and discovery
- Introduce naming and discovery mechanisms
- Time and time synchronization
- Lecture time:
- Two lectures, each of 2 hours
- Student self-study time: 8 hours
4. Distributed file systems, Replication and Consistency
- Goal:
- Overview distributed file systems
- Introduce distributed file systems
- NFS as a Client-Server Architecture
- Cluster-based File Systems (NSF, Google File System)
- Symmetric Architectures / Peer-to-Peer Architectures
- Replication/Consistency
- Introduce replication and consistency issues
- Data-centric Consistency Models
- Client-centric Consistency Models
- Replica Management
- Consistency Protocols
- Lecture time:
- Two lectures, each of 2 hours
- Student self-study time: 8 hours
5. Fault tolerance in Distributed Systems
- Goal:
- Introduction to Fault-tolerance
- Process Resilience
- Reliable Client-Server Communication
- Recovery
- Lecture time:
- Student self-study time: 4 hours
6. Security
- Goal:
- Introduction to Security of Distributed Systems
- Security threads and security mechanisms
- Introduction to Cryptography
- symmetric cryptosystems, public-key systems, hash functions
- Secure Channels
- authentication based on shared secret, authentication using Needham-Schroeder, authentication using public keys, digital signatures, key exchange via Diffie Hellman
- Authorization and Access Control
- access control matrices, protection domains, denial-of-service attacks
- Lecture time:
- Student self-study time: 4 hours
7. Applications and Technology Trends
- Goal:
- Overview current applications and technologies in distributed systems
- Service-oriented Architectures
- Peer-to-Peer
- Cloud Computing
- Present emerging trends in distributed applications and technologies
- Lecture time:
- Student self-study time: 4 hours
8. 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. The precise schedule will be available in TUWEL by September 4., 2015.
ECTS-Breakdown:
3 ECTS = 75 hrs, of which 20 hrs lecture, 40 hrs preparation for each lecture and 15 hrs exam preparation.