Mục tiêu của đề tài là xây dựng một kiến trúc phân tán cho hệ thống quản lý thư viện, cho phép các thành phần của hệ thống hoạt động trên nhiều máy tính khác nhau và đồng bộ dữ liệu giữa
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
BÁO CÁO ĐỒ ÁN CƠ SỞ 4
XÂY DỰNG ỨNG DỤNG QUẢN LÍ THƯ VIỆN SỬ DỤNG JAVA RMI VỚI MÔ
HÌNH PHÂN TÁN
Sinh viên thực hiện: Hồ Đăng Nguyện – 21IT363
Thái Doãn Tân – 21IT444
Giảng viên hướng dẫn: TS.NGUYỄN QUANG VŨ
Đà Nẵng, tháng 12 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
BÁO CÁO ĐỒ ÁN CƠ SỞ 4
XÂY DỰNG ỨNG DỤNG QUẢN LÍ THƯ VIỆN SỬ DỤNG JAVA RMI VỚI MÔ
HÌNH PHÂN TÁN
Sinh viên thực hiện: Hồ Đăng Nguyện – 21IT363
Thái Doãn Tân – 21IT444
Giảng viên hướng dẫn: TS.NGUYỄN QUANG VŨ
Đà Nẵng, tháng 12 năm 2023
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4LỜI CẢM ƠN
Kính gửi TS.Nguyễn Quang Vũ và toàn thể thầy cô Khoa Khoa học máy tính,Chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất tới Thầy và toàn bộ cácThầy Cô trong Khoa Khoa học máy tính trường Đại học Công nghệ thông tin vàTruyền thông Việt Hàn Chúng em muốn bày tỏ lòng biết ơn vì sự hỗ trợ vàđóng góp quý báu của Thầy và toàn thể Khoa trong quá trình hoàn thành đồ áncủa chúng em
Thầy Thanh Cẩm, chúng em muốn bày tỏ lòng kính trọng sâu sắc đối với kiếnthức và kinh nghiệm mà Thầy đã chia sẻ Sự dẫn dắt và hướng dẫn của Thầy đãgiúp chúng em vượt qua những khó khăn và thách thức trong quá trình nghiêncứu và thực hiện đồ án Thầy đã luôn sẵn lòng trợ giúp và tạo điều kiện thuận lợi
để chúng em có thể tiến gần hơn tới mục tiêu hoàn thành đồ án một cách thànhcông
Chúng em cũng muốn gửi lời tri ân tới toàn thể các Thầy Cô trong Khoa Khoahọc máy tính Sự tận tâm và sự chia sẻ từ phía các Thầy Cô đã giúp chúng em
mở rộng kiến thức và nhận thức về lĩnh vực này Nhờ những kiến thức và kỹnăng mà chúng em đã học được từ các Thầy Cô, chúng em đã có thể áp dụngchúng vào đồ án của mình một cách hiệu quả
Chúng em thật sự tự hào và biết ơn vì đã có cơ hội được học tập và làm việctrong môi trường học thuật tuyệt vời như Khoa Khoa học máy tính Chúng emtin rằng những kiến thức và kinh nghiệm mà chúng em đã tích lũy được sẽ lànền tảng vững chắc trong sự nghiệp và tương lai của chúng em
Một lần nữa, chúng em xin chân thành cảm ơn TS.Nguyễn Quang Vũ và toànthể Thầy Cô Khoa Khoa học máy tính vì sự hỗ trợ và đóng góp to lớn của mìnhtrong việc hoàn thành đồ án Chúng em sẽ luôn ghi nhớ và trân trọng những điều
mà chúng em đã học được từ Thầy và Khoa
Chúng em xin trân trọng cảm ơn
Sinh viên,
Hồ Đăng Nguyện – Thái Doãn Tân
Trang 5MỤC LỤC
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1
1.1 Các mô hình mạng 1
1.1.1 Mô hình OSI [1] 1
1.1.2 Mô hình TCP/IP [2] 4
1.2 Các mô hình ứng dụng mạng phổ biến 8
1.2.1 Mô hình Client-Server [3] 8
1.2.2 Peer to Peer – P2P [4] 12
1.3 Các giao thức mạng phổ biến 15
1.3.1 TCP 15
1.3.2 IP 15
1.3.3 HTTP 16
1.3.4 FTP 16
1.3.5 SMTP 16
1.4 Hệ thống phân tán [5] 16
1.4.1 Hệ thống phân tán là gì? 16
1.4.2 Cách thức hoạt động 17
1.4.3 Đặc điểm của hệ thống phân tán 18
1.4.4 Lý do nên sử dụng hệ thống phân tán 18
1.4.5 Những cản trở việc phát triển phần mềm phân tán 19
1.5 Sơ lược về Java Remote Method Interface 20
1.5.1 Tổng quan về Java 20
1.5.2 Java RMI là gì? [6] 21
1.6 Sơ lược về hệ quản trị cơ sở dữ liệu MySQL Server 22
1.6.1 Tổng quan về MySQL Server 22
1.6.2 Tìm hiểu MySQL Replication [7] 22
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 26
2.1 Tổng quan về bài toán “Quản lý thư viện” 26
2.1.1 Tình hình thực tế 26
2.1.2 Giải pháp 26
2.2 Phân tích và xác định yêu cầu hệ thống 26
2.2.1 Xác định mục tiêu và phạm vi của hệ thống 26
Trang 62.2.2 Xác định tác nhân và thu thập yêu cầu 26
2.2.3 Biểu đồ use-case tổng quát 27
2.2.4 Đặc tả use-case 27
2.3 Thiết kế kiến trúc hệ thống 34
2.3.1 Kiến trúc tổng quan của hệ thống 34
2.3.2 Cài đặt và cấu hình hệ thống trong môi trường phát triển 35
2.4 Thiết kế cơ sở dữ liệu 41
2.4.1 Các yêu cầu 41
2.4.2 Bảng Books và Authors 42
2.4.3 Bảng Categories 42
2.4.4 Bảng Book Copies và Published 43
2.4.5 Bảng Patron Accounts 44
2.4.6 Bảng Checkouts và Holds 44
2.4.7 Bảng Notifications 45
2.4.8 Sơ đồ quan hệ thực thể - (ERD – Entity Relationship Diagram) 45 2.5 Thiết kế giao diện người dùng 46
2.5.1 Giao diện quản lí 46
2.5.2 Giao diện khách hàng (độc giả) 54
2.6 Sơ đồ hoạt động 59
2.6.1 Mượn sách 59
2.6.2 Trả sách 60
2.6.3 Quản lí sách 61
2.6.4 Quản lí mượn sách 62
2.6.5 Quản lí trả sách 62
2.6.6 Quản lí độc giả 63
2.6.7 Quản lí thể loại 64
2.6.8 Quản lí tác giả 65
2.6.9 Gửi và nhận thông báo 65
CHƯƠNG 3 CHƯƠNG TRÌNH THỬ NGHIỆM 68
3.1 Môi trường thử nghiệm 68
3.2 Cài đặt server 68
3.2.1 Cài đặt Mysql Server trên Ubuntu 20.04 68
Trang 73.3 Cài đặt client 69 3.4 Thử nghiệm quản lí mượn sách 69 3.5 Thử nghiệm quản lí trả sách 74
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
VIẾT TẮT NỘI DUNG
RMI Remote Method Invocation
Trang 9DANH MỤC HÌNH VẼ
Hình 1 Mô hình OSI 2
Hình 2 Mô hình TCP/IP 5
Hình 3 TCP/IP tầng 2 6
Hình 4 TCP/IP tầng 3 6
Hình 5 TCP/IP model 7
Hình 6 Mô hình Client-Server 9
Hình 7 Nguyên tắc hoạt động của mô hình Client Server 9
Hình 8 Mô hình mạng Client server 11
Hình 9 Peer To Peer - P2P 12
Hình 10 Hệ thống phân phối nội dung CoopNet 14
Hình 11 Cách thức hoạt động của hệ thống phân tán 17
Hình 12 Cách xử lý và giao tiếp diễn ra trong RMI 22
Hình 13 Master - Slave 24
Hình 14 Master - Master 25
Hình 15 Biểu đồ use-case tổng quát 27
Hình 16 Kiến trúc tổng quan của hệ thống 35
Hình 17 Cấu trúc file của project 36
Hình 18 Cấu hình file pom.xml(RMI_Project) 36
Hình 19 Cấu hình file pom.xml(Client) 37
Hình 20 Cấu hình file pom.xml(Server) 38
Hình 21 Module API 39
Hình 22 Module Server(LibraryImpl.java) 39
Hình 23 Module Server(RMIServer.java) 40
Hình 24 Module Client (ManageController.java) 40
Hình 25 Module Client( LibraryRemote) 40
Hình 26 Cấu hình Mysql Server tại server 1 41
Hình 27 Cấu hình Mysql Server tại server 2 41
Hình 28 Bảng Books và Authors 42
Hình 29 Bảng Categories 43
Hình 30 Bảng Book Copies và Published 44
Hình 31 Bảng Patron Accounts 44
Hình 32 Bảng Checkouts và Holds 45
Hình 33 Bảng Notifications 45
Hình 34 Sơ đồ quan hệ thực thể - (ERD – Entity Relationship Diagram) 46
Hình 35 Quản lí sách 47
Hình 36 Quản lí tác giả 48
Hình 37 Quản lí nhà xuất bản 49
Hình 38 Quản lí thể loại 50
Hình 39 Quản lí mượn sách 51
Hình 40 Quản lí trả sách 52
Hình 41 Quản lí độc giả 53
Hình 42 Gửi thông báo cho độc giả 54
Hình 43 Giao diện đăng nhập 54
Hình 44 Giao diện đăng kí 55
Hình 45 Giao diện trang chủ 56
Hình 46 Giao diện mượn sách 57
Trang 10Hình 47 Giao diện trả sách 58
Hình 48 Giao diện cập nhật thông tin cá nhân 59
Hình 49 Activity Diagram Mượn sách 60
Hình 50 Activity Diagram Trả sách 61
Hình 51 Activity Diagram Quản lí sách 62
Hình 52 Activity Diagram Quản lí mượn sách 62
Hình 53 Activity Diagram Quản lí trả sách 63
Hình 54 Activity Diagram Quản lí độc giả 64
Hình 55 Activity Diagram Quản lí thể loại 64
Hình 56 Activity Diagram Quản lí thể loại 65
Hình 57 Activity Diagram Gửi và nhận thông báo 66
Hình 58 Giao diện Độc giả đăng nhập vào hệ thống 70
Hình 59 Giao diện Tìm kiếm sách mong muốn và nhấn nút Mượn sách 71
Hình 60 Giao diện Quản lí nhận được yêu cầu mượn sách 72
Hình 61 Giao diện Quản lí gửi thông báo phê duyệt cho độc giả 73
Hình 62 Giao diện nhận thông báo của độc giả 74
Hình 63 Giao diện Độc giả đăng nhập vào hệ thống 75
Hình 64 Giao diện Sau khi chọn sách cần trả thì nhấn nút trả 76
Hình 65 Giao diện Quản lí nhận được yêu cầu trả sách 77
Hình 66 Giao diện Quản lí gửi thông báo phê duyệt trả sách thành công cho độc giả 78 Hình 67 Giao diện nhận thông báo của độc giả 79
Trang 11MỞ ĐẦUThông tin người thực hiện:
Họ và tên sinh viên: HỒ ĐĂNG
NGUYỆN
Ngành: Kỹ thuật phần mềm
Điện thoại: 0387642103
MSSV: 21IT363Lớp: 21SE1Email: nguyenhd.21it@vku.udn.vn
Họ và tên sinh viên: THÁI DOÃN TÂN
Ngành: Kỹ thuật phần mềm
Điện thoại: 0347289575
MSSV: 21IT444Lớp: 21SE1Email: tantd.21it@vku.udn.vn
Giảng viên hướng dẫn: TS Nguyễn Quang Vũ
Tên đồ án: Quản lý thư viện phân tán sử dụng RMI (Remote Method Invocation)
Mô tả: Đề tài này tập trung vào việc phát triển một hệ thống quản lý thư viện
phân tán, sử dụng công nghệ RMI (Remote Method Invocation) và áp dụng đồng bộ dữ liệu thông qua MySQL Replication Mục tiêu của đề tài là xây dựng một kiến trúc phân tán cho hệ thống quản lý thư viện, cho phép các thành phần của hệ thống hoạt động trên nhiều máy tính khác nhau và đồng bộ dữ liệu giữa các cơ sở dữ liệu MySQL
Hệ thống sẽ cung cấp các chức năng quản lý sách, độc giả, mượn/trả sách, tìmkiếm sách và các thao tác quản lý khác một cách thuận tiện và hiệu quả Cácthành phần của hệ thống sẽ được triển khai dưới dạng các dịch vụ phân tán, cókhả năng chạy trên các máy tính độc lập và giao tiếp với nhau thông qua RMI.Đồng thời, việc sử dụng MySQL Replication sẽ đảm bảo đồng bộ dữ liệu giữacác cơ sở dữ liệu MySQL, tạo ra một hệ thống quản lý thư viện phân tán có tínhsẵn sàng cao và đáng tin cậy
Kết quả dự kiến của đề tài là một hệ thống quản lý thư viện phân tán, sử dụngRMI và đồng bộ dữ liệu thông qua MySQL Replication, đáp ứng được yêu cầuquản lý thư viện một cách hiệu quả và đồng nhất trên nhiều máy tính Hệ thống
sẽ giúp người dùng thực hiện các thao tác quản lý thư viện dễ dàng và linh hoạt,đồng thời đảm bảo tính nhất quán của dữ liệu và khả năng mở rộng của hệthống
Đề tài này đặt mục tiêu tạo ra một giải pháp phân tán toàn diện cho quản lý thưviện, kết hợp giữa RMI và MySQL Replication, nhằm tăng cường hiệu suất, khảnăng mở rộng và đáng tin cậy của hệ thống quản lý thư viện
Nội dung thực hiện:
1 Thiết kế kiến trúc hệ thống: Đầu tiên, sẽ tiến hành thiết kế kiến trúc tổngquan của hệ thống quản lý thư viện phân tán Kiến trúc này sẽ bao gồm các
Trang 12thành phần chính như máy chủ RMI, các dịch vụ quản lý sách, độc giả,mượn/trả sách và cơ sở dữ liệu MySQL.
2 Triển khai RMI: Tiếp theo, sẽ triển khai các thành phần RMI trong hệ thống.Điều này bao gồm việc xác định các phương thức từ xa (remote methods) màcác thành phần của hệ thống sẽ cung cấp, thiết lập giao tiếp qua RMI và triểnkhai máy chủ RMI để xử lý các yêu cầu từ xa
3 Thiết kế cơ sở dữ liệu: Đồng thời, sẽ thiết kế cơ sở dữ liệu MySQL để lưu trữthông tin về sách, độc giả và các thao tác mượn/trả sách Các bảng, quan hệ
và chỉ mục sẽ được xác định để đảm bảo tính nhất quán và hiệu suất của cơ
sở dữ liệu
4 Triển khai MySQL Replication: Sau khi thiết kế cơ sở dữ liệu, sẽ triển khaiMySQL Replication để đồng bộ dữ liệu giữa các cơ sở dữ liệu MySQL Cácmáy chủ MySQL sẽ được cấu hình để sao chép và cập nhật dữ liệu một cách
tự động, đảm bảo rằng các thay đổi dữ liệu được phản ánh đồng nhất trêntoàn bộ hệ thống
5 Xây dựng các dịch vụ quản lý thư viện: Tiếp theo, sẽ xây dựng các dịch vụquản lý sách, độc giả, mượn/trả sách và tìm kiếm sách Các dịch vụ này sẽđược triển khai dưới dạng các thành phần phân tán, sử dụng RMI để giao tiếpvới máy chủ RMI và truy xuất dữ liệu từ cơ sở dữ liệu MySQL
6 Thiết kế giao diện người dùng: Đồng thời, sẽ thiết kế giao diện người dùngcho hệ thống quản lý thư viện Giao diện này sẽ cho phép người dùng thựchiện các thao tác quản lý sách, độc giả và tìm kiếm sách một cách thuận tiện
và trực quan
7 Kiểm thử và đánh giá: Cuối cùng, sẽ tiến hành kiểm thử hệ thống và đánh giáhiệu suất, tính nhất quán dữ liệu và khả năng mở rộng của hệ thống Sẽ thựchiện kiểm thử các chức năng và tính năng quan trọng, đồng thời đánh giáhiệu suất và khả năng chịu tải của hệ thống khi có nhiều người dùng truy cậpđồng thời
Tổng quan, qua các nội dung trên, đề tài này sẽ xây dựng một hệ thống quản lýthư viện phân tán, sử dụng RMI và đồng bộ dữ liệu thông qua MySQLReplication, đảm bảo tính nhất quán và đáng tin cậy của dữ liệu trong quá trìnhquản lý thư viện
Trang 13CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1.1.2 Tại sao mô hình OSI lại quan trọng?
Các lớp của mô hình Kết nối các hệ thống mở (OSI) tóm lược mọi loại hình giaotiếp mạng trên cả thành phần phần mềm và phần cứng Mô hình này được thiết
kế để cho phép hai hệ thống độc lập giao tiếp với nhau thông qua các giao diệnhoặc giao thức được chuẩn hóa dựa trên lớp hoạt động hiện tại
Những lợi ích của mô hình OSI:
Hiểu biết chung về những hệ thống phức tạp: Các kỹ sư có thể sử dụng môhình OSI để tổ chức và mô hình hóa các kiến trúc hệ thống kết nối mạngphức tạp Họ có thể tách lớp hoạt động của từng thành phần hệ thống dựatheo chức năng chính của thành phần đó Khả năng phân tách một hệ thốngthành các phần nhỏ dễ quản lý thông qua việc trừu tượng hóa giúp mọi người
dễ dàng khái niệm hóa hệ thống này một cách tổng thể
Nghiên cứu và phát triển nhanh hơn: Với mô hình tham chiếu OSI, các kỹ sư
có thể hiểu rõ hơn về công việc của mình Khi tạo ra các hệ thống kết nốimạng mới cần giao tiếp với nhau, họ biết mình đang phát triển lớp (hoặc cáclớp) công nghệ nào Các kỹ sư có thể phát triển các hệ thống kết nối mạng vàtận dụng một loạt các quy trình và giao thức có thể lặp lại
Chuẩn hóa linh hoạt: Thay vì chỉ định các giao thức để sử dụng giữa các cấp,
mô hình OSI chỉ định các tác vụ mà các giao thức thực hiện Mô hình nàychuẩn hóa quá trình phát triển giao tiếp mạng để mọi người có thể nhanhchóng nắm bắt, xây dựng và phân tách các hệ thống có tính phức tạp cao màkhông cần phải biết trước về hệ thống Mô hình này cũng tóm tắt các chi tiếtnên các kỹ sư không cần phải hiểu biết về mọi khía cạnh của mô hình Trongcác ứng dụng hiện đại, các cấp độ kết nối mạng và giao thức thấp hơn đềuđược tóm tắt để đơn giản hóa việc thiết kế và phát triển hệ thống Hình ảnh
1
Trang 14sau đây cho thấy cách mô hình OSI được sử dụng trong lĩnh vực phát triểnứng dụng hiện đại.
Hình 1 Mô hình OSI
1.1.1.3 Bảy lớp của mô hình OSI
Mô hình Kết nối giữa các hệ thống mở (Open Systems Interconnection – OSI)được phát triển bởi Tổ chức tiêu chuẩn hóa quốc tế và các tổ chức khác vào cuốinhững năm 1970 Mô hình này được ra mắt dưới dạng đầu tiên vào năm 1984với tên ISO 7498, và phiên bản hiện tại là ISO/IEC 7498-1:1994 Dưới đây là 7lớp của mô hình
Lớp vật lý:
Lớp vật lý là phương tiện truyền dẫn vật lý và các công nghệ để truyền dữliệu qua phương tiện đó Về cốt lõi, hoạt động truyền dữ liệu là việctruyền tín hiệu kỹ thuật số và điện tử thông qua các kênh vật lý khác nhaunhư cáp quang, cáp đồng và không khí Lớp vật lý bao gồm tiêu chuẩncho các công nghệ và chỉ số liên quan chặt chẽ với các kênh, chẳng hạnnhư Bluetooth, NFC và tốc độ truyền dữ liệu
dữ liệu thường được chia thành hai lớp phụ: lớp Kiểm soát truy cậpphương tiện (Media Access Control – MAC) và lớp Điều khiển liên kếtlogic (Logical Link Control – LLC)
Lớp mạng:
Lớp mạng liên quan đến các khái niệm như định tuyến, chuyển tiếp và xácđịnh địa chỉ trên một mạng phân tán hoặc nhiều mạng được kết nối của
2
Trang 15các nút hoặc máy Lớp mạng cũng có thể quản lý kiểm soát lưu lượng.Trên Internet, Giao thức Internet v4 (IPv4) và IPv6 được sử dụng làmgiao thức lớp mạng chính.
Lớp truyền tải:
Trọng tâm chính của lớp truyền tải là đảm bảo rằng các gói dữ liệu đếnđúng thứ tự, không bị mất mát/bị lỗi hoặc có thể được phục hồi liền mạchnếu được yêu cầu Kiểm soát lưu lượng cùng với kiểm soát lỗi thường làtrọng tâm tại lớp truyền tải Ở lớp này, các giao thức thường được sử dụngbao gồm Giao thức điều khiển truyền tải (Transmission Control Protocol –TCP), một giao thức dựa trên kết nối gần như không suy hao và Giao thứcgói dữ liệu người dùng (User Datagram Protocol – UDP), một giao thứckhông kết nối có suy hao TCP thường được sử dụng khi tất cả dữ liệuphải còn nguyên vẹn (ví dụ: chia sẻ tệp), trong khi UDP được sử dụng khiviệc giữ lại tất cả các gói ít quan trọng hơn (ví dụ: truyền phát video)
Lớp phiên:
Lớp phiên chịu trách nhiệm điều phối mạng giữa hai ứng dụng riêng biệttrong một phiên Một phiên quản lý một kết nối ứng dụng một-một từ khibắt đầu đến lúc kết thúc và xung đột đồng bộ hóa Hệ thống tệp mạng(Network File System – NFS) và Khối tin nhắn máy chủ (Server MessageBlock – SMB) là các giao thức thường được sử dụng ở lớp phiên
Lớp trình bày:
Lớp trình bày chủ yếu liên quan đến cú pháp của chính dữ liệu để các ứngdụng gửi và sử dụng Ví dụ: Hypertext Markup Language (HTML),JavaScipt Object Notation (JSON) và Comma Separated Values (CSV)đều là các ngôn ngữ lập mô hình để mô tả cấu trúc của dữ liệu tại lớptrình bày
Lớp ứng dụng:
Lớp ứng dụng liên quan đến loại ứng dụng cụ thể và các phương thứcgiao tiếp được tiêu chuẩn hóa của nó Ví dụ, các trình duyệt có thể giaotiếp bằng cách sử dụng Giao thức truyền siêu văn bản an toàn (HyperTextTransfer Protocol Secure – HTTPS), HTTP và ứng dụng email có thể giaotiếp bằng POP3 (Post Office Protocol phiên bản 3) và SMTP (SimpleMail Transfer Protocol – Giao thức truyền thư đơn giản)
Không phải tất cả các hệ thống sử dụng mô hình OSI đều triển khai tất cả cáclớp
1.1.1.4 Hoạt động truyền dữ liệu
Các lớp trong mô hình Kết nối giữa các hệ thống mở (Open SystemsInterconnection – OSI) được thiết kế để một ứng dụng có thể giao tiếp qua mạngvới một ứng dụng khác trên một thiết bị khác, bất kể sự phức tạp của ứng dụng
và các hệ thống cơ bản Để làm điều này, các tiêu chuẩn và giao thức khác nhau
3
Trang 16được sử dụng để giao tiếp với lớp bên trên hoặc bên dưới Đây là các lớp độc lập
và chỉ nhận thức được các giao diện để giao tiếp với lớp bên trên và bên dưới
nó
Bằng cách liên kết tất cả các lớp và giao thức này lại với nhau, thông tin liên lạc
dữ liệu phức tạp có thể được gửi từ ứng dụng cấp cao này sang ứng dụng cấpcao khác
Quy trình hoạt động như sau:
Lớp ứng dụng của người gửi hoạt động truyền dữ liệu xuống tầng bêndưới tiếp theo
Mỗi lớp đều thêm các tiêu đề và địa chỉ riêng của nó vào dữ liệu trước khichuyển dữ liệu đi
Hoạt động truyền dữ liệu di chuyển xuống các lớp cho đến khi cuối cùng
dữ liệu được truyền qua phương tiện vật lý
Ở đầu kia của phương tiện, mỗi lớp xử lý dữ liệu theo các tiêu đề có liênquan ở cấp độ đó
Ở đầu thiết bị nhận, dữ liệu di chuyển lên từng lớp và dần dần được giảinén cho đến khi ứng dụng ở đầu kia nhận được dữ liệu
1.1.2 Mô hình TCP/IP [2]
1.1.2.1 TCP/IP là gì?
TCP/IP là cụm từ viết tắt của Transmission Control Protocol/Internet Protocolhay còn gọi là giao thức điều khiển truyền nhận/ Giao thức liên mạng Đây làmột bộ các giao thức truyền thông được sử dụng để kết nối các thiết bị mạng vớinhau trên internet TCP/IP cũng có thể được sử dụng như một giao thức truyềnthông trong mạng máy tính riêng (mạng nội bộ) Trong đó, bộ Giao thức internet– một tập hợp các quy tắc và thủ tục – thường gọi là TCP/IP (TCP/IP Protocol)TCP và IP là hai giao thức chính bên cạnh những giao thức khác trong bộ Bộgiao thức TCP/IP hoạt động như một lớp trừu tượng giữa các ứng dụng internet
và hạ tầng router/switch.TCP/IP chỉ định cách dữ liệu được trao đổi qua internet
Nó thực hiện bằng cách cung cấp thông tin liên lạc đầu cuối Từ đó xác địnhcách nó được chia thành các packet, xác định địa chỉ, truyền dẫn, định tuyến vànhận dữ liệu TCP/IP được thiết kế để đảm bảo độ tin cậy, nó có khả năng khôiphục tự động khi gặp sự cố trong quá trình truyền dữ liệu
1.1.2.2 Nguyên lý hoạt động của TCP/IP
Thực tế trong giao thức TCP/IP, IP đóng góp một vai trò cực kỳ quan trọng Nhưtên gọi đã nói lên tất cả, TCP/TP là sự kết hợp giữa 2 giao thức IP cho phépmáy tính chuyển tiếp gói tin tới một máy tính khác Thông qua một hoặc nhiềukhoảng (chuyển tiếp) gần với người nhận gói tin Còn TCP sẽ giúp kiểm tra cácgói dữ liệu xem có lỗi không sau đó gửi yêu cầu truyền lại nếu có lỗi được tìmthấy
4
Trang 17Như vậy, để trả lời cho câu hỏi về quy cách hoạt động của TCP/IP là gì thật rarất đơn giản Bạn có thể hình dung việc truyền tin trên Internet tựa như một dâychuyền sản xuất Các công nhân sẽ lần lượt chuyền các bán thành phẩm quanhững giai đoạn khác nhau để bổ sung hoàn thiện sản phẩm Khi đó, IP giốngnhư là quy cách hoạt động của nhà máy, còn TCP lại đóng vai trò là một ngườigiám sát dây chuyền, đảm bảo cho dây chuyền liên tục nếu có lỗi xảy ra.
1.1.2.3 Cấu trúc của TCP/IP và chức năng của các tầng
Bản chất của TCP/IP là một chuẩn phổ biến mà các mạng nội bộ và diện rộng cóthể giao tiếp, cho phép các máy tính kết nối với nhau và cho các ứng dụng đểgửi dữ liệu đi và về Để hoạt động nhịp nhàng, TCP/IP phải có 4 lớp/tầng trừutượng (TCP/IP layers), mỗi lớp có một bộ giao thức riêng
Hình 2 Mô hình TCP/IP
Tầng 1 – Tầng Vật lý (Physical)
Đây là sự kết hợp giữa tầng Vật lý và tầng liên kết dữ liệu của mô hình OSI Tầng này chịu trách nhiệm truyền dữ liệu giữa hai thiết bị trong cùng một mạng.Tại đây, các gói dữ liệu được đóng vào khung (gọi là Frame) và được định tuyến
đi đến đích đã được chỉ định ban đầu
Tầng 2 – Tầng mạng (Internet) – IP
Cũng gần giống như tầng mạng của mô hình OSI
Tại TCP/IP, tầng 2 – tầng mạng (Internet) cũng được định nghĩa là một giao thứcchịu trách nhiệm truyền tải dữ liệu một cách logic trong mạng
Các phân đoạn dữ liệu sẽ được đóng gói (Packets) với kích thước mỗi gói phùhợp với mạng chuyển mạch mà nó dùng để truyền dữ liệu
Lúc này, các gói tin được chèn thêm phần Header chứa thông tin của tầng mạng
và tiếp tục được chuyển đến tầng tiếp theo
5
Trang 18Các giao thức chính trong tầng là IP, ICMP và ARP.
IP - Internet Protocol
ICMP - Internet Control Message Protocol
IGMP - Internet Group Message Protocol
Tầng 3 – Tầng Giao vận (Transport layer) – TCP
Hình 4 TCP/IP tầng 3
6
Trang 19Chức năng chính của tầng 3 là xử lý vấn đề giao tiếp giữa các máy chủ trongcùng một mạng hoặc khác mạng được kết nối với nhau thông qua bộ định tuyến.Đây là lớp điều khiển giao tiếp máy chủ tới máy chủ, còn được gọi là Tầng giaovận.
Tầng truyền tải sẽ phụ trách luồng dữ liệu giữa 2 trạm thực hiện các ứng dụngcủa lớp trên Tầng này có 2 giao thức chính là:
TCP – Transmission Control Protocol: cung cấp luồng dữ liệu tin cậy giữa 2trạm nhờ nhiều cơ chế
o Ví dụ như chia nhỏ các gói tin ở tầng trên thành các gói tin có kíchthước thích hợp cho tầng mạng bên dưới, báo nhận gói tin, đặt hạnchế thời gian timeout để đảm bảo bên nhận biết được các gói tin đãgửi đi
UDP – User Datagram Protocol: gửi dữ liệu từ trạm này tới trạm kia mà khôngđảm bảo các gói tin đến được tới đích
Tầng 4 - Tầng Ứng dụng (Application)
Đây thực tế là lớp giao tiếp trên cùng của mô hình Tầng Ứng dụng đảm nhậnvai trò giao tiếp dữ liệu giữa 2 máy khác nhau thông qua các dịch vụ mạng khácnhau như chính tên gọi của nó Các dịch vụ mạng đó có thể là duyệt web, chat,gửi email, một số giao thức trao đổi dữ liệu: SMTP, SSH, FTP,… Dữ liệu khiđến đây sẽ được định dạng theo kiểu Byte nối Byte, cùng với đó là các thông tinđịnh tuyến giúp xác định đường đi đúng của một gói tin
Sau đây là hình ảnh ví dụ điển hình của TCP/IP Model (Mô hình TCP/IP) về bốcục các TCP/IP layers
Hình 5 TCP/IP model
1.1.2.4 Ưu và nhược điểm của TCP/IP
7
Trang 20Ưu điểm:
Thiết lập kết nối giữa các loại máy tính khác nhau
Hoạt động độc lập với hệ điều hành
Hỗ trợ nhiều giao thức định tuyến
Kiến trúc client – server, khả năng mở rộng cao
Có thể hoạt động độc lập
Hỗ trợ nhiều giao thức định tuyến
Nhẹ, không gây nhiều áp lực với máy tính hay mạng
Nhược điểm:
Việc cài đặt khá phức tạp, khó để quản lý
Tầng transport không đảm bảo việc phân phối các gói tin
Các giao thức trong TCP/IP không dễ để có thể thay thế
Không tách biệt rõ ràng các khái niệm về dịch vụ, giao diện và giao thức
Do đó nó không hiệu quả để mô tả các công nghệ mới trong mạng mới
Dễ bị tấn công SYN – một kiểu tấn công từ chối dịch vụ
1.1.2.5 Nên chọn mô hình OSI hay TCP/IP
Để thiết lập kết nối giữa các thiết bị giao tiếp trên toàn cầu, chúng ta sẽ cần đếnOSI (Open Systems Interconnection) OSI cho phép các hệ thống khác nhau cóthể giao tiếp được với nhau nhờ cung cấp tiêu chuẩn dưới dạng kiến trúc phântầng Mô hình này phù hợp với mọi hệ thống mạng của nó, do đó nó được xem
là mã nguồn mở Sự khác biệt giữa TCP/IP và OSI nằm ở sự kết hợp giữa cáctầng với nhau Tầng trình diễn của TCP/IP được kết hợp với tầng phiên trongtầng ứng dụng Đồng thời, mỗi tầng sẽ thực hiện một nhiệm vụ khác nhau OSI
là một chuẩn giao thức độc lập, còn TCP/IP là mô hình phụ thuộc hoàn toàn vàogiao thức
Bên cạnh đó, TCP/IP cung cấp các nguyên tắc chung và cá nhân tôi cho rằngTCP/IP không quá khắt khe đối với người dùng về các quy tắc Dựa trên nhiềuthông kê, TCP/IP được nhiều người sử dụng hơn so với OSI Ngoài ra, sự khácbiệt còn nằm ở chỗ OSI tiếp cận theo chiều dọc, còn TCP/IP tiếp cận theo chiềungang Các giao thức TCP/IP sẽ được thiết kế trước, còn mô hình sẽ được pháttriển sau đó Riêng OSI thì ngược lại, mô hình sẽ được phát triển trước rồi cácgiao thức được phát triển sau đó
8
Trang 21Khi máy client gửi yêu cầu dữ liệu đến server thông qua Internet, server sẽ chấpnhận quy trình được yêu cầu Sau đó gửi các gói dữ liệu được yêu cầu trở lạiclient Client không chia sẻ bất kỳ tài nguyên nào của họ.
Hình 6 Mô hình Client-Server
Là một cấu trúc ứng dụng phân tán, nó phân vùng các nhiệm vụ hay workloadgiữa các nhà cung cấp tài nguyên hoặc dịch vụ và người yêu cầu dịch vụ
1.2.1.2 Nguyên tắc hoạt động của mô hình Client-Server
Hình 7 Nguyên tắc hoạt động của mô hình Client Server
Client
Khi nói đến Client (khách hàng), thì nó có nghĩa là một người hay một tổ chức
sử dụng một dịch vụ cụ thể nào đó Trong thế giới kỹ thuật số cũng tương tự nhưvậy Client là một máy tính (Host), tức là có khả năng nhận thông tin hoặc sửdụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server)
Server
9
Trang 22Tương tự như vậy, khi nói đến Server thì nó có nghĩa là một máy chủ hay mộtphương tiện phục vụ các dịch vụ nào đó Trong lĩnh vực công nghệ thì Server làmột máy tính từ xa Nó cung cấp các thông tin (dữ liệu) hoặc quyền truy cập vàocác dịch vụ cụ thể.
Vì vậy, về cơ bản thì trong mô hình Client và Server, Client là đối tượng yêu cầumột thứ gì đó Server thì phục vụ nó, miễn là nó có mặt trong cơ sở dữ liệu
1.2.1.3 Ưu và nhược điểm của mô hình Client-Server
Ưu điểm
Tập trung
Ưu điểm chính của mô hình mạng khách chủ là khả năng kiểm soát tập trung(Centralization) được tích hợp sẵn Với mô hình này, tất cả thông tin cần thiếtđều được đặt ở một vị trí duy nhất Việc này rất hữu ích cho những quản trị viênmạng Vì họ có được toàn quyền quản lý và điều hành
Bằng tính năng này, mọi sự cố trong mạng đều có thể được giải quyết ở một nơiduy nhất Và do đó, việc cập nhật tài nguyên, dữ liệu cũng trở nên dễ dàng hơn
Bảo mật
Trong mạng Client Server, dữ liệu được bảo vệ tốt do kiến trúc tập trung củamạng Nó có thể được áp dụng các biện pháp kiểm soát truy cập, sao cho chỉnhững người dùng được ủy quyền mới có thể truy cập
Một trong những cách để làm vậy là áp đặt thông tin đăng nhập, chẳng hạn nhưUsername hay Password Hơn nữa, nếu dữ liệu bị mất, các file có thể được khôiphục dễ dàng từ chỉ một bản sao lưu duy nhất
Khả năng mở rộng
Mô hình mạng Client server có khả năng mở rộng tốt Bất cứ khi nào ngườidùng cần, họ có thể tăng số lượng tài nguyên, chẳng hạn như số Client hayServer Do đó có thể dễ dàng tăng kích thước của Server mà không bị gián đoạnnhiều
10
Trang 23 Khả năng truy cập
Không có sự phân biệt giữa các vị trí hay nền tảng khác nhau, mọi client đều cóthể đăng nhập vào hệ thống Bằng cách này, tất cả nhân viên đều có thể truy cậpthông tin của công ty của họ, không cần phải dùng một terminal mode hay một
bộ xử lý nào
Nhược điểm
Tắc nghẽn lưu lượng
Nhược điểm chính của mô hình mạng Client Server là tắc nghẽn lưu lượng Nếu
có quá nhiều Client tạo request từ cùng một Server, nó có thể làm chậm kết nối.Hoặc tệ hơn là dẫn đến hiện tượng crash Một server bị quá tải có thể tạo ranhiều vấn đề trong việc truy cập thông tin
Độ bền
Như ta đã biết, mạng Client Server là mạng tập trung Nên nếu Server chính xảy
ra sự cố hay bị nhiễu, toàn bộ hệ thống mạng sẽ bị gián đoạn Do đó, các mạngclient server sẽ thiếu tính ổn định và độ bền
Chi phí
Chi phí thiết lập và bảo trì server trong các mạng client server thường khá cao
Vì các hệ thống mạng có sức mạnh lớn có thể có giá rất đắt Do đó, không phảitất cả người dùng đều có thể chi trả được
Bảo trì
Khi các Server được triển khai, nó sẽ hoạt động không ngừng nghỉ Có nghĩa là
nó cần được quan tâm đúng mức nếu có bất kỳ vấn đề gì thì phải giải quyết
11
Trang 24ngay Vì vậy, cần có một nhà quản lý mạng chuyên biệt để duy trì hoạt động củaServer.
Tài nguyên
Không phải tất cả tài nguyên hiện có ở trên Server đều có thể sử dụng được Ví
dụ như bạn không thể in trực tiếp tài liệu trên web, hoặc chỉnh sửa bất kỳ thôngtin nào trên ổ cứng của Client
1.2.2 Peer to Peer – P2P [4]
1.2.2.1 Peer to Peer là gì?
P2P là mô hình ứng dụng phân tán nhằm phân vùng nhiệm vụ, khối lượng côngviệc giữa các peer Trong đó, các peer là những thiết bị tham gia trong các ứngdụng có đặc quyền như nhau Tất cả cùng tạo nên một mạng lưới các nodengang hàng
Các tính năng của Peer to peer là gì? Cụ thể, P2P cung cấp môi trường tính toánsong song, lưu trữ phân toán và định tuyến ẩn danh lưu lượng mạng Đặc biệtnhất là khả năng chia sẻ phương tiện truyền thông Tuy nhiên cũng vì khả năngnày mà P2P thường xuyên bị vi phạm bản quyền
Hình 9 Peer To Peer - P2PNgười dùng hoàn toàn có thể kiểm soát được các thông số hoạt động khi sửdụng các ứng dụng của P2P Chẳng hạn như cho phép kết nối nhiều thành viêncùng một lúc với nhau Hoặc cung cấp các dịch vụ, hệ thống và tài nguyên bảo
vệ dành cho mạng
1.2.2.2 Mô hình của P2P
Định tuyến và khám phá tài nguyên
Mạng P2P triển khai dạng mạng lớp phủ áo trên nền cấu trúc liên kết mạng vật
lý Trong đó, các node trong mạng vật lý sẽ được tạo thành từ một tập hợp congồm các node trong lớp phủ Dữ liệu vẫn được trao đổi trực tiếp qua mạng TCP/
12
Trang 25IP Nhưng ở các lớp ứng dụng ngang hàng thì dữ liệu giao tiếp trực tiếp thôngqua các liên kết lớp phủ logic.
Lớp phủ được sử dụng với mục đích để index và khám phá peer Đồng thờichúng còn giúp cho hệ thống Peer to peer độc lập với cấu trúc liên kết mạng vật
lý Dựa trên cách các node liên kết với nhau trong lớp phủ và cách các tàinguyên định vị và index, người ta phân loại mạng P2P thành 2 loại chính Đó làmạng không có cấu trúc hoặc mạng có cấu trúc (hoặc là sự kết hợp giữa haimạng này)
Mạng không có cấu trúc
Mạng ngang hàng peer to peer không có cấu trúc nghĩa là mạng lớp phủ đượcthiết kế không theo bất kỳ khuôn khổ nào Tất cả chúng được tạo bởi các nodehình thành các liên kết ngẫu nhiên với nhau Một số mô hình P2P không có cấutrúc như Gnutella, Gossip và Kazaa
Chính vì không có cấu trúc nào được áp đặt trên toàn câu nên các mạng này rất
dễ xây dựng Đồng thời, nó cũng cho phép tối ưu hóa phù hợp với từng vùng địa
lý khác nhau Nhìn chung, các mạng không có cấu trúc rất mạnh và tốt khi gặp
tỷ lệ “churn” cao Churn là hiện tượng khi một số lượng lớn các peer thườngxuyên tham gia và rời khỏi mạng
Tuy nhiên, mạng không có cấu trúc cũng tồn tại rất nhiều hạn chế bởi sự thiếucấu trúc này Đặc biệt là khi một peer nào đó muốn tìm một phần dữ liệu cầnthiết trong mạng Lúc này, truy vấn tìm kiếm phải được flood trong mạng để tìmcàng nhiều peer chia sẻ dữ liệu càng tốt Flooding thường gây nên một lượng lớnlưu lượng báo hiệu trong mạng, sử dụng nhiều CPU hơn Đặc biệt là không đảmbảo rằng tất cả mọi truy vấn đều được giải quyết
Mô hình kết hợp
Các mô hình kết hợp được tạo nên từ các mô hình client-server và mô hình Peer
to peer Dạng mô hình kết hợp thường gặp là một server trung tâm giúp các peertìm thấy nhau Cấu trúc của mô hình này tạo nên sự cân bằng giữa chức năng tậptrung được cung cấp bởi mạng server/client có cấu trúc Trên thực tế có rất nhiều
13
Trang 26mô hình kết hợp được ứng dụng Trong đó, Spotify chính là một ví dụ điển hìnhcủa mô hình kết hợp.
Hiện nay, hiệu suất của mô hình kết hợp được đánh giá cao hơn so với mạngkhông có cấu trúc Điều này được chứng minh qua một số chức năng chính nhưtìm kiếm, yêu cầu chức năng tập trung nhưng được hưởng lợi từ sự kết hợp giữakhông tập trung của các node do mạng không cấu trúc cung cấp
Hệ thống phân phối nội dung CoopNet
CoopNet hay mạng lưới hợp tác là một hệ thống phục vụ không tải cho các peergần đây đã tải xuống nội dung Mạng lưới được đề xuất bởi các nhà khoa họcmáy tính Venkata N Padmanabhan và Kunwadee Sripanidkulchai, làm việc tạiMicrosoft Research và Đại học Carnegie Mellon
Hình 10 Hệ thống phân phối nội dung CoopNet
Hệ thống phân phối nội dung CoopNet có khả năng giảm tải từ server Cụ thể,khi một server gặp phải trường hợp quá tải, nó sẽ chủ động chuyển hướng cácpeer này đến các peer đồng ý phản chiếu nội dung đó
1.2.2.3 Ưu và nhược điểm của P2P
Ưu điểm
Mạng peer to peer không cần sử dụng tới máy chủ
Mỗi thiết bị máy tính là một người dùng quản lý riêng
Thao tác vận hành P2P không yêu cầu bất kỳ các kiến thức chuyên ngànhquá phúc tạp
Những môi trường gia đình và doanh nghiệp nhỏ phù hợp để sử dụngmạng P2P
Không cần quá nhiều lưu lượng khi truy cập mạng
Nhược điểm
14
Trang 27 Các thông tin trên máy không thể thực hiện sao lưu một cách tập trungđược.
Nếu đồng thời nhiều thiết bị máy tính cùng truy cập vào một thời điểm sẽlàm giảm hiệu suất hoạt động
Các tệp dữ liệu không được sắp xếp khoa học mà được lưu trữ trên máytính cá nhân Điều này làm ảnh hưởng không nhỏ đến quá trình xác định
TCP có ba thành phần chính:
Segment: Là một đơn vị dữ liệu nhỏ nhất được truyền qua mạng Mỗisegment bao gồm một số trường, chẳng hạn như số thứ tự, số kiểm tra vàđịa chỉ nguồn và đích
Socket: Là một điểm kết nối giữa hai thiết bị Mỗi socket có một địa chỉ
IP có hai loại địa chỉ:
Địa chỉ IPv4: Là địa chỉ 32 bit được biểu diễn dưới dạng bốn số thập phânđược phân tách bằng dấu chấm
Địa chỉ IPv6: Là địa chỉ 128 bit được biểu diễn dưới dạng một chuỗi 16chữ số thập lục phân được phân tách bằng dấu hai chấm
IP sử dụng một số thuật toán để định tuyến dữ liệu, bao gồm:
Định tuyến tĩnh: Là định tuyến được cấu hình thủ công bởi người quản trịmạng
Định tuyến động: Là định tuyến được tự động tính toán bởi các router
15
Trang 28IP là một giao thức cơ bản của Internet và được sử dụng trong nhiều ứng dụng,bao gồm:
Hypertext Transfer Protocol (HTTP) là một giao thức mạng tầng ứng dụng được
sử dụng để truyền tải dữ liệu siêu văn bản, chẳng hạn như trang web HTTP sửdụng các yêu cầu và phản hồi để giao tiếp giữa các máy khách và máy chủ.HTTP có hai phiên bản chính:
HTTP 1.1: Là phiên bản hiện tại của HTTP
HTTP 2.0: Là phiên bản mới hơn của HTTP cung cấp hiệu suất tốt hơn.HTTP được sử dụng trong các ứng dụng, bao gồm:
Web
FTP
1.3.4 FTP
File Transfer Protocol (FTP) là một giao thức mạng tầng ứng dụng được sử dụng
để truyền tải tập tin giữa các máy tính FTP sử dụng các lệnh để giao tiếp giữacác máy khách và máy chủ
Trang 291.4 Hệ thống phân tán [5]
1.4.1 Hệ thống phân tán là gì?
Hệ thống phân tán là một môi trường tính toán, trong đó, các thành phần khácnhau được phân bố trên nhiều máy tính (hoặc các thiết bị khác) trong cùng mộtmạng Các thiết bị này phân chia công việc, phối hợp với nhau để hoàn thànhcông việc hiệu quả hơn so với việc một thiết bị duy nhất chịu trách nhiệm chocông việc đó
Hệ thống phân tán được đánh giá là một bước phát triển quan trọng đối vớingành IT và khoa học máy tính vì ngày càng có nhiều công việc quá lớn và phứctạp mà một máy tính không thể xử lý Tuy nhiên, điện toán phân tán sẽ mang lạinhững lợi thế bổ sung so với môi trường điện toán truyền thống
1.4.2 Cách thức hoạt động
Ngày nay, hệ thống phân tán chủ yếu được thiết kế để hoạt động qua Internet vàđặc biệt là đám mây Hệ thống phân tán bắt đầu với một nhiệm vụ, sau đó, ứngdụng web, hoặc các ứng dụng phân tán mà quản lý tác vụ này sẽ chia công việcthành nhiều phần nhỏ
Ví dụ: Thuật toán cung cấp một phần của đoạn video cho các máy tính khácnhau để hoàn thành việc hiển thị video hoàn chỉnh Khi một phần được hoàn tất,ứng dụng quản lý sẽ cung cấp một phần mới để tiếp tục xử lý Quá trình này tiếptục cho đến khi video được hoàn thành và tất cả các phần được ghép lại vớinhau
Một hệ thống phân tán có thể phân chia công việc và phân bổ cho hàng trămhoặc thậm chí hàng nghìn máy tính, biến một nhiệm vụ có thể mất nhiều ngày
để một máy tính xử lý thành một nhiệm vụ hoàn thành trong vài phút
Hình 11 Cách thức hoạt động của hệ thống phân tánNgày nay, có rất nhiều mô hình và kiến trúc của hệ thống phân tán đang được sửdụng Hệ thống máy khách và máy chủ là loại hệ thống phân tán đơn giản nhất
17
Trang 30Nó bao gồm nhiều máy tính kết nối mạng tương tác với một máy chủ trung tâm
để lưu trữ, xử lý dữ liệu
Mạng điện thoại di động là một loại hệ thống phân tán tiên tiến, chia sẻ khốilượng công việc giữa các thiết bị cầm tay, hệ thống chuyển mạch và các thiết bịdựa trên Internet Một ví dụ điển hình khác về kiến trúc hệ thống phân tán làmạng ngang hàng (Peer-to-peer network), trong đó, khối lượng công việc đượcphân phối giữa hàng trăm hoặc hàng nghìn máy tính hoạt động cùng một phầnmềm
Ngày nay, hình thức phổ biến nhất của hệ thống phân tán trong doanh nghiệp là
hệ thống hoạt động qua Web, chuyển giao khối lượng công việc cho hàng chụcmáy chủ ảo dựa trên đám mây được tạo ra và kết thúc khi nhiệm vụ hoàn thành
Hệ thống phân tán được sử dụng khi khối lượng công việc quá lớn mà một máytính hoặc thiết bị đơn lẻ không thể xử lý Ngoài ra, chúng cũng hữu ích trong cáctình huống khi khối lượng công việc thay đổi, ví dụ như lưu lượng truy cậpthương mại điện tử Ngày nay, hầu như mọi ứng dụng Web được kết nối Internetđều được xây dựng dựa trên một số dạng hệ thống phân tán
1.4.3 Đặc điểm của hệ thống phân tán
Hệ thống phân tán bao gồm các đặc điểm và tính năng chính sau:
Khả năng mở rộng: Khi khối lượng công việc tăng lên, hệ thống phân táncho phép thêm các đơn vị xử lý hoặc máy tính bổ sung vào mạng để xử lýcông việc
Xử lý đồng thời: Các thành phần hệ thống phân tán hoạt động đồng thời.Ngoài ra, chúng có đặc điểm là "No global clock", khi các nhiệm vụ thựchiện không theo đúng thứ tự và được xử lý với tốc độ khác nhau
Tính khả dụng/ khả năng kháng lỗi: Nếu một máy tính (một nút) bị lỗi,các nút còn lại có thể tiếp tục hoạt động mà không làm gián đoạn quátrình chung
Tính minh bạch: Người sử dụng coi hệ thống phân tán giống như một đơn
vị xử lý, cho phép người dùng tương tác với một thiết bị thay vì phải quantâm đến toàn bộ kiến trúc của hệ thống
Tính không đồng nhất: Trong các hệ thống phân tán, các nút và thànhphần thường không đồng bộ với phần cứng, phần mềm trung gian và hệđiều hành khác nhau Vì vậy, mà các hệ thống phân tán có khả năng mởrộng với việc bổ sung các thành phần mới
Tính nhân rộng: Hệ thống phân tán cho phép chia sẻ thông tin, đảm bảotính nhất quán giữa các tài nguyên dự phòng, ví dụ như các phần cứng vàphần mềm
1.4.4 Lý do nên sử dụng hệ thống phân tán
Hệ thống phân tán cung cấp một số ưu điểm so với hệ thống đơn lẻ như sau :
Linh hoạt hơn: Việc bổ sung thêm sức mạnh tính toán trở nên dễ dàng hơnkhi nhu cầu về dịch vụ ngày càng tăng Trong hầu hết các trường hợp,
18
Trang 31chúng ta có thể thêm máy chủ vào hệ thống phân tán một cách nhanhchóng.
Độ tin cậy: Một hệ thống phân tán có thể kháng được sự cố ở một hoặcnhiều nút mà không làm ảnh hưởng nghiêm trọng đến hiệu suất chung.Tuy nhiên, trong một hệ thống nguyên khối, toàn bộ ứng dụng sẽ ngừnghoạt động nếu máy chủ gặp sự cố
Cải thiện tốc độ: Lưu lượng truy cập lớn có thể làm hỏng các máy chủ đơn
lẻ, ảnh hưởng đến hiệu suất chung Khả năng mở rộng của cơ sở dữ liệuphân tán và các hệ thống phân tán khác giúp dễ bảo trì hơn và duy trì mứchiệu suất cao
1.4.5 Những cản trở việc phát triển phần mềm phân tán
Hệ thống phân tán phức tạp hơn so với môi trường điện toán nguyên khối, do
đó, nó đặt ra một số thách thức xung quanh việc thiết kế, vận hành và bảo trìnhư sau:
Khả năng xảy ra lỗi cao hơn
Càng nhiều hệ thống được thêm vào môi trường điện toán, càng có nhiều cơ hộixảy ra lỗi Nếu một hệ thống không được thiết kế cẩn thận và một nút gặp sự cố,toàn bộ hệ thống có thể ngừng hoạt động Mặc dù các hệ thống phân tán đượcthiết kế để có khả năng kháng lỗi, tuy nhiên khả năng đó không tự động xảy ra
Thách thức về quy trình đồng bộ hóa
Các hệ thống phân tán hoạt động mà không có đồng hồ toàn cục, đòi hỏi phảilập trình cẩn thận để đảm bảo rằng các quy trình được đồng bộ hóa đúng cáchnhằm tránh sự chậm trễ dẫn đến lỗi và hỏng dữ liệu
Khả năng mở rộng hạn chế
Việc tăng gấp đôi số lượng nút trong hệ thống phân tán không đồng nghĩa vớiviệc tăng gấp đôi hiệu suất Để kiến trúc một hệ thống phân tán hiệu quả vớimục đích tối đa hóa khả năng mở rộng là một công việc phức tạp cần tính đếncân bằng tải, quản lý băng thông và các vấn đề khác
Bảo mật phức tạp hơn
Việc quản lý một số lượng lớn các nút trong một môi trường không đồng nhấthoặc phân tán sẽ tạo ra nhiều thách thức về bảo mật Một liên kết yếu trong hệthống mạng lớn có thể khiến toàn bộ hệ thống bị tấn công
Trang 32Tương tự như các hệ thống khác, hệ thống phân tán dễ bị tấn công, tuy nhiên,đặc điểm phân tán lại tạo ra một khu vực tấn công lớn hơn nhiều khiến các tổchức phải đối mặt với các mối đe dọa.
Sự cố mạng
Các hệ thống phân tán chịu ảnh hưởng của các mạng công cộng để truyền vànhận dữ liệu Nếu một phân đoạn của Internet không khả dụng hoặc quá tải, hiệusuất hệ thống phân tán sẽ bị giảm
Các vấn đề về quản trị và kiểm soát
Các hệ thống phân tán thiếu khả năng quản lý của các hệ thống nguyên khối, và
hệ thống dựa trên một máy chủ, gây ra các vấn đề về kiểm toán và tuân thủ xungquanh các luật bảo mật toàn cầu như GDPR Môi trường phân tán trên toàn cầuđặt ra các rào cản đối với việc cung cấp các mức độ đảm bảo nhất định và làmgiảm khả năng hiển thị của dữ liệu
Kiểm soát chi phí
Khả năng mở rộng của hệ thống phân tán cho phép quản trị viên dễ dàng bổsung thêm sức mạnh tính toán khi cần thiết, tuy nhiên, điều này dẫn đến việctăng chi phí Định giá cho các hệ thống điện toán phân tán dựa trên đám mâyphụ thuộc vào nhu cầu sử dụng (chẳng hạn như số lượng tài nguyên bộ nhớ vàcông suất CPU tiêu thụ theo thời gian) Nếu nhu cầu đột ngột tăng đột biến, các
tổ chức có thể phải đối mặt với một mức chi phí khổng lồ
1.5 Sơ lược về Java Remote Method Interface
1.5.1 Tổng quan về Java
Java là một ngôn ngữ lập trình phổ biến và mạnh mẽ được sử dụng rộng rãitrong lĩnh vực lập trình mạng Được phát triển bởi Sun Microsystems (sau nàyđược mua lại bởi Oracle Corporation), Java được thiết kế để có tính đa nền tảng,đảm bảo tính di động và bảo mật cao Điều này cho phép các ứng dụng Javachạy trên nhiều hệ điều hành và thiết bị khác nhau mà không cần phải viết lại
mã nguồn
Dưới đây là một số khía cạnh quan trọng của Java trong lập trình mạng:Socket Programming: Java cung cấp các lớp và giao diện liên quan đến socket,giúp phát triển ứng dụng mạng theo mô hình client-server Các lớp như Socket
và ServerSocket cho phép viết mã để thiết lập kết nối, truyền và nhận dữ liệuthông qua giao thức TCP/IP
Java Network API: Java cung cấp một API (Application Programming Interface)mạng mạnh mẽ, gọi là Java Network API, giúp xây dựng các ứng dụng mạngphức tạp API này cung cấp các lớp và giao diện cho các giao thức mạng nhưHTTP, FTP, SMTP, POP3, và nhiều giao thức khác
RMI (Remote Method Invocation): RMI là một cơ chế trong Java cho phép gọicác phương thức từ xa, cho phép giao tiếp giữa các ứng dụng chạy trên các máy
20
Trang 33tính khác nhau thông qua mạng RMI sử dụng cơ chế serialization để truyền cácđối tượng giữa các ứng dụng.
Java NIO (New I/O): Java NIO là một phần mở rộng của Java I/O API, cung cấpmột cách tiếp cận mới cho lập trình mạng hiệu năng cao NIO sử dụng non-blocking I/O (IO không chặn) và Buffer (bộ đệm) để xử lý đa luồng và xử lýđồng thời nhiều kết nối mạng mà không cần tạo một luồng mới cho mỗi kết nối.Java Sockets và URL Connections: Java cung cấp các lớp như Socket,ServerSocket, DatagramSocket và URL để xây dựng các ứng dụng mạng Cáclớp này cho phép gửi và nhận dữ liệu qua giao thức TCP/IP hoặc UDP
Các thư viện và framework mạng: Java có nhiều thư viện và framework mạngphổ biến như Apache HttpClient, Netty, Spring Framework, và Java EE(Enterprise Edition) để hỗ trợ phát triển ứng dụng mạng phức tạp Các thư viện
và framework này cung cấp các công cụ và tiện ích để xử lý mạng, giao tiếp vàxây dựng các ứng dụng phân tán
Java là một ngôn ngữ lập trình mạnh mẽ và linh hoạt cho việc phát triển ứngdụng mạng Với sự hỗ trợ của các thư viện và framework mạng, Java đáng đượcxem xét khi xây dựng các ứng dụng mạng từ đơn giản đến phức tạp
1.5.2 Java RMI là gì? [6]
RMI (Remote Method Invocation) làm một API cung cấp kỹ thuật tạo ứng dụngphân tán trong Java RMI cho phép một đối tượng gọi các phương thức trên mộtđối tượng khác đang chạy trên một máy ảo Java khác (JVM)
RMI chung cấp giao tiếp từ xa giữa các ứng dụng sử dụng hai đối tượng stub vàskeleton
Stub: stub là một đối tượng, hoạt động như một cổng ở phía máy khách Tất cảcác yêu cầu gửi đi đều được chuyển qua nó Nó cư trú tại phía Client và đại diệncho đối tượng remote Khi người gọi gọi phương thức trên đối tượng stub, nó sẽthực hiện các công việc sau:
Khởi tạo kết nối với máy ảo từ xa (JVM)
Ghi và truyền các tham số tới máy ảo từ xa (JVM)
Đợi kết quả trả về
Đọc giá trị trả về hoặc các ngoại lệ (exception)
Cuối cùng, trả về giá trị cho người gọi
Skeleton: là một đối tượng, hoạt động như một cổng cho đối tượng phía máychủ Tất cả các yêu cầu đến được chuyển qua nó Khi skeleton nhận được yêucầu tới, nó sẽ thực hiện các công việc sau:
Đọc các tham số cho phương thức remote
Goi phương thức trên đối tượng remote thực tế
Viết và truyền kết quả tới người gọi
Để viết một ứng dụng với Java RMI, chúng ta cần phải theo các bước sau:
Định nghĩa một lớp giao diện (Remote Interface)
Triển khai lớp thực thi của lớp giao diện (remote object)
Viết code cho chương trình chạy ở Server
21
Trang 34 Viết code cho chương trình chạy ở Client
Biên dịch ứng dụng
Chạy ứng dụng
Hình 12 Cách xử lý và giao tiếp diễn ra trong RMI
1.6 Sơ lược về hệ quản trị cơ sở dữ liệu MySQL Server
1.6.1 Tổng quan về MySQL Server
MySQL Server là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến
và mạnh mẽ Nó được phát triển bởi Oracle Corporation và cung cấp các tínhnăng quản lý cơ sở dữ liệu như lưu trữ, truy vấn và xử lý dữ liệu
1.6.2 Tìm hiểu MySQL Replication [7]
1.6.2.1 Giới thiệu Mysql Replication
Để mở rộng một hệ thống cũng như để đảm bảo một cơ sở dữ liệu toàn vẹn,không bị mất mát trước những sự cố ta có hai phương pháp là Scale up và Scaleout, trong đó:
Scale up là với một máy chủ ta tìm cách để nó có thể đáp ứng nhiều hơn sốlượng kết nối, truy vấn Ví dụ:
Tăng phần cứng lên cho máy chủ
Optimize các phần mềm, ứng dụng giúp tăng tốc độ truy vấn lấy, nhập dữliệu
Scale out là giải pháp tăng số lượng server hoặc dùng các giải pháp balancer để phân phối các kết nối, truy vấn ra nhiều server
load-22
Trang 35Mysql Replication là một giải pháp scale out, có thể dùng trong các trường hợpsau:
Trường hợp các ứng dụng mà có số truy vấn đọc dữ liệu nhiều hơn ghi( ví dụ như các trang báo, trang tin tức )
Trường hợp cần backup real-time
MySQL Replication là một tính năng trong MySQL Server cho phép sao chép vàđồng bộ dữ liệu từ một cơ sở dữ liệu (master) sang một hoặc nhiều cơ sở dữ liệukhác (slaves) Điều này tạo ra một hệ thống sao chép dữ liệu, nơi các bản saocủa cơ sở dữ liệu có thể được sử dụng cho mục đích backup, đọc dữ liệu, phântải tải và khôi phục dữ liệu
Dưới đây là một tổng quan về MySQL Replication:
Master-Slave Replication: MySQL Replication hoạt động theo môhình master-slave, trong đó có một cơ sở dữ liệu master chịu tráchnhiệm ghi (write) các thay đổi vào log nhị phân (binary log) Các
cơ sở dữ liệu slave sau đó đọc (read) log này và áp dụng các thayđổi lên cơ sở dữ liệu của chúng Điều này đảm bảo rằng dữ liệuđược sao chép từ master sang slaves một cách đồng bộ
Asynchronous Replication: MySQL Replication hoạt động theo môhình bất đồng bộ (asynchronous), trong đó các thay đổi trên masterđược ghi vào log và sau đó được truyền đến slaves Điều này cónghĩa là dữ liệu trên slaves có thể có một khoảng thời gian chênhlệch so với master Tuy nhiên, điều này cung cấp khả năng chịu tảitốt và giảm ảnh hưởng đến hiệu suất của master
Đồng bộ hóa dữ liệu: Khi các slaves áp dụng các thay đổi từ master,
dữ liệu trên slaves sẽ được đồng bộ hóa với dữ liệu trên master.Điều này đảm bảo rằng các slaves sẽ có bản sao chính xác của dữliệu có trên master và có thể được sử dụng cho mục đích backuphoặc đọc dữ liệu
Load Balancing và Scalability: MySQL Replication cung cấp khảnăng phân tải tải (load balancing) bằng cách chia sẻ công việc đọc
dữ liệu giữa các slaves Bằng cách định cấu hình ứng dụng để truyvấn dữ liệu từ slaves, bạn có thể phân phối tải trên nhiều máy chủ
và tăng khả năng mở rộng của hệ thống
Backup: Với MySQL Replication, bạn có thể sử dụng một slave đểthực hiện sao lưu (backup) dữ liệu Bằng cách dừng slave và saolưu dữ liệu từ slave, bạn có thể đảm bảo rằng sao lưu không ảnhhưởng đến hoạt động của master và các slaves khác
MySQL Replication là một tính năng mạnh mẽ trong MySQL Server cho phépsao chép và đồng bộ dữ liệu một cách linh hoạt và tin cậy Nó cung cấp khả năngsao lưu, đọc dữ liệu và phân tải tải, làm cho nó trở thành một công cụ quan trọngtrong việc xây dựng hệ thống cơ sở dữ liệu có khả năng mở rộng và bảo mật
1.6.2.2 Hoạt động của Mysql Replication
23
Trang 36Có 2 giải pháp cho việc replication:
Master - Slave: Là dạng replication trong đó data được ghi trên Masterserver và đồng bộ sang Slave server
Master - Master: Là dạng replication trong đó dữ liệu có thể ghi trên cảcác Mysql server chạy replication
Master - Slave:
Hình 13 Master - Slave
Ở mô hình trên ta thấy có 1 Master database phục vụ cho việc ghi dữ liệu, còn
có thể có một hoặc nhiều Slave database Các ứng dụng sẽ được kết nối cả vàoMaster lẫn Slave, tuy nhiên với các tác vụ ghi dữ liệu thì sẽ được trỏ đến Mastercòn với tác vụ đọc dữ liệu thì trỏ đến Slave Khi có một thay đổi trên Masterserver, thay đổi đó sẽ được ghi lại vào binlog và Slave server sẽ đọc binlog vàghi lại các thông tin thay đổi vào relay log, sau đó sẽ dựa vào relay log để cậpnhật dữ liệu
Master – Master:
24
Trang 37Ở mô hình trên, toàn bộ dữ liệu được lưu trên 1 nhóm server và được cập nhậtbởi bất kỳ server Master nào của nhóm Tất cả Master server có nhiệm vụ phảnhồi lại các truy vấn dữ liệu của người dùng và đồng bộ, cập nhật những thay đổi
về dữ liệu từ các Master server khác trong nhóm
25
Trang 38CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG2.1 Tổng quan về bài toán “Quản lý thư viện”
2.1.1 Tình hình thực tế
Hiện nay, công nghệ vẫn chưa được áp dụng nhiều trong việc quản lý thư viện.Các thư viện thường vẫn sử dụng các phương pháp truyền thống như việc ghichép bằng tay, sử dụng hệ thống thẻ thư viện, hoặc sử dụng các hệ thống máytính đơn giản để quản lý Nhược điểm của các phương pháp này là tốn thời gian,
dễ xảy ra sai sót và khó khăn trong việc tìm kiếm thông tin
2.1.2 Giải pháp
Một giải pháp hiệu quả là tạo ra một ứng dụng quản lý thư viện, sử dụng côngnghệ thông tin để giúp quản lý thư viện nhanh chóng, đáng tin cậy và hiệu quảhơn Ứng dụng này sẽ cung cấp các tính năng quản lý sách, quản lý khách hàng,quản lý thông báo, quản lý mượn/trả sách, và cung cấp thống kê sách quá hạn vàphạt nếu có
2.2 Phân tích và xác định yêu cầu hệ thống
2.2.2 Xác định tác nhân và thu thập yêu cầu
2.2.2.1 Tác nhân
Tác nhân chính trong hệ thống là thủ thư hoặc người quản lý thư viện Tác nhânnày sẽ có quyền truy cập và quản lý các thông tin về sách, khách hàng, thôngbáo, mượn/trả sách, và thống kê
Và tác nhân thứ 2 chính là những sinh viên hoặc người mượn sách Tác nhânnày sẽ có quyền đăng nhập vào hệ thống dưới sự quản lí của tác nhân là thủ thư
có quyền quản lí thông tin cơ bản của bản thân và quyền mượn, trả sách, nhậnthông báo của thủ thư
2.2.2.2 Yêu cầu chức năng
Hệ thống sẽ cung cấp các chức năng sau:
Quản lý sách: thêm, sửa, xóa sách, cập nhật thông tin sách, tìm kiếm sách
26
Trang 39 Quản lý khách hàng: thêm, sửa, xóa khách hàng, cập nhật thông tin kháchhàng, tìm kiếm khách hàng.
Quản lý thông báo: gửi thông báo đến khách hàng về các sự kiện, tin tứcliên quan đến thư viện
Quản lý mượn/trả sách: ghi nhận việc mượn và trả sách, kiểm tra sách quáhạn, tính phạt nếu có
Thống kê: cung cấp thống kê về sách quá hạn, sách mượn nhiều nhất,sách được yêu thích, v.v
2.2.2.3 Yêu cầu phi chức năng
Các yêu cầu phi chức năng của hệ thống bao gồm:
Giao diện đẹp, thân thiện người dùng và dễ sử dụng
Hiệu năng cao: hệ thống phải đáp ứng được số lượng lớn người dùng và
xử lý các hoạt động quản lý một cách nhanh chóng
Độ tin cậy: hệ thống phải đảm bảo tính chính xác và đáng tin cậy của dữliệu, tránh mất mát thông tin quan trọng
Bảo mật: hệ thống phải bảo vệ thông tin cá nhân của khách hàng và hạnchế quyền truy cập vào các chức năng quản lý chỉ cho những người có đủquyền
Dễ dàng bảo trì và mở rộng: hệ thống cần có cấu trúc modular, cho phép
dễ dàng bảo trì, nâng cấp và mở rộng trong tương lai
2.2.3 Biểu đồ use-case tổng quát
Hình 15 Biểu đồ use-case tổng quát
2.2.4 Đặc tả use-case
2.2.4.1 Use-case Quản lí sách
27
Trang 40Use Case Name: Quản lí sách
Use Case ID: UC01
Use Case Description: Use Case này mô tả quá trình quản lí sách trong hệ thống.Actor: Quản lí
Priority: Cao
Trigger: Quản lí muốn thực hiện các hoạt động quản lí sách trong hệ thống.Pre-Condition: Quản lí đã đăng nhập vào hệ thống và có quyền truy cập vàochức năng quản lí sách
Post-Condition: Các hoạt động quản lí sách được thực hiện thành công và thôngtin sách được cập nhật trong hệ thống
Basic Flow:
Quản lí chọn chức năng quản lí sách trong hệ thống
Hệ thống hiển thị danh sách sách hiện có trong cơ sở dữ liệu
Quản lí có thể tìm kiếm sách theo tiêu đề, tác giả, danh mục, hoặc nhàxuất bản
Quản lí có thể thêm sách mới vào cơ sở dữ liệu bằng cách cung cấp thôngtin như tiêu đề, tác giả, danh mục, nhà xuất bản, và năm xuất bản
Quản lí có thể chỉnh sửa thông tin của một quyển sách trong cơ sở dữ liệu
Quản lí có thể xóa sách khỏi cơ sở dữ liệu
Quản lí có thể xem chi tiết thông tin về một quyển sách, bao gồm cácthông tin như tiêu đề, tác giả, danh mục, nhà xuất bản, và số lượng sáchcòn lại
Quản lí có thể xem danh sách các quyển sách đang được mượn và thôngtin về người mượn
Quản lí có thể tạo thông báo cho người mượn sách
Trong bước 6, nếu không có quyền xóa sách hoặc sách không tồn tại trong
cơ sở dữ liệu, hệ thống hiển thị thông báo lỗi
28