1.
THÔNG TIN CHUNG
Tên học phần: |
Hệ Phân Tán (Distributed Systems) |
Mã số học phần: |
IT4610 |
Khối lượng: |
2(2-1-0-4) -
Lý thuyết: 30 tiết -
Bài tập/BTL: 15 tiết -
Thí nghiệm: 0 tiết |
Học phần tiên quyết: |
|
Học phần học trước: |
|
Học phần song hành: |
|
2.
MÔ TẢ HỌC PHẦN
Mục tiêu của khóa học này là cung cấp kiến thức cho phép người
học hiểu được lý thuyết và kỹ thuật thiết kế các hệ thống phân tán, kỹ thuật
xây dựng các hệ thống phân tán đơn giản, và giới thiệu các công nghệ và ứng dụng
phân tán hiện đại. Phần lý thuyết bao gồm: Kiến trúc phân tán, các cơ chế trao
đổi thông tin, các cơ chế định danh, các cơ chế đồng bộ, các cơ chế sao lưu và
thống nhất dữ liệu, các cơ chế che dấu lỗi trong Hệ phân tán. Phần kỹ thuật thiết
kế bao gồm khái niệm về các tiến trình phân tán, giao tiếp trong hệ thống phân
tán, phần mềm trung gian, cơ chế khóa, đồng bộ thời gian, các mô hình nhất quán
dữ liệu, cơ chế vượt qua lỗi, các mô hình lập trình phân tán, song song, bảo mật
trong hệ thống phân tán, các công nghệ lưu trữ dữ liệu phân tán. Các ứng dụng
phân tán hiện đại gồm: điện toán đám mây, công nghệ chuỗi khối, .... Bên cạnh
đó, người học cũng được thực hành các kiến thức học được thông qua đồ án thiết
kế và xây dựng một hệ thống phân tán. Trong quá trình thực hiện đồ án này, người
học được rèn luyện các kĩ năng mềm khác như: làm việc nhóm, thuyết trình, phân
tích và xử lý vấn đề.
3.
MỤC TIÊU VÀ CHUẨN ĐẦU
RA CỦA HỌC PHẦN
Sinh viên hoàn thành học phần này có khả năng:
Mục tiêu/CĐR |
Mô tả mục tiêu/Chuẩn đầu ra của học phần |
CĐR được phân bổ cho HP/ Mức độ (I/T/U) |
[1] |
[2] |
[3] |
M1 |
Vận dụng
kiến thức khoa học cơ bản và cốt lõi ngành vào việc xây dựng các hệ thống
thông tin phân tán |
1.1.2, 1.1.4, 1.2.1, 1.2.2, 1.2.3, 1.2.6 |
M1.1 |
Có khả năng kiến thức khoa học cơ bản vào việc xây dựng các
hệ thống thông tin lớn |
1.1.2 [U] 1.1.4 [U] 1.2.1 [U] |
M1.2 |
Có
khả năng áp dụng các kiến thức cơ sở cốt lõi ngành bao gồm hệ thống máy tính,
giải thuật và lập trình, cơ sở dữ liệu, phân tích thiết kế … trong phát triển
các hệ thống thông tin lớn. |
1.2.2 [U] 1.2.3 [T] 1.2.6 [T] |
M2 |
Hiểu và
nắm vững vững các nguyên lý và kỹ thuật
thiết kế các hệ thống phân tán và giới thiệu các ứng dụng phân tán hiện đại |
1.3.2, 1.3.3, 1.3.4 |
M2.1 |
Nắm vững các phương
pháp xử lý thông tin, kiến trúc các hệ phân tán và các kỹ thuật quản lý thông
tin trong môi trường phân tán, Hiểu biết về các công nghệ xây dựng HTTT. Có
khả năng áp dụng vào phát triển các HTTT phục vụ các doanh nghiệp và tổ chức. |
1.3.2 [T] 1.3.3 [T] |
M2.2 |
Hiểu và sử dụng thành
thạo các công cụ và ngôn ngữ lập trình, các framework phát triển và khung
kiến trúc ứng dụng phổ biến trong xây dựng các ứng dụng nghiệp vụ, vận hành
trên các nền tảng tính toán khác nhau. |
1.3.4 [I] |
M2.3 |
Quy trình và phương
pháp thiết kế |
4.4.1 [T] |
M2.4 |
Vận dụng kiến thức
trong quá trình thiết kế |
4.4.2 [T] |
M2.5 |
Thiết kế chuyên ngành |
4.4.3 [T] |
M3 |
Áp dụng các kỹ năng
làm việc nhóm, tổ chức, phối hợp, quản lý nhóm hiệu quả, kĩ năng giao tiếp
bằng ngoại ngữ |
3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.3.4 |
M3.1 |
Chủ động tham gia cũng
như có khả năng thành lập nhóm phù hợp với công việc |
3.1.1 [IU] |
M3.2 |
Tổ chức các hoạt động
nhóm |
3.1.2 [IU] |
M3.3 |
Quản lý tiến trình hoạt
động của nhóm |
3.1.3 [IU] |
M3.4 |
Có khả năng hợp tác,
phối hợp với các thành viên khác trong nhóm, giải quyết vấn đề |
3.1.4 [IU] |
M3.5 |
Kĩ năng đọc tiếng Anh |
3.3.4 [U] |
4.
TÀI LIỆU HỌC TẬP
Giáo
trình
Slide bài giảng (tiếng Việt)
Slide bài giảng (tiếng Anh)
Chapter
3: Processes and Threads
Chapter
7: Consistency and Replication
Sách tham khảo
[1] |
Tanenbaum, Andrew S., and Maarten
Van Steen. “Distributed systems: principles and paradigms. 2 nd , 3 rd
editions.” |
[2] |
Coulouris, George F., Jean
Dollimore, and Tim Kindberg. “Distributed systems: concepts and design.
Pearson education, 4th, 5 th editions”. |
[3] |
Kshemkalyani, Ajay and
Singhai, Mukesh “Distributed Computing Principles, Algorithms, and Systems”. |
[4] |
Hwang, Kai, Jack Dongarra,
and Geoffrey C. Fox. “Distributed and cloud computing: from parallel
processing to the internet of things.” Morgan Kaufmann, 2013. |
[5] |
White, Tom. Hadoop: The
definitive guide. " O'Reilly Media, Inc.", 2012. |
[6] |
Bashir, Imran. Mastering
blockchain. Packt Publishing Ltd, 2017. |
[7] |
Các tài liệu về XML, HTML,
JSP, Servlet, RMI, CORBA, SOAP, JAVA. |
[8] |
Các tài liệu về mô hình kiến
trúc client-server (Web). |
|
|
5.
KẾ HOẠCH GIẢNG DẠY
6.
NỘI DUNG CHI TIẾT
Tuần |
Nội dung |
CĐR học phần |
Bài đánh giá |
[1] |
[2] |
[3] |
[5] |
1 |
Chương 1:
Giới thiệu 1.
Định nghĩa hệ
thống phân tán 2.
Lý do cần phân
tán trong các ứng dụng hiện đại 3.
Một số hướng
phát triển các hệ thống phân tán hiện đại (ví dụ: Cloud, IoT, Blockchain,
v.v…) 4. Các vấn đề thường gặp khi xây dựng các hệ thống phân
tán |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1 A2 |
2 |
Chương
2: Mô hình kiến trúc các hệ thống phân tán 1. Phân loại theo các loại thực thể trong hệ thống phân
tán 2. Phân loại theo các mô hình giao tiếp |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1 A2 |
3 |
Chương
2: Mô hình kiến trúc các hệ thống phân tán (tiếp) 3. Phân loại theo vai trò các thành phần trong hệ thống
phân tán 4.
Phân loại theo
vị trí triển khai trong hệ thống phân tán |
M3.1 M3.2 M3.3 M3.4 M3.5 |
A1.1, A1.2 |
4 |
Chương 3:
Trao đổi thông tin trong hệ thống phân tán 1.
Giao tiếp qua
socket 2.
Lời gọi từ xa 3.
Giao tiếp gián
tiếp |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1.1, A1.2 |
5 |
Chương 3:
Trao đổi thông tin trong hệ thống phân tán (tiếp) 4. Truyền tham trị, tham chiếu 5.
Đối xứng, bất
đối xứng |
M3.1 M3.2 M3.3 M3.4 M3.5 |
A1.1, A1.2 |
6 |
Chương 4:
Định danh 1.
Định danh trong
không gian tên phẳng 2.
Định danh trong
không gian tên có cấu trúc |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1.1, A1.2 |
7 |
Chương 4:
Định danh (tiếp) 3.
Định danh theo
thuộc tính |
M3.1 M3.2 M3.3 M3.4 M3.5 |
A1.1, A1.2 |
8 |
Chương 5:
Đồng bộ hóa - 1.
Đồng bộ hóa thời
gian vật lý 2. Đồng bộ hóa thời gian logic |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1.1, A1.2 |
9 |
Chương 5:
Đồng bộ hóa (tiếp) 3.
Các giải thuật
loại trừ lẫn nhau 4.
Các giải thuật
bầu chọn |
M3.1 M3.2 M3.3 M3.4 M3.5 |
A1.1, A1.2 |
10 |
Chương 6 :
Sao lưu và thống nhất dữ liệu 1.
Các mô hình
nhất quán dữ liệu: hướng dữ liệu, hướng người dùng |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1.1, A1.2 |
11 |
Chương 6 :
Sao lưu và thống nhất dữ liệu (tiếp) 2.
Quản trị sao
lưu 3.
Các giao thức
nhất quán dữ liệu |
M3.1 M3.2 M3.3 M3.4 M3.5 |
A1.1, A1.2 |
12 |
Chương 7:
Chống chịu lỗi 1.
Các khái niệm
cơ bản 2.
Các mô hình lỗi |
M1.1 M1.2 M2.1 M2.2 M2.3 M2.4 M2.5 |
A1.1, A1.2, A2.1 |
13 |
Chương 7:
Chống chịu lỗi (tiếp) 3.
Ẩn lỗi bằng dư
thừa 4.
Phục hồi trạng
thái |
M3.1 M3.2 M3.3 M3.4 M3.5 |
A1.1, A1.2, A2.1 |
14 |
Chương 8:
Chủ đề tự chọn SDN, CDN, Blockchain, IoT, và các hệ thống phân tán
lớn khác |
M1.1 M1.2 M1.3 M2.1 M2.2 M3.1 M3.2 |
A1.1, A1.2, A2.1 |
15 |
Tổng kết và ôn tập |
|
A2.2 |