課程大綱 Syllabus |
學生學習目標 Learning Objectives |
單元學習活動 Learning Activities |
學習成效評量 Evaluation |
備註 Notes |
序 No. | 單元主題 Unit topic |
內容綱要 Content summary |
1 | Introduction to distributed systems and models |
What is a distributed system?
Examples of distributed Systems |
Understand the concept of a distributed system?
Understand real-world examples of distributed Systems |
|
|
|
2 | Networking and internetworking essentials |
Types of Networking |
Understand the Types of Networking |
|
|
|
3 | Architectures and Middlewares |
Architectural styles
System models and architectures
Middlewares
Self-management |
Learn different architectural styles
Understand the system models and architectures
Learn how to write Middlewares
Understand self-management in distributed systems |
|
|
|
4 | Distributed Processes A |
Processes and Threads
Clients and servers |
Review of Processes and Threads (Python/Java threads)
Learn and write clients and servers |
|
|
|
5 | Distributed Processes |
Code mobility and agents
Operating system support
Microservices |
Understand the concept of code mobility and agents
Understand how Operating system supports of distributed systems
Learn and write microservices |
|
|
|
6 | Communication A |
Interprocess communication models
Remote invocation (RPC, RMI) |
Learn the concept of interprocess communication models
Learn and write remote invocation (RPC, RMI) programs |
|
|
|
7 | Communication B |
Message-oriented communication
Multicast and group communication |
Learn Message-oriented communication such as MQTT, AMQP
understand multicast and group communication |
|
|
|
8 | Addressing and Name Services |
Fundamentals
Flat vs. structured naming
Attribute-based naming
Directory services |
Understand the fundamentals of addressing and name services
Learn Flat vs. structured naming
Learn Attribute-based naming
Learn Directory services |
|
|
|
9 | Midterm Exam |
Midterm Exam |
Midterm Exam |
|
|
|
10 | Time, Synchronization and Coordination A |
Time and clock synchronization
Logical clocks
Global state and snapshot |
Learn the concept of time and clock synchronization
Learn Logical clocks and distributed algorithms
Learn the concept of global state and snapshot in distributed systems |
|
|
|
11 | Time, Synchronization and Coordination |
Mutual exclusion
Location systems
Gossip-based coordination |
Learn and review mutual exclusion
Understand location systems
Learn Gossip-based coordination |
|
|
|
12 | Distributed Algorithms and Computation |
Election
Consensus
Distributed event processing |
Understand the Election process.
Learn the concept of consensus among processes
Learn and write Distributed event processing |
|
|
|
13 | Distributed Algorithms and Computation |
Distributed graph algorithms
Map-Reduce
BSP(Bulk Synchronous Parallel |
Learn and write distributed graph algorithms
Learn and write Map-Reduce distributed programs
Learn the concept of BSP(Bulk Synchronous Parallel) |
|
|
|
14 | Distributed Programming |
Python distributed computing with Ray
Python for Spark programming with PySpark
Distributed Web-based systems |
Leran and write Python distributed computing with Ray
Leran and write Python for Spark programming with PySpark
Leran and write Distributed Web-based systems |
|
|
|
15 | Distributed Storage and File Systems |
Distributed storage
File service architecture
Network File Systems
Mobile File System
Cloud storage |
Understand the concept and applications of distributed storage
Understand file service architecture
Understand Network File Systems(NFS)
Understand Mobile File System
Cloud storage |
|
|
|
16 | Consistency and Replication |
Consistency Models
Replica Management
Consistency Protocols |
Understand Consistency Models
Understand concept and application of Replica Management
Understand Consistency Protocols |
|
|
|
17 | Fault Tolerance |
Failure models and process resilience
Reliable communication |
Failure models and process resilience
Reliable communication |
|
|
|
18 | Final exam |
Final exam |
Final exam |
|
|
|