Tải bản đầy đủ (.pdf) (64 trang)

Kết hợp mô hình c s và mô hình p2p trong phát triển các ứng dụng phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 64 trang )

LỜI CAM ĐOAN

Tôi xin cam đoan nội dung luận văn này do tôi thực hiện dưới sự hướng dẫn của
Thầy giáo PGS.TS Hà Quốc Trung. Để hoàn thành luận văn này tôi chỉ áp dụng trên
những tài liệu tham khảo không sao chép toàn văn luận văn nào, những mô phỏng giải
thích cũng như phần xây dựng giải pháp ứng dụng trong luận văn hoàn toàn trung thực
và là công trình nghiên cứu của riêng tôi.

Học viên thực hiện

Nguyễn Thị Thu Hằng


LỜI CẢM ƠN
Trước hết, em xin được chân thành gửi lời cảm ơn tới các thầy cô giáo trong
trường Đại học Bách khoa Hà Nội nói chung và các thầy cô giáo trong Viện Công
nghệ thông tin và Truyền thông nói riêng đã tận tình giảng dạy, truyền đạt cho em
những kiến thức và kinh nghiệm quý báu trong suốt quá trình học tập.
Em cũng xin được gửi lời cảm ơn sâu sắc đến thầy giáo PGS.TS. Hà Quốc Trung đã
hết lòng giúp đỡ, hướng dẫn và chỉ bảo tận tình trong quá trình em thực hiện luận văn
tốt nghiệp.
Xin được gửi lời cảm ơn chân thành tới Cơ quan Huyện ủy Tiên Lữ đã tạo điều
kiện thuận lợi nhất cho em về thời gian và công việc trong quá trình thực hiện luận
văn.
Cuối cùng em xin cảm ơn gia đình, bạn bè đã quan tâm, động viên, đóng góp ý
kiến và giúp đỡ em trong suốt quá trình học tập, nghiên cứu để hoàn thành luận văn tốt
nghiệp này.
Hà Nội, ngày 20 tháng 4 năm 2015
Học viên thực hiện

Nguyễn Thị Thu Hằng



ii


MỤC LỤC
MỞ ĐẦU ................................................................................................................. viii
Lý do chọn đề tài............................................................................................ viii
Mục tiêu nghiên cứu ........................................................................................ ix
Phạm vi nghiên cứu ......................................................................................... ix
Tóm tắt kết quả ................................................................................................ ix
Cấu trúc luận văn ............................................................................................ ix
CHƯƠNG 1. TỔNG QUAN VỀ MÔ HÌNH C-S, MÔ HÌNH P2P VÀ MỘT SỐ
GIẢI PHÁP KẾT HỢP GIỮA HAI MÔ HÌNH C-S VÀ P2P .............................. 1
1.1. Tổng quan về mô hình C-S ............................................................................... 1
1.1.1. Khái niệm về mô hình C-S ....................................................................... 1
1.1.2. Cấu trúc vật lý .......................................................................................... 2
1.1.3. Nguyên tắc hoạt động ............................................................................... 3
1.1.4. Phân loại mô hình C-S .............................................................................. 5
1.2. Tổng quan về mô hình P2P ............................................................................... 7
1.2.1. Khái niệm về mô hình P2P ....................................................................... 7
1.2.2. Cấu trúc vật lý .......................................................................................... 8
1.2.3. Nguyên tắc hoạt động của mạng P2P ....................................................... 9
1.2.4. Phân loại mạng ngang hàng ...................................................................... 9
1.2.5. Các lĩnh vực ứng dụng của P2P ............................................................. 10
1.2.6. Một số ứng dụng sử dụng mô hình P2P ................................................. 12
1.2.7. So sánh mô hình C-S và mô hình P2P.................................................... 14
1.3. Một số giải pháp kết hợp giữa mô hình C-S và mô hình P2P ..................... 17
1.3.1. Mô hình Local Proxy .............................................................................. 17
1.3.2. Mô hình Chia sẻ Cache (Shared Cache folder) ...................................... 18
CHƯƠNG 2. DỊCH VỤ CHIA SẺ TỆP THEO YÊU CẦU ................................ 22

2.1. Giới thiệu chung .............................................................................................. 22
2.2. Dịch vụ theo yêu cầu (ondemand) .................................................................. 23
2.2.1. Khái niệm về dịch vụ theo yêu cầu ........................................................ 23
iii


2.2.2. Chia sẻ tệp tin theo yêu cầu .................................................................... 23
2.3. Phân loại hệ thống chia sẻ tệp tin ................................................................... 24
2.3.1. Chia sẻ tệp theo mô hình C-S ................................................................. 24
2.3.2. Chia sẻ tệp theo mô hình P2P ................................................................. 25
2.4. Giao thức sử dụng trong hệ thống chia sẻ tệp tin theo yêu cầu áp dụng mô
hình Client- Server ................................................................................................. 26
2.4.1.Mô hình kiến trúc xử lý trong giao thức FTP .......................................... 26
2.42. Các tiến trình trong FTP .......................................................................... 27
2.4.3. Thiết lập kênh điều khiển và chứng thực người dùng trong FTP .......... 28
2.4.4. Quản lý kênh dữ liệu FTP ...................................................................... 30
2.4.5. Các phương thức truyền dữ liệu trong FTP ............................................ 33
2.4.6. Các mã thông điệp đáp trả trong mô hình FTP ...................................... 34
CHƯƠNG 3. DỰ KIẾN XÂY DỰNG ỨNG DỤNG CHIA SẺ TỆP.................. 36
THEO MÔ HÌNH SHARED CACHE FOLDER ................................................ 36
3.1. Các chức năng của ứng dụng chia sẻ tệp theo mô hình C-S ........................ 36
3.2. Phân tích hệ thống chia sẻ tệp theo mô hình Shared Cache Folder ........... 37
3.2.1. Lựa chọn giao thức sử dụng trong hệ thống P2P ................................... 37
3.2.2. Giải pháp xây dựng ứng dụng chia sẻ tệp tin dựa trên giao thức Chord 42
3.3. Thiết kế các module trong ứng dụng ............................................................. 44
3.3.1. Module client .......................................................................................... 44
3.3.2. Module Cache ......................................................................................... 44
3.3.3. Module P2P ............................................................................................ 44
3.3.4. Module Server ........................................................................................ 44
3.4. Thiết kế chi tiết một số chức năng của ứng dụng chia sẻ tệp tin theo mô

hình Shared Cache Folder ..................................................................................... 45
3.4.1. Chức năng đăng ký tài khoản ................................................................. 45
3.4.2. Chức năng đăng nhập ............................................................................. 46
3.4.3. Chức năng tìm kiếm tệp tin .................................................................... 47
3.4.4. Chức năng quản lý tệp cá nhân............................................................... 49
iv


3.4.5. Chức năng đưa tệp lên hệ thống (Upload file) ....................................... 49
3.4.6. Tải tệp từ hệ thống (Download file) ....................................................... 50
3.5. Dự kiến thử nghiệm và đánh giá .................................................................... 51
KẾT LUẬN ............................................................................................................. 52
TÀI LIỆU THAM KHẢO...................................................................................... 54

v


DANH MỤC HÌNH
Hình 1.1. Mô hình Client- Server ............................................................................... 2
Hình 1.2. Giao tiếp giữa client và server .................................................................... 4
Hình 1.3. Mô hình C-S hai tầng ................................................................................. 5
Hình 1.4. Mô hình C-S 3 tầng .................................................................................... 6
Hình 1.5. Mô hình C-S n tầng .................................................................................... 7
Hình 1.6. Mô hình peer to peer................................................................................... 8
Hình 1.7. Nguyên tắc hoạt động của mô hình P2P..................................................... 9
Hình 1.8. Kiến trúc Napster ...................................................................................... 12
Hình 1.9. Kiến trúc của Gnutella .............................................................................. 13
Hình 1.10. So sánh mô hình Client- Server và mô mình P2P .................................. 14
Hình 1.11. Mô hình Local Proxy .............................................................................. 17
Hình 1.12. Truy cập tệp tin trong mô hình Local Proxy .......................................... 18

Hình 1.13. Cơ chế hoạt động của bộ nhớ Cache ...................................................... 19
Hình 1.14. Mô hình Chia sẻ Cache .......................................................................... 19
Hình 1.15. Truy cập tệp tin trong mô hình Shared Cache ........................................ 21
Hình 2.1. Hoạt động của hệ thống chia sẻ tệp tin ..................................................... 25
Hình 2.2. Mô hình hoạt động của giao thức FTP ..................................................... 27
Hình 2.3. Kết nối kênh dữ liệu dạng chủ động ......................................................... 31
Bảng 3.1. Mô tả chức năng của hệ thống chia sẻ tệp ............................................... 37
Hình 3.2. Mô hình vòng Chord với khóa có chiều dài 6 bit .................................... 39
Hình 3.3. Quá trình tìm kiếm đơn giản trên Chord .................................................. 40
Hình 3.4. Bảng finger của nút 8 ............................................................................... 41
Hình 3.5. Mô hình shared cache folder .................................................................... 43
Hình 3.6. Đăng ký tài khoản ..................................................................................... 45
Hình 3.7. Chức năng đăng nhập ............................................................................... 47
Hình 3.8. Chức năng tìm kiếm tệp ........................................................................... 48
Hình 3.9. Chức năng quản lý tệp cá nhân................................................................. 49
Hình 3.10. Chức năng Upload file lên hệ thống ....................................................... 49
Hình 3.11. Chức năng tải tệp từ hệ thống................................................................. 50

vi


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

Central Processor Unit

Bộ xử lý trung tâm

C-S


Client- Server

Mô hình khách chủ

DOS

Disk Operating System

Hệ điều hành đĩa

DTP

Data Tranfer Process

Tiến trình truyền dữ liệu

FTP

File Trafer Protocol

Giao thức truyền tập tin

HTTP

HyperText Transfer Protocol

Giao thức truyền tải siêu văn bản

IPC


Inter-Process Communication

LAN

Local Area Network

Mạng nội bộ

NOS

Network Operating System

Hệ điều hành mạng

P2P

Peer to Peer

Mô hình mạng ngang hàng

PI

Protocol Interpreter

Thông dịch giao thức

RAM

Random Access Memory


Bộ nhớ truy cập ngẫu nhiên

TCP

Transmission Control Protocol

Giao thức điều khiển truyền vận

TCP/IP

Transmission

Control

Tiêu chuẩn giao tiếp giữa các ứng
dụng và máy tính trên mạng

Protocol / Bộ giao thức truyền thông của

Internet Protocol

USB

Universal Serial Bus

WAN

Wide Area Networks

Internet.

Chuẩn kết nối tuần tự đa dụng
trong máy tính
Mạng diện rộng

vii


MỞ ĐẦU
 Lý do chọn đề tài
Ngày nay, với sự bùng nổ của công nghệ thông tin và sự phổ biến các thiết bị
điện tử, chúng ta có thể dễ dàng tìm kiếm và chia sẻ thông tin với mọi người. Để thực
hiện được nhiệm vụ đó, các máy tính cần được kết nối mạng với nhau. Thực tế hiện
nay, có hai mô hình tiêu biểu trong mạng máy tính là mô hình Cient Server và mô hình
Peer to Peer.
Mô hình Client Server là mô hình nổi tiếng trong mạng máy tính, được áp dụng
rộng rãi và là mô hình của hầu hết các ứng dụng phân tán. Trong mô hình này, mọi xử
lý đều được thực hiện ở phía server nên dễ xảy ra vấn đề nút cổ chai khi có quá nhiều
yêu cầu cần được server xử lý, tuy nhiên ưu điểm của mô hình này là dễ thiết kế giao
thức.
Với mô hình peer to peer thì khác, mọi peer trong mạng đều có vai trò như
nhau, vừa là client, vừa là server. So với các mô hình khác, mạng p2p có nhiều ưu
điểm như khả năng mở rộng, không tồn tại điểm chết, khả năng của hệ thống tỉ lệ
thuận với số lượng máy tham gia vào mạng…Nhiều ứng dụng đã được xây dựng trên
mạng ngang hàng như FreeNet, BitTorent, Emula…Tuy nhiên, nhược điểm của mô
hình này là tính bảo mật và tính tin cậy không cao.
Cùng với sự phát triển ngày càng tăng của các ứng dụng mạng và số lượng các
thiết bị tham gia vào mạng đòi hỏi việc tìm kiếm thông tin cần thiết phải được thực
hiện một cách nhanh chóng, chính xác, an toàn và độ tin cậy cao. Yêu cầu này đòi hỏi
mô hình ngày càng được mở rộng và hiệu năng hoạt động của hệ thống ngày càng
tăng. Để xây dựng được một ứng dụng như mong muốn, chúng ta phải tận dụng được

những ưu điểm của các mô hình, đồng thời hạn chế được những hạn chế của chúng.
Trên cơ sở những yêu cầu đó, việc nghiên cứu các phương pháp để kết hợp những ưu
điểm của các mô hình truyền thống vào mô hình mới là việc làm rất cần thiết.
Từ những lý do trên, em đã chọn đề tài: “Kết hợp mô hình C-S và mô hình P2P
trong phát triển các ứng dụng phân tán” với mục đích nghiên cứu về cách thức kết
hợp mô hình C-S mà mô hình P2P để làm tăng hiệu năng hoạt động của các ứng dụng
phân tán.
viii


 Mục tiêu nghiên cứu
- Tìm hiểu các khái niệm, thành phần, kiến trúc và cách thức hoạt động của mô
hình CS và mô hình P2P và một số giải pháp kết hợp giữa C-S và P2P.
- Tìm hiểu về cache và chia sẻ bộ nhớ cache trong các mô hình.
- Tìm hiểu về dạng dịch vụ theo yêu cầu ondemand, cụ thể hơn là bài toán chia
sẻ tệp theo yêu cầu dựa trên mô hình shared cache folder.
- Dự kiến cài đặt ứng dụng kết hợp mô hình C-S và P2P trong phát triển ứng
dụng phân tán: dựa trên mô hình shared cache folder áp dụng cho tệp tin văn bản với
dạng dịch vụ theo yêu cầu.
 Phạm vi nghiên cứu
Tập trung nghiên cứu các phương pháp kết hợp mô hình C-S và P2P trong ứng
dụng phân tán chia sẻ tệp văn bản theo dạng dịch vụ theo yêu cầu. Cụ thể là phân tích
mô hình Shared Cache Folder trong bài toán chia sẻ tệp tin.
 Tóm tắt kết quả
- Tìm hiểu được khái niệm, thành phần, kiến trúc và cách thức hoạt động của
mô hình CS và mô hình P2P.
- Tìm hiểu được khái niệm cơ bản về cache, shared cache.
- Tìm hiểu các khái niệm cơ bản liên quan về dạng dịch vụ theo yêu cầu.
- Trình bày được sự kết hợp mô hình CS và mô hình P2P trong phát triển ứng
dụng phân tán, cụ thể là mô hình chia sẻ cache.

- Dự kiến cài đặt dựa trên phân tích.
 Cấu trúc luận văn
Nội dung của luận văn dự kiến sẽ được chia thành 3 chương với những
nội dung tổng quát như sau:
Chương 1: Tổng quan về mô hình C-S, mô hình P2P và một số giải pháp
kết hợp giữa mô hình C-S và P2P. Trong chương này trình bày các khái niệm
cơ bản, nguyên tắc hoạt động và kiến trúc của 2 mô hình CS và P2P. Đồng thời,
trình bày về một số mô hình kết hợp giữa C-S và P2P như: mô hình lai, mô hình
Local Proxy và mô hình Shared Cache Folder.

ix


Chương 2. Dịch vụ chia sẻ tệp tin theo yêu cầu. Trong chương này, trình
bày khái niệm cơ bản về tệp tin, chia sẻ tệp tin, dịch vụ theo yêu cầu và giao
thức chia sẻ tệp tin trong mô hình C-S.
Chương 3. Dự kiến xây dựng ứng dụng chia sẻ tệp tin theo mô hình
Shared Cache Folder. Trong chương này trình bày việc phân tích thiết kế
module và một số chức năng cơ bản của ứng dụng chia sẻ tệp dựa trên mô hình
Shared Cache Folder.
Cuối cùng là kết luận và hướng phát triển của luận văn.

x


CHƯƠNG 1. TỔNG QUAN VỀ MÔ HÌNH C-S, MÔ HÌNH P2P
VÀ MỘT SỐ GIẢI PHÁP KẾT HỢP GIỮA HAI MÔ HÌNH C-S VÀ P2P
1.1. Tổng quan về mô hình C-S
1.1.1. Khái niệm về mô hình C-S
Mô hình C-S là một mô hình nổi tiếng trong mạng máy tính, được áp dụng rất

rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình này là client
(đóng vài trò là người yêu cầu dịch vụ) gửi một yêu cầu (request) đến server (đóng vai
trò là đối tượng phục vụ các yêu cầu), server sẽ xử lý và trả kết quả về cho client.
Trên thực tế thì một server có thể được nối tới nhiều server khác nhằm làm
việc hiệu quả và nhanh hơn. Khi nhận được yêu cầu từ client, server này có thể gửi
tiếp yêu cầu vừa nhận được cho server khác ví dụ như database server vì bản thân nó
không thể xử lý được yêu cầu này. Máy server có thể thi hành các nhiệm vụ đơn giản
hoặc phức tạp. Ví dụ như một server trả lời thời gian hiện tại trong ngày, khi một máy
client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu
chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin
mà client yêu cầu.
Thông thường chương trình server và client được thi hành trên hai máy khác
nhau. Cho dù lúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client
nhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa client và server lại
bắt đầu ở phía client, khi client gửi tín hiệu yêu cầu tới server. Các chương trình server
thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng). Sự thuận lợi của
phương pháp này là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ
giao thức truyền thông chuẩn, cụ thể ở đây là giao thức TCP/IP. Với các giao thức
chuẩn giúp cho các nhà sản xuất tích hợp nhiều sản phẩm khác nhau của họ lên mạng
mà không gặp phải khó khăn gì. Với các chuẩn này thì các chương trình server cho
một dịch vụ nào đó có thể thi hành trên một hệ thống chia sẻ thời gian (timesharing
system) với nhiều chương trình và dịch vụ khác hoặc nó có thể chạy trên một máy tính
cá nhân bình thường. Với mô hình trên chúng ta nhận thấy rằng mô hình client/server
chỉ mang đặc điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực
1


tế yêu cầu cho một máy server cao hơn nhiều so với máy client. Lý do bởi vì máy
server phải quản lý rất nhiều các yêu cầu từ nhiều clients khác nhau trên mạng.


Hình 1.1. Mô hình Client- Server
Ví dụ về mô hình Client- Server: Dịch vụ Web là một dịch vụ cơ bản trên mạng
internet hoạt động theo mô hình client- server. Trình duyệt web trên các máy client sử
dụng giao thức TCP/IP để đưa ra các yêu cầu HTTP tới máy server. Trình duyệt có thể
đưa ra yêu cầu về một trang web cụ thể hay yêu cầu thông tin trong cơ sở dữ liệu. Máy
server sử dụng các phần mềm của nó để phân tích các yêu cầu từ các gói tin nhận
được, kiểm tra tính hợp lệ của các client và thực hiện phục vụ các yêu cầu đó. Cụ thể
là gửi lại trả lại client một trang web cụ thể hay những thông tin trên cơ sở dữ liệu
dưới dạng một trang web. Server là nơi lưu trữ nội dung các thông tin, các website,
phần mềm trên server giúp server xác định được trang cần yêu cầu và gửi tới Client.
Cơ sở dữ liệu và các ứng dụng tương tự khác trên server được khai thác và kết nối qua
các chương trình như Common Gateway Interface, khi các máy server nhận yêu cầu về
tra cứu trong Cơ sở dữ liệu, nó chuyển yêu cầu tới server có chứa dữ liệu đó để xử lý.
1.1.2. Cấu trúc vật lý
Yếu tố cơ bản trong mô hình khách chủ là trong hệ thống phải có các máy tính
kết nối với máy server sử dụng một giao thức bất kỳ nhằm mục đích sử dụng các tài
nguyên, dữ liệu của server.
2


a. Server (Server)
Server: là một hoặc nhiều bộ vi xử lý, bao gồm một tập các tiến trình mà mỗi
tiến trình đóng vai trò như là một trình quản lý tài nguyên cho một tập hợp các tài
nguyên cho trước. Server có vai trò thụ động và đáp ứng cho client bằng cách phục vụ
mỗi yêu cầu và trả lại kết quả cho client.
Trước những năm 1990, các máy tính lớn (main frame) được sử dụng làm
server, hiện nay các máy tính cá nhân vẫn được sử dụng như là một server. Vì cùng
một lúc sẽ có nhiều người truy xuất về server thông qua máy trạm do đó server phải có
bộ vi xử lý tốc độ cao (CPU), tài nguyên lớn (RAM, Hardisk) để hoạt động tốt. Trong
hệ thống mạng, có thể có nhiều server có chức năng độc lập nhau.

b. Máy trạm (Client)
Client: là máy trạm duy nhất tập hợp các tiến trình trong đó mỗi tiến trình thực
hiện một tác vụ nào đó cần truy xuất tới tài nguyên phần cứng hoặc phần mềm dùng
chung. Client có vai trò chủ động, kết nối đến server để gửi yêu cầu, chờ nhận kết quả
trả về và xử lý kết quả. Các client chỉ có thể giao tiếp với server mà không thể giao
tiếp trực tiếp với các client khác.
Các máy trạm truy xuất các tài nguyên đã được chia sẻ trên mạng như các dữ
liệu dùng chung trên server và in ấn các tài liệu trên máy in dùng chung.
c. Dây cáp mạng (Cable)
Hệ thống dây kim loại hoặc quang học nối kết vậy lý các máy tính, máy in lại
với nhau.
d. Dữ liệu chung (Shared data)
Các tập tin, thư mục mà người sử dụng có thể truy xuất trên server thông qua
các máy trạm và dây cáp mạng.
1.1.3. Nguyên tắc hoạt động
Mô hình truyền tin Client-Server hướng tới việc cung cấp dịch vụ. Quá trình
trao đổi dữ liệu bao gồm ba bước sau:
Bước 1: Truyền một yêu cầu (request) từ tiến trình client tới tiến trình server.
Bước 2: Server xử lý yêu cầu nó nhận được.
Bước 3: Truyền đáp ứng (reply) cho client.
3


Mô hình truyền tin này liên quan đến việc truyền hai thông điệp và một dạng
đồng bộ hóa cụ thể giữa client và server. Tiến trình server phải nhận thức được thông
điệp được yêu cầu ở bước một ngay khi nó đến và hành động phát ra yêu cầu trong
client phải được tạm dừng (bị phong tỏa) và buộc tiến trình client ở trạng thái chờ cho
tới khi nó nhận được đáp ứng do server gửi về ở bước ba.
Mô hình Client-Server thường được cài đặt dựa trên các thao tác cơ bản là gửi
(send) và nhận (receive) hay yêu cầu (request) và trả lời (reply)


Hình 1.2. Giao tiếp giữa client và server

Quá trình giao tiếp client và server có thể diễn ra theo một trong hai chế độ: bị
phong tỏa (blocked) và không bị phong tỏa (non-blocked).
Khi thiết kế các ứng dụng theo mô hình C-S, người ta chia các xử lý ra làm 2
nhánh: nhánh client và nhánh server.
a. Nhánh máy trạm (client side)
Các ứng dụng sẽ thực hiện các công việc đọc và hiển thị dữ liệu hiện có bên
trong cơ sở dữ liệu, tính toán dữ liệu đang hiển thị trên các màn hình ứng dụng, in dữ
4


liệu. Các ứng dụng này còn cho phép người dùng có thể thực hiện các thao tác xóa,
thêm, sửa dữ liệu hiện có bên trong cơ sở dữ liệu bên nhánh server.
Các ứng dụng khi xây dựng nên tránh việc đọc toàn bộ dữ liệu của bảng (Table)
khi truy xuất dữ liệu từ server mà chỉ nên lấy về đúng các thông tin cần thiết cho các
xử lý. Việc này làm giảm đi lượng thông tin lưu thông trên mạng.
Mỗi khi cần phục vụ, client sẽ tạo một cầu nối tới server và gửi yêu cầu tới nó.
Sau khi nhận được sự phục vụ nó sẽ ngắt kết nối và trở về trạng thái như một chương
trình bình thường.
b. Nhánh máy chủ (server side)
Các xử lý được thực hiện trực tiếp trên server. Để đảm bảo việc bảo mật
(security), những người dùng trên mạng phải được cấp phát quyền truy cập thì mới có
thể truy xuất được các dữ liệu dùng chung.
Việc cập nhật dữ liệu cho phép đồng thời cùng lúc giữa những người dùng hiện
hành trên mạng, ví dụ như server cho phép cùng lúc cả hai người dùng có thể cập nhật
thông tin của khách hàng trong bảng khách hàng.
Việc sao lưu dữ liệu (backup data) được tự động để đảm bảo dữ liệu không bị
mất trong các trường hợp xấu xảy ra.

1.1.4. Phân loại mô hình C-S
a. Mô hình hai tầng (two- tier model)

Hình 1.3. Mô hình C-S hai tầng
Chương trình ứng dụng: cung cấp một giao diện để thông qua đó người dùng có
thể thực hiện các thao tác trên dữ liệu mà không cần biết về cấu trúc lệnh.
Cơ sở dữ liệu phía server: Các cơ sở dữ liệu này thực hiện việc gửi dữ liệu tới
cho chương trình ứng dụng thông qua câu lệnh SQL và trả kết quả về cho chương trình
5


ứng dụng.
Số lượng công việc được chia sẻ giữa chương trình ứng dụng và cơ sở dữ liệu
phía server nên người dùng dễ sử dụng hơn.
b. Mô hình ba tầng (three- tier model)

Hình 1.4. Mô hình C-S 3 tầng
Theo kiến trúc ba tầng, ứng dụng được chia thành ba tầng tách biệt nhau về mặt
logic. Tầng đầu tiên là tầng trình diễn thường bao gồm các giao diện đồ họa. Tầng thứ
hai, còn được gọi là tầng trung gian hay tầng tác nghiệp. Tầng thứ ba chứa dữ liệu cần
cho ứng dụng. Tầng thứ ba về cơ bản là chương trình thực hiện các lời gọi hàm để tìm
kiếm dữ liệu cần thiết. Tầng trình diễn nhận dữ liệu và định dạng nó để hiển thị. Sự
tách biệt giữa chức năng xử lý với giao diện đã tạo nên sự linh hoạt cho việc thiết kế
ứng dụng. Nhiều giao diện người dùng được xây dựng và triển khai mà không làm
thay đổi logic ứng dụng.
c. Mô hình n tầng (n- tier model)
Mô hình này còn được gọi là mô hình n lớp. Trong đó, lớp client là một chương
trình rất nhỏ, chỉ chứa vừa đủ mã để thực hiện giao tiếp với người dùng. Mô hình này
bao gồm nhiều thành phần và mỗi thành phần có tác dụng riêng để trao đổi với lớp
client, lớp server thật.

Mô hình n-tầng được chia thành các tầng như sau:
- Tầng giao diện người dùng: quản lý tương tác của người dùng với ứng dụng.
- Tầng logic trình diễn: Xác định cách thức hiển thị giao diện người dùng và các
yêu cầu của người dùng được quản lý như thế nào.
6


- Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác nghiệp.
- Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứng
dụng như các thành phần (truyền thông điệp, hỗ trợ giao tác).
Mô hình n tầng có ưu điểm tăng tính bảo mật, tăng khả năng linh hoạt của ứng
dụng tuy nhiên nó cũng làm tăng sự phức tạp trong triển khai và kiểm thử ứng dụng.

Hình 1.5. Mô hình C-S n tầng
1.2. Tổng quan về mô hình P2P
1.2.1. Khái niệm về mô hình P2P
Mạng ngang hàng (peer-to-peer network), còn gọi là mạng đồng đẳng, là
một mạng máy tính trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính toán
và băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các server
trung tâm như các mạng truyền thống.
Mạng ngang hàng thường được sử dụng để kết nối các máy thông qua một
lượng kết nối dạng “ad hoc”. Mạng ngang hàng có nhiều ứng dụng. Ứng dụng thường
xuyên gặp nhất là chia sẻ tệp tin, tất cả các dạng như âm thanh, hình ảnh, dữ liệu,...
hoặc để truyền dữ liệu thời gian thực như điện thoại VoIP. Một mạng ngang hàng
đúng nghĩa không có khái niệm server và client, nói cách khác, tất cả các máy tham
gia đều bình đẳng và được gọi là peer, là một nút mạng đóng vai trò đồng thời là client
và server đối với các máy khác trong mạng.
7



Hình 1.6. Mô hình peer to peer
1.2.2. Cấu trúc vật lý
Mô hình P2P được thiết kế dựa vào khái niệm về bình đẳng, ngang hàng. Một
nút mạng (peer) hoạt động với cả hai vai trò khách và chủ với các nút khác trên mạng.
Mạng ngang hàng bao gồm tất cả các nút mạng đại diện cho các máy tham gia và các
liên kết giữa các nút mạng này. Một liên kết tồn tại giữa hai nút mạng khi một nút
mạng biết vị trí của nút mạng kia.
a. Nút mạng (Peer)
Trong mô hình P2P tất cả các máy tham gia vào mạng đều có vai trò như nhau,
vừa đóng vai trò là server, vừa là client và được gọi chung là các peer. Trong mạng tất
cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ và khả
năng tính toán của hệ thống…
b. Dây cáp mạng (Cable)
Hệ thống dây kim loại hoặc quang học nối kết vậy lý các máy tính, máy in lại
với nhau.
c. Dữ liệu chung (Shared data)
Các tập tin, thư mục mà các nút mạng chia sẻ để các nút mạng khác có thể truy
xuất thông qua dây cáp mạng.
Ngoài ra, các thiết bị phần cứng của mỗi nút mạng cũng có thể được chia sẻ,
dùng chung như CD-Rom, Printer,….
8


1.2.3. Nguyên tắc hoạt động của mạng P2P

Hình 1.7. Nguyên tắc hoạt động của mô hình P2P
Sơ đồ này cho thấy hoạt động của mô hình P2P. Những đường liền chỉ ra vị trí
có dây cáp mạng là kết nối giữa các thành phần của mạng với nhau. Các thành phần
của hệ thống mạng được kết nối với nhau thông qua hệ thống dây cáp này. Đường
chấm chỉ ra rằng mỗi máy tính có thể giao tiếp và chia sẻ file với tất cả các máy tính

khác trên mạng. Mỗi peer có thể giao tiếp trực tiếp với các peer khác trong mạng. Một
máy in kết nối với một máy tính có thể được sử dụng bởi các máy tính khác trên mạng,
nếu máy tính của máy in đó cho phép.
1.2.4. Phân loại mạng ngang hàng
a. Hệ thống mạng ngang hàng tập trung
Đây là mạng ngang hàng thế hệ thứ nhất, vẫn còn dựa trên máy chủ tìm kiếm
tập trung. Mỗi peer trong mạng lưu trữ tệp định chia sẻ với các peer khác trong hệ
thống. Một bảng lưu trữ thông tin kết nối của người dùng đăng ký vào hệ thống
(Ip_Address….) và bảng lưu trữ danh sách các tệp mà mỗi người dùng định chia sẻ
(tên_tệp, dung_lượng,….). Mọi máy tính tham gia vào mạng đều kết nối đến máy chủ
tìm kiếm tập trung, các yêu cầu tìm kiếm được gửi đến máy chủ trung tâm phân tích,
sau đó, máy chủ sẽ gửi cho peer yêu cầu địa chỉ ip của peer có chứa tài nguyên mà nó
yêu cầu. Quá trình truyền file sẽ thực hiện đúng theo cơ chế truyền file của mạng
ngang hàng giữa các peer với nhau, không cần đến vai trò của server.
Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng tập trung
này.
9


b. Mạng ngang hàng thuần túy
Là một dạng khá của thế hệ thứ nhất trong hệ thống các mạng ngang hàng.
Không có máy chủ tìm kiếm tập trung như trong mạng Napster, nên nó khắc phục vấn
đề nút cổ chai tại server tìm kiếm. Vấn đề tìm kiếm trong mạng này thực hiện cơ chế
Flooding, yêu cầu tìm kiếm được gửi đến tất cả các node trong mạng là láng giềng với
nó. Điều này làm tăng đáng kể lưu lượng trong mạng. Vấn đề của mô hình mạng này
là băng thông của mạng.
Các phần mềm tiêu biểu cho mạng ngang hàng này là Gnutella 4.0 và FreeNet.
c. Mạng ngang hàng lai
Là mô hình mạng ngang hàng thế hệ thứ 2 nhằm khắc phục nhược điểm của mô
hình mạng ngang hàng thế hệ đầu tiên. Trong mô hình mạng này, khái niệm được nhắc

đến là các superPeer. Các superPeer tạo thành một mạng không có cấu trúc, có sự khác
nhau giữa superPeer và clientPeer trong mạng. Mỗi superPeer kết nối đến nhiều
clientPeer. Mỗi superPeer có nhiệm vụ như một máy chủ tập trung tìm kiếm trong một
mạng nhỏ của các clientPeer kết nối đến nó. Như vậy, vấn đề băng thông mạng cũng
được khắc phục vì các yêu cầu tìm kiếm không được truyền đi khắp nơi trong mạng,
vấn đề nút cổ chai cũng được khắc phục do trong mạng có nhiều hơn một superPeer.
d. Mạng ngang hàng có cấu trúc
Điều quan trong đối với những hệ thống có cấu trúc là cung cấp sự liên kết giữa
nội dung và vị trí của node. Việc này thường dựa trên cấu trúc dữ liệu bảng băm phân
tán DHT- Distributed Hash Table. Dựa vào cấu trúc bảng băm phân tán, có nhiều mô
hình mạng ngang hàng có cấu trúc như Chord, Pastry….
Khả năng mở rộng của mô hình mạng có cấu trúc được nâng cao rõ rệt. Tuy
nhiên, việc quản lý cấu trúc topo mạng gặp khó khăn, đặc biệt trong trường hợp tỷ lệ
vào/ra mạng của các node cao.
1.2.5. Các lĩnh vực ứng dụng của P2P
a. Giao tiếp
Đóng vai trò quan trọng trong các ứng dụng mạng ngang hàng, nó cung cấp
thông tin về các peer và các nguồn tài nguyên nào là sẵn sàng trên mạng. Tạo ra khả
năng cho các peer kết nối trực tiếp với nhau và trao đổi tài nguyên với nhau.
10


Ứng dụng điển hình về ứng dụng mạng ngang hàng trong giao tiếp là ứng dụng
gửi tin nhắn.
b. Chia sẻ file
Ứng dụng được sử dụng nhiều nhất của mạng ngang hàng là chia sẻ file. Đặc
điểm của của vấn đề chia sẻ file là các peer có các file được download với vai trò là
một client làm cho chúng luôn sẵn sàng với các peer khác trong vai trò của một server.
Một vấn đề quan trọng khác của vấn đề chia sẻ file trong mạng ngang hàng là
việc tìm kiếm. Các mô hình khác nhau được phát triển phục vụ cho việc tìm kiếm file

trong mạng: Mô hình thư mục trung tâm, mô hình hướng tài liệu…Mỗi mô hình đều
được minh họa qua các ứng dụng thực của mạng ngang hàng như Napster, Gnutella,
Kazaa…..
c. Băng thông
Ngày nay khi số lượng lớn các dữ liệu đa phương tiện tăng nhanh, hiệu quả của
việc sử dụng băng thông ngày càng trở nên quan trọng. Hiện nay, hướng tiếp cận tập
trung trong đó các file được lưu trữ trên server trung tâm và được truyền từ đó tới các
máy khách yêu cầu đang được sử dụng chủ yếu. Trong trường hợp số lượng các yêu
cầu tăng nhanh sẽ dẫn đến tình trạng nút cổ chai. Và hướng tiếp cận theo mạng ngang
hàng và vấn đề cân bằng tải sẽ đạt được sự tối ưu nhất vì nó tận dụng tối đa được các
hướng truyền dẫn trong hệ thống mạng.
Khác với kiến trúc C-S, các mạng ngang hàng lai có thể có sự cân bằng tải tốt
hơn do chì có yêu cầu truy vấn được thực hiện giữa máy tính tham gia vào mạng và
máy chủ, còn vấn đề truyền file được thự chiện giữa hai máy tính tham gia mạng với
nhau, điều này dẫn đến việc phân bố tải đều trên hệ thống mạng.
d. Chu trình xử lý
Trong các ứng dụng đòi hỏi cần phải có sức mạnh tính toán, người ta thường
tìm cách xây dựng các máy tính cấu hình cao, đắt tiền chứ chưa chú trọng vào việc tận
dụng khả năng tính toán của các máy tính nối mạng. Ngày nay, do đòi hỏi tính toán
hiệu năng cao và nhiều nghiên cứu ứng dụng mạng ngang hàng vào xử lý tính toán
được đưa ra. Việc sử dụng các ứng dụng mạng ngang hàng để bó cụm các chu trình xử
lý có thể nhận được khả năng tính toán ngang bằng với một siêu máy tính đắt tiền.
11


Trong một mạng, mỗi máy tính là trong suốt với các máy tính khác nhau và tất cả các
node được kết nối mạng sẽ tạo thành một máy tính logic.
1.2.6. Một số ứng dụng sử dụng mô hình P2P
a. Napster


Hình 1.8. Kiến trúc Napster
Napster [10] do Shawn Fanning xây dựng vào năm 1999. Nó là một ứng dụng
chia sẻ file nhạc MP3. Khi người dùng cần tìm kiếm một bài hát, mở ứng dụng
Napster, đăng nhập vào hệ thống và tìm kiếm. Server lưu giữ chỉ mục của tất cả những
người dùng khác khi họ đăng nhập vào hệ thống. Khi bạn gửi yêu cầu tìm kiếm, server
của Napster sẽ tìm kiếm trong chỉ mục của những người dùng đang online và liệt kê
danh sách những người dùng có chứa bài hát mà bạn muốn tìm kiếm. Từ danh sách đó,
bạn có thể chọn một địa chỉ bất kỳ và tiến hành tải dữ liệu về. Server không can thiệp
vào quá trình trao đổi thông tin giữa hai người dùng và nó cũng không lưu trữ bất kể
file nào, nó chỉ có nhiệm vụ giúp người dùng tìm kiếm file nhạc trong máy khác và
giúp họ kết nối với các node khác trong hệ thống.
Napster là một ví dụ điển hình của hệ thống chia sẻ file. Napster khắc phục
được 2 nhược điểm chính của mô hình C-S. Nhược điểm thứ nhất là khả năng lưu trữ
của server khi lưu trữ hàng tỉ file nhạc mà những người dùng trên thế giới quan tâm
nên thay vì lưu trữ trên server thì nó được lưu trữ trên rất nhiều máy tính cá nhân trên
khắp thế giới. Nhược điểm thứ hai là băng thông mạng, server không thể cùng lúc đáp
12


ứng cho hàng ngàn yêu cầu tải dữ liệu của hàng ngàn người dùng ở khắp nới trên thế
giới. Và Napster đã khắc phục điều này bằng cách chia sẻ công việc tới tất cả các máy
tính cá nhân tham gia vào hệ thống.
b. Gnutella

Hình 1.9. Kiến trúc của Gnutella
Để tìm kiếm node đang chia sẻ tệp trong mạng, thông điệp được gửi đến một số
node lân cận được lựa chọn. Tới mỗi node truy vấn sẽ được so sánh với danh sách các
tệp đang chia sẻ của nó cùng với một tiêu chí xác định trước. Nếu tiêu chí này thỏa
mãn, thì danh sách kết quả được gửi về cho node yêu cầu. Nếu tiêu chí không thỏa
mãn, thì thông điệp truy vấn sẽ được gửi tiếp đến các node lân cận khác. Quá trình này

sẽ dừng lại cho đến khi tiêu chí tìm kiếm được thỏa mãn hoặc sau một số lần chuyển
tiếp nhất định. Khi nhận được danh sách gửi về, kết nối trực tiếp tới node chứa tệp yêu
cầu và tải dữ liệu về máy.
c. So sánh Napster và Gnutella
Là 2 ứng dụng chia sẻ file điển hình sử dụng mô hình P2P. Napster có ưu điểm
dễ sử dụng cơ chế tìm kiếm tập trung nhanh và hiệu quả. Tuy nhiên, hệ thống cũng
bộc lộ những hạn chế nhất định. Do việc tìm kiếm diễn ra tập trung trên máy chủ nên
khi số lượng lớn người dùng tham gia vào hệ thống có thể dẫn tới việc máy chủ tìm
kiếm bị quá tải và nó chỉ có thể chia sẻ file nhạc MP3 và không hỗ trợ bất kỳ định
dạng file nào khác.

13


Gnutella thì khác, nó sử dụng cơ chế phi tập trung, ngoài định dạng MP3, nó
còn hỗ trợ được nhiều định dạng file nhạc khác. Tuy nhiên, hệ thống cũng có nhiều
nhược điểm. Do cơ chế hoạt động hoàn toàn phân tán và bình đẳng nên không thực sự
tồn tại một nhà cung cấp dịch vụ tập trung nên không có sự hỗ trợ về kỹ thuật khi hệ
thống có sự cố. Thời gian tìm kiếm file trong Gnutella cũng lâu hơn trong Napster do
phải chuyển thông điệp tới nhiều node trong mạng để tìm kiếm. Băng thông của mạng
cũng bị tiêu tốn do thông điêp được gửi quảng bá tới các node trong mạng. Khi một
node tham gia vào mạng, nó sẽ liên tục phải xử lý, trả lời các truy vấn và tiêu tốn băng
thông cho việc tải file của người dùng khác. Và mọi node tham gia vào mạng mà
không cần đăng ký tài khoản nên việc xác thực tính hợp lệ và an toàn của các thông
điệp cũng như nội dung các file dữ liệu tải về là rất khó.
Từ việc phân tích những ưu điểm và nhược điểm của ứng dụng chia sẻ tệp theo
mô hình C-S và mô hình P2P như trên, chúng ta có thể nhận thấy việc kế thừa được
những ưu điểm của hai mô hình trên, đồng thời khắc phục được những hạn chế của
chúng là việc cần thiết để làm tăng hiệu năng của hệ thống.
1.2.7. So sánh mô hình C-S và mô hình P2P


Hình 1.10. So sánh mô hình Client- Server và mô mình P2P
Một mục đích quan trọng của mạng ngang hàng là trong mạng tất cả các máy
tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán.
Do đó khi càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng

14


càng lớn. Ngược lại, trong cấu trúc server-client, nếu số lượng server là cố định, thì khi
số lượng client tăng lên khả năng chuyển dữ liệu cho mỗi client sẽ giảm xuống.
Tính chất phân tán của mạng ngang hàng cũng giúp cho mạng hoạt động tốt khi
một số máy gặp sự cố. Đối với cấu trúc tập trung, chỉ cần server gặp sự cố thì cả hệ
thống sẽ ngưng trệ. Trong một mạng lưới tập trung, quản trị hệ thống là lực lượng duy
nhất kiểm soát được những tài nguyên được chia sẻ. Nếu các quản trị viên quyết định
không quảng bá một tập tin, họ chỉ cần loại bỏ nó khỏi server của họ, và nó sẽ không
còn có sẵn cho người dùng. Và người sử dụng không có vai trò gì trong việc quyết
định những nội dung được phân phối trên toàn mạng. Trong mô hình mạng C-S có thể
giám sát và quản lý được nội dung của các tài nguyên được chia sẻ. Clients sẽ không
gặp phải bất cứ khó khăn gì khi truy cập một nội dung sẵn có trên server ổn định.
Trong mạng P2P việc chia sẻ các tập tin phải cần ít nhất một nút trong mạng có
những yêu cầu dữ liệu, và nút đó phải có khả năng kết nối với các nút chứa dữ liệu
đó. Yêu cầu này là đôi khi khó có thể đáp ứng bởi vì người dùng có thể xóa hoặc
ngừng chia sẻ dữ liệu bất cứ lúc nào và người dùng trong mạng P2P hoàn toàn chịu
trách nhiệm về quyết định những nội dung chia sẻ. Các tập tin không phổ biến cuối
cùng sẽ biến mất và trở thành không có sẵn trên hệ thống khi người dùng không chia
sẻ chúng. Tuy nhiên các tập tin phổ biến sẽ được phân phối cao và dễ dàng. Các tập tin
phổ biến trên mạng P2P thực sự có sự ổn định hơn và sẵn có hơn các tập tin trên các
mạng trung tâm.
Trong một hệ thống tập trung, các quản trị viên chịu trách nhiệm về việc phục

hồi và sao lưu dữ liệu, trong khi ở các hệ thống P2P, mỗi nút yêu cầu hệ thống sao lưu
của riêng mình. Bảng sau cho thấy ưu điểm cũng như nhược điểm của 2 mô hình P2P
và C-S:

P2P

Client- Server

- Một mạng ngang hàng cho phép các

- Dữ liệu được lưu trữ ở một

peer đóng góp, chia sẻ nguồn tài nguyên

Server trung tâm, tốc độ cao (Tốc

với nhau. Tài nguyên riêng rẽ của mỗi

độ truy cập thường lớn hơn so với

peer gồm CD- ROM, máy in, ổ

mạng P2P).

15


×