Students will gain fundamental knowledge of distributed systems, their architecture and design methods, as well as selected distributed algorithms. They will gain theoretical and practical knowledge, as well as programming skills enabling them participation in complex projects involving distributed systems and algorithms.
- identify distributed system characteristics
- explain the models for distributed processing and communication
- develop a simple distributed system
- analyze distributed algorithms
- evaluate the performance of distributed systems
- evaluate the characteristics of a particular distributed system
Forms of Teaching
The classes are organized in two blocks: The first block comprises 7 classes and a midterm exam, while the second comprises 6 classes and a final exam. this makes in total 15 weeks with 3 hours per week.Exams
Midterm exam (week 8) and final exam (week 15).Acquisition of Skills
Students need to resolve independently 3 practical tasks (homework assignements).Other Forms of Group and Self Study
Homework assignments focusing on practical programing tasks in the area of distributed systems.
|Type||Threshold||Percent of Grade||Threshold||Percent of Grade|
|Homeworks||0 %||20 %||0 %||20 %|
|Class participation||0 %||5 %||0 %||5 %|
|Mid Term Exam: Written||0 %||30 %||0 %|
|Final Exam: Written||0 %||30 %|
|Final Exam: Oral||15 %|
|Exam: Written||50 %||60 %|
|Exam: Oral||15 %|
Week by Week Schedule
- Introduction to distributed systems, definitions and basic characteristics: transparency, openness, scalability, fault tolerance, security.
- Basic communication models: client/server, distributed objects, publish-subscribe systems.
- Fundamental communication mechanisms and communication middleware: remote procedure call, remote method invocation, message-oriented communication.
- Web-application architecture and web technologies.
- Naming systems.
- Selected distributed algorithms, synchronous and asynchronous network models.
- Processes, communication and coordination. Physical and logical time, time stamps and ordering.
- Midterm exam.
- Data replication and consistency.
- Fault tolerance. Consensus and coordination without and with failures. Group communication: membership management, reliable multicasting.
- Performance evaluation of distributed systems.
- Software tools for performance evaluation of distributed systems.
- Peet-to-peer systems: distributed and decentralized information search.
- Data clusters and data grids. Cloud computing.
- Final exam.