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

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

48 14 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 465,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu ứng dụng mô hình P2P vào các ứng dụng client server Nghiên cứu ứng dụng mô hình P2P vào các ứng dụng client server Nghiên cứu ứng dụng mô hình P2P vào các ứng dụng client server luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 1

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

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

Trang 2

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

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ể 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à T ruyền thông, Viện Đào tạo sau đại học đã truyền dạy những kiến thức quý 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 tháng 4 năm 2014

Học viên

Dương Hữu Tùng

Trang 4

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 28

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

Trang 5

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

Trang 6

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

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

Trang 8

BẢNG CHỮ VIẾT TẮT

Trang 9

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

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ị 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ó 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ữ 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 toá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

Trang 11

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

Trang 12

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 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ỗi tiến trình đóng vai trò một trì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ụ 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 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ụ của một server khác

Trang 13

Hình 2.1 Mô 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 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 14

Hì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 ế độ 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)

Tiếntrìnhđangphongtỏa

Tiếntrìnhđangxửlý Reply

Request

Provide service Wait

Server Client

Trang 15

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

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 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 16

Hình 2.3 Kiến trúc Client Server 2 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

Trang 17

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

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 Mô hình Peer to Peer

2.2.1 Khái ni ệm

Trang 18

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 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ử 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 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ủ, 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ệ

Trang 19

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

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

Trang 20

toà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

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

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

Trang 21

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

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

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

- Các node đóng vai trò như cả

Client (truy vấn thông tin) và Server

(cung cấp thông tin)

- Dữ liệu được lưu trữ ở mộ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à client yêu cầu

Trang 22

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

+ Ưu điểm:

- 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ụng chia sẻ CSDL

- Đáng tin cậy hơn (có server riêng)

Trang 23

client-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 Ngoà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 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ệ thống được thay đổ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ế 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 toán và các giao tiếp khác Hệ thống sẽ bao gồm cả thành phần

Trang 24

Để 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]

P2P AGENT

LOCAL PROXY LOCAL PROXY

LOCAL PROXY

USER’S HOST

Hình 2.7 Mô hình Local Proxy

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

Ngày đăng: 29/04/2021, 15:08

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Bin Rong, “Video Streaming over the Internet using Application LayerMulticast”, RMIT University, 2008.” Sách, tạp chí
Tiêu đề: Video Streaming over the Internet using Application Layer Multicast
Tác giả: Bin Rong
Nhà XB: RMIT University
Năm: 2008
2. Dmitri Moltchanov (2012) Client/server and peer-to-peer models: basic concepts Sách, tạp chí
Tiêu đề: Client/server and peer-to-peer models: basic concepts
Tác giả: Dmitri Moltchanov
Năm: 2012
5. L. Abeni, C. Kiraly, R. Lo Cigno, “Achiving performance and robustness in P2P streaming systems”, University of Trento, Italy, Tech. Rep. TR-DISI- 09-041, 2009 Sách, tạp chí
Tiêu đề: Achiving performance and robustness in P2P streaming systems
6. Ha Quoc Trung (2012) “New approach to develop the messenger application: from client server design to p2p implementation”, ACSIT-2012 Sách, tạp chí
Tiêu đề: New approach to develop the messenger application: from client server design to p2p implementation
Tác giả: Ha Quoc Trung
Nhà XB: ACSIT-2012
Năm: 2012
7. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan. “Chord: A scalable peer-to-peer lookup protocol for internet applications” Sách, tạp chí
Tiêu đề: Chord: A scalable peer-to-peer lookup protocol for internet applications
9. Lawrence Chung Client-Server Architecture, Computer Science Program, The University of Texas, Dallas Sách, tạp chí
Tiêu đề: Client-Server Architecture
10. Luong Quy Tho, Ha Quoc Trung: P2P shared-caching model: using P2P to improve client-server application performance. SoICT 2013: 222-226 Sách, tạp chí
Tiêu đề: P2P shared-caching model: using P2P to improve client-server application performance
Tác giả: Luong Quy Tho, Ha Quoc Trung
Nhà XB: SoICT
Năm: 2013
8. Nguyen Quang Thu: Study of distributed replication: design a messenger application using local proxy model. Master’s thesis, Hanoi University of Science and Technology, 4 2013 Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w