1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

93 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 93
Dung lượng 19,07 MB

Nội dung

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 1

TRƯỜ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 2

TRƯỜ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 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 4

LỜ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 5

MỤ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 6

2.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 7

3.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 8

DANH MỤC CÁC TỪ VIẾT TẮT

VIẾT TẮT NỘI DUNG

RMI Remote Method Invocation

Trang 9

DANH 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 10

Hì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 11

MỞ ĐẦ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 12

thà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 13

CHƯƠ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 14

sau đâ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 15

cá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

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 17

Như 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 18

Cá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 19

Chứ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 21

Khi 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 22

Tươ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 24

ngay 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 25

IP 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 26

mô 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 28

IP 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

 E-mail

 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 29

1.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 30

Nó 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 31

chú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 32

Tươ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 33

tí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 35

Mysql 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 36

Có 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 38

CHƯƠ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 40

Use 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

Ngày đăng: 20/12/2024, 16:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN