1.2 Mục đích của khóa luận Mục đích khóa luận này là xây dựng một số hệ thống chia sẻ file ngang hàng dựatrên nhiều server chỉ mục.. 2.2 Mô hình lai ghépTrong mô hình mạng ngang hàng lai
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 3Tóm tắt
Các hệ thống chia sẻ file ngang hàng đang có những bước phát triển mạnh mẽ trong những năm gần đây Trong kiến trúc client/server, tất cả các tài nguyên đều tập trung vào một chỗ, các điểm nút chỉ truy nhập vào đó chứ hầu như không bao giờ giao tiếp với nhau Ngược lại, các điểm nút tham gia vào mạng ngang hàng đều có thể chứa tài nguyên và khi phát hiện ra nhau là trao đổi trực tiếp với nhau không thông qua server Các hệ thống ngang hàng hiện nay được tổ chức theo một trong hai mô hình : thuần túy hoặc lai ghép Mô hình ngang hàng thuần túy giải quyết vấn đề tìm kiếm tài nguyên dựa vào một mạng lưới các điểm nút đầu mối Trong khi đó, mô hình ngang hàng lai ghép lưu địa chỉ nguồn cung cấp tài nguyên trên các server chỉ mục Nội dung khóa luận phát triển, xây dựng thử nghiệm một số hệ thống chia sẻ file ngang hàng theo phương thức sử dụng nhiều server chỉ mục Các server được tổ chức liên kết với nhau theo chuỗi hay bằng cách sao lặp toàn bộ Trong hệ thống liên kết chuỗi, mỗi server chỉ lưu lại chỉ mục của các điểm nút do nó quản lý Trong hệ thống sao lặp toàn bộ, các server lưu lại chỉ mục của tất cả các điểm nút, bất kể điểm nút đó thuộc chức năng quản lý của server nào Ứng dụng được phát triển bằng công nghệ NET Hiệu năng của hai mô hình sẽ được so sánh đánh giá thông qua lý thuyết và thực nghiệm.
Trang 4Mục lục
Chương 1 Giới thiệu 1
Chương 2 Các mô hình mạng chia sẻ file ngang hàng 4
Chương 3 Xây dựng hệ thống 8
Chương 4 Minh họa hệ thống 16
Chương 5 Thử nghiệm và đánh giá 25
Chương 6 Kết luận và hướng phát triển 35
Tài liệu tham khảo 36
Trang 5Chương 1 Giới thiệu
1.1 Bối cảnh chung
Bạn hãy tưởng tượng về một hệ thống lưu trữ thông tin lý tưởng dành cho toàncầu Hệ thống có thể nhanh chóng xác định và gửi đi một tệp tin (có thể dung lượng rấtlớn) trong số hàng triệu tệp tin tới bất cứ đâu trên thế giới Để đảm bảo được tính năngnày, hệ thống có thể có khả năng tự cài đặt cấu hình, tự hồi phục sau sự cố chứ không
theo cơ chế “kiểm soát từ trung tâm” như các hệ thống lưu trữ hiện đang phổ dụng Ngoài
ra, hệ thống còn phải bảo mật, hỗ trợ đồng thời hàng triệu người sử dụng, có khả năng
“miễn dịch” trước các cuộc tấn công- cả tấn công vật lý và tấn công thông qua các phần
mềm, đoạn mã nguy hại
Đương nhiên, các nhà quản trị luôn “mơ” về một hệ thống như vậy, đặc biệt là khi
mạng Internet ngày càng trở thành một nhân tố quan trọng quyết định thành công trongkinh doanh Trên thực thế, hệ thống lý tưởng ấy thực chất đã và đang tồn tại dưới dạngcác mạng chia sẻ ngang hàng (ví dụ eDonkey, KaZaA)
Nhìn từ góc độ kỹ thuật, “peer-to-peer” hay mạng ngang hàng chỉ khả năng
tương tác trực tiếp giữa hai máy tính cùng cài đặt một phần mềm ứng dụng mà khôngphải thông qua các máy tính trung gian Mô hình kết nối có thể khiến nhiều người liêntưởng tới mạng Internet, tuy nhiên mạng ngang hàng mang các đặc thù riêng
Ngược dòng thời gian, ban đầu mạng Internet được thiết kế theo mô hình phi tập
trung Tuy nhiên càng ngày Internet càng biến đối theo hướng “một trục- nhiều que”
(hub-and-spoke) Các máy tính cá nhân trong mạng lưới kết nối với server ở trung tâm đểtiến hành các tác vụ như gửi/nhận email, duyệt web v.v… Mạng từng bao gồm nhiều máytính ngang hàng, vừa sản xuất vừa tiêu thụ nội dung, nay không khác gì những chiếc tiviđón chờ tín hiệu từ trạm thu phát
Mạng ngang hàng kết nối trực tiếp các máy tính với nhau, và ngay sau khi kếtnối, các máy tính cá nhân có thể thực thi những tác vụ mà chúng không thể thực hiệnđược khi đứng một mình Hầu hết các hệ thống mạng ngang hàng cho phép người sửdụng chia sẻ tài nguyên, bao gồm cả khả năng xử lý, khả năng lưu trữ và băng thông.Trong trường hợp chia sẻ tệp tin âm nhạc, người sử dụng thực tế đã chia sẻ hệ thống cáctệp tin mà qua đó, mọi đối tượng tham gia mạng đều có thể tải về các tệp tin âm nhạc mà
Trang 6mình yêu thích Theo thống kê của CacheLogic (công ty dịch vụ P2P có trụ sở tại Anh),
hơn 50% giao thông mạng xuất phát từ các ứng dụng chia sẻ ngang hàng
“P2P là bước tiến hoá hoàn toàn tự nhiên và hoàn hảo của mạng Internet Thực
tế, P2P đã mang Internet trở lại nguyên bản- theo đúng ý tưởng của những người đầu tiên sáng lập ra Internet”, Ian Clarke- sáng lập viên mạng FreeNet khẳng định.
Hiện nay mạng ngang hàng đang ngày càng phát triển và những tài nguyên mớinhất thường được chia sẻ đầu tiên tại các mạng ngang hàng Một ví dụ nhỏ, phần lớn cáccông ty kinh doanh trò chơi trực tuyến hiện nay khi cung cấp trò chơi đến khách hàng bêncạnh đường dẫn download trực tiếp từ server của công ty đều cung cấp khả năng cho phépkhách hàng download từ mạng ngang hàng nhằm tránh sự tắc nghẽn tại server
1.2 Mục đích của khóa luận
Mục đích khóa luận này là xây dựng một số hệ thống chia sẻ file ngang hàng dựatrên nhiều server chỉ mục Phần xây dựng tại server và chương trình tại điểm nút đượcxây dựng trên nền .Net của Microsoft, các thành phần giao tiếp với nhau qua cácwebservice Sau khi xây dựng thành công hệ thống, chúng tôi đề xuất một số công thức lýthuyết nhằm so sánh hiệu năng của các mô hình Tiếp theo chúng tôi xây dựng và chạychương trình thử nghiệm để đánh giá kết quả thực hiện trên thực tế rồi so sánh và đánhgiá các kết quả lý thuyết đã trình bày trước đó
Tài liệu [5] cung cấp một bức tranh toàn cảnh về những nền tảng công nghệ vàcác lĩnh vực ứng dụng của kiến trúc mạng ngang hàng Bài báo [6] đi sâu khảo sát các kếtquả nghiên cứu và triển khai trong lĩnh vực chia sẻ file ngang hàng Các hệ thống chia sẻfile ngang hàng sử dụng server chỉ mục được phân tích đánh giá chi tiết trong [1] Báocáo [4] thảo luận các phương pháp tạo chỉ mục tìm kiếm trong một bối cảnh rộng hơn,bao gồm cả những hệ thống ngang hàng hoàn toàn phi tập trung, không dựa trên servertạo chỉ mục tập trung
1.3 Bố cục khóa luận
Phần tiếp theo của khóa luận được tổ chức như sau:
Chương 2 giới thiệu các mô hình chia sẻ mạng ngang hàng và giới thiệu
Napster-một phần mềm chia sẻ mạng ngang hàng tiêu biểu
Chương 3 trình bày nguồn gốc ý tưởng và cấu trúc các hệ thống chia sẻ ngang
Trang 7hàng sử dụng nhiều server chỉ mục, bao gồm phần xây dựng server và xây dựng chươngtrình tại điểm nút
Chương 4 minh họa 2 mô hình tổ chức sử dụng nhiều server chỉ mục đã xây
Trang 8Chương 2 Các mô hình mạng chia sẻ file ngang hàng
2.1 Mô hình mạng ngang hàng thuần túy
Mô hình mạng ngang hàng thuần túy hoàn toàn không phụ thuộc vào server Mộtứng dụng mạng ngang hàng thuần túy có khả năng tự động tìm các nút khác một cách linhhoạt, ko cần sự giúp đỡ của server Việc liên lạc giữa các nút bao gồm download vàupload các file, các hoạt động trực tuyến, gửi yêu cầu – đáp trả yêu cầu,… Tính năng nàycủa mô hình mạng ngang hàng phá vỡ các phương thức truyền thống trong mô hìnhclient/server Mạng ngang hàng thuần túy cho phép người dùng thiết lập những quy tắccho chính họ, thiết lập môi trường mạng cho chính họ
Mạng ngang hàng thuần túy cung cấp các tính năng “nối và chạy” khi làm việcvới internet, bạn chỉ cần kết nối với internet là có thể sử dụng các tiện ích mạng nganghàng Một lợi thế khác của thuần mạng ngang hàng là mô hình không chỉ hoạt động hiệuquả trên internet mà còn hoạt động hiệu quả trên mạng cục bộ Lan, intranet Tuy nhiên,vấn đề khó khăn nhất với mô hình mạng ngang hàng thuần túy là việc tìm các nút trongmạng Do không có bất kỳ trung tâm quản trị quản lý các nút khi các nút đăng nhập,người dùng buộc phải tự mình xác định các nút khác
Hình 1 Mô hình mạng ngang hàng thuần túy
Trang 92.2 Mô hình lai ghép
Trong mô hình mạng ngang hàng lai ghép, một hay nhiều server được bổ sung.Tuy nhiên server chỉ đóng vai trò giúp các nút tìm kiếm nhau được dễ dàng, giải quyếtkhó khăn mô hình thuần túy gặp phải Mỗi khi một nút đăng nhập/thoát khỏi hệ thống, nút
đó sẽ kết nối với máy chủ và đăng ký, server sẽ lưu lại chỉ mục về nút đó Khi một nútcần tìm các dịch vụ/tài nguyên tại các nút khác, người dùng sẽ hỏi server, server dựa trênchỉ mục đã lưu để trả về địa chỉ các nút thỏa mãn yêu cầu Sau đó, các nút sẽ kết nối vớinhau và lúc này máy chủ sẽ không đóng bất kỳ vai trò nào, việc cung cấp/sử dụng tàinguyên/dịch vụ hoàn toàn giữa các nút với nhau
Hình 2 Mô hình mạng ngang hàng lai ghép
Trong mô hình chia sẻ mạng ngang hàng lai ghép, nhằm tăng tối đa số ngườidùng, người ta thường sử dụng nhiều server chỉ mục Tùy theo vai trò cũng như sự liênkết giữa các serve, người ta chia thành nhiều kiến trúc, trong báo cáo này, chúng tôi tậptrung nghiên cứu về 2 kiến trúc sau:
• Kiến trúc liên kết chuỗi: Các server liên kết với nhau thành chuỗi để trả lờicác truy vấn của điểm nút Khi một điểm nút đăng nhập, chỉ có một server cập nhật chỉ
Trang 10mục thông tin về nút đó Khi 1 điểm nút yêu cầu tìm kiếm tài nguyên, nếu máy chủ cục bộkhông tìm thấy số lượng tài nguyên đáp ứng đủ yêu cầu, nó sẽ chuyển yêu cầu đó đến cácserver khác trong chuỗi Các server khác sẽ tìm kiếm trong chỉ mục của chính nó và trả lạikết quả cho server đầu tiên Việc tìm kiếm được chuyển đi giữa các server cho đến khinào kết quả thỏa mãn yêu cầu (về số lượng kết quả) hoặc các server đều đã tham gia tìmkiếm Trong mô hình này, việc đăng nhập thực hiện nhanh do chỉ diễn ra ở trên mộtserver nhưng việc tìm kiếm tốn nhiều thời gian do các server trong chuỗi đều thực hiện.Khi xác suất tìm thấy tài liệu tại các server là thấp, thời gian tìm kiếm trung bình tăng lên
do việc tìm kiếm phải thực hiện ở nhiều server
• Kiến trúc sao lặp chỉ mục toàn bộ: Trong kiến trúc này, mỗi khi một điểmnút thuộc một server đăng nhập, thông tin chỉ mục của nó sẽ được cập nhật tại server đó,đồng thời server này sẽ chuyển thông tin chỉ mục tới toàn bộ các server khác để tất cả cácserver đều cập nhật thông tin về điểm nút Vì vậy mỗi khi 1 điểm nút đăng nhập, tất cảcác server đều câp nhật chỉ mục và tốn nhiều thời gian, chi phí Bù lại, khi 1 điểm nút yêucầu tìm kiếm tài nguyên, thời gian tìm kiếm sẽ nhanh do chỉ phải thực hiện tại 1 server (vìtất cả các server đều có đầy đủ thông tin, không cần thiết phải hỏi lẫn nhau) Thời giantìm kiếm không phụ thuộc vào xác suất có tìm thấy tài liệu hay không Mô hình này hiệuquả khi thông tin chỉ mục ít, khối lượng lưu trữ không lớn
2.3 Phần mềm chia sẻ file ngang hàng tiêu biểu – Napster
Napster [7] được Shawn Fanning (19 tuổi) viết ra vào năm 1999 Mô hìnhNapster tập trung vào việc chia sẻ các file nhạc MP3 Khi bạn cần tìm kiếm 1 bài hát, bạn
mở ứng dụng Napster, ứng dụng đăng nhập vào server trung tâm qua internet Server lưugiữ chỉ mục của tất cả các người dùng khác, lưu trữ cấu trúc thư mục chứa các file MP3của người dùng Các thông tin này được tự động cập nhật lại mỗi khi người dùng đăngnhập vào hệ thống Khi bạn gửi yêu cầu tìm kiếm, server của Napster sẽ tìm kiếm trongchỉ mục của các người dùng đang online và liệt kê các người dùng có chứa bài hát bạnyêu cầu Sau đó bạn có thể chọn bất kỳ kết quả nào trong danh sách và liên kết trực tiếptới người dùng đó, kể từ đây máy chủ không còn vai trò nữa, việc download file là giữa 2người dùng Chính vì vậy không có bất kỳ một file nhạc nào được lưu trực tiếp trên máyphục vụ Napster không bán, không lưu trữ, không chuyển các file nhạc, máy phục vụNapster chỉ giúp bạn tìm file nhạc trong máy của người khác và giúp bạn kết nối với điểmnút khác
Trang 11Napster chính là một ví dụ điển hình của hệ thống chia sẻ file lai ghép sử dụngserver chỉ mục Napster sử dụng nhiều server chỉ mục để tăng hiệu quả nhưng mỗi serverchỉ quản lý những điểm nút của mình và các server không “giao tiếp” với nhau Chính vìvậy 2 người dùng thuộc 2 server khác nhau sẽ không kết nối được với nhau.
Trang 12Chương 3 Xây dựng hệ thống
3.1 Nguồn gốc ý tưởng
Ý tưởng thực hiện hệ thống chia sẻ file ngang hàng với nhiều server chỉ mụcđược chúng tôi bắt đầu từ việc nghiên cứu cuốn sách [3] Cuốn sách đề cập đến việc xâydựng một hệ thống chia sẻ file ngang hàng lai ghép có sử dụng 1 server chỉ mục
Cấu trúc chương trình gồm có:
• Server: Được viết bằng ngôn ngữ ASP, cung cấp các dịch vụ: Login, logout,liệt kê các điểm nút, tìm kiếm tài nguyên trên các điểm nút Các điểm nút truy vấn máychủ qua yêu cầu HTTP (vd:localhost/listuser.asp), server thực thi và trả về dưới dạngXML
• Điểm nút: gồm 2 thành phần riêng biệt
Trình duyệt (Browser): Cho phép người dùng login và logout, cho phépđiểm nút khai báo với server các file nó muốn chia sẻ Nó cũng đảm nhiệm công việc gửifile đến trình đón nhận của các điểm nút khác
Hình 3 Kiến trúc hệ thống chia sẻ file ngang hàng lai ghép với 1 server
Trang 13 Trình đón nhận (Listener): chức năng yêu cầu server tìm kiếm địa điểm lưucác file cần tải về Sau khi nhận được danh sách các điểm nút chứa file yêu cầu, ngườidùng có thể chọn một điểm nút bất kỳ trong danh sách Trình đón nhận sẽ kết nối vớitrình duyệt của điểm nút tương ứng để tải file về.
Việc mở rộng cải tiến chương trình nhắc tới ở trên để hỗ trợ nhiều server là khôngkhả thi do hạn chế của ngôn ngữ ASP (các server viết bằng ngôn ngữ ASP được ví nhưcác ốc đảo, không thể giao tiếp được với nhau) Ngoài ra phần chương trình điểm nútđược tách làm 2 phần dẫn đến khó sử dụng và dễ gây hiểu nhầm Vì vậy, chúng tôi xâydựng lại hoàn toàn hệ thống chia sẻ file ngang hàng với nhiều server chỉ mục trên nềncông nghệ NET Các điểm nút truy vấn server và các server giao tiếp với nhau thông quacác Webservice Webservice có khả năng hỗ trợ rất tốt tương tác giữa các máy tính kếtnối với Internet mặc dù các máy tính đó có thể chạy trên những môi trường phần cứng vàphần mềm khác nhau, ở những địa điểm cách biệt nhau Nhờ sử dụng giao thức HTTP,Webservice có thể hoạt động thông suốt, vượt qua cả rào cản tường lửa các cơ quan, xínghiệp thường dựng lên để bảo vệ mạng cục bộ khỏi sự xâm nhập từ bên ngoài và kẽ hở
từ bên trong
3.2 Hệ thống chia sẻ ngang hàng lai ghép sử dụng nhiều server chỉ mục
Mục đích: Xây dựng hệ thống chia sẻ file ngang hàng lai ghép sử dụng nhiềuserver chỉ mục theo 2 mô hình: Mô hình sao lặp chỉ mục toàn bộ và mô hình liên kếtchuỗi Phần xây dựng hệ thống tại server được chúng tôi xây dựng hoàn toàn trên asp.net
có tham khảo cách phân tích thiết kế của [3] Phần xây dựng chương trình tại điểm nútđược chúng tôi xây dựng bằng VB.net, trong đó phần kết nối và lấy tài liệu giữa các điểmnút được tham khảo từ [2]
Như đã phân tích ở trên, điểm khác nhau cơ bản của hai mô hình là ở phần server:quá trình cập nhật chỉ mục và quá trình tìm kiếm Do đó chương trình của cả 2 hệ thốngđều có thành phần chung như sau
• Cơ sở dữ liệu: Gồm 2 bảng
Bảng cơ sở dữ liệu “peer” lưu trữ các thông tin về điểm nút: ip của điểm nút, tênđăng nhập của điểm nút, tình trạng và thời gian đăng nhập của điểm nút
Trang 14Bảng cơ sở dữ liệu “share” lưu trữ các tài nguyên điểm nút chia sẻ: ip của điểmnút và tên file điểm nút đó chia sẻ.
Như vậy server chỉ lưu các chỉ mục, thông tin về điểm nút, hoàn toàn không lưutrữ các file chia sẻ
• Đặc tả các webservice server cung cấp
− Webservice Login : Tham số là địa chỉ IP và tên người dùng đăng nhập.Server trả về kết quả cho biết việc đăng nhập thành công hay không
Public Function Login(ByVal ip_address As String, ByVal user_name As String) As Boolean
− Webservice Logout : Tham số là địa chỉ IP của điểm nút muốn đăngthoát Server trả về kết quả cho biết việc đăng thoát có thành công haykhông
Public Function Logout(ByVal ip_address As String)
As Boolean
− Webservice Share : Tham số là địa chỉ IP và danh sách các file điểm nútmuốn chia sẻ Server trả về kết quả cho biết việc chia sẻ thành công haykhông
Trang 15Public Function Share(ByVal ip_address As String, ByVal file_list As Dataset) As Boolean
− Webservice Find : Tham số là từ khóa cần tìm Server trả về một Datasetchứa địa chỉ IP và tên người dùng của các điểm nút có chia sẻ file liên quantới từ khóa
Public Function Find(ByVal key As String) As DataSet
Phần xử lý trên server của các webservice phụ thuộc vào các server hoạt động theo
mô hình liên kết chuỗi hay sao lặp toàn bộ Tuy nhiên kết quả cuối cùng trả về là giốngnhau trong cả hai trường hợp Các điểm nút không phân biệt được các server vận hànhtheo cơ chế nào
• Chương trình tại điểm nút:
Hình 4 Chương trình chia sẻ file ngang hàng tại điểm nút
Trang 16Đối với điểm nút, việc hệ thống xây dựng theo mô hình liên kết chuỗi hay môhình sao lặp toàn bộ đều hoàn toàn không hề ảnh hưởng, chương trình điểm nút là nhưnhau trong cả 2 trường hợp Chương trình điểm nút cho phép người dùng chọn servermình kết nối, thực hiện log in, log out, tìm kiếm và lấy tài nguyên từ điểm nút khác Việckết nối giữa các điểm nút được xây dựng dựa trên thư viện bsfilesdk được đề cập tại [2].
Để sử dụng chương trình, người dùng gõ tên đăng nhập, chọn server và ấn nútLogin (có thể thêm bớt danh sách server bằng cách ấn nút Thay đổi danh sách server).Sau khi kết nối với server, chương trình tự động gửi lên server danh sách các file điểm nút
đó chia sẻ (là các file có trong thư mục của chương trình) Để tìm kiếm tài nguyên điểmnút khác, người dùng gõ từ khóa và ấn nút Tìm kiếm Chương trình yêu cầu server tìmtheo từ khóa và kết quả trả về sẽ được gửi dưới dạng dataset danh sách các điểm nút thỏamãn Khi người dùng chọn một điểm nút trong danh sách các điểm nút thỏa mãn, bảngbên dưới sẽ hiện ra các file điểm nút đó chia sẻ, người dùng chỉ cần chọn file thích hợp và
ấn nút download để tải file về
Chương trình tại điểm nút được xây dựng như sau:
• Khi nguời dùng ấn nút Login để đăng nhập, chương trình gọi webservice Login (do server cũng cấp) với các tham số là tên người dùng và IP của điểm nút
Private Sub btnConnect_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
ok = ws.Login(FileSrv.LocalIP, txtUsername.Text)
If ok Then
MessageBox.Show("Đăng nhập thành công",
"Thông tin") btnConnect.Enabled = False
btnDisconnect.Enabled = True
Else
MessageBox.Show("Đăng nhập thất bại",
"Thông tin") End If
Trang 17• Sau khi quá trình đăng nhập thành công, chương trình gọi webservice share với tham số là IP của điểm nút và danh sách các file có trong thư mục chia sẻ.
files = Directory.GetFiles(b)
ws.Share(FileSrv.LocalIP, files)
• Tiếp theo chương trình tại điểm nút thực hiện mở cổng, lắng nghe yêu cầu lấy file
từ điểm nút khác, khởi động vai trò như là server trong việc cung cấp dịch vụ với điểm nút khác
FileSrv.Start
• Khi người dùng yêu cầu tìm kiếm, chương trình gọi webservice Find tại server và nhận được kết quả dưới dạng dataset Sau khi có kết quả, chương trình tách dữ liệu
từ dataset nhận được và hiển thị danh sách các kết quả
Private Sub btnSearch_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim dsUser As New DataSet
dsUser = ws.Find(txtSearch.Text)
lstResult.Items.Clear()
If dsUser.Tables(0).Rows.Count = 0 Then
MessageBox.Show("Không tìm thấy tài liệu
thỏa mãn", "Thông tin") Else
MessageBox.Show("Tìm kiếm thành công",
"Thông tin") For i = 1 To dsUser.Tables(0).Rows.Count lstResult.Items.Add(dsUser.Tables(0).Rows(i).Item(0) & "(" &
dsUser.Tables(0).Rows(i).Item(1) & ")") Next
Trang 18Private Sub btnDisconnect_Click( ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnDisconnect.Click
Trang 19ws.Logout(FileSrv.LocalIP)
btnConnect.Enabled = True
btnDisconnect.Enabled = False
FileSrv.Stop() End Sub
Trên đây là một số chức năng chính của chương trình tại điểm nút Chương trình được xây dựng bằng VB.net, phần chương trình các điểm nút kết nối và chia sẻ file cho nhau được tham khảo từ [2]
Trang 20Chương 4 Minh họa hệ thống
4.1 Tổ chức các server chỉ mục theo mô hình liên kết chuỗi
Trong mô hình tổ chức này, webservice Login đơn giản chỉ lưu vào bảng peercục bộ địa chỉ IP, tên người dùng, thời điểm đăng nhập của điểm nút và trả về kết quả chobiết việc đăng nhập có thành công hay không Địa chỉ IP và tên người dùng server lấy từcác tham số ip_address và user_name tương ứng trong lời gọi Login từ điểm nút.Thời điểm đăng nhập là thời gian hiện tại trên server Webservice Logout thực hiệncông việc ngược lại với Webservice Login Nó xóa khỏi bảng peer cục bộ bản ghichứa địa chỉ IP trùng với tham số ip_address trong lời gọi tới nó Webservice Sharecũng chỉ thực hiện công việc đơn giản là lưu vào bảng share cục bộ danh sách các file
do điểm nút thực hiện lời gọi gửi tới Webservice Find được cài đặt tương đối phức tạp.Sau khi tìm kiếm cục bộ, nếu kết quả không thỏa mãn yêu cầu về số lượng, server sẽ gọidịch vụ Find tại các server khác cho đến khi số lượng kết quả tìm được thỏa mãn hoặctất cả các server đều đã tham gia vào quá trình tìm kiếm
Hình 5 minh họa một hệ thống chia sẻ file ngang hàng tổ chức các server chỉ mụctheo phương thức liên kết chuỗi Hệ thống gồm có hai server chỉ mục S1 và S2 Server S1quản lý điểm nút A Server S2 quản lý điểm nút B Hai điểm nút đã đăng nhập vào hệthống Điểm nút B đăng ký với server S2 chia sẻ một file có tên là security.pdf.Điểm nút A yêu cầu server S1 tìm kiếm file theo từ khóa security Server S1 tìm kiếmtrong cơ sở dữ liệu cục bộ không có kết quả Nó liền yêu cầu server B tìm kiếm tiếp.Server S2 tìm thấy điểm nút B có chứa file security.pdf thỏa mãn tiêu chuẩn tìmkiếm Nó trả về server S1 tên người dùng và địa chỉ IP của điểm nút B để server S1chuyển về cho điểm nút A Sau khi nhận được những thông tin này, nếu thấysecurity.pdf đúng là file cần tìm, điểm nút A kết nối trực tiếp với điểm nút B để tảifile về