Chươ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àn cầ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ất lớ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ăng nà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 trong kinh 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ạng cá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ông phả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ên tưở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áy tí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ết nố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ác tệ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à mì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ới nhấ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ác cô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ên cạ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ép khá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ựa trê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 được xâ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ác webservice. 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ạy chươ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à đánh giá 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ết quả 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áo cá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 server tạ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 hà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ương trì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 dựng ở trên.
Chương 5 trình bày phương pháp đánh giá về mặt lý thuyết và chương trình thử nghiệm thực tế.
Cuối cùng là kết luận và phương hướng phát triển tiếp theo.
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.
Mục lục
Chương 1. Giới thiệu. 1
1.1Bối cảnh chung. 1
1.2Mục đích của khóa luận. 2
1.3Bố cục khóa luận. 2
Chương 2. Các mô hình mạng chia sẻ file ngang hàng. 4
2.1Mô hình mạng ngang hàng thuần túy. 4
2.2Mô hình lai ghép. 5
2.3Phần mềm chia sẻ file ngang hàng tiêu biểu – Napster 6
Chương 3. Xây dựng hệ thống. 8
3.1Nguồn gốc ý tưởng. 8
3.2Hệ thống chia sẻ ngang hàng lai ghép sử dụng nhiều server chỉ mục. 9
Chương 4. Minh họa hệ thống. 16
4.1Tổ chức các server chỉ mục theo mô hình liên kết chuỗi16
4.2Tổ chức các server chỉ mục theo mô hình sao lặp toàn bộ. 20
Chương 5. Thử nghiệm và đánh giá. 25
4.1Công thức tính. 25
4.2Phương pháp thử nghiệm27
4.3Đánh giá. 30
Chương 6. Kết luận và hướng phát triển. 35
Tài liệu tham khảo. 36
40 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2902 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Khóa luận Phát triển ứng dụng chia sẻ File ngang hàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Dương Khánh Chương
PHÁT TRIỂN ỨNG DỤNG CHIA SẺ FILE NGANG HÀNG
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Hà Nội - 2006
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Dương Khánh Chương
PHÁT TRIỂN ỨNG DỤNG CHIA SẺ FILE NGANG HÀNG
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: T.S Nguyễn Đại Thọ
HÀ NỘI - 2006
Tó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.Mục lục
Chươ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àn cầ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ất lớ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ăng nà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 trong kinh 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ạng cá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ông phả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ên tưở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áy tí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ết nố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ác tệ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à mì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ới nhấ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ác cô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ên cạ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ép khách hàng download từ mạng ngang hàng nhằm tránh sự tắc nghẽn tại server.
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ựa trê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 được xâ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ác webservice. 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ạy chươ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à đánh giá 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ết quả 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áo cá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 server tạo chỉ mục tập trung.
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 hà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ương trì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 dựng ở trên.
Chương 5 trình bày phương pháp đánh giá về mặt lý thuyết và chương trình thử nghiệm thực tế.
Cuối cùng là kết luận và phương hướng phát triển tiếp theo.
Chương 2. Các mô hình mạng chia sẻ file ngang hàng
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 linh hoạ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ày của mô hình mạng ngang hàng phá vỡ các phương thức truyền thống trong mô hình client/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ắc cho 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ệc vớ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 ngang hà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ệu quả 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 trong mạ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
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ết khó 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út cầ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ên chỉ 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ới nhau 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ài nguyê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ười dù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ên kế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ập trung 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ời cá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ỉ mụ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ác server 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ại kết quả cho server đầu tiên. Việc tìm kiếm được chuyển đi giữa các server cho đến khi nà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ìm kiế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ột server 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ểm nú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ác server đề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êu cầ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 gian tì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ệu quả khi thông tin chỉ mục ít, khối lượng lưu trữ không lớn
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ình Napster 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ưu giữ 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 MP3 củ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 đăng nhậ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 trong chỉ 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ạn yê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ếp tớ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 2 ngườ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áy phụ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ểm nút khác.
Napster chính là một ví dụ điển hình của hệ thống chia sẻ file lai ghép sử dụng server chỉ mục. Napster sử dụng nhiều server chỉ mục để tăng hiệu quả nhưng mỗi server chỉ 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.
Chương 3. Xây dựng hệ thống
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ây dự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áy chủ qua yêu cầu HTTP (vd:localhost/listuser.asp), server thực thi và trả về dưới dạng XML.
Đ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ửi file đế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
Trình đón nhận (Listener): chức năng yêu cầu server tìm kiếm địa điểm lưu cá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ười dù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ới trì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ông khả 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ây dự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ền cô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 qua cá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ết nố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.
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ều server 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ết chuỗ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ểm nú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
Bả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ểm nú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ưu trữ 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 đăng thoát. Server trả về kết quả cho biết việc đăng thoát có thành công hay khô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út muốn chia sẻ. Server trả về kết quả cho biết việc chia sẻ thành công hay không.
Public 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 Dataset chứ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 quan tớ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ống nhau 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ành theo 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
Đố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 server mì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ệc kế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út Login (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ểm nú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ìm theo 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ỏa mã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ảng bê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
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
End Sub
Khi người dùng chọn một điểm nút trong danh sách kết quả, chương trình sẽ kết nối tới điểm nút đó và lấy danh sách các file điểm nút đấy chia sẻ để hiển thị.
Private Sub FileSrv_OnNeedListFolder(ByVal sender As Object, ByVal e As _
AxbsFileServerSDK.IBSFileSrvXEvents_OnNeedListFolderEvent) _
Handles FileSrv.OnNeedListFolder
e.aOkay = True
e.aRoot = App_Path()
LogMsg("list folder " + PreSlash(e.aPath))
End Sub
Sau khi nguời dùng chọn file mình muốn download từ phía điểm nút khác, chương trình yêu cầu và nhận file điểm nút kia chia sẻ.
Private Sub FileSrv_OnNeedDownload(ByVal sender As Object, ByVal e As _
AxbsFileServerSDK.IBSFileSrvXEvents_OnNeedDownloadEvent) _
Handles FileSrv.OnNeedDownload
e.aOkay = True
e.aRoot = App_Path()
LogMsg("start downloading " +
PreSlash(e.aPath))
End Sub
Private Sub FileSrv_OnDownloadDone(ByVal sender As Object, ByVal e As _
AxbsFileServerSDK.IBSFileSrvXEvents_OnDownloadDoneEvent) _
Handles FileSrv.OnDownloadDone
LogMsg("finish downloading ")
End Sub
Khi người dùng thoát khỏi hệ thống, chương trình tại điểm nút gọi webservice logout với tham số là IP của mình, đồng thời kết thúc vai trò chia sẻ tới các điểm nút khác.
Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
ws.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].
Chương 4. Minh họa hệ thống
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 peer cụ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ả cho biế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ện công việc ngược lại với Webservice Login. Nó xóa khỏi bảng peer cục bộ bản ghi chứa địa chỉ IP trùng với tham số ip_address trong lời gọi tới nó. Webservice Share cũ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ọi dị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ặc tấ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ục theo 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 S1 quả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ếm trong 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ìm kiếm. Nó trả về server S1 tên người dùng và địa chỉ IP của điểm nút B để server S1 chuyển về cho điểm nút A. Sau khi nhận được những thông tin này, nếu thấy security.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ải file về.
Username: Chuong
IP: 192.168.1.7
Nút A
CSDL
Server S1
3. Tìm kiếm
4. Không tìm thấy
2. Find(“security”)
9. (“Trung”, “192.168.1.8”)
Server S1
7. Tìm thấy nút B
CSDL Server S2
6. Tìm kiếm
Server S2
Nút B
Username: Trung
IP: 192.168.1.8
1. Share(192.168.1.8, "security.pdf")
8. (“Trung”, “192.168.1.8”)
5. Find(“security”)
10. Nút A yêu cầu nhận file “security.pdf”
11. security.pdf
Hình 5. Minh họa mô hình tổ chưưc nhiều server liên kết chuỗi
Chi tiết các bước thực hiện:
Điểm nút B (username: trung) đăng nhập vào server S2. Việc đăng nhập bao gồm 3 công việc: điểm nút đăng nhập vào server với username: trung, IP: 192.168.1.8; điểm nút tiến hành chia sẻ file “security.pdf”; điểm nút mở cổng cho phép các nút khác kết nối vào lấy tài nguyên.
Điểm nút A (username:chuong) đăng nhập vào server S1
Database của 2 server sau khi connect
Server S1: chứa thông tin về điểm nút A
Server S2: chứa thông tin về điểm nút B
Điểm nút A cần tìm kiếm, gọi webservice Find của server S1, server S1 thực hiện tìm kiếm trong cơ sở dữ liệu cục bộ và thấy kết quả tìm kiếm = 0. Kết quả tìm kiếm chưa thỏa mãn yêu cầu, do đó server S1 gọi webservice Find của các server khác mà nó biết (trong trường hợp này là server S2). Server S2 thực hiện yêu cầu và trả về kết quả là điểm nút B (username: trung, ip=192.168.1.8) có chứa tài liệu liên quan, server S1 gửi kết quả này đến điểm nút A. Ngay sau đó điểm nút A connect trực tiếp tới điểm nút B và lấy được danh sách các file điểm nút B chia sẻ, download file cần thiết về máy.
Tổ chức các server chỉ mục theo mô hình sao lặp toàn bộ
Trong mô hình tổ chức này, Webservice Login không chỉ cập nhật các thông tin cần thiết vào cơ sở dữ liệu cục bộ mà còn gọi Webservice Login của các server khác để tất cả các server đều cập nhật thông tin giống như nó. Các Webservice Logout và Share thực hiện theo cùng nguyên tắc. Riêng Webservice Find lại đơn giản, chỉ thực hiện tìm kiếm trên cơ sở dữ liệu cục bộ, không cần giao tiếp với các server khác.
Hình 6 minh họa một hệ thống chia sẻ file ngang hàng tổ chức các server chỉ mục theo phương thức sao lặp toàn bộ. Hệ thống cũng bao gồm hai server chỉ mục và có hai điểm nút đã đăng nhập vào hệ thống giống như ở hình 5. Sau khi hai điểm nút A và B đăng nhập, cả hai server S1 và S2 đều lưu trữ thông tin về cả hai điểm nút. Khi điểm nút B yêu cầu server S2 tìm kiếm theo từ khóa network, server S2 sẽ phát hiện ra ngay điểm nút A có chia sẻ file network.doc thỏa mãn yêu cầu. Nó gửi về cho điểm nút B thông tin về điểm nút A, hoàn toàn không truy vấn server S1.
CSDL Server S2
6. Tìm kiếm
4. Cập nhật A
7. Tìm thấy A
5. Find(“network”)
8. (“Chuong, “192.168.1.7”)
Nút B
Username: Trung
IP: 192.168.1.8
Server S2
Nút A
1. Login(“Chuong”,”192.168.1.7”)
Share(“network.doc”)
Username: Chuong
IP: 192.168.1.7
CSDL
Server S1
2. Cập nhật A
Server S1
3. Login(“Chuong”,”192.168.1.7”)
Share(“network.doc”)
9. Nút B yêu cầu “netword.doc”
10. network.doc
Hình 6. Minh họa tổ chức nhiều server sao lặp toàn bộ chỉ mục
Chi tiết các bước thực hiện:
Điểm nút A (username: chuong) đăng nhập vào server S1
Điểm nút B (username:trung) đăng nhập vào server S2
Database của 2 server sau khi connect
Server S1:
Server S2:
Như vậy mặc dù điểm nút A chỉ kết nối với server S1, server S2 vẫn lưu trữ các thông tin của điểm nút A. Cơ sở dữ liệu của cả 2 server là như nhau.
Điểm nút B yêu cầu tìm kiếm với từ khóa: network, server S2 có thể trả lại kết quả tìm kiếm là điểm nút A mà không cần gọi webservice của server S1. Sau khi nhận được kết quả, điểm nút B kết nối trực tiếp với điểm nút A và lấy tài liệu cần thiết về, server kết thúc vai trò.
Chương 5. Thử nghiệm và đánh giá
Một cách cảm tính ta có thể thấy mô hình tổ chức nhiều server liên kết chuỗi có thời gian đăng nhập nhanh, thời gian tìm kiếm lâu trong khi tổ chức nhiều server sao lặp toàn bộ chỉ mục đăng nhập chiếm nhiều thời gian nhưng tìm kiếm nhanh.. Để đánh giá hai mô hình đã xây dựng phía trên, chúng tôi đưa ra một số giả thiết và công thức dựa trên suy luận toán học, sau đó xây dựng chương trình thử nghiệm để đánh giá các công thức lý thuyết đã đưa ra.
5.1 Công thức tính
Để đưa ra công thức lý thuyết, chúng tôi đề xuất một số tham biến:
Tổng số file trong tập file ảo để các điểm nút chọn chia sẻ: n
Số lượng server chỉ mục: s
Số lượng file mỗi nút chia sẻ: k
Số điểm nút đăng nhập vào mỗi server chỉ mục: m
Độ trễ truyền thông trên mỗi liên kết: D
Giả sử thời gian xử lý cục bộ tại mỗi server là rất nhỏ, có thể bỏ qua. Ta có thể dễ dàng suy ra các công thức xấp xỉ sau
Đối với mô hình liên kết chuỗi
Thời gian đăng nhập trung bình (bao gồm cả chia sẻ) là 4D. Thật vậy, trong mô hình này, việc đăng nhập chỉ tiến hành tại 1 server gồm 2 bước: đăng nhập vào hệ thống và gửi danh sách các file điểm nút chia sẻ. Tại mỗi bước, thời gian truyền thông là 2D và tổng thời gian quá trình đăng nhập là 4D. (Do bỏ qua thời gian xử lý cục bộ)
Thời gian tìm kiếm trung bình là
nếu k rất nhỏ so với n
Thời gian tìm kiếm trung bình trong mô hình liên kết chuỗi phụ thuộc vào xác suất tìm thấy tài liệu tại mỗi server. Với số file mỗi nút chia sẻ là k, tổng số file trong tập file ảo là n, xác suất KHÔNG tìm thấy tài liệu tại một điểm nút là . Do có m điểm nút đăng nhập vào mỗi server chỉ mục, xác suất KHÔNG tìm thấy tài liệu tại một server là . Nếu việc tìm kiếm không thành công tại server đầu tiên, server đó sẽ phải gửi yêu cầu đến server thứ 2, nếu tài liệu vẫn chưa tìm thấy, yêu cầu sẽ được gửi cho đến khi nào có kết quả hoặc tìm kiếm đủ ở tất cả các server. Khi 1 server được yêu cầu tìm kiếm, thời gian tìm kiếm sẽ tăng thêm 2D là quãng thời gian truyền thông. Như vậy thời gian tìm kiếm trung bình là
Có thể dễ thấy nếu xác suất tìm thấy tài liệu tại mỗi server là 1, thời gian tìm kiếm đạt nhỏ nhất và bằng 2D (do chỉ phải tìm tại 1 server). Trong trường hợp xác suất tìm thấy tài liệu tại mỗi server là 0, thời gian tìm kiếm là lớn nhất và bằng 2Ds (do phải tìm kiếm tại tất cả server).
Như vậy đối với mô hình liên kết chuỗi, thời gian đăng nhập trung bình là hằng số, chỉ phụ thuộc vào độ trễ truyền thông. Tuy nhiên thời gian tìm kiếm phụ thuộc vào: số lượng server và xác suất tìm thấy tài liệu tại mỗi server. Khi càng nhiều điểm nút tham gia chia sẻ và chia sẻ nhiều tài liệu, thời gian tìm kiếm sẽ nhanh vì xác suất tìm thấy tài liệu ngay tại server đầu tiên là lớn. Điều này sẽ được thể hiện qua thử nghiệm thực tế.
Đối với mô hình sao lặp toàn bộ
Thời gian đăng nhập trung bình (bao gồm cả chia sẻ) là 4Ds. Như đã trình bày ở trên, thời gian đăng nhập trung bình (bao gồm cả thời gian chia sẻ) tại một server là 4D, do tất cả các server đều phải tham gia quá trình đăng nhập nên tổng thời gian đăng nhập là 4Ds.
Thời gian tìm kiếm trung bình là 2D. Trong mô hình này, các server đều lưu thông tin về tất cả các điểm nút, do đó việc tìm kiếm chỉ diễn ra tại một server và thời gian tìm kiếm chỉ là 2D. (Giả sử bỏ qua thời gian xử lý cục bộ)
Như vậy trong mô hình sao lặp toàn bộ, thời gian đăng nhập cũng như thời gian tìm kiếm chỉ phụ thuộc vào độ trễ truyền thông và số lượng server. Việc tìm kiếm diễn ra tại một server nên thời gian hoàn toàn không phụ thuộc vào xác suất tìm thấy tài liệu.
4.2 Phương pháp thử nghiệm
Để kiểm nghiệm hiệu quả của hai kiến trúc liên kết chuỗi và sao lặp toàn bộ, chúng tôi đã xây dựng một chương trình mô phỏng hoạt động chia sẻ file của một hệ thống gồm 2 server chỉ mục (s = 2) và nhiều điểm nút. Chương trình sẽ các gọi webservice nhiều lần tương ứng giả lập vai trò của nhiều điểm nút. Chúng tôi tạo một tập file ảo (chỉ có tên không có nội dung) gồm 500 file (n = 500). Mỗi điểm nút ảo chia sẻ 10 file (k = 10), lấy ngẫu nhiên trong số 500 file. Các điểm nút ảo không tồn tại thật, chỉ do chương trình mô phỏng theo tương tác với các server chỉ mục. Để đánh giá thời gian đăng nhập trung bình, chương trình thực hiện 100 lần đăng nhập và lấy tổng thời gian chia cho 100. Mỗi lần đăng nhập sẽ kèm theo với đăng ký chia sẻ 10 file. Để đánh giá thời gian tìm kiếm trung bình, trước tiên chương trình thực hiện đăng nhập cho tất cả các điểm nút ảo, mỗi điểm nút ảo chia sẻ 10 file chọn ngẫu nhiên như đã nói ở trên. Số lượng điểm nút ảo đăng nhập vào mỗi server được chọn thử nghiệm lần lượt là 10, 20, 30, 40, và 50 (m = 10, 20, 30, 40, 50). Sau đó chương trình sẽ gọi server thực hiện 100 yêu cầu tìm kiếm, đo tổng thời gian trả lời và chia cho 100. File yêu cầu tìm kiếm được chọn ngẫu nhiên trong tập 500 file đã cho. Độ trễ truyền thông trên các liên kết là 50 ms (D = 50 ms).
Như vậy có thể hiểu chương trình thử nghiệm được xây dưng như sau: Khi ấn nút thử nghiệm, chương trình sẽ yêu cầu các server xóa toàn bộ cơ sở dữ liệu cũ, sau đó lần lượt gửi các yêu cầu webservice để server cập nhật cơ sở dữ liệu thỏa mãn các tham số đã cho. Tiếp theo chương trình thực hiện 100 lần thử nghiệm và lấy tổng thời gian chia cho 100 để tính thời gian trung bình thực hiện một quá trình.
Đo thời gian trung bình quá trình login hệ thống
Khi ấn nút “Tính thời gian Login trung bình”, chương trình sẽ giả lập quá trình Login, sau khi server hoàn thành quá trình login trả về kết quả thành công, chương trình tính thời gian thực thi. Việc login được thực hiện trong nhiều lần và kết quả được tính trung bình. Thời gian hoàn thành tương ứng như sau:
Với kiến trúc sao lặp toàn bộ: Do quá trình login phải thực hiện ở cả 2 server, thời gian cho điểm nút login trung bình là 500ms
Với kiến trúc chuỗi: Thời gian login cho điểm nút trung bình là: 219ms
Đo thời gian tìm kiếm trung bình
Đối với kiến trúc sao lặp toàn bộ, việc tìm kiếm chỉ diễn ra trên 1 server nên kết quả thực hiện nhanh, thời gian tìm kiếm trung bình 1 yêu cầu là: 128ms
Đối với kiến trúc chuỗi, thời gian trung bình thực hiện 1 yêu cầu tìm kiếm là: 219ms. Với bộ tham số đưa ra (số lượng điểm nút: 10, số lượng tài liệu mỗi điểm nút chia sẻ: 10), xác suất tìm thấy tài liệu tại một server chỉ là 10.10/500 = 0.2 (do tập file ảo gồm 500 file). Như vậy phần lớn trường hợp việc tìm kiếm sẽ phải thực hiện tại 2 server, thời gian truyền thông cao dẫn đến thời gian tìm kiếm có kết quả như trên.
Đánh giá
Với thử nghiệm vừa rồi, ta có thể có một số nhận định: Thời gian đăng nhập lâu hơn đáng kể so với thời gian tìm kiếm, trong điều kiện số lượng tìm kiếm ít và xác suất tìm kiếm thành công tại một server cao, việc sử dụng kiến trúc chuỗi đem kết quả tốt hơn, tránh được sự nghẽn mạng khi có nhiều điểm nút cùng tham gia đăng nhập. Đồng thời với xác suất tìm kiếm thành công tại một server là thấp, có nhiều yêu cầu tìm kiếm, nên triển khai mô hình sao lặp chỉ mục toàn bộ để có được thời gian tìm kiếm là thấp nhất.
Để có được cái nhìn chi tiết hơn, chúng tôi tiến hành thử nghiệm với các giá trị tham biến thay đổi và thống kê lại như sau:
Trường hợp 1
Số điểm nút: từ 10 đến 50
Số file 1 điểm nút chia sẻ: 10
Thử nghiệm đo thời gian Login trung bình, kết quả như sau
Hình 7. Đồ thị thời gian Login trung bình với số điểm nút thay đổi
Nhận xét: đồ thị là 2 đường thẳng gần như song song với trục hoành, điều này là hợp lý vì số lượng điểm nút không ảnh hưởng đến thời gian login trung bình của 1 điểm nút. Ta thấy 2 đường lý thuyết đều ở phía dưới vì lý thuyết bỏ qua tính toán xử lý cục bộ (coi bằng 0). Tuy nhiên hình dáng đường thực tế và đường lý thuyết trong cả 2 mô hình là như nhau chứng tỏ sự đúng đắn của lý thuyết.
Trường hợp 2
Số điểm nút: 10
Số file 1 điểm nút chia sẻ: 10 đến 50
Thử nghiệm đo thời gian Login trung bình, kết quả như sau
Hình 8. Đồ thị thời gian Login trung bình với số file một điểm nút chia sẻ thay đôi
Nhận xét: Thời gian login trung bình tăng tuyến tính với số file một điểm nút chia sẻ. Đường thực tế và đường lý thuyết có sự khác nhau về hình dáng do trong tính toán lý thuyết đã bỏ qua độ dài dữ liệu. Khi số file 1 điểm nút chia sẻ tăng lên, độ dài dữ liệu truyền trên mạng tăng do đó thời gian login thực tế tăng tuyến tính như trên đồ thị.
Trường hợp 3
Số điểm nút: 10 đến 50
Số file 1 điểm nút chia sẻ: 10
Số lần thử nghiệm để tính giá trị trung bình: 10
Thử nghiệm đo thời gian trung bình thực hiện 1 tìm kiếm
Hình 9. Đồ thị thời gian tìm kiếm trung bình với số điểm nút thay đổi
Nhận xét: Thực tế kiểm nghiệm cho thấy đúng với dự báo trong lý thuyết. Ở mô hình liên kết chuỗi, khi số điểm nút tăng lên, xác suất tìm thấy tài liệu tăng nên xác suất yêu cầu các server khác tham gia tìm kiếm giảm, do đó thời gian tìm kiếm trung bình giảm dần. Ta thấy mặc dù đường thực tế ở trên đường lý thuyết nhưng hình dạng các đường tương ứng là tương đương.
Trường hợp 4
Số điểm nút: 10
Số file 1 điểm nút chia sẻ: 10 đến 50
Số lần thử nghiệm để tính giá trị trung bình: 10
Thử nghiệm đo thời gian trung bình thực hiện 1 tìm kiếm
Hình 10. Đồ thị thời gian tìm kiếm trung bình với số file 1 điểm nút chia sẻ thay đổi
Nhận xét: Tương tự trường hợp 3, khi số file 1 điểm nút chia sẻ tăng lên, thời gian tìm kiếm trung bình trong mô hình liên kết chuỗi giảm. Đường thực tế trong mô hình sao lặp toàn bộ có phần tăng tuyến tính do: khi số lượng file tăng dẫn đến có nhiều kết quả, độ dài dữ liệu truyền tăng (trong lý thuyết bỏ qua điều này).
Như vậy với chương trình thử nghiệm, ta đã kiểm tra lại được tính đúng đắn trong các công thức lý thuyết. Mặt khác chương trình thử nghiệm giúp ta chọn được mô hình phù hợp với các bộ tham số khác nhau.
Chương 6. Kết luận và hướng phát triển
Trong thời gian có hạn, chúng tôi đã xây dựng thành công ứng dụng chia sẻ file ngang hàng sử dụng nhiều server chỉ mục theo 2 kiến trúc liên kết chuỗi và sao lặp toàn bộ. Phần lập trình tại server và điểm nút được thực hiện bằng ngôn ngữ VB.NET dựa trên ý tưởng của một chương trình chia sẻ file ngang hàng viết trên ASP và Java. Hiệu năng của hai hệ thống liên kết chuỗi và sao lặp toàn bộ đã được đánh giá xấp xỉ bằng suy luận toán học sau đó kiểm nghiệm với kết quả thực hiện một chương trình nhỏ mô phỏng truy vấn của các điểm nút. Việc kiểm nghiệm một mặt chứng tỏ tính đúng đắn của các hệ thống chia sẻ file ngang hàng, một mặt cung cấp một cái nhìn khái quát, giúp đánh giá và chọn kiến trúc phù hợp với số lượng nút, số lượng file chia sẻ,.. sao cho hiệu quả nhất. Để tiếp tục phát triển, bổ sung và hoàn thiện đề tài chúng tôi đề xuất một số hướng nghiên cứu cần được thực hiện trong thời gian tới:
Cải tiến việc tìm kiếm tài nguyên giữa các điểm nút, không chỉ tìm theo từ khóa mà có thể tìm kiếm theo nội dung tài nguyên, tổ chức lại cách đánh chỉ mục để đáp ứng yêu cầu.
Cải tiến chương trình hoạt động tốt với các mức anh ninh tốt hơn, đề ra các biện pháp khi 1 hay nhiều điểm nút có tường lửa.
Cải tiến chương trình đánh giá với các tham số chi tiết, gắn với lý thuyết toán học, phân tích các kết quả thử nghiệm để đưa ra các công thức có ý nghĩa thực tế.
Tài liệu tham khảo
[1] Beverly Yang and Hector Garcia-Molina. “Comparing Hybrid Peer-to-Peer Systems”, In Proceedings of the 27th International Conference on Very Large Data Bases, September 2001.
[2] Chichka, “Building Client/Server applications with VB.NET for secure private file sharing”,
[3] Dreamtech software Team, “Cracking the Code Peer-to-Peer Application Development”
[4] John Risson and Tim Moors, “Survey of Research Towards Robust Peer-to-Peer Networks: Search Method”, Elsevier Computer Networks Journal, 2006.
[5] Ramesh Subramanian and Brian D. Goodman. “Peer to Peer Computing: The Evolution of a Disruptive Technology”, Idea Group, 2005.
[6] Stephanos Androutsellis-Theotokis and Diomidis Spinellis. “A Survey of Peer-to-Peer Content Distribution Technologies”, ACM Computing Surveys, 36(40:335-371, December 2004.
[7] Napster Home Page.
Các file đính kèm theo tài liệu này:
- Phát triển ứng dụng chia sẻ File ngang hàng.doc