Course Catalog URL:
COM S 454
- Credits and contact hours: 3 credits, 3 contact hours
- Instructor’s or course coordinator’s name: Wensheng Zhang
- Text book, title, author, and year: No textbook required
- Other supplemental materials: Distributed Systems: Principles and Paradigms, Second edition, Andrew Tanenbaum and Maarten Van Steen, 2007; Systems Programming: Designing and Developing Distributed Applications, R. Anthony
Specific course information
- Brief description of the content of the course: Theoretical and practical issues of design and implementation of distributed systems. The client server paradigm, inter-process communications, synchronization and concurrency control, naming, consistency and replication, fault tolerance, and distributed file systems. Graduate credit requires additional in-depth study of concepts. Programming projects and written reports.
- Prerequisites or co-requisites: COM S 352, COM S 311
- Required, elective, or selected elective? Selected Elective
Specific goals for the course
- Specific outcomes of instruction:
- Describe the roll of middleware in distributed systems
- Understand the client-server architecture and the peer-to-peer architecture
- Understand how RPC and RMI work.
- Describe algorithms for recording consistent global state, electing a coordinator for a group of processes, and implementing mutual exclusion in distributed systems. (2, 6)
- Differentiate between client centric and data centric consistency models.
- Identify the security challenges faced by distributed systems and understand various security solutions. (6)
- Understand in detail how two example distributed systems (i.e., the Web and distributed file systems) work and what issues and challenged they face.
- Implement distributed applications using socket API. (6)
Brief list of topics to be covered
- Inter-Process Communication and Socket Programming
- Consistency and Replication
- Fault Tolerance
- Distributed File Systems
- Distributed Web-Based Systems