DS CourseOutline
DS CourseOutline
1. Introduction
1.1 Introduction and Definition
1.2 Goals of a Distributed System
1.3 Types of Distributed Systems
2. Architectures
2.1 Architectural Styles
2.2 System Architectures
3. Processes
3.1 Threads and their Implementation
3.2 Anatomy of Clients
3.3 Servers and Design Issues
3.4 Code Migration
3.5 Software Agents and Agent Technology
1
4. Communication
4.1 Network Protocols and Standards
4.2 Remote Procedure Call
4.3 Remote Object (Method) Invocation (RMI)
4.4 Message-Oriented Communication
4.5 Stream-Oriented Communication
4.6 Multicast Communication Mid Exam
5. Naming
5.1 Names, Identifiers, and Addresses
5.2 Flat Naming
5.3 Structured Naming
5.4 Attribute-Based Naming
6. Synchronization
6.1 Clock Synchronization
6.2 Logical Clocks
6.3 Mutual Exclusion
6.4 Election Algorithms 2
7. Consistency and Replication
7.1 Reasons for Replication
7.2 Data-Centric Consistency Models
7.3 Client-Centric Consistency Models
7.4 Replica Management
7.5 Consistency Protocols
8. Fault Tolerance
8.1 Introduction to Fault Tolerance
8.2 Process Resilience
8.3 Reliable Client-Server Communication
8.4 Reliable Group Communication
8.5 Distributed Commit
8.6 Recovery
9. Security - separate course
Chapters 10 -13 are examples of distributed systems
implementations; to be read 3
Textbook
A. S. Tanenbaum and Maarten van Steen, Distributed
Systems, Principles and Paradigms, 2nd edition, Prentice
Hall, 2007.
References
1. G. Coulouris, J. Dollimore, T. Kindberg, and Gordon Blair
Distributed Systems, Concepts and Design, Addison
Wesley, 5th edition, 2011.
2. Andrew S. Tannenbaum and David J. Wetherall, Computer
Networks, Prentice Hall, 5th edition, 2011.
3. James F. Kurose and Keith W. Ross, Computer
Networking, A Top-Down Approach, Pearson Education,
Inc, 6th edition, 2013.
4. S. Mullender, Distributed Systems, 2nd edition, Addison-
Wesley, 1993.
5. K. Birman, Building Secure and Reliable Network
Applications, Manning Publications Co., 1996. 4
Mode of Delivery
Lectures - preferably interactive (ask questions, intervene
in discussions)
Lab sessions with a final project
6
Relatively Minor Prerequisites - Important Terms
Performance Interoperability
Portability Concurrency
Protocol Transaction (commit, abort, rollback)
Syntax Semantics
Little Endian Big Endian
Exception Garbage collection
Caching Latency
Objects Call-by-value (value parameters)
Internet, WWW, URL Call-by-reference (variable parameters)
The client-server model Daemon
Java Applets Locking