ECE Course Syllabus
ECE6102 Course Syllabus
Dependable Distributed Systems (3-0-3)
- Technical Interest
- Computer Systems and Software
- Catalog Description
- Concepts, theory, and practice of dependable distributed systems. Techniques for tolerating hardware and software faults.
- No Textbook Specified.
SPIs are a subset of the abilities a student will be able to demonstrate upon successfully completing the course.
Outcome 1 (Students will demonstrate expertise in a subfield of study chosen from the fields of electrical engineering or computer engineering): 1. Explain the concepts of consistency, availability, and network partitioning as they relate to distributed systems and explain the interrelationships and dependencies among them. 2. Explain the modern distributed system design paradigm called REST (Representational State Transfer) and be able to design a Web service using the REST paradigm. Outcome 2 (Students will demonstrate the ability to identify and formulate advanced problems and apply knowledge of mathematics and science to solve those problems): 1. Design and analyze fault-tolerant and secure distributed storage systems to meet given confidentiality, integrity, and availability requirements. Outcome 3 (Students will demonstrate the ability to utilize current knowledge, technology, or techniques within their chosen subfield): 1. Build a multi-component cloud-based service using different cloud computing models such as infrastructure-as-a-service, platform-as-a-service, and software-as-a-service within a commercial cloud platform such as AWS or Google Cloud.
- Topical Outline
1. Fundamentals of Distributed Systems States, events, event ordering, system models, failures, and failure detectors. 2. Software Replication Active, passive, and hybrid replication of software. 3. Group Communication Properties of different multicasts, causal atomic multicast, and introduction to virtual synchrony. 4. Global States and Checkpointing Snapshot algorithms, coordinated checkpoint and rollback, and message logging approaches. 5. Software Diversity Operating system, compiler, and algorithmic diversity. Security and robustness through software diversity. 6. Secure Storage Byzantine quorum systems; secret sharing techniques, confidentiality and integrity vs. consistency 7. Distributed Object Systems Introduction to JAVA RMI, CORBA, and .NET; Fault-Tolerant CORBA. 8. Distributed Embedded Systems Algorithms and systems for aerospace, automotive, and manufacturing applications. Mobile computing. 9. Clustering for Dependability Availability clusters, resource sharing, failover, network failures, and the split brain problem.
© 2021 Georgia Institute of Technology