Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

65 566 2
Tài liệu đã được kiểm tra trùng lặp
Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Đ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

Luận văn Xây dựng ứng dụng dựa mạng ngang hàng Xây dựng ứng dụng dựa mạng ngang hàng MỞ ĐẦU Tốc độ phát triển công nghệ mang đến cho người dùng cuối ứng dụng, tiện ích miễn phí chất lượng Nhưng dù công nghệ thay đổi, biến chuyển nào, nhu cầu chia sẻ liệu cần thiết tất người Con người sử dụng mạng Internet để tìm kiếm thơng tin, thơng tin có nhiều định dạng Trong thời gian gần đây, chia sẻ file ngang hàng lên lĩnh vực ứng dụng chiếm tỉ lệ sử dụng băng thông lớn mạng Internet Bắt đầu từ tượng Napster vào cuối năm 90, phổ biến chương trình chia sẻ file ngang hàng Gnutella, Freenet, Kazzaa tạo nên xu hướng phát triển mạnh mẽ việc chia sẻ nội dung cộng đồng người dùng Internet Hệ thống mạng ngang hàng ứng dụng chia sẻ file ngang hàng trở thành đề tài thu hút nhiều quan tâm, nghiên cứu nhà khoa học Các hệ thống chia sẻ file ngang hàng ngày phổ dụng nhờ lợi điểm rõ rệt so với hình thức chia sẻ file Web theo kiến trúc client server Tuy nhiên, ứng dụng chia sẻ file ngang hàng phổ biến Internet hạn chế lớn Chúng cho phép người dùng tìm kiếm file theo tên hay gọi chung định danh chưa có chức truy xuất theo nội dung Mục đích khóa luận tốt nghiệp khai thác thành tựu công nghệ truy xuất thông tin để xây dựng ứng dụng chia sẻ file ngang hàng có chức tìm kiếm theo nội dung Hệ thống xây dựng theo mô hình mạng ngang hàng lai ghép, kết hợp phương thức trao đổi trực tiếp không thông qua trung gian với giải pháp sử dụng máy chủ tìm kiếm Chiến lược quản lý tập trung dựa máy chủ tìm kiếm giúp khắc phục khó khăn việc tìm kiếm thơng tin phân tán Máy chủ tìm kiếm khơng chứa nội dung file Nó cho biết ứng với từ khóa cho trước có file chúng Trang -1- Xây dựng ứng dụng dựa mạng ngang hàng nằm đâu số điểm nút tham gia vào hệ thống Chương trình phát triển ngơn ngữ lập trình Java với tính tìm kiếm theo nội dung phát triển dựa thư viện mã nguồn mở Lucene Luận văn xây dựng ứng dụng dựa mạng ngang hàng Luận văn chia thành chương • Chương 1: Tổng quan mạng chia sẻ file ngang hàng • Chương 2: Mơ tả số phương pháp, kỹ thuật tạo mục cho tài liệu tìm kiếm dựa mục • Chương 3: Giải pháp xây dựng ứng dụng • Chương 4: Cài đặt chương trình • Chương 5: Kết thực chương trình Mặc dù cố gắng với động viên giúp đỡ tận tình thầy giáo hướng dẫn xong trình độ cịn hạn chế, nội dung đề tài phức tạp, phạm vi đề tài rộng nên khó tránh khỏi sai sót q trình làm đố án Em mong dẫn thầy góp ý bạn để chương trình em hồn thiện Cuối em xin chân thành cảm ơn động viên giúp đỡ nhiệt tình thầy hướng dẫn: TS Phạm Hồng Thái CN Lương Việt Nguyên giúp đỡ em hồn thành đề tài Hải Phịng, Tháng năm 2007 Sinh viên: Nguyễn Thị Hoa Trang -2- Xây dựng ứng dụng dựa mạng ngang hàng Chương 1: TỔNG QUAN VỀ MẠNG CHIA SẺ FILE NGANG HÀNG 1.1 Giới thiệu mạng ngang hàng (peer to peer – P2P) 1.1.1 Khái niệm Mạng ngang hàng vấn đề hoàn toàn Các máy chủ dịch vụ thư điện tử (Mail servers) máy chủ phân giải tên miền (Domain Name Servers) kết nối với tạo mạng ngang hàng Ví dụ máy chủ thư điện tử thực tương tác trực tiếp với Chúng gửi, nhận chuyển tiếp email cho Tuy dịch vụ thư điện tử hay DNS xuất từ lâu Internet khái niệm mạng ngang hàng hay tính tốn ngang hàng (P2P – Peer-to-Peer) đưa gần Mạng ngang hàng hệ phân tán với đặc thù khơng tồn cấu điều khiển tập trung tổ chức có phân cấp [16] Trong hệ thống túy ngang hàng, chương trình chạy điểm nút có vai trị hồn tồn tương đương bình đẳng với Tính chất đối lập hoàn toàn với kiến trúc client – server truyền thống nơi có điểm nút đóng vai trị cung cấp dịch vụ (servers) điểm nút lại sử dụng dịch vụ (clients) Lợi điểm rõ rệt kiến trúc ngang hàng khả tận dụng tốt tài ngun (xử lý, băng thơng, lưu trữ) tồn mạng Bên cạnh đó, kiến trúc giúp cho dịch vụ mạng tránh khỏi tình trạng ngừng trệ server gặp phải trục trặc Tuy nhiên mơ hình tồn nhược điểm khó kiểm sốt trạng thái, hành vi điểm nút toàn mạng Ngồi địi hỏi máy tham gia vào mạng ngang hàng phải có lực xử lý băng thông gần tương đương Không giống kiến trúc client – server, hiệu suất hoạt động chung mạng ngang hàng có xu hướng tăng lên gia tăng số điểm nút tham gia Hiệu suất phụ thuộc vào ứng dụng mạng cụ thể, vào giao thức ngang hàng cấu hình mạng (topology) 1.1.2 Đặc điểm mạng ngang hàng Các mạng ngang hàng ngày thường mang số đặc trưng phổ biến Trang -3- Xây dựng ứng dụng dựa mạng ngang hàng sau: Các điểm nút mạng nhận biết lẫn Nghĩa có chế giúp cho điểm nút tham gia vào mạng xác định máy khác thành viên mạng Từ chúng định vị nhau, gửi thông điệp tới nhận thông điệp từ Các điểm nút tạo mạng kết nối ảo mức trừu tượng cao so với cấu tổ chức như: tường lửa (firewall), NAT (Network Address Translation), mạng (subnet) Mỗi điểm nút nằm mạng khác nhau, chịu chế tổ chức, kiểm soát giới hạn hoàn toàn riêng biệt Tuy nhiên tham gia vào mạng, chúng tổ chức mối liên kết logic với thông qua việc sử dụng dịch vụ chạy ứng dụng tầng cao so với chế vừa nhắc tới Tạo mạng kết nối logic điểm nút bị biệt lập hóa mạng riêng biệt ý tưởng xuyên suốt kiến trúc ngang hàng Mỗi điểm nút tự vừa đóng vai trị client vừa đóng vai trị server Điều thể rõ vai trị bình đẳng độc lập điểm nút Mọi điểm nút vừa cung cấp dịch vụ cho điểm nút khác vừa sử dụng dịch vụ hay nhiều điểm nút lại Xuất số nhóm điểm nút liên kết với để chia sẻ liệu cộng tác với xử lý Đây tổ hợp lại điểm nút có mối liên hệ chặt chẽ mang tính tương tác gần gũi trình hoạt động ứng dụng mạng 1.1.3 Tiện ích mạng P2P mang lại Giúp cho người dùng dễ dàng tìm liệu cần thiết Tận dụng tiện ích tổng hợp: Nơi lưu trữ, thơng tin chi phí tính tốn phân phối PEER, làm máy tính tham gia vào mạng dễ dàng có thơng tin yêu cầu Tăng độ tin cậy Chứa đựng nhiều thơng tin: Trong mạng P2P có nhiều máy tính tham vào, thân máy tính chứa nhiều thơng tin, cơng cụ tìm kiếm nắm bắt khoảng 20% nội dung Website Trang -4- Xây dựng ứng dụng dựa mạng ngang hàng 1.1.4 Những khó khăn thiết kế mạng ngang hàng Cân đối băng thông: Trong phần lớn ứng dụng chạy mạng ngang hàng, điểm nút đóng hai vai trò: client server nên tỉ lệ sử dụng băng thông đầu (outbound bandwidth) băng thông đầu vào (inbound bandwidth) điểm nút tương đối cân Tuy nhiên nhà cung cấp dịch vụ mạng (ISPs) lại thường triển khai mạng không đối xứng dành ưu tiên cho phần băng thơng đầu vào Ví dụ số ISP mạng DSL hỗ trợ 1.5Mbps băng thông đầu vào có 128Kbps cho băng thơng đầu Cho dù băng thơng tổng cộng kết nối vật lý có mở rộng hạ tầng kỹ thuật ISP chủ yếu hỗ trợ chế bất đối xứng Giải pháp triệt vấn đề đến từ cộng tác ISP khách hàng việc triển khai thiết bị mạng chuyên dụng Tổ chức không gian tên: Việc đặt tên cho website thực thông qua hệ thống phân cấp dịch vụ phân giải tên miền (DNS) Tuy nhiên mạng ngang hàng không tồn chế tương tự Không máy chủ dịch vụ web, điểm nút mạng ngang hàng không tồn trạng thái tĩnh Thời điểm khoảng thời gian tham gia vào mạng điểm nút ko thể xác định Công việc tạo tên (định danh) cho đối tượng, thành phần mạng phải thực người phát triển ứng dụng phụ thuộc vào đặc thù ứng dụng Chứng thực kiểm tra quyền truy cập người dùng: Nếu tất file đặt server dễ dàng việc chứng thực người dùng kiểm tra quyền hạn truy cập họ liệu Tuy nhiên tính chất phân tán mạng ngang hàng, công việc phải thực điểm nút Người phát triển muốn xây dựng ứng dụng ngang hàng hoàn chỉnh cần quan tâm nhiều đến vấn đề bảo mật, chống hành động xâm nhập trái phép làm ảnh hưởng tới liệu Kiểm soát hành vi người dùng: Do lưu trữ tập trung thông tin hành động điểm nút nên khó kiểm sốt hành động Lấy ví dụ mạng chia sẻ file ngang hàng, người dùng thực hành vi không thực phù hợp sau: Không chia sẻ file máy Trang -5- Xây dựng ứng dụng dựa mạng ngang hàng Chia sẻ file bị lỗi Chia sẻ file chứa mã nguy hiểm, virus Chia sẻ file mà nội dung chắn khơng quan tâm Không cho phép điểm nút khác tải file chia sẻ máy Nếu tất điểm nút tham gia thực hành vi tiêu cực hoạt động mạng ngang hàng thực không hiệu an toàn Tùy thuộc vào ứng dụng cụ thể, người thiết kế phát triển phải thiết lập chế kiểm soát hành vi điểm nút để bảo đảm chúng thực có đóng góp tích cực cho cộng đồng sử dụng mạng 1.1.5 Phân loại ứng dụng mạng ngang hàng Các ứng dụng mạng ngang hàng phân chia thành số nhóm sau: Chia sẻ file: Gnutella, FastTrack, Napster Chia sẻ tài nguyên phân tán: SETI@Home, Avaki, Entropia dự án tính tốn lưới Phân phối nội dung: OpenCola, Blue Falcon Networks, Konitiki Truyền thông P2P: AOL Instant Messenger, Yahoo! Messenger, ICQ, Jabber Các ứng dụng cộng tác: Hive, Groove, myJXTA 1.2 Mơ hình mạng P2P 1.2.1 Mơ hình tập trung Mơ tả: Mạng tập trung bao gồm Server trung tâm xung quanh Server máy Clients Có mơ hình mạng tập trung: Single Centralized: Trong mơ hình máy Client kết nối trực tiếp với Server Trong mô hình tất Client bình đẳng nhau, Client giao tiếp với thông qua Server trung tâm Trang -6- Xây dựng ứng dụng dựa mạng ngang hàng Hình 1: Mơ hình mạng tập trung Cơ chế hoạt động mơ hình mạng Single Centralized: Mỗi Client mạng yêu cầu file u cầu gửi đến Server, Server nhận yêu cầu xử lý yêu cầu, database Server có thơng tin file đó, thơng báo cho Client, sau bên có bên xin để bắt đầu trình download Ưu điểm mơ hình Single Centralized: Khả xử lý thơng tin nhanh chóng, đáng tin cậy, thời gian tìm kiếm thơng tin nhanh chóng xác Nhược điểm: Có thể có nhiều yêu cầu Client đồng loạt gửi đến Server gây nên tình trạng tải Server, khiến cho tốc độ hoạt động trung bình hệ thống bị giảm sút Hơn Server trung tâm bị hỏng tồn hệ thống ngừng hoạt động Multiple Mini Centralized: Bao gồm nhiều Server kết nối với nhau, Server kết nối với nhiều Client Một Client kết nối với Server, Server kết nối với nhiều Client Các Server trao đổi thơng điệp với Trang -7- Xây dựng ứng dụng dựa mạng ngang hàng Hình 2: Mơ hình mạng Multiple Mini – Centralized Cơ chế hoạt động mơ hình mạng Multiple Mini – Centralized: Khi Client yêu cầu file, gửi yêu cầu đến Server mà kết nối trực tiếp Nếu database mà có có thơng điệp gửi lại cho Client yêu cầu Client có file liệu để thiết lập download Trong trường hợp khơng có file đó, gửi thơng điệp đến Server hàng xóm để tiếp tục tìm kiếm Ưu điểm mơ hình mạng Multiple Mini – Centralized: Có nhiều Server khả xử lý thơng tin lớn, yêu cầu Client phân tán gửi đến Server khác làm giảm tải Server Hơn việc có nhiều Server mạng làm tăng hệ số an tồn cho hệ thống Server bị hỏng đảm bảo mạng hoạt động ổn định với Client không kết nối với Server 1.2.2 Mơ hình phân tán Mơ tả: Trong mạng P2P phân tán hồn tồn khơng có vai trị Server, thân Client lại đóng vai trị Server Hai mơ hình mạng phân tán: Trang -8- Xây dựng ứng dụng dựa mạng ngang hàng Phân tán hoàn toàn (Completely decentralized index): Mạng tạo Client, Client gửi yêu cầu thơng tin u cầu broadcast tới toàn Client mạng Ưu điểm mạng phân tán hồn tồn: Đây thực mơ hình gốc mạng P2P, yêu cầu gửi đến nhiều PEER tham gia khả tìm thấy thơng tin yêu cầu lớn Nhược điểm: Do không xử lý tập trung nên thời gian chờ đợi PEER gửi yêu cầu lớn khả mát thông tin lớn Hình 3: Mơ hình mạng phân tán Phân tán khơng hồn tồn (Multiple semi decentralized index): Các Client đóng vai trị Server cần thiết - trở thành super PEER, Client khác gửi request đến super PEER để tìm thơng tin Ưu điểm: Tận dụng nguồn tài nguyên phần cứng lớn, tăng khả toàn hệ thống lên Khả PEER trở thành super PEER khơng giới hạn Nhược điểm: Việc phân chia “chức năng” PEER phức tạp Trang -9- Xây dựng ứng dụng dựa mạng ngang hàng } public synchronized void removePeer(String id) throws IOException { if(!indexed) return; IndexReader reader = IndexReader.open(INDEX_DIR); reader.deleteDocuments(new Term("sessionId", id.trim())); reader.close(); } public static void main(String[] args) { new Server().listen(); } } Lớp server.ServerThread class ServerThread extends Thread { private Server server; private Socket s; private String sessionId; private File tempDir; private DataInputStream fromPeer; private DataOutputStream toPeer; public ServerThread(Server server, Socket s, int id, ThreadGroup tg) throws IOException { super(tg, String.valueOf(id)); this.server = server; this.s = s; sessionId = String.valueOf(id); fromPeer = new DataInputStream(s.getInputStream()); toPeer = new DataOutputStream(s.getOutputStream()); // create a temporary index for the connected peer tempDir = new File("server\\temp\\" + sessionId); tempDir.mkdirs(); System.out.println("Peer " + sessionId + " connected"); } public void run() { try { toPeer.writeInt(Protocol.INIT); toPeer.writeUTF(sessionId); // Login sucessfully // return sessionId to peer toPeer.writeUTF(s.getInetAddress().getHostAddress()); Trang -50- Xây dựng ứng dụng dựa mạng ngang hàng boolean stop = false; while(!stop) { int request = fromPeer.readInt(); // One fragment of index is sent to server if(request == Protocol.SHARE || request == Protocol.SHARE_FINISH) shareDocument(request); if(request == Protocol.UNSHARE) unshareDocument(request); if(request == Protocol.DELETE) unshareDocument(request); if(request == Protocol.UPDATE || request == Protocol.UPDATE_FINISH) shareDocument(request); if(request == Protocol.SEARCH) search(); if(request == Protocol.LOG_OUT) { server.removePeer(sessionId); stop = true; } } } catch(IOException ioe) { ioe.printStackTrace(); } finally { finish(); } } private void search() throws IOException { String queryString = fromPeer.readUTF(); if(!server.indexed) { toPeer.writeInt(Protocol.RESULT); toPeer.writeInt(0); return; Trang -51- Xây dựng ứng dụng dựa mạng ngang hàng } Directory dir = FSDirectory.getDirectory(Server.INDEX_DIR, false); IndexSearcher searcher = new IndexSearcher(dir); // default searching field is "content" QueryParser parser StandardAnalyzer()); = new QueryParser("content", queryString = "(" + queryString + ")" + " AND " + "-sessionId:" + sessionId; Query query; try { // parsing the user string to standard query query = parser.parse(queryString); } catch(ParseException pe) { toPeer.writeInt(Protocol.INVALID_QUERY); return; } Hits resultSet = searcher.search(query); int numResult = resultSet.length(); toPeer.writeInt(Protocol.RESULT); toPeer.writeInt(numResult); for(int i = 0; i < numResult; i ++) { Document doc = resultSet.doc(i); toPeer.writeUTF(doc.get("ip")); toPeer.writeUTF(doc.get("fullName")); toPeer.writeUTF(doc.get("path")); toPeer.writeUTF(doc.get("size")); toPeer.writeUTF(doc.get("modified")); } toPeer.flush(); dir.close(); searcher.close(); } private void shareDocument(int request) throws IOException { // name of component file String fileName = fromPeer.readUTF(); File file = new File(tempDir, fileName); DataOutputStream toFile = new DataOutputStream(new FileOutputStream(file)); byte[] byteArr = new byte[1024]; long size = fromPeer.readLong(); Trang -52- new Xây dựng ứng dụng dựa mạng ngang hàng long remain = size; int interval; interval = (remain > 1024) ? 1024 : (int)remain; int amount; // write the received file to temporary directory while((amount = fromPeer.read(byteArr, 0, interval)) != -1) { toFile.write(byteArr, 0, amount); toFile.flush(); remain -= amount; if(remain 1024) ? 1024 : (int)remain; } toFile.close(); // if all files are received if (request == Protocol.SHARE_FINISH || request == Protocol.UPDATE_FINISH) { try { server.addDocument(tempDir); // update the Index } catch(IOException ioe) { ioe.printStackTrace(); if(request == Protocol.SHARE_FINISH) toPeer.writeInt(Protocol.SHARE_FAIL); else toPeer.writeInt(Protocol.UPDATE_FAIL); toPeer.flush(); return; } // delete all files in temporary directory File[] fileList = tempDir.listFiles(); for(int i = 0; i < fileList.length; i ++) fileList[i].delete(); if(request == Protocol.SHARE_FINISH) toPeer.writeInt(Protocol.SHARE_OK); else toPeer.writeInt(Protocol.UPDATE_OK); toPeer.flush(); } } Trang -53- Xây dựng ứng dụng dựa mạng ngang hàng private void unshareDocument(int request) throws IOException { String documentId = fromPeer.readUTF(); try { server.removeDocument(documentId); } catch(IOException ioe) { ioe.printStackTrace(); if(request == Protocol.UNSHARE) toPeer.writeInt(Protocol.UNSHARE_FAIL); else toPeer.writeInt(Protocol.UPDATE_FAIL); return; } if(request == Protocol.UNSHARE) toPeer.writeInt(Protocol.UNSHARE_OK); } private void finish() { try { File[] fileList = tempDir.listFiles(); for(int i = 0; i < fileList.length; i ++) fileList[i].delete(); tempDir.delete(); fromPeer.close(); toPeer.close(); s.close(); System.out.println("Peer " + sessionId + " disconnected"); } catch(IOException ioe) { ioe.printStackTrace(); } finally { if(this.currentThread().activeCount() == 1) server.stopServer(); // Notify here (used test only) } } } Lớp peer.ClientPeer public class ClientPeer { private int shareDocCount = 0; private Socket sock; private DataInputStream fromServer; private DataOutputStream toServer; private String sessionId; Trang -54- Xây dựng ứng dụng dựa mạng ngang hàng private boolean stop = false; private Indexer indexer; private Vector sharingDoc = new Vector(); private Vector unsharingDoc = new Vector(); private Vector updatingDoc = new Vector(); private FileServer fileServer; private SearchWindow searchWindow; private MainWindow mainWindow; SharedList sharedList = new SharedList(); ResultList resultList = new ResultList(); public ClientPeer() { try { sock = new Socket("localhost", 3000); fromServer = new DataInputStream(sock.getInputStream()); toServer = new DataOutputStream(sock.getOutputStream()); } catch(IOException ioe) { System.out.println("Cannot connect to indexing server"); ioe.printStackTrace(); return; } try { if(fromServer.readInt() == Protocol.INIT) sessionId = fromServer.readUTF(); System.out.println("Session Id: " + sessionId); String ip = fromServer.readUTF(); System.out.println("IP: " + ip); indexer = new Indexer(sessionId, ip); } catch(IOException ioe) { ioe.printStackTrace(); } mainWindow = new MainWindow(this, "Peer " + sessionId); searchWindow = new SearchWindow(this, "Search " + sessionId); mainWindow.setVisible(true); searchWindow.setVisible(false); System.out.println("Connected to server"); try { fileServer = new FileServer(this); fileServer.start(); } catch(IOException ioe) { Trang -55- Xây dựng ứng dụng dựa mạng ngang hàng ioe.printStackTrace(); return; } } public void run() { try { while(!stop) { SharedDocument doc; int response = fromServer.readInt(); if(response == Protocol.SHARE_OK) { sharedList.addDocument((SharedDocument) sharingDoc.remove(0)); mainWindow.repaint(); } if(response == Protocol.SHARE_FAIL) { doc = (SharedDocument)sharingDoc.remove(0); JOptionPane.showMessageDialog(mainWindow, doc.file.getName() + "cannot be shared", "Error", JOptionPane.ERROR_MESSAGE); } if(response == Protocol.UNSHARE_OK) { sharedList.removeDocument((SharedDocument) unsharingDoc.remove(0)); mainWindow.repaint(); } if(response == Protocol.UNSHARE_FAIL) { doc = (SharedDocument)unsharingDoc.remove(0); JOptionPane.showMessageDialog(mainWindow, doc.file.getName() + "cannot be unshared", "Error", JOptionPane.ERROR_MESSAGE); } if(response == Protocol.UPDATE_OK) { doc = (SharedDocument)updatingDoc.remove(0); SharedDocument newDoc = new SharedDocument( doc.file, doc.documentId); sharedList.updateDocument(doc, newDoc); mainWindow.repaint(); Trang -56- Xây dựng ứng dụng dựa mạng ngang hàng } if(response == Protocol.UPDATE_FAIL) { doc = (SharedDocument)updatingDoc.remove(0); JOptionPane.showMessageDialog(mainWindow, doc.file.getName() + "cannot be updated", "Error", JOptionPane.ERROR_MESSAGE); } if(response == Protocol.RESULT) fillResultList(); if(response == Protocol.INVALID_QUERY) JOptionPane.showMessageDialog(searchWindow, "Your query is invalid", "Error", JOptionPane.ERROR_MESSAGE); } } catch (Exception ioe) { // ioe.printStackTrace(); finish(); } finally { System.exit(0); } } private void fillResultList() throws IOException { int numResults = fromServer.readInt(); resultList.clear(); if(numResults

Ngày đăng: 23/10/2013, 14:15

Hình ảnh liên quan

Hình 1: Mô hình mạng tập trung. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 1.

Mô hình mạng tập trung Xem tại trang 8 của tài liệu.
Hình 2: Mô hình mạng Multiple Mini – Centralized. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 2.

Mô hình mạng Multiple Mini – Centralized Xem tại trang 9 của tài liệu.
Ưu điểm của mạng phân tán hoàn toàn: Đây thực sự là mô hình gốc của mạng P2P, yêu cầu được gửi đến nhiều PEER tham gia vì vậy khả nă ng tìm th ấ y  thông tin yêu cầu là rất lớn - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

u.

điểm của mạng phân tán hoàn toàn: Đây thực sự là mô hình gốc của mạng P2P, yêu cầu được gửi đến nhiều PEER tham gia vì vậy khả nă ng tìm th ấ y thông tin yêu cầu là rất lớn Xem tại trang 10 của tài liệu.
Hình 4: Mô hình mạng phân tán không hoàn toàn. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 4.

Mô hình mạng phân tán không hoàn toàn Xem tại trang 11 của tài liệu.
Hình 5: Kiến trúc của Napster - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 5.

Kiến trúc của Napster Xem tại trang 14 của tài liệu.
chuyển đổi từ danh sách các từ được sắp theo thứ tự trong văn bảng ốc sang tập hợp các từđược sắp theo thứ tự từđiển - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

chuy.

ển đổi từ danh sách các từ được sắp theo thứ tự trong văn bảng ốc sang tập hợp các từđược sắp theo thứ tự từđiển Xem tại trang 18 của tài liệu.
bản [11]. Trong thực tế β biến thiên trong khoảng từ 0.4 đến 0.6. Bảng vị trí đòi hỏi một không gian lưu trữ  lớn hơn với kích thước tăng trưởng theo cỡ  O(n) - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

b.

ản [11]. Trong thực tế β biến thiên trong khoảng từ 0.4 đến 0.6. Bảng vị trí đòi hỏi một không gian lưu trữ lớn hơn với kích thước tăng trưởng theo cỡ O(n) Xem tại trang 19 của tài liệu.
Hình 9: Luồng thông điệp giữa các thành phần trong mạng. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 9.

Luồng thông điệp giữa các thành phần trong mạng Xem tại trang 23 của tài liệu.
Hình vẽ dưới đây mô tả một cách trực quan các bước trong quá trình tạo chỉ - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình v.

ẽ dưới đây mô tả một cách trực quan các bước trong quá trình tạo chỉ Xem tại trang 26 của tài liệu.
Hình 11: Nhiệm vụ, chức năng của thư viện Lucene [8]. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 11.

Nhiệm vụ, chức năng của thư viện Lucene [8] Xem tại trang 31 của tài liệu.
đầu vào. Một chỉ mục của tài liệu sẽ bao gồm các trường được liệt kê ở bảng sau: - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

u.

vào. Một chỉ mục của tài liệu sẽ bao gồm các trường được liệt kê ở bảng sau: Xem tại trang 35 của tài liệu.
Hình 12: Cửa sổ giao diện chính của chương trình. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 12.

Cửa sổ giao diện chính của chương trình Xem tại trang 37 của tài liệu.
Hình 13: Hộp thoại chọn tài liệu chia sẻ. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 13.

Hộp thoại chọn tài liệu chia sẻ Xem tại trang 38 của tài liệu.
4.2.3. Khối giao tiếp ngang hàng. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

4.2.3..

Khối giao tiếp ngang hàng Xem tại trang 39 của tài liệu.
Hình 14: Cửa sổ giao diện tìm kiếm. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 14.

Cửa sổ giao diện tìm kiếm Xem tại trang 39 của tài liệu.
Hình 15: Sơ đồ lớp của chương trình - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 15.

Sơ đồ lớp của chương trình Xem tại trang 41 của tài liệu.
Hình 16: Cửa sổ giao diện chính trên Peer (3 file được chia sẻ). - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 16.

Cửa sổ giao diện chính trên Peer (3 file được chia sẻ) Xem tại trang 42 của tài liệu.
3 file nằm trong thư mục C:\\share được mô tả ở bảng trên. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

3.

file nằm trong thư mục C:\\share được mô tả ở bảng trên Xem tại trang 42 của tài liệu.
Hình 17: Tìm tài liệu có chứa từ khóa “mini”. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 17.

Tìm tài liệu có chứa từ khóa “mini” Xem tại trang 43 của tài liệu.
Hình 19: Tìm tài liệu có chứa từ “curly” hoặc từ “brown”. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 19.

Tìm tài liệu có chứa từ “curly” hoặc từ “brown” Xem tại trang 44 của tài liệu.
Hình 22: Tìm tài liệu có tên chứa từ khóa “information”. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 22.

Tìm tài liệu có tên chứa từ khóa “information” Xem tại trang 45 của tài liệu.
Hình 21: Tìm tài liệu phải chứa “mini” và không được chứa “shoes”. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 21.

Tìm tài liệu phải chứa “mini” và không được chứa “shoes” Xem tại trang 45 của tài liệu.
Hình 23: Tìm kiếm với từ khóa “mini” sau khi Peer cập nhật lại size.txt - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 23.

Tìm kiếm với từ khóa “mini” sau khi Peer cập nhật lại size.txt Xem tại trang 46 của tài liệu.
Hình 24: Tìm kiếm với từ khóa “mini” sau khi Peer dừng chia sẻ fashion.txt - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 24.

Tìm kiếm với từ khóa “mini” sau khi Peer dừng chia sẻ fashion.txt Xem tại trang 46 của tài liệu.
Hình 26: Tìm kiếm với từ khóa “mini” sau khi Peer đă ng xuất. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 26.

Tìm kiếm với từ khóa “mini” sau khi Peer đă ng xuất Xem tại trang 47 của tài liệu.
Hình 25: File complex information.txt được tải từ Peer về Peer 1. - Luận văn Xây dựng ứng dụng dựa trên mạng ngang hàng

Hình 25.

File complex information.txt được tải từ Peer về Peer 1 Xem tại trang 47 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan