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

Nghiên cứu ứng dụng mô hình p2p vào các ứng dụng client server

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 (465.79 KB, 48 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------DƯƠNG HỮU TÙNG

NGHIÊN CỨU ỨNG DỤNG MƠ HÌNH P2P VÀO CÁC ỨNG DỤNG
CLIENT SERVER

LUẬN VĂN THẠC SỸ KHOA HỌC
KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THƠNG

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS HÀ QUỐC TRUNG

Hà Nội – 2014
1


LỜI CAM ĐOAN

Tôi là:Dương Hữu Tùng, học viên cao học lớp 11BMTTT.KH khóa 2011 2013. Thầy giáo hướng dẫn là PGS.TS. Hà Quốc Trung.
Tơi xin cam đoan tồn bộ nội dung được trình bày trong bản luận văn
“Nghiên cứu ứng dụng mơ hình P2P vào các ứng dụng client server” này là kết
quả tìm hiểu và nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS.TS. Hà Quốc
Trung. Các kết quả và dữ liệu được nêu trong luận văn là hồn tồn trung thực và
rõ ràng. Mọi thơng tin trích dẫn đều được tuân theo luật sở hữu trí tuệ, liệt kê rõ
ràng các tài liệu tham khảo. Tôi xin chịu hoàn toàn trách nhiệm với những nội dung
được viết trong luận văn này.

Hà nội, ngày tháng 4 năm 2014

2




LỜI CẢM ƠN

Tôi xin gửi lời cám ơn sâu sắc tới PGS.TS Hà Quốc Trung, người đã tận tình
hướng dẫn để tơi có thể hồn thành luận văn này.
Tơi cũng xin gửi lời cám ơn chân thành tới quý thày cô viện Công nghệ thông
tin và Truyền thông, Viện Đào tạo sau đại học đã truyền dạy những kiến thức q
báu trong khố học này.
Cuối cùng, tơi xin gửi lời cám ơn tới gia đình, bạn bè, cơ quan cơng tác đã
giúp đỡ trong quá trình thực hiện luận văn này.

Hà Nội, ngày tháng 4 năm 2014
Học viên

Dương Hữu Tùng

3


MỤC LỤC
DANH MỤC HÌNH VẼ ................................................................................................... 6
CHƯƠNG 1

TỔNG QUAN ....................................................................................... 9

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT .......................................................................... 12


2.1

Mơ hình client/server ........................................................................................ 12

2.1.1

Khái niệm ................................................................................................... 12

2.1.2

Các kiến trúc Client/Server ........................................................................ 15

2.2

Mơ hình peer to peer ......................................................................................... 17

2.2.1

Khái niệm ................................................................................................... 17

2.2.2

Phân loại mạng ngang hàng ....................................................................... 19

2.3

So sánh mơ hình P2P với mơ hình Client/Server ............................................. 21

2.4


Vấn đề cần giải quyết ....................................................................................... 22

2.5

Định hương giải pháp ....................................................................................... 24

2.5.1

Mơ hình Local Proxy ................................................................................. 24

2.5.2

Mơ hình share cache model ....................................................................... 25

CHƯƠNG 3

THIẾT KẾ ỨNG DỤNG VIDEO STREAMING SỬ DỤNG

LOCAL PROXY ................................................................................................................
3.1

Giới thiệu bài toán ............................................................................................ 28

3.2

Mô tả video streaming client server ................................................................. 28
4

28



3.2.1

Kiến trúc của server ................................................................................... 29

3.2.2

Kiến trúc của client .................................................................................... 30

3.3

Mô tả video streaming sử dụng P2P ................................................................. 31

3.4

Chức năng hệ thống video streaming ............................................................... 32

3.5

Thiết kế chi tiết hệ thống video streaming ....................................................... 34

3.5.1

Đăng ký người dùng .................................................................................. 34

3.5.2

Đăng nhập .................................................................................................. 35

3.5.3


Danh sách các đoạn video đang có ............................................................ 37

3.5.4

Gửi video ................................................................................................... 38

3.5.5

Hiển thị video............................................................................................. 40

3.5.6

Thêm một đoạn video ................................................................................ 41

3.5.7

Đăng xuất ................................................................................................... 42

3.6

Cài đặt, thử nghiệm và đánh giá ....................................................................... 43

KẾT LUẬN .................................................................................................................... 46
TÀI LIỆU THAM KHẢO .............................................................................................. 47

5


DANH MỤC HÌNH VẼ

Hình 2.1 Mơ hình client server ...................................................................................... 13
Hình 2.2 Q trình gửi một bản tin của mơ hình client server ...................................... 14
Hình 2.3 Kiến trúc client server 2 tầng .......................................................................... 16
Hình 2.4 Kiến trúc client server 3 tầng .......................................................................... 16
Hình 2.5 Mơ hình mạng ngang hàng.............................................................................. 17
Hình 2.6 Phân loại mạng ngang hàng ............................................................................ 19
Hình 2.7 Mơ hình local proxy ........................................................................................ 24
Hình 2.8 Mơ hình share cache model ............................................................................ 25
Hình 3.1. Mơ hình một client và một server. ................................................................. 29
Hình 3.2. Mơ hình kiến trúc server-client ...................................................................... 30
Hình 3.3 Đăng ký người dùng ........................................................................................ 34
Hình 3.4 Quy trình đăng nhập ........................................................................................ 36
Hình 3.5 Qui trình gửi video .......................................................................................... 38
Hình 3.6 Quy trình hiển thị đoạn video ......................................................................... 40
Hình 3.7: Quy trình thêm đoạn video ............................................................................ 42

6


DANH MỤC BẢNG
Bảng 3.1 Quy trình đăng kí người dùng......................................................................... 35
Bảng 3.2. Quy trình đăng nhập ...................................................................................... 37
Bảng 3.3. Quy trình gửi video ........................................................................................ 39
Bảng 3.4. Quy trình hiển thị một đoạn video ................................................................. 41
Bảng 3.5. Quy trình thêm một video .............................................................................. 42

7


BẢNG CHỮ VIẾT TẮT

P2P

Peer to Peer

DHT

Distributed Hash Table

VOD

Video On Demand

LP

Local Proxy

8


CHƯƠNG 1

TỔNG QUAN

Các ứng dụng dựa trên nền tảng client-server trên mạng ngày càng phổ biến. Tuy
nhiên trong một số ứng dụng cần thao tác với dữ liệu lớn hay địi hỏi nhiều tính
tốn, xử lí phức tạp như streaming audio, video, thì mơ hình client-server gặp nhiều
bất cập, đặc biệt là khi số lượng người dùng đồng thời tăng, biểu hiện dưới dạng
như quá tải máy chủ, trễ tín hiệu, việc xem một video trên mạng gần như là điều
không thể. Ngày nay, cùng với sự bùng nổ của Internet, các ứng dụng đa phương
tiện trong đó có video streaming đã trở thành nhu cầu không thể thiếu của nhiều cư

dân mạng. Theo thống kê, riêng tại Mỹ đã có khoảng 33,5 tỉ video được xem trong
tháng 12-2012 (nguồn comScore). Con số trên đủ cho ta thấy được sự lớn mạnh
không ngừng của các ứng dụng video streaming. Video là một loại dữ liệu đa
phương tiện quan trọng phục vụ cho truyền thơng hoặc cho nhu cầu giải trí của con
người trong nhiều thập niên. Trong thời kỳ đầu video được xử lý và truyền dưới
dạng tín hiệu tương tự (analog). Với sự phát triển không ngừng của mạch điện tử và
máy tính dẫn đến số hóa video và mở ra một cuộc cách mạng về nén và truyền
thông video. Sự phát triển và phổ biến của Internet giữa những năm 90 đã định
hướng truyền thông video qua mạng chuyển mạch gói best – effort. Video qua
mạng Internet gặp phải rất nhiều yếu tố bất lợi về băng thông, độ trễ và mất gói tin,
cùng với một số vấn đề như làm thế nào để chia sẽ tài nguyên mạng giữa các luồng
hay làm thế nào có thể triển khai hiệu quả phương thức truyền thông một – nhiều.
Từ đó đã có rất nhiều giải pháp được nghiên cứu và phát triển nhằm khắc phục
những vấn đề này.
Video Streaming được định nghĩa là một “dòng chảy” video, nghĩa là dữ liệu video
được truyền liên tục từ một nguồn đến một đích nào đó thơng qua Internet. Video
Streaming thường được sử dụng trong lĩnh vực giải trí hoặc dạy học, dùng để lưu
trữ các tập tin Video hoặc các bài học, cung cấp cho người dùng các tiện ích như
tìm kiếm, liệt kê và khả năng hiển thị hoặc hiển thị lại các dữ liệu Video theo yêu
cầu.Với các định dạng tập tin Video truyền thống, dữ liệu chỉ có thể hiển thị khi đã

9


được tải về (download) tồn bộ, vì vậy đối với các tập tin Video chất lượng cao có
dung lượng lớn thì cơng việc này sẽ tiêu tốn rất nhiều thời gian.
Video Streaming tiết kiệm thời gian cho người dùng bằng cách sử dụng các công
nghệ giải nén kết hợp với hiển thị dữ liệu đồng thời trong lúc vẫn tiếp tục tải video
về. Quá trình này được gọi là kỹ thuật đệm (buffering):
+ Thay vì được gửi một lần duy nhất, dữ liệu video streaming sẽ được chia thành

từng gói nhỏ, sau đó liên tục truyền những phần được chia ra.
+ Ban đầu bên nhận sẽ lấy về một phần chia nhỏ của dữ liệu Video và hiển thị
những phần video đã nhận được, đồng thời trong lúc hiển thị các gói dữ liệu cịn lại
sẽ lần lượt được lấy về để kịp cho việc hiển thị tiếp theo.
Video Streaming được thể hiện dưới hai dạng:
+ Video theo yêu cầu (on demand): là các dữ liệu Video được lưu trữ trên máy chủ
đa phương tiện và được truyền đến người dùng khi có u cầu, người dùng có tồn
quyền để hiển thị cũng như thực hiện các thao tác (tua, dừng, quay lại…) với các
đoạn dữ liệu này.
+ Video thời gian thực (live event): là các dữ liệu Video được biến đổi trực tiếp từ
các nguồn cung cấp dữ liệu theo thời gian thực (máy camera, microphone thiết bị
phát dữ liệu Video…).
Việc đảm bảo chất lượng dịch vụ của các ứng dụng như vậy là bài tốn vơ cùng cấp
thiết. Chính vì vậy tơi lựa chọn đề tài “Nghiên cứu ứng dụng mơ hình P2P vào các
ứng dụng client server”. Đề tài này đề xuất nghiên cứu ứng dụng, cách tiếp cận sử
dụng đồng thời hai giao thức peer- to- peer và client – server thông qua local proxy
cho ứng dụng streaming video.
Luận văn này được chia các phần như sau:
Chương 1: Tổng quan
Chương 2: Cơ sở lý thuyết.

10


Trong chương này trình bày về tổng quan về mơ hình client server, mơ hình peer to
peer, vấn đề cần giải quyết, định hướnggiải pháp,làm cơ sở để thực hiện chương
tiếp theo.
Chương 3: Thiết kế ứng dụng video streaming sử dụng local proxy.
Qua nghiên cứu ưu nhược điểm của các mơ hình client server, mơ hình peer to peer
cùng với giải pháp đưa ra, luận văn này đề xuất sử dụng mơ hình local proxy - ứng

dụng ưu điểm của 2 mơ hình client server và peer to peer. Để thực hiện luận văn
đưa ra giải pháp để triển khái ứng dụng video streaming sử dụng mơ hình local
proxy.
Mặc dù đã cố gắng hết sức và sự giúp đỡ tận tình của Thầy giáo hướng dẫn, song
trình độ cịn hạn chế, phạm vi của đề tài rộng nên không thể tránh khỏi những thiếu
sót. Em rất mong sự chỉ dẫn và đóng góp của các Thầy cơ để luận văn được hoàn
thiện hơn.

11


CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

Trong chương này, tơi xin trình bày các mơ hình client server, mơ hình peer to peer,
các vấn đề cần giải quyết,đưa ra mơ hình giải pháp để lưa chọn cho chương tiếp
theo.
2.1
2.1.1

Mơ hình client/server
Khái niệm

Mơ hình client/server rất phổ biến và được chấp nhận rộng rãi trong các hệ thống
phân tán. Trong mơ hình này có một tập tiến trình, mỗi tiến trình đóng vai trị một
trình quản lý tài ngun cho một tập các tài nguyên cho trước và một tập hợp các
tiến trình client trong đó mỗi tiến trình thực hiện một tác vụ xác định cần truy xuất
tới tài nguyên phần cứng hoặc phần mềm dùng chung. Bản thân các trình quản lý tài
nguyên cần phải truy xuất tới các tài nguyên dùng chung được quản lý bởi một tiến

trình khác, vì vậy một số tiến trình vừa là tiến trình client vừa là tiến trình server.
Các tiến trình phát ra các yêu cầu tới các server bất kỳ khi nào chúng cần truy xuất
tới một trong các tài nguyên của các server. Nếu yêu cầu là đúng đắn thì server sẽ
thực hiện hành động được yêu cầu và gửi một đáp ứng trả lời tới tiến trình client
[2].
Mơ hình client/server cung cấp một cách tiếp cận tổng quát để chia sẻ tài ngun
trong các hệ thống phân tán. Mơ hình này có thể được cài đặt bằng trên nhiều mơi
trường phần cứng và phần mềm khác nhau. Các máy tính được sử dụng để chạy các
tiến trình client/server có nhiều kiểu khác nhau và không cần thiết phải phân biệt
giữa chúng; tiến trình client và tiến trình server đều có thể chạy trên cùng một máy
tính. Một tiến trình server có thể sử dụng dịch vụ của một server khác.

12


Hình 2.1Mơ hình client server

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:
1. Truyền một yêu cầu từ tiến trình client tới tiến trình server
2. Yêu cầu được server xử lý
3. Truyền đáp ứng cho client
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 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).


13


Client
Server

Request

Wait

Provide service

Reply

Tiếntrìnhđangxửlý
Tiếntrìnhđangphongtỏa

Hình 2.2 Quá trình gửi một bản tin của mơ hình client server

Q trình giao tiếp client và server có thể diễn ra theo một t rong hai chế độ: bị
phong tỏa (blocked) và không bị phong tỏa (non-blocked).
Chế độ bị phong tỏa (blocked):
Trong chế độ bị phong tỏa, khi tiến trình client hoặc server phát ra lệnh gửi dữ liệu
(send), việc thực thi của tiến trình sẽ bị tạm ngừng cho tới khi tiến trình nhận phát ra
lệnh nhận dữ liệu (receive).
Tương tự đối với tiến trình nhận dữ liệu, nếu tiến trình nào đó (client hoặc server)
phát ra lệnh nhận dữ liệu, mà tại thời điểm đó chưa có dữ liệu gửi tới thì việc thực
thi của tiến trình cũng sẽ bị tạm ngừng cho tới khi có dữ liệu gửi tới.
Chế độ khơng bị phong tỏa (non-blocked)


14


Trong chế độ này, khi tiến trình client hay server phát ra lệnh gửi dữ liệu thực sự,
việc thực thi của tiến trình vẫn được tiến hành mà khơng quan tâm đến việc có tiến
trình nào phát ra lệnh nhận dữ liệu đó hay khơng.
Tương tự cho trường hợp nhận dữliệu, khi tiến trình phát ra lệnh nhận dữ liệu, nó sẽ
nhận dữ liệu hiện có, việc thực thi của tiến trình vẫn được tiến hành mà khơng quan
tâm đến việc có tiến trình nào phát ra lệnh gửi dữ liệu tiếp theo hay không.
2.1.2

Các kiến trúc Client/Server

2.1.2.1

Client/Server hai tầng

Kiến trúc client/server đơn giản nhất là kiến trúc hai tầng. Trong thực tế hầu hết các
kiến trúc client/server là kiến trúc hai tầng. Một ứng dụng hai tầng cung cấp nhiều
trạm làm việc với một tầng trình diễn thống nhất, tầng này truyền tin với tầng lưu
trữ dữ liệu tập trung. Tầng trình diễn thơng thường là client và tầng lưu trữ dữ liệu
là server [9].
Hầu hết các ứng dụng Internet như là email, telnet, ftp thậm chí là cả Web là các
ứng dụng hai tầng. Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng
client/server có xu thế sử dụng kiến trúc này.
Trong ứng dụng hai tầng truyền thống, khối lượng công việc xử lý được dành cho
phía client trong khi server chỉ đơn giản đóng vai trị như là chương trình kiểm sốt
luồng vào ra giữa ứng dụng và dữ liệu. Kết quả là không chỉ hiệu năng của ứng
dụng bị giảm đi do tài nguyên hạn chế của PC, mà khối lượng dữ liệu truyền đi trên
mạng cũng tăng theo. Khi toàn bộ ứng dụng được xử lý trên một PC, ứng dụng bắt

buộc phải yêu cầu nhiều dữ liệu trước khi đưa ra bất kỳ kết quả xử lý nào cho người
dùng. Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng. Một vấn đề
thường gặp khác đối với ứng dụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi
nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng client và server.

15


Hình 2.3 Kiến trúc Client Server 2 tầng

2.1.2.2

Client/Server ba tầng

Ta có thể tránh được các vấn đề của kiến trúc Client/Server hai tầng bằng cách mở
rộng kiến trúc thành ba tầng. Một kiến trúc ba tầng có thêm một tầng mới tách biệt
việc xử lý dữ liệu ở vị trí trung tâm.

Hình 2.4 Kiến trúc Client Server 3 tầng

Theo kiến trúc ba tầng, một ứ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.

16



Tầng thứ ba chứa dữ liệu cần thiết cho ứng dụng. Dữ liệu này có thể bao gồm bất kỳ
nguồn thông tin nào, bao gồm cơ sở dữ liệu như Oracle, SQL Server hoặc tài liệu
XML.
2.1.2.3

Client/server n-tầng

Kiến trúc 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.

-

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 tiếp).

2.2

2.2.1

Mơ hình Peer to Peer
Khái niệm

Hình 2.5 Mơ hình mạng ngang hàng

17


Một mạng máy tính ngang hàng (Peer – to – Peer hoặc P2P) chủ yếu dựa trên sức
mạnh tính tốn và băng thông của các máy tham gia trong mạng hơn là tập trung
vào một số lượng nhỏ các máy chủ (server). Mạng P2P được sử dụng điển hình cho
việc kết nối các nút thông qua những kết nối ad hoc(Ad hoc là công nghệ mới nhất
trong công nghệ thông tin vô tuyến. Công nghệ này cho phép các nút mạng truyền
trực tiếp với nhau sử dụng bộ thu phát không dây mà không cần bất cứ cơ sở hạ
tầng cố định nào). Những mạng như vậy có ích cho nhiều mục đích sử dụng. Chia
sẻ file chứa audio, video, data hoặc mọi thứ ở định dạng số, các dữ liệu thời gian
thực, ví dụ như truyền tải giọng nói, video streaming đều có thể thực hiện với cơng
nghệ P2P.
Một mạng P2P thuần túy sẽ khơng có khái niệm về khách (client) và chủ (server),
mà chỉ có những nút ngang hàng thực hiện cả hai chức năng của máy chủ và máy
khách đối với những nút khác trong mạng. Mô hình mạng này khác với mơ hình
mạng khách – chủ (server –client) mà việc giao tiếp thường là với các máy chủ
trung tâm. Một ví dụ điển hình cho việc truyền file theo mơ hình khách – chủ là
giữa một FTP Client và một FTP Server, hai chương trình FTP Client và FTP
Server có vai trị rất khác nhau, client khởi tạo việc download/upload file cịn server
thì tiếp nhận và phục vụ các u cầu đó.
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 ngun bao gồm băng thơng, lưu trữ và khả năng tính tốn. Do đó

khi càng có nhiều máy tham gia và mạng thì khả năng tổng thể của hệ thống mạng
càng lớn. Ngược lại, trong mơ hình máy khách – chủ, nếu số lượng máy chủ là cố
định thì khi số máy khách tăng lên thì khả năng chuyển dữ liệu từ các máy chủ cho
mỗi máy khách 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 máy chủ gặp sự cố thì cả hệ
thống sẽ ngưng trệ [3].

18


2.2.2

Phân loại mạng ngang hàng

Mạng ngang hàng P2P được chia làm hai loại chính: mạng ngang hàng thuần túy và
mạng ngang hàng lai ghép

Hình 2.6 Phân loại mạng ngang hàng

2.2.2.1

Mạng ngang hàng thuần túy

Mạng ngang hàng thuần túy được chia làm 2 loại: Mạng ngang hàng có cấu trúc và
mạng ngang hàng không cấu trúc.
Mạng ngang hàng không cấu trúc: là khi các liên kết giữa các nút mạng trong
mạng phủ được thiết lập ngẫu nhiên (tức là không theo quy luật nào). Những mạng
như thế này dễ dàng được xây dựng vì các máy mới khi muốn tham gia mạng có thể
lấy các liên kết sẵn có có một máy khác đang ở trong mạng và sau đó dần dần tự

bản thân nó sẽ thêm vào các liên kết mới của riêng mình. Khi một máy muốn tìm
một dữ liệu trong mạng đồng đẳng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền
trên cả mạng để tìm ra càng nhiều máy chia sẻ càng tốt. Sự hiểu biết về mạng của
các nút trong mạng không cấu trúc là rất ít, mỗi nút chỉ nắm bắt thơng tin về những
nút liên kết trực tiếp và một số ít các nút khác, thơng tin về những nút cịn lại hồn

19


tồn thơng qua Broadcast. Chính vì vậy, với những ứng dụng cần có sự liên kết chặt
chẽ giữa các nút với nhau như multicast thì mạng ngang hàng khơng cấu trúc không
phải là sự lựa chọn tối ưu.
Mạng ngang hàng có cấu trúc: Khắc phục nhược điểm của mạng khơng cấu trúc
bằng cách sử dụng hệ thống DHT (Distributed Hash Table – Bảng băm phân tán).
Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật
toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với
một phần dữ liệu chia s trong mạng. Với cấu trúc này, khi một máy định tuyến
thơng báo, nó chỉ cần áp dụng một giao thức chung để xác định nút cần thơng báo
và sau đó liên lạc trực tiếp đến nút mạng đó. Bởi vậy việc tạo cây multicast sẽ diễn
ra rất dễ dàng và việc quản l cây cũng có nhiều thuận lợi khi các nút đều được liên
kết chặt chẽ với nhau. Một số mạng ngang hàng có cấu trúc nổi tiếng bao gồm
Chord, CAN, Kademlia, Pastry và Tapestry
2.2.2.2

Mạng ngang hàng lai ghép

Trong mơ hình mạng ngang hàng lai ghép, tồn tại một server trung gian có trách
nhiệm điều khiển hoạt động của mạng. Server này lưu trữ các chỉ mục bao gồm
thơng tin về các nút mà nó quản lý và vị trí các cặp key – value trên mạng. Các nút
trong mạng phải tạo liên kết với server này. Một nút muốn trao đổi thông tin với

một nút khác thì nó sẽ phải liên lạc trực tiếp với server, sau đó server sẽ tìm kiếm
trong cơ sở dữ liệu và gửi lại địa chỉ nút đích. Quá trình trao đổi thơng tin sau đó
được diễn ra trực tiếp giữa 2 nút. Việc triển khai truyền tin multicast trên mạng
ngang hàng lai ghép gần giống như mơ hình proxy – base ALM. Nhược điểm chính
của nó vẫn là chi phí cao cho các server trung gian. Ứng dụng điển hình cho mơ
hình mạng này là Napster.

20


2.3

So sánh mơ hình P2P với mơ hình Client/Server
P2P

Client/Server

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

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

các node (PCs) đóng góp, chia sẻ

tâm, tốc độ cao (Tốc độ truy cập thường

nguồn tài nguyên với nhau.

lớn hơn so với mạng P2P).

Tài


nguyên riêng rẽ của các node (ổ
cứng, CD-ROM, máy in …. Các
nguồn tài nguyên này có thể được
truy cập từ bất cứ node nào trong
mạng.

- 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 u cầu.

- Các node đóng vai trị như cả
Client (truy vấn thông tin) và Server
(cung cấp thông tin).

21


Ưu,nhược điểmcủamạng P2P,Client/Server
P2P

Client/Server

+Ưu điểm:

+Ưu điểm:

- Không cần server riêng, các client chia - Tốc độ truy cập nhanh.

sẻ tài nguyên. Khi mạng càng được mở
rộng thì khả năng hoạt động của hệ
thống càng tốt.

- Khả năng mở rộng cao.
- Hoạt động với bất kì loại ứng dụng
nào.

- Rẻ.

- Sử dụng được với các ứng dụng

- Dễ cài đặt và bảo trì.

chia sẻ CSDL.
- Thuận lợi cho việc chia sẽ file, máy in,
CD-ROM v.v…

- Đáng tin cậy hơn (có server riêng).
- Mức độ an toàn cao nhất.

+ Nhược diểm:

+ Nhược điểm:

- Chậm.

- Cần server riêng (nghẽn cổ chai).

- Không tốt cho các ứng dụng CSDL.


- Đắt.

- Kém tin cậy.

- Phức tạp trong việc bảo trì, duy trì
hoạt động của mạng.

2.4

Vấn đề cần giải quyết

Hầu hết các ứng dụng và giao thức gần đây được phát triển dựa trên kiến trúc clientserver, do sự đơn giản của nó. Tuy nhiên nhiệm vụ tính tốn trong kiến trúc clientserver tập trung trên máy chủ, khiến phía máy chủ trở thành nút thắt cổ chai trong
việc xử lý tính tốn cũng như băng thơng mạng. Vì vậy mơ hình client-server mở

22


rộng đã được đề xuất để tăng hiệu suất và giải quyết vấn đề trên. Kỹ thuật cân bằng
tải (load balancing) và kỹ thuật sao chép (replication technique) trong hệ thống phân
tán giúp giảm tải bằng việc phân phối tải trên nhiều máy chủ. Ngoài ra bộ nhớ đệm
cũng là một kỹ thuật sao chép bất đối xứng của dữ liệu từ phía máy chủ về phía máy
khách hàng client hay được sử dụng. Bộ nhớ đệm được sử dụng chọn lọc trong mơ
hình proxy, khi proxy được uỷ quyền nhận lệnh từ máy khách hàng đến máy chủ
(proxy đóng vai trị trung gian), và thay vì trực tiếp lấy dữ liệu từ máy chủ thì proxy
có thể cung cấp dữ liệu từ bộ nhớ đệm của mình. Ngồi ra proxy cũng đồng thời có
thể được sử dụng theo hướng ngược lại khi nhận uỷ quyền từ máy chủ. Tuy nhiên,
những cách tiếp cận trên vẫn hoàn toàn nằm trong mơ hình client-server , vì vậy nó
khơng thể giải quyết dứt điểm vấn đề nút cổ chai của máy chủ
Khi thiết kế ứng dụng sử dụng kiến trúc client-server, các nhà thiết kế phải xem xét

sự tương tác giữa số lượng máy khách hàng và máy chủ, và trên thực tế rất nhiều
khách hàng có thể truy cập đến máy chủ cùng một lúc. Hơn nữa việc tập trung dữ
liệu trên hệ thống máy chủ khiến cho các hệ thống gặp rất nhiều khó khăn trong các
kỹ thuât: đồng bộ hóa , nhân rộng , an ninh, kiểm sốt truy cập. Mơ hình P2P giải
quyết những khó khăn trên bằng cách phân phối khối lượng cơng việc tính tốn trên
các máy ngang hàng (peers). Sử dụng mơ hình này , sự tương tác của các thành
phần của hệ thống được thay đổi hồn tồn, và vì vậy các giao thức và các ứng dụng
thiết kế khá phức tạp. Thay vì thiết kế một giao thức giữa máy khách và máy chủ,
bây giờ phải tạo mối liên kết và tương tác rất phức tạp trên các máy ngang hàng.
Thực chất kiến trúc P2P có khả năng giải quyết vấn đề thơng tin liên lạc và tăng
hiệu suất xử lý nhưng hiện tại kiến trúc này không thực sự quan tâm và xử lý đến
vấn đề tương tác giữa các máy ngang hàng. Điều này mở ra hướng kết hợp mơ hình
P2P và mơ hình client-server trong đómơ hình client server được xây dựng cho việc
tương tác giữa các máy, cịn mơ hinh P2P được sử dụng cho phương thức lưu trữ,
trao đổi dữ liệu, tính tốn và các giao tiếp khác. Hệ thống sẽ bao gồm cả thành phần
client-server và xây dựng các hệ thống phụ P2P.

23


Để xây dựng hệ thống trên những vấn đề tồn tại cần được giải quyết là:
-

Sự tương tác giữa cấu trúc client-server và hệ thống phụ P2P

-

Áp dụng hệ thống với yêu cầu ứng dụng cụ thể[5].
Định hương giải pháp


2.5
2.5.1

Mô hình Local Proxy

CLIENT

CLIENT

CLIENT

USER’S HOST

LOCAL PROXY

LOCAL PROXY

LOCAL PROXY

P2P AGENT

P2P AGENT

P2P AGENT

P2P NETWORK

Hình 2.7 Mơ hình Local Proxy

-


Module client: tương tự như client trong mơ hình client-server

-

Module local proxy: mỗi một máy client sẽ được cài đặt một module proxy.

24


-

P2P agent: giao tiếp vơi các P2P agent khác qua mạng P2P

Theo mơ hình trên, module local proxy hoạt động như sever tương tác với các
module client. Chúng ta sẽ sử dụng lại được các module client trong mơ hình
client server mà không phải thiết kế lại. Công việc phải làm xây dựng module
local proxy tương tác với các local proxy khác thông qua mạng P2P
Để giao tiếp giữa các P2P agent ta có thể sử dụng một giao tiếp đơn giản thông
qua hệ thống chia sẻ file trong hệ thống P2P. Tuy nhiên, để có hiệu quả cao hơn
tơi đưa ra nên thiết kế cấu trúc dữ liệu phù hợp với ứng dụng và giao thức trong
hệ thống P2P. Sử dụng mơ hình P2P để giao tiếp giữa các client, hệ thống có thể
hoạt động mà khơng u cầu một server [6,8].
2.5.2

Mơ hình share cache model

Hình 2.8 Mơ hình share cache model

Trong mơ hình cache dùng chung, P2P và bộ phận cache được thêm vào hệ thống

máy chủ - máy khách truyền thống. với các bộ phận này, chúng tôi hướng tới mục
25


×