Lập trình với Java Cog Kit

Một phần của tài liệu Nghiên cứu và phát triển một số tính năng mở rộng cho hệ thống lưu trữ và chia sẻ dữ liệu lindax (Trang 38)

Kiến trúc của Java Cog Kit cung cấp nền tảng ổn định cho phát triển các ứng dụng trên lƣới. Ngƣời sử dụng có thể dùng các lớp và phƣơng thức không chỉ cho các thành phần chức năng của lƣới, mà còn có khả năng hiện thực hóa các luồng công việc thông qua sự mô tả bằng XML, từ dòng lệnh hay từ giao diện đồ họa. Các lớp kiến trúc của Java Cog Kit cung cấp cho ngƣời sử dụng đƣợc tổ chức nhƣ sau:

Hình 2.16 – Các lớp của Java Cog Kit

 Cog Kit providers: đƣa ra ánh xạ giữa những interface của Java Cog Kit với tầng middleware của lƣời hay các phần mềm phân tán. Java Cog Kit đã đƣợc phát triển cho GT2, GT4, GT3, SSH và Condor. Khi sử dụng các lớp trừu trƣợng, hay các interface, của Java Cog Kit, ngƣời sử dụng không cần phải lo lắng về những thay đổi của tầng middleware trên lƣới. Các thƣ viện đƣợc tự động biên dịch lúc chạy, nên những lựa chọn cho phiên bản có thể đƣợc quyết định tại thời điểm chạy. LindaX sử dụng Java Cog Kit đã đảm bảo đƣợc tính mở đối với những thay đổi của lƣới trong tƣơng lai.

 Basic abstractions: Là một tập các chức năng của lƣới độc lập với các phiên bản lƣới. Những lớp trừu tƣợng này bao gồm các quá trình chuyển file, cách truy cập flie, đệ trình job và chứng thực. Các lớp này đƣợc lựa chọn để phù hợp với hầu hết, nhƣng không phải tất cả ngƣời dùng trên lƣới.

 Data and task management abstractions: ngoài các lớp trừu tƣợng cơ bản, Java Cog Kit còn cung cấp nhiều lớp trừu tƣợng nâng cao để hỗ trợ cho các mô hình lƣới phức tạp.

37

một cách cụ thể, triển khai phù hợp với hệ thống LindaX sẽ đƣợc trình bày trong chƣơng này. Nội dung của chƣơng tập trung vào việc thiết kệ hệ thống và các thành phần cấu thành hệ thống LindaX. Các vấn đề sẽ trình bày bao gồm ứng dụng công nghệ lƣới dữ liệu, các chức năng đƣợc triển khai trên lƣới dữ liệu, các chức năng đƣợc ứng dụng LindaX cung cấp và các chức năng đƣợc triển khai để kết nối các tầng của hệ thống.

3.1 Mô hình tổng thể

Mục đích cho việc nghiên cứu và triển khai hệ thống lƣu trữ dựa trên lƣới dữ liệu chính là tạo ra một nền tảng lƣu trữ dữ liệu ổn định và linh hoạt, có khả năng đáp ứng không chỉ cho một ứng dụng mà còn cho nhiều ứng dụng khác nhau. Hệ thống LindaX là chính là một trong những ứng dụng nhƣ vậy.

LindaX bao gồm 2 tầng chính là tầng ứng dụng webtầng lữu trữlưới. Nhƣ đã trình bày trong phần “Những đóng góp của luận văn”, chức năng của các tầng đƣợc phân chia rõ ràng.

Hình 3.1 – Mô hình tổng thế hệ thống LindaX

Tầng ứng dụng web Tầng lƣu trữ lƣới

39

 Tầng ứng dụng web: là tầng trung gian giữa ngƣời sử dụng hệ thống lƣu trữ và dữ liệu đƣợc lƣu trữ trên lƣới.

 Tầng lƣu trữ lƣới: là tầng thực hiện việc lƣu trữ dữ liệu, cung cấp các dịch vụ lƣu trữ theo yêu cầu từ tầng giao tiếp ngƣời dùng.

3.1.1 Tầng ứng dụng web

Ngƣời dùng sẽ sử dụng giao diện và các chức năng do web cung cấp để trao đổi với dữ liệu của mình. Khi đó, ứng dụng web sẽ tiếp nhận và xử lý các yêu cầu của ngƣời dùng, triệu gọi các dịch vụ đƣợc cung cấp ở tầng lƣu trữ lƣới, trả lại kết quả thông qua giao diện tƣơng tác. Với góc nhìn của mình, ngƣời dùng chỉ giao tiếp với dữ liệu của mình thông qua tầng này.

Tầng ứng dụng web sẽ cung cấp cho ngƣời dùng các chức năng chính sau:

 Đẩy dữ liệu lên kho lữu trữ

 Tải dữ liệu về ngƣời dùng

 Quản lý thông tin và phân quyền ngƣời dùng

 Quản lý không gian lƣu trữ của ngƣời dùng

 Quản trị hệ thống, báo cáo, thông kê, v.v..

Ngƣời dùng sẽ sử dụng các chức năng của tầng này qua giao diện ứng dụng (ở đây là giao diện web), khi đó, ngƣời dùng sẽ không cần quan tâm đến công nghệ lƣu trữ và quản lý bên dƣới. Ngƣời dùng chỉ cần có 1 trình duyệt web nhƣ FireFox, Chrome, Internet Explorer, v.v.. và có thể dùng kèm theo với các tiện ích của các hãng thứ ba nhƣ Internet Download Manager, Flashget, v.v..

3.1.2 Tầng lưu trữ lưới

Do LindaX sử dụng công nghệ lƣới dữ liệu để lƣu trữ dữ liệu, nên các tệp tin của ngƣời dùng sẽ đƣợc lƣu trữ trên lƣới và hoàn toàn độc lập với tầng ứng dụng web. Dữ liệu của ngƣời dùng khi lƣu trữ trên lƣới sẽ tuân theo các chính sách và cơ chế lƣu trữ tệp tin trên lƣới.

Tầng lƣu trữ lƣới chủ yếu thực hiện các tác vụ chính sau:

 Lƣu trữ tệp tin vào vị trí xác định trên lƣới dữ liệu.

 Tạo lập bản sao cho các tệp tin cho tần suất sử dụng cao.

 Quản trị các nút tham gia lƣu trữ: cập nhật thông tin lƣu trữ, kết nạp hay loại bỏ nút lƣu trữ.

 Thực hiện các cơ chế bảo mật dữ liệu cũng nhƣ các máy tham gia lƣu trữ dữ liệu. (adsbygoogle = window.adsbygoogle || []).push({});

40

3.1.3 Kết nối tầng ứng dụng web và tầng lưu trữ lưới

Nhƣ đã trình bày ở trên, hệ thống LindaX bao gồm 2 tầng riêng biệt là tầng ứng dụng web và tầng lƣu trữ lƣới. Mỗi tầng có cơ chế hoạt động đặc trƣng khác nhau, đƣợc liệt kê và so sánh nhƣ ở bảng “Phân chia chức năng 2 tầng của hệ thống” dƣới

Tiêu chí đánh giá Tầng ứng dụng web Tầng lưu trữ lưới Giao thức Giao tiếp với ngƣời dùng qua giao

thức của ứng dụng web là HTTP

Giao tiếp với các máy lƣu trữ khác qua giao thức GridFTP.

Giao diện

Có giao diện để quản lý và giao tiếp với ngƣời dùng.

Không có giao diện song vẫn cần truyền dữ liệu tới ngƣời dùng bằng HTTP.

Bảo mật Không cần thiết có các cơ chế bảo

mật dữ liệu.

Yêu cầu bảo mật trên lƣới cao do các tổ chức khác nhau tham gia.

Tính chất

Quản lý thông tin về tệp logic tƣơng ứng với mỗi ngƣời dùng.

Quản lý thông tin về tệp vật lý và các bản sao.

Máy chủ không tham gia vào lƣới. Sử dụng các dịch vụ lƣới dữ liệu. Không tiếp xúc với tệp của ngƣời

dùng.

Trực tiếp truyền tải tệp với ngƣời dùng.

Do những đặc điểm nhƣ vậy, tầng giao diện không thể trực tiếp gọi các dịch vụ lƣới của tầng lƣu trữ. Ta cần có cơ chế trung gian triển khai các dịch vụ lƣới, đáp ứng các yêu cầu của tầng trên. Đề tài đã xây dựng lƣới dữ liệu dựa trên nền tảng bộ công cụ Globus Toolkit 4 với 2 dịch vụ then chốt là: dịch vụ truyền tệp GridFTP và dịch vụ định vị bản sao RLS (Replica Location Service). Dựa trên nền tảng bảo mật và ứng dụng 2 dịch vụ trên, luận văn xây dựng các chức năng phục vụ cho việc lƣu trữ dữ liệu. Các chức năng này đƣợc triệu gọi từ tầng giao diện ngƣời dùng thông qua công nghệ jsp/servlet. Việc thiết kế thêm các module hoàn toàn độc lập với tầng giao diện phía trên và độc lập với hạ tầng lƣới phía dƣới, nhờ vậy các module có thể dễ dàng mở rộng, nâng cấp, đồng thời không ảnh hƣởng lớn đến sự vận hành của hệ thống nếu có lỗi.

Các module trung gian triển khai gồm:

41

- Module hỗ trợ quá trình upload tệp lên lƣới, download từ lƣới tới ngƣời dùng: Sử dụng dịch vụ định vị bản sao RLS.

- Các cơ chế hỗ trợ hệ thống với số lƣợng máy tham gia lƣu trữ lớn: các cơ chế chọn máy chủ download, CSDL quản lý các máy lƣu trữ.

3.2 Yêu cầu chức năng

3.2.1 Cho phép Upload/Download dữ liệu lên lưới

Các chức năng của hệ thống lƣu trữ và chia sẻ LindaX đều dựa trên hai thao tác chính là upload và download tệp. Ngƣời dùng sẽ thông qua giao diện web làm trung gian để thực hiện việc upload dữ liệu của mình, lƣu trữ lên các máy chủ của hệ thống. Sau khi upload thành công, ngƣời dùng sẽ có một giao diện để quản lý không gian lƣu trữ của mình, có thể chọn một hoặc nhiều dữ liệu để chia sẻ với bạn bè bằng đƣờng dẫn logic của dữ liệu đó, đƣờng dẫn này đƣợc sinh ra khi upload thành công.

Khi muốn download một tệp tin nào đó từ hệ thống lƣu trữ, ngƣời dùng chỉ việc dán đƣờng dẫn logic lên trình duyệt web, hệ thống sẽ phân tích đƣờng dẫn này và trả lại cho ngƣời dùng đƣờng dẫn vật lý của dữ liệu đó. Đây là đƣờng dẫn ngƣời dùng sử dụng để tải dữ liệu về, theo cơ chế phần quyền khác nhau mà tốc độ tải về của dữ liệu là khác nhau. Đƣờng dẫn vật lý đƣợc tạo ra và quản lý trên các máy lƣu trữ.

3.2.2 Quản lýkhông gian lưu trữ

Hệ thống lƣu trữ và chia sẻ dữ liệu LindaX sẽ cung cấp cho mỗi ngƣời dùng một tài khoản, tƣơng ứng với mỗi tài khoản là một không gian lƣu trữ riêng của ngƣời đó. Sau khi đăng nhập, ngƣời dùng sẽ có một giao diện quản lý không gian lƣu trữ của mình. Ngƣời dùng có thể quản lý các thông tin cá nhân của mình nhƣ tên hiển thị, mật khẩu, ảnh đại diện hay một số thông tin khác.

Cũng thông qua giao diện đó, ngƣời dùng có thể xem các thông tin về các tệp tin của mình, quản lý các tệp tin theo kiểu thƣ mục, tìm kiếm tệp tin theo các tiêu chi khác nhau, đổi tên hay xóa các tệp tin của mình, v.v..Mỗi ngƣời dùng sẽ có không gian lƣu trữ khác nhau, tùy theo các lớp ngƣời dùng do hệ thống quy định. (adsbygoogle = window.adsbygoogle || []).push({});

3.2.3 Tạo lập và quản lý bản sao

Ứng dụng công nghệ lƣới, hệ thống lƣu trữ có khả năng tạo lập và quản lý các bản sao. Các bản sao có tác dụng làm dữ liệu của hệ thống trở nên sẵn dùng và tăng khả năng truy cập. Quá trình tạo các bản sao là quá trình sao chép một phiên bản của tệp vật lý tới các máy chủ lƣu trữ khác theo giải thuật ở đây là ƣu tiên tạo lập bản sao cho các dữ liệu có tần suất sử dụng cao. Các bản sao đƣợc tạo ra có vai trò nhƣ nhau trong hệ thống mà không có sự phân biệt hay ƣu tiên nào. Nhờ vậy, dữ liệu sẽ luôn sẵn sàng cho việc tải về trong bất kỳ trƣờng hợp nào.

42

Ngoài việc tạo lập bản sao, hệ thống cần có một cơ chế để quản lý các bản sao này. Khi ngƣời dùng có yêu cầu download một tệp nào đó, module quản lý bản sao sẽ lựa chọn cho ngƣời dùng một tệp vật lý trên máy chủ xác định trong số các bản sao của tệp logic đó. Việc bản sao nào đƣợc lựa chọn là theo các tiêu chí để có tốc độ cao nhất đối với ngƣời dùng.

3.2.4 Quản trị các nút lưu trữ

Hệ thống lƣu trữ của LindaX là dựa trên công nghệ lƣới dữ liệu. Công nghệ lƣới cho phép kết nối nhiều nguồn tài nguyên khác nhau làm nên một hệ thống lƣu trữ gần nhƣ là không có giới hạn, mỗi một tài nguyên lƣu trữ trong lƣới đƣợc gọi là một nút lƣu trữ. Chính vì khả năng mở rộng và cho phép kết nạp thêm các nút lƣu trữ nhằm gia tăng hiệu năng lƣu trữ, hệ thống cần phải có khả năng theo dõi và quản lý các nguồn lƣu trữ này. Công việc này phải thỏa mãn những yêu cầu sau:

 Việc kết nạp thêm nút lƣu trữ phải dễ dàng và nhanh chóng, đảm bảo hệ thống luôn có năng lực lƣu trữ tối đa.

 Dữ liệu đƣợc lƣu trữ trên nút lƣới không đƣợc vƣợt quá dung lƣợng lƣu trữ của chính nút lƣu trứ đó.

 Các nút lƣu trữ phải luôn ở trong trạng thái sẵn sàng khi có yêu cầu đẩy dữ liệu lên nút, tránh trƣờng hợp kết nối bị gián đoạn trong khi truyền.

 Việc cấu trúc và phân bố dữ liệu trên nút lƣu trữ phải hợp lý, tiện cho việc theo dõi và thống kê tài nguyên.

Chất lƣợng của quá trình upload và download dữ liệu phụ thuộc rất nhiều vào tải của nút lƣu trữ. Khi nút chủ lƣu trữ có quá nhiều yêu cầu tới, tốc độ của quá trình truyền tệp sẽ bị giảm đáng kể, thậm chí gây tắc nghẽn và làm hệ thống ngừng đáp ứng. Do vậy, việc phân tải công việc cho nhiều nút trong lƣới lƣu trữ là cần thiết để hệ thống có thể hoạt động với hiệu năng cao nhất.

43

3.3 Kịch bản sử dụng

3.3.1 Upload

Hình 3.2 – Kịch bảnupload

(1.1)Yêu cầu upload tệp

(1.2)Gọi module upload tệp trên HeadNode (2.1)Chọn nút lƣu trữ để thực hiện upload (2.2)Gửi thông tin nút lƣu trữ về ứng dụng (2.3)Gọi công cụ upload của ứng dụng

(3) Quá trình upload giữa ngƣời dùng và DataNode (4.1)Trả lại kết quả upload cho ứng dụng

(4.2)Trả lại kết quả upload cho HeadNode

(5.1)Cập nhật thông tin lên RLS (5.2)Cập nhật thông tin DataNode DB (6.1)Hiển thị kết quả cho ngƣời dùng (6.2)Cập nhật thông tin tệp vừa upload (7.1)Gửi yêu cầu tạo bản sao

(7.2)Gọi dịch vụ điều khiển tạo bản sao (8.1)Tạo bản sao

(8.2)Tạo bản sao

Tầng ứng dụng web Tầng lƣu trữ luới

44

Quá trình Upload một tệp tin lên lƣới dữ liệu gồm có 4 giai đoạn chính:

1. Ngƣời dùng sử dụng giao diện của ứng dụng web, gửi yêu cầu muốn upload một tệp tin lên HeadNode. HeadNode tiếp nhận yêu cầu upload của ứng dụng, khởi tạo một ID-Grid- File là định danh của duy nhất của dữ liệu trên lƣới dữ liệu, gọi đến dịch vụ quản lý tài nguyên trên các DataNode.

2. Các DataNode gửi trả lại các thông tin liên quan đến DataNode đó nhƣ URL, Status, Disk Info, v.v… HeadNode dựa trên giải thuật chọn DataNode của mình, quyết định chọn 1 máy chủ để lƣu trữ dữ liệu, gửi trả về ngƣời dùng một giao diện để thực hiện việc upload lên nút lƣu trữ đƣợc chọn.

3. Quá trình upload dữ liệu thành công, DataNode sẽ gọi đến dịch vụ định vị bản sao RLS

trên HeadNode để HeadNode cập nhật vào cơ sở dữ liệu của mình, xác định ID-Grid-File đã đƣợc lƣu thành công trên DataNode với đƣờng dẫn tuyệt đốitƣơng ứng.

4. Cuối cùng, ngƣời dùng sẽ đƣợc trả về kết quả upload là một liên kết, trỏ đến dữ liệu trong không gian lƣu trữ cá nhân của mình (đặt tại ứng dụng) và dùng liên kết này để chia sẻ dữ liệu với ngƣời khác. Liên kết này có chứa ID-Grid-File để hỗ trợ cho việc download dữ liệu này từ lƣới dữ liệu. (adsbygoogle = window.adsbygoogle || []).push({});

Quá trình upload diễn ra là hoàn toàn giữa ngƣời dùng và máy chủ dữ liệu, chỉ có các cơ chế quản lý là do ứng dụng web và HeadNode quản lý. Song song với các giai đoạn trên, HeadNode liên tục trả về thông tin upload tệp tin để ứng dụng web hiển thị cho ngƣời dùng thông qua thanh tiến trình upload.

3.3.2 Download

Quá trình Download một tệp tin sẽ gồm 4 giai đoạn chính nhƣ sau

1. Ngƣời dùng gửi yêu cầu download là một liên kết logic đến ứng dụng web. Nhƣ đã nói ở quá trình Upload, liên kết này có chứa ID-Grid-File của tệp tin trên lƣới.

2. Ứng dụng web sẽ tiến hành kiểm tra tính hợp lệ của link logic này và xác định cơ chế download tƣơng ứng với từng lớp ngƣời dùng. Sau đó, ứng dụng web sẽ truyền ID-Grid- File đến HeadNode. Tại đây, HeadNode sẽ truy vấn dịch vụ định vị bản sao RLS để xác định danh sách các nút lƣu trữ chứa tệp yêu cầu. Dựa trên kết quả từ dịch vụ quản lý tài nguyênđể xác định máy cho phép download tệp tốt nhất.

3. Khi chọn đƣợc máy chủ lƣu trữ, HeadNode trả lại cho ứng dụng web đƣờng dẫn vật ký trỏ tới tệp thực cho ứng dụng web. Đồng thời lúc này, HeadNode cũng gửi yêu cầu chuẩn bị module download tới DataNode, máy chủ lƣu trữ sẽ chuẩn bị các cơ chế để đợi ứng dụng web kích hoạt quá trình truyền tệp.

4. Ứng dụng web sau khi nhận đƣợc liên kết thực, tiến hành trả lại cho ngƣời dùng. Ngƣời dùng sẽ kích hoạt việc download bằng cách truy cập vào liên kết này.

Quá trình download diễn ra cũng hoàn toàn không phụ thuộc vào ứng dụng web và HeadNode. Quá trình này chỉ diễn ra giữa máy của ngƣời dùng và máy lƣu dữ liệu.

Một phần của tài liệu Nghiên cứu và phát triển một số tính năng mở rộng cho hệ thống lưu trữ và chia sẻ dữ liệu lindax (Trang 38)