Credits and Contact Hours
3 credits, 43 hours
Course Instructor Name
Prof. Mehmet Karaata
Textbook
Distributed Systems, Maarten van Steen and Andrew S. Tanenbaum and, Prentice Hall, Fourth Edition, 2023.
Catalog Description
History and overview of distributed systems. Fundamentals of distributed systems and algorithms. Problems, methodologies, paradigms and models necessary for understanding and designing distributed applications. Topics may include system models, process communication, distributed shared memory, web services, fault tolerance, real/logical/virtual time, distributed algorithms, authentication and security, naming, object-oriented structuring of distributed systems, distributed file systems, communication support for distributed systems. Theoretical concepts will be complemented with practical examples.
Prerequisite
CpE-300
Specific Goals for the Course
Upon successful completion of this course, students will be able to:
- Understand the basic concepts and the fundamentals of Distributed Computing. (Student outcome: 1)
- Choose and evaluate models for distributed systems. (Student outcome: 1, 4)
- Understand and implement communication channels in distributed systems using different protocols like RPC and RMI. (Student outcome: 1)
- Differentiate between process management in uni-processor system and distributed systems. (Student outcome: 1)
- Identify different techniques for entity synchronization, naming in distributed environments. (Student outcome: 1)
- Understand the differences between Distributed Systems and consistency architecture models. Systems. (Student outcome: 1 and 2)
- Know how to introduce reliability and fault tolerance into distributed systems. (Student outcome: 1, 7)
- Implement ideas of failure recovery in distributed systems. (Student outcome: 1, 4)
- Know some security tools.
Topics to Be Covered
- Basic concepts and motivation to Distributed Computing
- Distributed Systems Architectures and Architectural styles
- Communication protocols in distributed systems
- Processes, Threads and Virtualization
- Names, identifiers, and addresses
- Synchronization and Coordination
- Consistency and Replication
- Fault Tolerance
- Security