IT4610            HỆ PHÂN TÁN

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)

                           Chương 1: Mở đầu

                        Chương 2: Kiến trúc

                        Chương 3: Tiến trình luồng

                        Chương 4: Trao đổi thông tin

                        Chương 5: Định danh

                        Chương 6: Đồng bộ hóa

                        Chương 7: Sao lưu

                        Chương 8: Tính chịu lỗi

            Slide bài giảng (tiếng Anh)

                        Chapter 1: Introduction

                        Chapter 2: Architecture

                        Chapter 3: Processes and Threads

                        Chapter 4: Communication

                        Chapter 5: Naming

                        Chapter 6: Synchronization

                        Chapter 7: Consistency and Replication

                        Chapter 8: Fault tolerance

 

 

 

            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