CMPT 401 Distributed Systems Concepts And Design
Meta-data Instructor: Senqiang Zhou Office Hours: Tu am, Th. 1-2pm Location: L9005 TA: Angie Zhang Office Hours: Mo. 2:30-3:30pm, Fr. 4:30-5:30pm Location: K9505 Course List:
Pre-requisites CMPT 300: OS I CMPT 371: Data communication & networking Programming Languages: Java (for project and assignment) C (for some assignments)
Grading Scheme 5 assignments (20%) May involve programming 1 Project (15%) Programming intensive Java 1 Midterm (1 hour, 20%) 1 Final (3 hours, 45%)
Main Topics Introduction Inter-process communication Middleware OOP with distributed file systems Distributed coordination Protection and security Other topics (if time permits)
How to learn this course? Any shortcut? Reading slides alone? Published after classes Should I show up in the class? Details vs. high-level principles? Advice: thinking asking Having questions?
Questions for You What does still remain in your mind for the OS course, database course, or whatever course? Do you think you will remember it for your whole life? Do you think it will be useful for your life or career?
Chapter 1 Introduction
Examples of DS Internet WWW, telnet, ftp, … Intranet Router, firewall Mobile computing E.g. PDA
Resource sharing Reduce cost Hardware, software Improve performance Parallel computing System stability Rapid information exchange vs. snail mail
Challenges Heterogeneity E.g. Little-endian, big-endian, copy files Middleware: CORBA, Java RMI Openness Published interfaces E.g. API Easily extended Security E.g. denial of attacks
Challenges (Cont.) Scalability 1000 CPU > 1 CPU? Control the performance loss, cost of physical resource Failure handling Detecting, handling, recovering Concurrency
Challenges (Cont.) Transparency Access transparency Location transparency Concurrency transparency Replication transparency Failure transparency Mobility transparency Performance transparency Scaling transparency