Sự kết hợp giữa Client-Server và Peer to Peer

Một phần của tài liệu Ứng dụng phân tán dựa trên mô hình local proxy cho thông tin dạng nhị phân (Trang 29 - 38)

Trong hệ thống phân tán, các máy cần phải giao tiếp với nhau thông qua một số giao thức. Với mô hình Client-Server, giao thức này xác định sự tƣơng tác giữa Client

28

và xây dựng các giao thức để đảm bảo các chức năng nhƣ Client-Server là rất phức tạp. Trong lịch sử phát triển, đã có rất nhiều nhà cung cấp tốn nhiều công sức đƣa ra các giải pháp để giảm tính phụ thuộc của các máy vào một máy chủ trung tâm nhƣ Napster, Gnutella…

Napster

29

Napster là sự kết hợp của một mạng ngang hàng peer to peer và một số server trung tâm để duy trì kết nối hệ thống và danh sách dữ liệu đƣợc chia sẻ trong mạng. Ngoài việc là một mạng peer to peer, Napster cũng giống nhƣ một mạng với các server. Chính các server này làm cho việc tìm kiếm dữ liệu và chia sẻ giữa các máy tính trong mạng tốt hơn, tạo nên mô hình mạng peer to peer đầu tiên đƣợc ƣu chuộng với các dịch vụ chia sẻ file dữ liệu, file nhạc trên mạng Internet. Napster gồm 2 thành phần, thứ nhất là server trung tâm và thứ hai là các ứng dụng trên các máy tính kết nối với nhau. Một máy tính tham gia vào mạng sẽ kết nối với server trung tâm và đƣa danh sách file chia sẻ trong máy tính lên server này. Những máy tính khi tìm kiếm dữ liệu sẽ tìm kiếm thông tin về từ khóa trên server trung tâm để biết máy tính nào hiện đang giữ file chia sẻ đó. Để tìm kiếm một file, một truy vấn sẽ đƣợc gửi đi tới server trung tâm cùng với từ khóa tìm kiếm. Server trung tâm sẽ tìm trong danh sách các file chia sẻ đƣợc đƣa lên bởi các máy tính và trả về địa chỉ IP của máy tính lƣu giữ file chia sẻ này. Sau đó sẽ là kết nối trực tiếp giữa máy tính yêu cầu và máy tính giữ file chia sẻ, dữ liệu đƣợc truyền giữa hai máy tính giống nhƣ trong một mạng ngang hàng.

Gnutella

30

chuyển dần qua các bƣớc và tới đƣợc máy tính có chứa file X.

Share Cache Folder

Bên cạnh Napster và Gnutella, các nhà phát triển hệ thống có đƣa ý tƣởng về việc sử dụng cache để giảm tải cho Server. Trong hệ thống sử dụng giải pháp Share Cache Folder, Client sẽ tổ chức một thƣ mục để chứa cache. Khi Client gửi yêu cầu tìm kiếm dữ liệu, đầu tiên nó sẽ tìm trong thƣ mục chứa cache. Nếu không tìm thấy, nó sẽ tiếp tục gửi yêu cầu tìm kiếm trong cache của các node trong mạng. Sau khi nhận dữ liệu từ cache của các nốt trong mạng, nó gửi yêu cầu tới nơi lƣu trữ. Đây là một phƣơng pháp khá tốt để giảm tải cho Server, nhƣng ta có thể thấy trong trƣờng hợp không tìm thấy dữ liệu trong cache của các node trong mạng. Client vẫn phải gửi yêu cầu tới Server, điều này khiến cho tính co giãn của hệ thống không đƣợc đảm bảo.

Rõ ràng các giải pháp trên đã có những ý tƣởng giúp cho hệ thống hoạt động tốt hơn. Tuy nhiên, các giải pháp này vẫn còn tồn tại những hạn chế nhƣ việc vẫn còn server trung tâm khiến cho Napster không thể giải quyết triệt để vấn đề nút cổ chai tại server. Còn với Gnutella, việc gửi truy vấn tới tất cả các nút hàng xóm khiến cho hệ thống mạng bị lãng phí rất nhiều băng thông. Để giải quyết những hạn chế này, các nhà phát triển hệ thống đƣa ra định nghĩa về mạng ngang hàng có cấu trúc bằng cách sử dụng hệ thống DHT (Distributed Hash Table – Bảng Băm Phân Tán). Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với

31

một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả.

2.3.2. Mô hình Local Proxy

Giới thiệu

Dựa trên hệ thống P2P, mô hình Local đƣợc xây dựng để đáp ứng yêu cầu thiết kế ứng dụng khi sử dụng sẽ giống với mô hình Client – Server nhƣng giao tiếp giữa các máy với nhau là trực tiếp không thông qua một Server trung tâm nhƣ mô hình Peer to Peer [4],[5],[8].

Mục đích của mô hình Local Proxy là:

- Thiết kế giao thức sử dụng kiến trúc Client-Server để đơn giản.

- Triển khai giao thức sử dụng giao tiếp P2P để hiệu suất tốt hơn.

Phƣơng pháp của mô hình này là giữ nguyên việc thiết kế giao thức theo kiến trúc Client-Server không thay đổi, trong khi đó nhờ vào hệ thống DHT, các Client có thể dễ dàng gửi yêu cầu dữ liệu đến chính xác máy trạm đóng vai trò Server.

Mô hình thiết kế

Theo ý tƣởng đƣợc nêu phía trên, thành phần client sẽ đƣợc giữ nguyên không thay đổi. Ngoài ra, trên client sẽ đƣợc cài một ứng dụng đóng vai trò Local Server, nó sẽ nhận yêu cầu từ client và chuyển yêu cầu đó vào hệ thống P2P. Hệ thống P2P đƣợc xây dựng theo mô hình mạng ngang hàng có cấu trúc sẽ hỗ trợ các máy trao đổi dữ liệu với nhau thông qua bốn hàm: Put, Get, Search, Delete. Mô hình Local Proxy đƣợc thiết kế nhƣ hình 2.11 dƣới đây:

32

Hinh 2.12. Mô hình Local Proxy

Hệ thống này bao gồm những thành phần sau:

- Client: giống nhƣ module máy khách trong kiến trúc Client-Server truyền thống.

- Local Server: mỗi máy client đƣợc cài đặt một local proxy module. Module này

tƣơng tác với module client và cập nhật dữ liệu cục bộ.

- P2P Agent: chấp nhận yêu cầu chia sẻ và cập nhật dữ liệu, truyền tải dữ liệu trên

mạng P2P.

Mô hình Local Proxy đƣa ra các cơ hội để phát triển một ứng dụng P2P sử dụng thiết kế của kiến trúc Client-Server. Tất nhiên, giao thức và logic ứng dựng theo quan điểm giao tiếp máy với máy sẽ đƣợc thay thế bằng giao tiếp giữa P2P Agent và hệ thống con P2P.

33

Tƣơng tác này trở nên bình thƣờng nhƣ một cơ chế chia sẻ dữ liệu đơn giản, nhƣng đạt đƣợc hiệu quả tốt, cấu trúc dữ liệu đƣợc thiết kế tốt theo logic của ứng dụng và giao thức P2P.

 Chuyển đổi hệ thống từ mô hình Client-Server sang Local Proxy

Để chuyển đổi một hệ thống từ mô hình Client-Server sang mô hình Local Proxy, chúng ta cần thực hiện các bƣớc nhƣ sau:

- Xác định các giao thức đƣợc thực thi trên hệ thống Client-Server

- Phân tích chức năng, nhiệm vụ của các giao thức trong hệ thống Client-Server.

- Chuyển đổi các chức năng sang mô hình Local Proxy, các máy sẽ yêu cầu dữ

liệu từ hệ thống P2P

34

3.1. TỔNG QUAN VỀ FILE SHARING 3.1.1. Khái niệm

Khi hệ thống Internet chƣa phát triển, để có thể phân phối tài liệu cho nhiều ngƣời, chúng ta chỉ có thể chia sẻ tài liệu thông qua việc sao chép đĩa CD, DVD hoặc thông qua USB. Cách thức này khiến cho việc phổ biến tài liệu gặp nhiều hạn chế về thời gian và công sức. Ngày nay, ngoài việc có thể sử dụng Email để gửi những tập tin có kích thƣớc nhỏ, chúng ta có thể sử dụng các ứng dụng chia sẻ file để thu thập những tài liệu cần thiết.

File sharing là một trong những ứng dụng phổ biến nhất của Internet. Theo thống kê của Cisco, nó chiếm khoảng 40% tổng lƣu lƣợng dữ liệu trong năm 2010. Ứng dụng này cho phép ngƣời dùng có thể chia sẻ các tập tin trên máy tính của họ cho những ngƣời khác thông qua Internet. Ứng dụng này đã phát triển và trở nên phổ biến từ năm 1999 với sự ra đời của Napster. Khi ngƣời dùng có yêu cầu tìm kiếm, các máy chủ sẽ sẽ tìm kiếm tất cả các bản ghi sẵn có của tập tin đó và chuyển thông tin cho ngƣời dùng. Sau đó, các tập tin sẽ đƣợc chuyển trực tiếp giữa hai máy tính cá nhân.

Theo các nhà nghiên cứu, File sharing là sự chia sẻ dữ liệu hay không gian lƣu trữ của máy tính trong hệ thống mạng với các mức độ khác nhau tùy thuộc vào đặc quyền truy cập. Các dữ liệu có thể đƣợc chia sẻ là những tập tin đa phƣơng tiện (âm thanh,

35

hình ảnh, video), tài liệu hay sách điện tử. Ngoài ra, File sharing còn cung cấp các cơ chế bảo vệ bằng cách giới hạn kiểu truy xuất tập tin có thể thực hiện. Truy xuất đƣợc phép hay bị từ chối phụ thuộc vào nhiều yếu tố, một trong những yếu tố là kiểu truy xuất đƣợc yêu cầu. Ngƣời dùng có thể có một hoặc nhiều đặc quyền truy xuât lên dữ liệu nhƣ:

- Đọc (Read): đọc tập tin

- Viết (Write): Viết hay viết lại tập tin

- Thực thi (Execute): nạp tập tin vào bộ nhớ và thực thi nó

- Chèn cuối (Append): viết thông tin mới vào cuối tập tin

- Xóa (Delete): xóa tập tin và giải phóng không gian để có thể dùng lại

- Liệt kê (List): liệt kê tên và thuộc tính của tập tin

3.1.2.Phân loại hệ thống chia sẻ tập tin

Sau thời gian hình thành và phát triển, hệ thống File sharing có thể phân loại thành hai dịch vụ là: dịch vụ chia sẻ file peer to peer và dịch vụ đồng bộ hóa và chia sẻ tập tin

 Chia sẻ file peer to peer

Dịch vụ chia sẻ file peer to peer là sự phân phối và chia sẻ các tài nguyên số sử dụng công nghệ mạng P2P. Nó cho phép ngƣời dùng truy cập vào các tài liệu số nhƣ sách, âm nhạc, phim ảnh, và các trò chơi bằng cách sử dụng một chƣơng trình phần mềm P2P để tìm kiếm cho các máy tính kết nối với nhau trên mạng P2P và sử dụng theo nhu cầu. Các node (peer) sẽ đƣợc kết nối với nhau thông qua hệ thống Internet.

Công nghệ chia sẻ file peer to peer đã phát triển qua nhiều giai đoạn thiết kế từ các nhà mạng đầu tiên nhƣ Napster và sau đó phổ biến trong các mô hình sau này nhƣ giao thức BitTorrent. Việc phổ biến rộng rãi của công nghệ này không hể không nhắc

36

Một loại hình dịch vụ khác đƣợc xây dựng từ mô hình chia sẻ tập tin là việc đồng bộ hóa và sao lƣu dữ liệu. Ngƣời dùng đƣợc đảm bảo rằng các tập tin trong máy tính có thể truy cập đƣợc từ hai hoặc nhiều địa điểm thông qua những quy tắc nhất định. Trong đồng bộ hóa tập tin một chiều, các tập tin cập nhật đƣợc sao chép từ vị trí nguồn cho một hoặc nhiều vị trí, nhƣng không cho phép tập tin đƣợc sao chép lại vị trí nguồn. Trong đồng bộ hóa tập tin hai chiều, các tập tin đƣợc cập nhật theo cả hai hƣớng, thƣờng là với mục đích giữ hai vị trí giống hệt nhau. Đồng bộ hóa tập tin thƣờng đƣợc sử dụng cho mục đích để sao lƣu dữ liệu. Hiện nay, có rất nhiều các tổ chức, công ty cung cấp dịch vụ giúp đồng bộ dữ liệu nhƣ: Dropbox, GoogleDrive, OneDrive. Về cơ bản, các ứng dụng này đều tổ chức các máy theo cấu trúc một máy đƣợc chỉ định là server và chức năng của các dịch vụ này đều nhằm đảm bảo cho ngƣời dùng có thể truy xuất dữ liệu của mình ở các máy tính cài đặt dịch vụ này và dữ liệu đƣợc tự động đồng bộ với nhau. Các tài nguyên số khi đƣợc đƣa lên hệ thống đều mã hóa để bảo mật và đƣợc nén để gửi qua Internet.

Một phần của tài liệu Ứng dụng phân tán dựa trên mô hình local proxy cho thông tin dạng nhị phân (Trang 29 - 38)