Design of Distributed Software Applications
Communications, processes, naming, synchronization, consistency and replication, fault tolerance, object-based middleware, and security technologies for distributed applications. [3-2-0]
CPEN 431 (Design of Distributed Software Applications) is an introductory course in distributed systems (fourth year undergraduate elective). The goal of this course is to providing students with theoretical knowledge and hands-on experience to design, implement, and analyze distributed systems and applications. Where possible and appropriate we will use examples from modern distributed systems such as peer-to-peer systems, distributed gaming, and distributed file systems to illustrate concepts discussed in class.
The students are expected to learn key principles of modern distributed systems (e.g., wide area communication, naming, synchronization, consistency and replication, fault tolerance, security) and gain hands-on experience with “live” large-scale systems.
“Distributed Systems: Principles and Paradigm” By Andrew S. Tanenbaum, Maarten van Steen. Publisher: Prentice Hall; 2nd edition
|CPEN 331 – Operating and File Systems|
|CPSC 313 – Computer Hardware and Operating Systems|
|AND ONE of|
|CPEN 221 – Principles of Software Design|
|CPSC 210 – Software Construction|
|ELEC 331 – Computer Communications|
|CPSC 317 – Internet Computing|