教學大綱表 (112學年度 第2學期)
請遵守智慧財產權,勿使用非法影印教科書,避免觸法。
課程名稱
Course Title
(中文) 分散式系統
(英文) Distributed Computing Systems
開課單位
Departments
資訊工程研究所
課程代碼
Course No.
I5510
授課教師
Instructor
鄭福炯
學分數
Credit
3.0 必/選修
core required/optional
選修 開課年級
Level
研究所
先修科目或先備能力(Course Pre-requisites):Data structure. Database Systems.
課程概述與目標(Course Overview and Goals):分佈式系統是入門課程。
重點將放在創建功能性、可用和可擴展的分佈式系統的技術上。
本課程的目標:
1. 讓學生了解分佈式系統設計背後的原理和技術,例如鎖定(locking)、並發(concurrency)、緩存(caching)、預取(prefetching)、調度(scheduling)和跨網絡通信(communication)。
2. 讓學生獲得設計(design)、實施(implementation)和調試(debug)真實分佈式系統的實踐經驗(practical experience)。
教科書(Textbook) 1. Distributed Systems 3rd edition (2017), Maarten Van Steen and Andrew S. Tanenbaum.
2. 教科書免費下載網站(請自行下載):
https://www.distributed-systems.net/index.php/books/ds3/
參考教材(Reference) 1. Introduction to distributed computer systems : principles and features Czaja, Ludwik (2018), can be downloaded from https://link.springer.com/book/10.1007/978-3-319-72023-4
2.
課程大綱 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  
彈性教學週活動規劃

No.
實施期間
Period
實施方式
Content
教學說明
Teaching instructions
彈性教學評量方式
Evaluation
備註
Notes
1 起:2024-06-10 迄:2024-06-23 找出分散式系統可以解決的問題痛點, 並以實作或報告的方式提出解決的方法 1. 分散式系統可以解決的問題痛點的重要性, 價值主張與目標客群的描述詳細程度 40%. 2. 實作或報告的完程度 60%


教學要點概述:
1.自編教材 Handout by Instructor:
■ 1-1.簡報 Slids
■ 1-2.影音教材 Videos
□ 1-3.教具 Teaching Aids
■ 1-4.教科書 Textbook
□ 1-5.其他 Other
□ 2.自編評量工具/量表 Educational Assessment
□ 3.教科書作者提供 Textbook

成績考核 Performance Evaluation: 期末考:30%   期中考:20%   報告:10%   彈性教學:10%   作業:30%  

教學資源(Teaching Resources):
■ 教材電子檔(Soft Copy of the Handout or the Textbook)
■ 課程網站(Website)
教學相關配合事項:ppt download: https://www.distributed-systems.net/index.php/books/ds3/
課程網站(Website):TronClass
扣考規定:http://eboard.ttu.edu.tw/ttuwebpost/showcontent-news.php?id=504