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

Xây dựng chương trình truyền file theo mô hình p2p napster

27 1,8K 19

Đ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 27
Dung lượng 818,5 KB

Nội dung

Xây dựng chương trình truyền file theo mô hình p2p napster

Trang 1

LỜI MỞ ĐẦU

Tốc độ phát triển của công nghệ đã mang đến cho người dùng cuối những ứngdụng, tiện ích miễn phí và chất lượng hơn Nhưng dù công nghệ thay đổi, biến chuyểnthế nào, nhu cầu chia sẻ dữ liệu vẫn luôn cần thiết đối với tất cả mọi người

Con người sử dụng mạng Internet chính là để tìm kiếm thông tin, thông tin thì córất nhiều định dạng Trong thời gian gần đây, chia sẻ file ngang hàng đã nổi lên nhưmột lĩnh vực ứng dụng chiếm tỉ lệ sử dụng băng thông lớn trong mạng Internet Bắtđầu từ hiện tượng Napster vào cuối những năm 90, sự phổ biến của các chương trìnhchia sẻ file ngang hàng như Gnutella, Freenet, Kazzaa đã tạo nên một xu hướng pháttriển mạnh mẽ việc chia sẻ nội dung trong cộng đồng người dùng Internet Hệ thốngmạng ngang hàng và các ứng dụng chia sẻ file ngang hàng cũng trở thành một đề tàithu hút được nhiều sự quan tâm, nghiên cứu của các nhà khoa học

Các hệ thống chia sẻ file ngang hàng đang ngày càng phổ dụng nhờ những lợiđiểm rõ rệt so với hình thức chia sẻ file trên nền Web theo kiến trúc client - server.Tuy nhiên, các ứng dụng chia sẻ file ngang hàng phổ biến hiện nay trên Internet vẫncòn một hạn chế lớn Chúng mới chỉ cho phép người dùng tìm kiếm file theo tên haygọi chung là định danh chứ chưa có chức năng truy xuất theo nội dung

Trang 2

LỜI CẢM ƠN

Lời đầu tiên em xin cảm ơn các Thầy Cô Trường Đại Học Bách Khoa, đã cung cấp

cho em các thông tin, kiến thức vô cùng quý báu và cần thiết trong suốt thời gian học

tập tại trường để em có thể thực hiện và hoàn thành đồ án môn học của mình

Để thực hiện và hoàn thành tốt đề tài này, em đã nhận được sự giúp đỡ và hướng

dẫn rất tận tình của các Thầy Cô thuộc Khoa Công Nghệ Thông Tin

Đặc biệt em xin chân thành gửi lời cảm ơn tới Thầy: Mai Văn Hà người đã trực

tiếp hướng dẫn và tận tình giúp đỡ chúng em rất nhiều trong suốt thời gian thực hiện

đồ án môn học này

Cuối cùng, xin chân thành cảm ơn tất cả các bạn đã ủng hộ, giúp đỡ, chia sẻ kiến

thức, kinh nghiệm và tài liệu có được cho bọn mình trong quá trình nghiên cứu và

thực hiện đề tài

Do còn giới hạn về mặt thời gian cũng như kinh nghiệm thực tiễn nên đề tài không

tránh khỏi những sai sót ngoài ý muốn Chúng em rất mong nhận được sự thông cảm

của Quý Thầy Cô và mong đón nhận sự đóng góp ý kiến của Thầy Cô và các bạn

Em Xin Chân Thành Cảm Ơn ! Đà Nẵng, Ngày 24 Tháng 12 Năm 2013

Sinh Viên Thực Hiện

Nguyễn Văn Phúc

Trang 3

NHẬN XÉT (Của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 4

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI 1

1.1Bối cảnh của để tài 1

1.2Mục tiêu và mục đích đề tài 1

1.3 Phương pháp triển khai 1

1.4 Môi trường áp dụng 1

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2

2.1 Giới thiệu về mạng ngang hàng P2P 2

2.1.1 Khái niệm cơ bản 2

2.1.2 Đặc điểm của mạng ngang hàng 3

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

2.1.4 Tiện ích của mạng ngang hàng 4

2.1.5 Những khó khăn trong thiết kế mạng ngang hàng 4

2.2 Mô hình mạng Naspter 6

2.2.1 Giới thiệu mô hình mạng Naspter 6

2.2.2 Sơ đồ hoạt động của Naspter 6

CHƯƠNG 3: THIẾT KẾ VẦ XÂY DỰNG CHƯƠNG TRÌNH 8

3.1 Phân tích yêu cầu 8

3.2 Phân tích các chức năng 9

3.2.1 Chức năng của Napster Server 9

3.2.2 Chức năng của Napster Client 9

3.2.3 Thiết kế dữ liệu 11

CHƯƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 12

4.1 Môi trường triển khai 12

4.1.1 Giới thiệu ngôn ngữ lập trình Java 12

4.1.2 Giới thiệu hệ quản trị SQL Server 14

4.2 Demo sản phẩm 16

4.2.1 Giao diện chính của Client: 16

4.2.2 Giao diện quản lý của Napster Server: 20

4.3 Kết luận 21

TÀI LIỆU THAM KHẢO 22

Trang 5

MỤC LỤC HÌNH ẢNH

Hình 1: Mô hình hoạt động của Napster 7

Hình 2: Chức năng chia sẻ file 10

Hình 3: Tìm kiếm file 10

Hình 4: Truyền và nhận file 11

Hình 5: Giao diện chính của Client 16

Hình 6: Chọn file để tiến hành chia sẻ 16

Hình 7: Chọn nút chia sẻ 17

Hình 8: File vừa mới chia sẻ 17

Hình 9: Tìm kiếm file cần tải 18

Hình 10: Tiến hành chọn nơi lưu file 18

Hình 11: Quá trình Download file 19

Hình 12: Download file thành công 19

Hình 13: Giao diện server khi chưa có client kết nối 20

Hình 14: Thông tin Client và các file đã chia sẻ 20

Trang 6

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

1.1 Bối cảnh của để tài

- Với sự phát triển mạnh mẽ như công nghệ thông tin thì máy tính đã trở thành công cụ đắc lực và không thể thiếu của con người Con người sử dụng mạng Internet phần lớn là để tìm kiếm tài liệu, thông tin Vì vậy em đã chọn đề tài

“XÂY DỰNG CHƯƠNG TRÌNH TRUYỀN FILE THEO MÔ HÌNH NAPSTER” Chương trình được xây dựng bằng ngôn ngữ lập trình Java, dựa

P2P-trên ứng dụng của mạng ngang hàng P2P

1.2 Mục tiêu và mục đích đề tài

- Mục tiêu: hiểu công nghệ truy xuất thông tin để xây dựng một ứng dụng chia

sẻ file ngang hàng có chức năng tìm kiếm theo nội dung

- Mục đích: Tìm Xây dựng được chương trình truyền file theo mô hình

P2P-Napster

1.3 Phương pháp triển khai

− Lập kế hoạch thực hiện đề tài

− Thiết kế hệ thống và dữ liệu

− Tìm hiểu giao thức TCP/IP

− Kiểm thử và sửa lỗi

− Tổng hợp và viết báo cáo

1.4 Môi trường áp dụng

- Ngôn ngữ lập trình : Java

- Quản trị cơ sở dữ liệu: SQL server 2012

- Môi trường làm việc: Netbean 7.4

Trang 7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về mạng ngang hàng P2P

2.1.1 Khái niệm cơ bản

Mạng ngang hàng không phải là một vấn đề hoàn toàn mới Các máy chủ dịch vụthư điện tử (Mail servers) hoặc các máy chủ phân giải tên miền (Domain NameServers) được kết nối với nhau tạo ra một mạng ngang hàng Ví dụ như giữa các máychủ thư điện tử có thể thực hiện tương tác trực tiếp với nhau Chúng có thể gửi, nhậnhoặc chuyển tiếp các email cho nhau

Tuy các dịch vụ thư điện tử hay DNS đã xuất hiện từ lâu trên Internet nhưng kháiniệm mạng ngang hàng hay tính toán ngang hàng (P2P – Peer-to-Peer) thì mới đượcđưa ra gần đây Mạng ngang hàng là những hệ phân tán với đặc thù là không tồn tạitrong nó một cơ cấu điều khiển tập trung hoặc một tổ chức có phân cấp Trong một hệthống thuần túy ngang hàng, chương trình chạy trên mỗi điểm nút có vai trò hoàn toàntương đương và bình đẳng với nhau Tính chất này đối lập hoàn toàn với kiến trúcclient – server truyền thống nơi có một hoặc một số điểm nút chỉ đóng vai trò cungcấp dịch vụ (servers) và các điểm nút còn lại chỉ sử dụng dịch vụ (clients)

Lợi điểm rõ rệt nhất của kiến trúc ngang hàng là khả năng tận dụng tốt hơn tàinguyên (xử lý, băng thông, lưu trữ) trong toàn mạng Bên cạnh đó, kiến trúc này cũnggiúp cho dịch vụ mạng tránh khỏi tình trạng ngừng trệ khi server gặp phải trục trặc.Tuy nhiên mô hình này cũng tồn tại nhược điểm là khó kiểm soát được trạng thái,hành vi của các điểm nút trên toàn mạng Ngoài ra nó cũng đòi hỏi các máy khi thamgia vào một mạng ngang hàng phải có năng lực xử lý cũng như băng thông gần tươngđương như nhau

Không giống như trong kiến trúc client – server, hiệu suất hoạt động chung củamạng ngang hàng có xu hướng tăng lên khi gia tăng số điểm nút tham gia Hiệu suấtnày cũng phụ thuộc vào từng ứng dụng mạng cụ thể, vào giao thức ngang hàng và cấuhình mạng (topology)

Trang 8

2.1.2 Đặc điểm của mạng ngang hàng

Các mạng ngang hàng ngày nay thường mang một số đặc trưng phổ biến sau:

 Các điểm nút trong mạng có thể nhận biết lẫn nhau, nghĩa là có một cơ chế nào

đó giúp cho một điểm nút khi tham gia vào mạng có thể xác định một máykhác cũng là thành viên của mạng Từ đó chúng có thể định vị được nhau, gửithông điệp tới nhau và nhận thông điệp từ nhau

 Các điểm nút tạo ra một mạng kết nối ảo và ở một mức trừu tượng cao hơn sovới các cơ cấu tổ chức như: tường lửa (firewall), NAT (Network AddressTranslation), mạng con (subnet) Mỗi điểm nút có thể nằm trong các mạng conkhác nhau, chịu những cơ chế tổ chức, kiểm soát và giới hạn hoàn toàn riêngbiệt Tuy nhiên khi đã tham gia vào mạng, chúng sẽ tổ chức được những mốiliên kết logic với nhau thông qua việc sử dụng các dịch vụ hoặc chạy các ứngdụng ở tầng cao hơn so với những cơ chế vừa được nhắc tới Tạo ra một mạngkết nối logic giữa những điểm nút bị biệt lập hóa trong các mạng riêng biệtchính là ý tưởng xuyên suốt nhất của kiến trúc ngang hàng

 Mỗi điểm nút tự nó có thể vừa đóng vai trò của client vừa đóng vai trò củaserver Điều này thể hiện rõ vai trò bình đẳng và độc lập của từng điểm nút.Mọi điểm nút vừa có thể cung cấp dịch vụ cho các điểm nút khác vừa có thể sửdụng dịch vụ của một hay nhiều điểm nút còn lại

 Xuất hiện một số nhóm điểm nút liên kết với nhau để chia sẻ dữ liệu và cộngtác với nhau trong xử lý Đây là sự tổ hợp lại các điểm nút có những mối liên

hệ chặt chẽ và mang tính tương tác gần gũi hơn trong quá trình hoạt động củaứng dụng mạng

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

Các ứng dụng mạng ngang hàng có thể được chia thành một số nhóm như sau:

 Chia sẻ file: Gnutella, FastTrack, Napster

toán lưới

Trang 9

 Phân phối nội dung: OpenCola, Blue Falcon Networks, Konitiki.

 Truyền thông P2P: AOL Instant Messenger, Yahoo! Messenger, ICQ, Jabber

2.1.4 Tiện ích của mạng ngang hàng

 Giúp cho người dùng dễ dàng tìm được dữ liệu cần thiết

 Tận dụng được tiện ích tổng hợp: Nơi lưu trữ, thông tin và chi phí tính toánđược phân phối giữa các PEER, làm các máy tính tham gia vào mạng sẽ dễdàng có được thông tin yêu cầu

 Tăng độ tin cậy

 Chứa đựng rất nhiều thông tin: Trong mạng P2P có rất nhiều các máy tính tham

ra vào, bản thân mỗi máy tính đã chứa nhiều thông tin, trong khi đó các công

cụ tìm kiếm chỉ có thể nắm bắt được khoảng 20% nội dung của các Website

2.1.5 Những khó khăn trong thiết kế mạng ngang hàng

 Cân đối băng thông: Trong phần lớn các ứng dụng chạy trên mạng ngang hàng,

do mỗi điểm nút đều đóng cả hai vai trò: client và server nên tỉ lệ sử dụng băngthông đầu ra (outbound bandwidth) và băng thông đầu vào (inboundbandwidth) tại từng điểm nút là tương đối cân bằng Tuy nhiên các nhà cungcấp dịch vụ mạng (ISPs) lại thường triển khai các mạng không đối xứng trong

đó dành sự ưu tiên cho phần băng thông đầu vào Ví dụ một số ISP của cácmạng DSL hỗ trợ 1.5Mbps băng thông đầu vào nhưng chỉ có 128Kbps chobăng thông đầu ra Cho dù băng thông tổng cộng của kết nối vật lý có được mởrộng thì hạ tầng kỹ thuật của các ISP vẫn sẽ chủ yếu hỗ trợ cơ chế bất đối xứng.Giải pháp triệt để cho vấn đề này có thể đến từ sự cộng tác giữa các ISP vàkhách hàng bằng việc triển khai những thiết bị mạng chuyên dụng

 Tổ chức không gian tên: Việc đặt tên cho các website được thực hiện thông qua

hệ thống phân cấp của dịch vụ phân giải tên miền (DNS) Tuy nhiên trong cácmạng ngang hàng không tồn tại một cơ chế tương tự Không như các máy chủdịch vụ web, các điểm nút trong mạng ngang hàng không tồn tại ở trạng thái

Trang 10

tĩnh Thời điểm và khoảng thời gian tham gia vào mạng của mỗi điểm nút cũng

ko thể xác định được Công việc tạo ra một tên (định danh) duy nhất cho cácđối tượng, thành phần của mạng phải được thực hiện bởi chính người phát triểnứng dụng và do đó nó phụ thuộc vào đặc thù của từng ứng dụng

 Chứng thực và kiểm tra quyền truy cập của người dùng: Nếu tất cả các file đềuđược đặt trên server thì sẽ dễ dàng hơn trong việc chứng thực người dùng cũngnhư kiểm tra quyền hạn truy cập của họ đối với dữ liệu Tuy nhiên do tính chấtphân tán của mạng ngang hàng, công việc này phải được thực hiện bởi từngđiểm nút Người phát triển khi muốn xây dựng một ứng dụng ngang hàng hoànchỉnh cần quan tâm nhiều đến vấn đề bảo mật, chống các hành động xâm nhậptrái phép làm ảnh hưởng tới dữ liệu

 Kiểm soát hành vi của người dùng: Do không thể lưu trữ tập trung thông tin vềhành động của các điểm nút nên rất khó kiểm soát được những hành động đó.Lấy ví dụ trong một mạng chia sẻ file ngang hàng, người dùng có thể thực hiệnmột trong những hành vi không thực sự phù hợp như sau:

+ Không chia sẻ bất kỳ file nào trên máy mình

+ Chia sẻ các file bị lỗi

+ Chia sẻ các file chứa mã nguy hiểm, virus

+ Chia sẻ các file mà nội dung của nó chắc chắn không được bất kỳ ai quantâm

+ Không cho phép các điểm nút khác tải về những file được chia sẻ trênmáy mình

Nếu tất cả các điểm nút tham gia đều thực hiện những hành vi tiêu cực như trên thìhoạt động của mạng ngang hàng thực sự không hiệu quả và kém an toàn Tùy thuộcvào từng ứng dụng cụ thể, người thiết kế và phát triển phải thiết lập những cơ chếkiểm soát hành vi của các điểm nút để bảo đảm rằng chúng thực sự có những đónggóp tích cực cho cộng đồng sử dụng mạng

Trang 11

2.2 Mô hình mạng Naspter

2.2.1 Giới thiệu mô hình mạng Naspter

Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế hệthứ nhất, chúng được dùng cho việc chia sẻ các file giữa các người dùng Internet,được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi yếu tố về luậtpháp Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong các ứng dụngkhác như: Audiogalaxy, WinMX Với Napster, việc tìm kiếm file bị thất bại khi bảngtìm kiếm trên máy chủ vì lý do nào đó không thực hiện được Chỉ có các file truy vấn

và việc lưu trữ được phân tán, vì vậy máy chủ đóng vai trò là một nút cổ chai Khảnăng tính toán và lưu trữ của máy chủ tìm kiếm phải tương xứng với số nút mạngtrong hệ thống, do đó khả năng mở rộng mạng bị hạn chế rất nhiều

Napster là một mô hình mạng lai P2P (Hybrid P2P), nó có chứa máy chủ trung tâmnắm giữ những thông tin trên mỗi peer và phản hồi lại những yêu cầu tìm kiếm tàinguyên trên các peer khác Máy chủ không lưu trữ các tài nguyên được chia sẻ mà nóchỉ có nhiệm vụ thu thập những tài nguyên được chia sẻ từ các máy peer trong mạng

và hồi đáp lại thông tin mà máy peer chứa thông tin chia sẻ cho các máy yêu cầu

+ Cần quản trị mạng (central server)

2.2.2 Sơ đồ hoạt động của Naspter

 Mỗi client lưu trữ files định chia sẻ với các node khác trong mạng

 Một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP address,connection bandwidth ….)

Trang 12

 Một bảng liệt kê danh sách các files mà mỗi người dùng định chia sẻ (tên file,thời gian tạo file …….)

tâm, các yêu cầu tìm kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêucầu được giải quyết máy chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyêntrong mạng và quá trình truyền file được thực hiện theo đúng cơ chế của mạngngang hàng, giữa các host với nhau mà không cần quan máy chủ trung tâm

Hình 1: Mô hình hoạt động của Napster

Trang 13

CHƯƠNG 3: THIẾT KẾ VẦ XÂY DỰNG CHƯƠNG TRÌNH

3.1 Phân tích yêu cầu

Trong mục này em sẽ đưa ra giải pháp xây dựng một chương trình ứng dụng chia

sẻ file trong mạng ngang hàng theo kiến trúc Napster, cung cấp khả năng tìm kiếmtheo nội dung Ứng dụng bao gồm ba chức năng chính sau:

 Cho phép người dùng tại các điểm nút khi tham gia vào mạng có thể tiến hànhchia sẻ file và dừng chia sẻ các tài liệu trên máy của mình

 Cho phép người dùng có thể đưa ra những truy vấn để tìm kiếm theo nội dungcác tài liệu đang được chia sẻ trên phạm vi toàn mạng

 Cho phép người dùng có thể tải các tài liệu đã chia sẻ tại các điểm nút khácnhau

Để thực hiện được ba chức năng nêu trên, chương trình sẽ tách thành hai thànhphần triển khai ở hai phía: phía các điểm nút và phía các máy chủ tìm kiếm Nhiệm vụtriển khai trên máy chủ tìm kiếm:

 Tổ chức xây dựng và cập nhật chỉ mục tìm kiếm

 Tiếp nhận truy vấn từ các điểm nút, tìm kiếm dựa trên chỉ mục và trả về danhsách kết quả

Nhiệm vụ của thành phần triển khai tại các điểm nút:

Ngày đăng: 18/11/2015, 16:16

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w