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ư
Trang 1BỘ 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
Trang 2LỜ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 toà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à hoàn toà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
Trang 3LỜ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ể hoà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, iện Đào tạo sau đại học đã truyền dạy những kiến thức quý V
báu trong khoá 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 4 năm
Học viên
Dương Hữu Tùng
Trang 4MỤ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 122.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 172.2.1 Khái ni m 17ệ2.2.2 Phân loại mạng ngang hàng 192.3 So sánh mô hình P2P v i mô hình Client/Server 21ớ2.4 Vấn đề ần giả c i quy t 22ế2.5 Định hương g ải i pháp 242.5.1 Mô hình Local Proxy 242.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 283.1 Gi i thi u bài toán 28ớ ệ
Trang 53.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
Trang 6DANH MỤ C HÌNH V Ẽ
Hình 2.1 Mô hình client server 13
Hình 2.2 Quá 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
Trang 7DANH 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ả ộ
Trang 8B NG CH VIẢ Ữ ẾT TẮT
Trang 9CHƯƠ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ổ ến Tuy - binhiê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 ềtoá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 n ng cgừ ủa các ứng d ng video streaming Video là mụ ột loạ ữ ệu đa i d liphươ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ố ất lợi về băng thông, độ ễ và mất gói tin, b tr cùng với một số ấn đề như làm thế nào để v 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
Trang 10đượ ả ềc t i v (download) toà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ị ữ liệu đồ d 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ó yêu c u, ng i dùng có toà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ữ ệu Video được biế li 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ụ ủa các ứng dụng như vậy là bài toán vô cùng cấp cthiết Chính vì vậy tôi lựa chọn đề tài “Nghiên cứ ứng dụng mô hình P2P vào các u
ứ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 : Cơ sở2 lý thuy t ế
Trang 11Trong 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ế định hướt, 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 n ợc điểhư 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 Để ực hiện luận văn thđư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ố ắng hết sức và sự giúp đỡ ận tình của Thầy giáo hướng dẫ g t 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ô để ận văn đượ lu c hoàn thiện hơn
Trang 12CHƯƠ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 Mô hình client/server
2.1.1 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ỗ ến trình đóng vai trò một i titrình qu n lý tài nguyên 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ụ c định cần truy xuất xá
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ộ ến t titrì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ả ời tới tiến trình client l[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 nguyên 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ụ ủa mộ c t server khác
Trang 13Hì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ụ ể ữa client và server Tiến trình server phải nhận thức được thông th giđ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) ậ
Trang 14Hình 2.2 Quá trình gửi một bản tin c a mô hình client server ủ
Quá 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ế độ không bị phong tỏa (non- blocked)
Tiếntrìnhđangphongtỏa
Tiếntrìnhđangxửlý Reply
Request
Provide service Wait
Server Client
Trang 15Trong 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 ậ dữliệu, khi tiến trình phát ra lệnh nhận dữ liệu, nó sẽ nh n 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ộ ứng dụng hai tầng cung cấp nhiều t
trạm làm việc với một tầng trình diễn thống nhất, tầng này tru ền tin với tầng lưu y
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ữ ữ ệu d li
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 soá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
Trang 16Hì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 ầng Một kiến trúc ba tầng có thêm một tầng mới táct h 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 ứ ụ
Trang 17T 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ở ữ ệu như Oracle, SQL Server d li 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: ác định cách thức hiển thị giao diện người dùng x
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: ô hình hóa các quy tắc tác nghiệpm
- Tầng các dịch vụ hạ tầng: ung cấp một chức năng bổ trợ cần thiết cho cứng dụng như các thành phần (truyền thông điệp, hỗ trợ giao tiếp)
2.2 Mô hình Peer to P eer
2.2.1 Khái ni m ệ
Hình 2.5 Mô hình m ng ngang hàng ạ
Trang 18Một mạng máy tính ngang hàng (Peer – to – Peer hoặc P2P) chủ ếu dựa trên sức ymạnh tính toá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ử ụng điển hình cho d
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ệ ới nhất ( mtrong 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ử ụng bộ thu phát không dây mà không cần bất cứ cơ sở ạ d h
tầng cố định nào Những mạng như vậy có ích cho nhiều mục đích sử ụng Chia ) d
s ẻ file chứa audio, video, data hoặc mọi thứ ở định dạng số, các dữ ệu thời gian li
thực, ví dụ như truyền tải giọng nói, video streaming đều có thể ực hiện với công thngh ệP2P
Một mạng P2P thuần túy sẽ không có khái niệm về khách (clien ) và chủt (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 yê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 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 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ủ ếu số lượ, n 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ự ố Đối với cấu trúc tập trung, chỉ ần máy chủ ặp sự ố thì cả ệ c c g c h
Trang 192.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ữ ệu trong mạ li ng đồng đẳng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên cả ạng để m 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 ng không c u trúc là r t ít, m i nút chmạ ấ ấ ỗ ỉ ắ n m bắt thông tin về nh ng ữ
Trang 20toà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ử ụng hệ ống DHT (Distributed Hash Table d th – 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 i v
một phần dữ ệu chia s trong mạng Với cấu trúc này, khi một máy định tuyến lithông báo, nó chỉ ầ c n áp d g m t giao thụn ộ ứ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ẽ ới nhau Một số ạ v 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ỉ ục bao gồm mthô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ẫ là chi phí cao cho các server trung gian Ứng dụng điển hình cho mô n hình mạng này là Napster
Trang 212.3 So sánh mô hình P2P vớ i mô hình Client/Server
- M t m n ngang hàng cho phép ộ ạ g
các node (PCs) óng góp, chia s đ ẻ
ngu n tài nguyên v i nhau Tà ồ ớ i
nguyên riêng r c ẽ ủa các node ( ổ
c ng, CD-ROM má in … Cá ứ , y 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
- Các node đóng vai trò như ả c
Client (truy v n thông tin) và Server ấ
(cung c p thông tin).ấ
- D u ữ liệ đượ ưu tr mc l ữ ở ột Server trung tâm, t c cao (T c truy c p th ng ố độ ố độ ậ ườlớn h n so v i m ng P2P) ơ ớ ạ
- 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à c ent yêli u cầ u
Trang 22Ưu ,nh c i mc am ng P2P,Client/Server ượ đ ể ủ ạ
+ u m: Ư điể
- Không cần server riêng, các client chia
s ẻ tài nguyên Khi mạng càng được mở
rộng thì khả năng hoạt động của hệ
- S dử ụng được với các ứng dụngchia s CSDL ẻ
- Đáng tin cậy hơn (có server riêng)
Trang 23rộ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 Ngoài ra proxy cũng đồng th i có ờ
th ể được sử ụng theo hướng ngược lại khi nhận uỷ d 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ế ất nhiều rkhách hàng có th truy cể ập đến máy ch cùng mủ ộ lúc Hơn nữt a việc tập trung dữ
liệu trên hệ ống máy chủ th 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 soá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 toá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ệ ống được thay đổ th i hoàn toà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ế ột giao thức giữa máy khách và máy chủ, mbâ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 toá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
Trang 24Để xây d ng h th ng trên nh ng vự ệ ố ữ ấn đề ồ ạ ần đượ t n t i c 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]
P2P AGENT
LOCAL PROXY LOCAL PROXY
LOCAL PROXY
USER’S HOST
Hình 2.7 Mô hình Local P roxy
- Module client: tương tự như client trong mô hình client-server