
Confiabilidade de Sistemas Distribuídos
Code
11555
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
6.0
Teacher in charge
Henrique João Lopes Domingos, Nuno Manuel Ribeiro Preguiça
Weekly hours
4
Total hours
56
Teaching language
Português
Objectives
The main goal of this course is to specialize the knowledge of the students in the area of dependable distributed systems. This knowledge is addressed by gaining a better understanding on foundations, advanced techniques, algorithms and other mechanisms involved in the conjugation of fault-tolerance, security, privacy and intrusion tolerance services for large-scale distributed computing systems. The course initially addresses the study of the principles and foundations on algorithm and mechanisms, used in the core of distributed systems dependability solutions. This knowledge base is then consolidated by a set of programming projects for the practical implementation, experimental evaluation and critical analysis from the experimental observation of designed solutions for practical dependable distributed systems.
Prerequisites
The course requires prior knowledge and practical programming experience in Distributed Systems Principles, Paradigms and Algorithms and Computer Network Security Foundations and Protocols.
Subject matter
- Introduction. Principles and Properties of Dependabel Distributed Systems; Dependability Models; Dependability versus Reliability and Security Dimensions; Fault Tolerance and Intrusion Tolerance
- Fault Tolerance and Intrusion Tolerance
- Replication and State Machine Replication
- Consensus in Distributed Systems: Impossibility, circumvention and practical solutions
- Byzantine Fault Tolerant Consensus
- Intrusion Tolerant Consensus
- Probabilistic Consensus
- Techniques with Randomization and Diversity
- Intrusion Prevention and Intrusion Detection Systems
- Intrusion recovery techniques
- Availability and Denial of Service Protection
- Techniques, Technology and Standards for Trustable Computing: TPMs (Trusted Platform Modules) and TEEs (Trusted Execution Environments)
- Case studies
Bibliography
- William Stallings and Lawrie Brown, Computer Security - Principles and Practice, 3rd Edition, Prentice Hall, 2014
- C. Cachin, R. Guerraoui, L. Rodrigues "Introduction to Reliable and Secure Distributed Programming", 2nd edition, Springer, 2011.
- K. Birman, Reliable Distributed Computing, Springer 2005
- A.S. Tanenbaum and M. van Steen. Distributed Systems. Principles and Paradigms. (2nd Ed.) Prentice Hall, 2007
- During the classes, suggested readings on selected papers are proposed, covering the program topics.
Teaching method
The course is organized in lectures for presenting and discussing foudations, concepts, principles, paradigms, techniques or algorithms.
Labs are organized for presenting practical exemplifications, involving the demonstration of programming or integration techniques on related components. Some sessions are planned for discussing practical solutions on proposed programming, as well as, for the follow-up and assessment of projects and work-assignments.
Evaluation method
Assessment components
- Two intermediate tests (T1, T2)
- T1 (20% of the final grade)
- T2 (30% of the final grade)
- Two work assignments / mini-projects (P1, P2), developed in a workgroup (2 students)
- P1 (20% of the final grade) evaluated in two components:
- P1 assessment (15%)
- P1 individual test (5%)
- P2 (30%)
- With report
- Evaluation with demonstrations and discussion.
- Frequency
- All components (T1, T2, P1 and P2): min 8/20 points
- Result of all components: min 9.5/20 points
- Access condition for the Appeal Exam (R)
- Components P1 and P2: min 8/20 points
- Result from P1 and P2: min 9.5/20 points
- Grade obtained with the Appel Exam (R)
- R (50% of final garde)
- Result of R: min 8/20 points
- Result of R, P1 and P2: min 9.5/20 points