a. Cơ chế hoạt động của bộ nhớ Cache
Bộ nhớ Cache trong mô hình C-S là một loại sao lưu, nhân bản, nhằm cải thiện hiệu suất thực hiện của hệ thống bằng cách cho truy cập dữ liệu từ bộ nhớ cục bộ phía
19
máy khách. Các client cập nhật dữ liệu từ bộ nhớ cache cục bộ. Nếu dữ liệu không có sẵn, client yêu cầu server gửi dữ liệu. Khi nhận được dữ liệu từ server, client lưu trữ nó trong bộ nhớ cache cục bộ để truy cập sau.
Hình 1.13. Cơ chế hoạt động của bộ nhớ Cache
Chia sẻ cache nghĩa là bộ nhớ cache có thể được truy nhập từ nhiều thể hiện khác nhau của một ứng dụng trên các máy tính khác nhau.
Mô hình Shared Cache folder là mô hình cho phép các client chia sẻ nội dung bộ nhớ cache với nhau bằng cách sử dụng hệ thống P2P, nhằm cải thiện hiệu suất tổng thể của hệ thống.
Tận dụng ưu điểm của kiến trúc C-S và P2P với mục đích: - Sử dụng thiết kế theo giao thức của kiến trúc C-S để đơn giản. - Triển khai giao thức sử dụng giao tiếp P2P để đạt hiệu suất tốt hơn. Mô hình Shared Cache được thiết kế như hình sau:
20
b. Các thành phần của mô hình shared cache
Trong mô hình này (hình 1.14), module P2P, module Cache và module Data instruction suggestor được thêm vào ứng dụng client-server truyền thống. Với các thành phần này, nhằm mục đích giải quyết vấn đề nút cổ chai server và vấn đề băng thông của mô hình client-server.
Mô hình này có hai thay đổi so với mô hình C-S và mô hình Local Proxy:
Module cache
Module này được thêm vào cho mỗi client để thực hiện chức năng sau: - Cache content: Bộ nhớ lưu trữ tất cả dữ liệu được chuyển cho client.
- Cache Manager: Đưa ra một dịch vụ cho tất cả các node để trả lời câu hỏi về dữ liệu lưu trữ hiện tại trong cache của client đó.
Module Data instruction suggestor
Module này được cài đặt trên server để thực hiện nhiệm vụ:
- Tập hợp thông tin về dữ liệu chia sẻ của mỗi client thông qua kết nối client- server.
- Tập hợp những báo cáo về kết nối P2P từ client. Từ thông tin về những kết nối đó để server có những chỉ dẫn cho mỗi client cách hiệu quả để lấy về tệp tin cụ thể.
c. Nguyên tắc hoạt động
Khi client gửi yêu cầu tìm kiếm tệp tin, trước tiên Cache Manager sẽ kiểm tra dữ liệu trong cache content, nếu tệp tin cần thiết được tìm thấy, nó đáp ứng cho client, nếu không tìm thấy, client sẽ gửi một yêu cầu vào hệ thống P2P để hỏi về tệp tin nó cần. Nếu tìm thấy tệp tin trong hệ thống P2P, nó sẽ kết nối trực tiếp đến client chứa tệp tin và tải về. Nếu không tìm thấy trong hệ thống P2P thì yêu cầu sẽ được chuyển tới server. Module Data instruction suggestion được cài đặt trên server sẽ chỉ dẫn cho Client phương án tốt nhất để tải về tệp tin nó cần. Cache Manager phải thực hiện một số hoạt động: Tệp lấy về từ server, lưu trữ trên cache cục bộ và chia sẻ tệp trên hệ thống P2P để phục vụ cho việc sử dụng lại khi cần thiết.
21
Hình 1.15. Truy cập tệp tin trong mô hình Shared Cache folder
Để chuyển đổi một hệ thống từ mô hình Client-Server sang mô hình Chia sẻ Cache, 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 Shared Cache, các máy sẽ yêu cầu dữ liệu từ hệ thống P2P.
22
CHƯƠNG 2. DỊCH VỤ CHIA SẺ TỆP THEO YÊU CẦU 2.1. Giới thiệu chung
Các ứng dụng phân tán được xây dựng chủ yếu theo kiến trúc C-S. Kiến trúc C- S có ưu điểm là quá trình thiết kế giao thức đơn giản, chỉ có 2 thành phần tham gia là client và server. Tuy nhiên, việc chỉ có một server phục vụ cho nhiều client kéo theo các nhược điểm của mô hình này như: cổ chai tại server, quá tải về băng thông, tính mở rộng kém ...Có rất nhiều cải tiến của mô hình client-server như bộ nhớ đệm, phân tải, sao lưu...Tuy nhiên các cải tiến này đều có giới hạn về hiệu năng khi số lượng tải vượt quá một cận trên nào đó.
Mô hình mạng ngang hàng cho phép giải quyết vấn đề này một cách triệt để bằng cách loại bỏ thành phần server và cho phép tất cả các thành phần khác tương tác với nhau một cách bình đẳng. Nhược điểm duy nhất của kiến trúc ngang hàng là việc thiết kế ứng dụng trở nên phức tạp, do có sự tham gia của nhiều thành phần vào giao thức.
Để có thể tận dụng điểm mạnh của cả 2 mô hình, thiết kế các ứng dụng theo kiến trúc client-server và triển khai các ứng dụng theo kiến trúc P2P. Triển khai ứng dụng này, cần có một khung làm việc (framework) cho phép có thể thực hiện biến đổi trực tiếp từ một ứng dụng client-server thành ứng dụng theo kiến trúc P2P mà không cần phải thay đổi giao thức tương tác giữa các thành phần. Một số mô hình kết hợp đã được chứng minh về tính đúng đắn, tuy nhiên hiệu quả thực sự về hiệu năng phụ thuộc rất nhiều vào ứng dụng cụ thể. Trong đó đã phân lọai các ứng dụng theo:
Lọai thông tin trao đổi
- Thông tin văn bản (chuỗi ký tự)
- Thông tin nhị phân (thông tin thô, chuỗi bit không rõ cấu trúc)
- Thông tin đa phương tiện (audio, video, chuỗi bit có liên hệ về thời gian)
Cách thức trao đổi thông tin
- Theo yêu cầu (on demand) - Quảng bá (broadcast, push) - Tương tác (interactive)
23
thông tin khác nhau, nó làm cho mô hình hoạt động với hiệu năng tốt nhất. Trong phạm vi của luận văn nghiên cứu về mô hình Shared Cache folder, áp dụng cho tệp tin với dạng dịch vụ theo yêu cầu.
2.2. Dịch vụ theo yêu cầu (ondemand)
2.2.1. Khái niệm về dịch vụ theo yêu cầu
Dạng dịch vụ theo yêu cầu là dịch vụ sẽ được nhà cung cấp đáp ứng khi người sử dụng cần và gửi yêu cầu tới nhà cung cấp.
a. Một số dịch vụ theo yêu cầu
- Các dịch vụ theo yêu cầu hiện nay bao gồm: Ca nhạc theo yêu cầu, xem phim theo yêu cầu, truyền hình theo yêu cầu, video theo yêu cầu, file sharring…
b. Hoạt động của dịch vụ theo yêu cầu
- Đầu tiên, dữ liệu trực tiếp của bạn được lưu trữ trong một RAID (nhiều ổ đĩa hoạt động để chống lại lỗi phần cứng).
- Hàng ngày, dữ liệu sẽ được sao chép vào một ổ cứng riêng biệt dành riêng cho các bản sao lưu (để bảo vệ chống lại việc hỏng RAID và để bảo vệ chống mất mát dữ liệu không liên quan đến phần cứng như bị xóa nhầm trong giao diện trợ giúp).
- Hàng tuần hoặc hai tuần một lần, dữ liệu của bạn sẽ được sao chép vào dịch vụ lưu trữ an toàn và dự phòng (tránh bị mất mát dữ liệu).
Khi client nào đó có nhu cầu sử dụng dữ liệu bất kỳ nào đó, nó sẽ gửi yêu cầu tới nhà cung cấp dịch vụ. Server của nhà cung cấp dịch vụ sẽ có nhiệm vụ đáp ứng lại yêu cầu của client bằng việc gửi lại cho client đó thông tin mà nó yêu cầu.
2.2.2. Chia sẻ tệp tin theo yêu cầu
Tập tin (viết tắt cho tập thông tin; còn được gọi là tệp, tệp tin, file) là một tập hợp của thông tin được đặt tên. Thông thường thì các tập tin này chứa trong các thiết bị lưu trữ như đĩa cứng, đĩa mềm, CD, DVD cũng như là các loại chip điện tử dùng kĩ thuật flash có thể thấy trong các ổ nhớ có giao diệnUSB. Nói cách khác, tập tin là một dãy các bit có tên và được chứa trong các thiết bị lưu trữ dữ liệu kỹ thuật số.
Chia sẻ tệp tin theo yêu cầu: Tất cả các tệp tin muốn chia sẻ sẽ được gom lại trong một thư viện và sẵn sàng chia sẻ theo yêu cầu.
Nó là một mô hình phân phối tệp. Nghĩa là server phải cung cấp tệp tin khi client nào đó yêu cầu.
24
Với công nghệ máy tính như hiện nay ổ cứng có sức chứa lớn nên việc xây dựng ngân hàng dữ liệu tệp tin là hoàn toàn có thể. Ngoài ra, với công nghệ truyền thông đường truyền băng thông rộng nên việc truyền tệp tin được thực hiện rất nhanh chóng.
Với dạng dịch vụ này một máy chủ dịch vụ sẽ trả lại tệp tin khi client nào đó yêu cầu, khi một client yêu cầu lấy thông tin về tệp tin nào đó, nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì server sẽ trả về thông tin mà client yêu cầu. Có rất nhiều server cung cấp dịch vụ trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ client sau đó xử lý và trả kết quả cho client yêu cầu. Cho dù lúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client nhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa client và server lại bắt đầu ở phía client, khi client gửi tín hiệu yêu cầu tới server.
2.3. Phân loại hệ thống chia sẻ tệp tin
Chia sẻ tập tin là thực hành phân phối hoặc cung cấp quyền truy cập tới phương tiện truyền thông kỹ thuật số, chẳng hạn như chương trình máy tính, đa phương tiện (âm thanh, hình ảnh và video), tài liệu, sách điện tử. Chia sẻ tập tin có thể được thực hiện bằng nhiều phương pháp khác nhau. Phương pháp phổ biến của lưu trữ, truyền tải và phân tán bao gồm chia sẻ sử dụng phương tiện di động, các máy chủ tập trung trên mạng máy tính, World Wide Web dựa trên siêu liên kết văn bản, và việc sử dụng mạng P2P phân tán.
2.3.1. Chia sẻ tệp theo mô hình C-S
Server là máy chủ có dung lượng lớn, lưu giữ tất cả các tệp, thông tin và nội dung của tệp trong cơ sở dữ liệu của nó. Khi một client có yêu cầu gì đó về tệp tin văn bản như tìm kiếm, tải về, xem thông tin,….nó sẽ gửi yêu cầu đó tới server. Server có nhiệm vụ:
- Cung cấp nơi lưu trữ dữ liệu cho client. - Quản lý hệ thống tập tin.
- Lắng nghe yêu cầu và cung cấp dịch vụ khai thác dữ liệu từ client trên cổng được lựa chọn.
25
Client là các máy tính cá nhân được cài đặt các ứng dụng cần thiết dùng để khai thác dịch vụ từ server. Client có thể thực hiện các chức năng sau :
- Kết nối với server.
- Đưa dữ liệu vào trong Server. - Tìm kiếm dữ liệu trong Server. - Tải về dữ liệu trong Server.
Tất cả mọi xử lý đều diễn ra ở phía server nên rất dễ dẫn đến vấn đề nghẽn cổ chai tại server nếu nó phải xử lý quá nhiều yêu cầu từ các client khác nhau. Đây là nhược điểm chính của mô hình C-S.
Tuy nhiên, ưu điểm của mô hình C-S chính là việc thiết kế giao thức đơn giản, chỉ thực hiện xử lý trên 2 nhánh là client và server, hệ thống có tính bảo mật cao, đáng tin cậy và phù hợp với các ứng dụng sử dụng cơ sở dữ liệu.
Hình 2.1. Hoạt động của hệ thống chia sẻ tệp tin
2.3.2. Chia sẻ tệp theo mô hình P2P
Chia sẻ tệp theo mô hình P2P [8] là phân phối và chia sẻ 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 các tập tin số như sách,
26
â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 trên các máy tính khác kết nối với nhau trên mạng P2P và xác định vị trí của các tệp mong muốn. Các node (peer) trong mạng là các hệ thống máy tính của người dùng kết nối với nhau thông qua mạng.
2.4. Giao thức sử dụng trong hệ thống chia sẻ tệp tin theo yêu cầu áp dụng mô hình Client- Server hình Client- Server
Giao thức truyền tệp tin [13] FTP- File Tranfer Protocol là một tiêu chuẩn do nhóm chuyên trách kỹ thuật Internet - Internet Engineering Task Force (IETF) phát hành dưới dạng RFC, thường được sử dụng để trao đổi tệp tin trong mạng lưới truyền thông sử dụng giao thức TCP/IP.
Mục đích của FTP là: Đẩy mạnh chia sẻ tệp tin (các chương trình máy tính và dữ liệu); khuyến khích sử dụng máy tính truy cập các tệp tin gián tiếp từ xa; giúp người sử dụng dễ dàng truy cập vào các hệ thống lưu trữ khác nhau; truyền dữ liệu giữa các máy tính.
FTP được xây dựng trên mô hình Client - Server, trong đó, máy chủ FTP cài đặt phần mềm cung cấp dịch vụ FTP và lắng nghe yêu cầu về dịch vụ FTP của các máy tính trên mạng, máy khách cài đặt phần mềm FTP dành cho người sử dụng khởi tạo một liên kết với máy chủ. Máy khách có thể thực hiện một số chức năng như tải lên/tải xuống tệp tin từ máy chủ, đổi tên hoặc xóa tệp tin khi đã kết nối với máy chủ FTP.
2.4.1. Mô hình kiến trúc xử lý trong giao thức FTP
Giao thức này sử dụng kết nối TCP, nhưng nó không chỉ dùng một kênh TCP như phần lớn các giao thức truyền thông khác. Mô hình FTP chia quá trình truyền thông giữa bộ phận Server với bộ phận client ra làm hai kênh logic:
Kênh điều khiển: đây là kênh logic TCP được dùng để khởi tạo một phiên kết nối FTP. Nó được duy trì xuyên suốt phiên kết nối FTP và được sử dụng chỉ để truyền các thông tin điều khiển, như các lệnh và các hồi đáp trong FTP. Nó không được dùng để truyền file
Kênh dữ liệu: Mỗi khi dữ liệu được truyền từ server tới client, một kênh kết nối TCP nhất định lại được khởi tạo giữa chúng. Dữ liệu được truyền đi qua kênh kết nối này – do đó nó được gọi là kênh dữ liệu. Khi file được truyền xong, kênh này được
27
ngắt. Việc sử dụng các kênh riêng lẻ như vậy tạo ra sự linh hoạt trong việc truyền truyền dữ liệu – mà ta sẽ thấy trong các phần tiếp theo. Tuy nhiên, nó cũng tạo cho FTP độ phức tạp nhất định.
2.42. Các tiến trình trong FTP
FTP là một giao thức dạng client/server truyền thống, tuy nhiên thuật ngữ client thông thường được thay thế bằng thuật ngữ user – người dùng – do thực tế là người sử dụng mới là đối tượng trực tiếp thao tác các lệnh FTP trên các máy client. Bộ phần mềm FTP được cài đặt trên một thiết bị được gọi là một tiến trình. Phần mềm FTP được cài đặt trên máy Server được gọi là tiến trình Server-FTP, và phần trên máy client được gọi là tiến trình User-FTP.
Dưới đây là hình đối chiếu các tiến trình vào trong mô hình FTP:
Hình 2.2. Mô hình hoạt động của giao thức FTP
Do các chức năng điều khiển và dữ liệu sử dụng các kênh khác nhau, nên mô hình hoạt động của FTP cũng chia phần mềm trên mỗi thiết bị ra làm hai thành phần logic tương ứng với mỗi kênh. Thành phần Protocol Interpreter (PI) là thành phần quản lý kênh điều khiển, với chức năng phát và nhận lệnh. Thành phần Data Transfer Process (DTP) có chức năng gửi và nhận dữ liệu giữa phía client với server. Ngoài ra, cung cấp cho tiến trình phía người dùng có thêm thành phần thứ ba là giao diện người dùng FTP - thành phần này không có ở phía server.
28
a. Các tiến trình phía server
Các tiến trình phía server bao gồm:
- Server Protocol Interpreter (Server-PI): chịu trách nhiệm quản lý kênh điều khiển phía server. Nó lắng nghe yêu cầu kết nối từ users trên cổng dành riêng. Khi kết nối đã được thiết lập, nó sẽ nhận lệnh từ phía User-PI, trả lời lại, và quản lý tiến trình