Tải bản đầy đủ (.pdf) (86 trang)

Công nghệ lưới dữ liệu hỗ trợ chia sẻ dữ liệu trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.28 MB, 86 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

BÙI HẢI PHONG

CÔNG NGHỆ LƯỚI DỮ LIỆU HỖ TRỢ CHIA SẺ
DỮ LIỆU TRỰC TUYẾN

Chuyên ngành : CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. PHẠM ĐĂNG HẢI

Hà Nội, tháng 3 năm 2012


MỤC LỤC
MỤC LỤC ........................................................................................................................ 1
LỜI CAM ĐOAN ............................................................................................................ 3
LỜI CẢM ƠN .................................................................................................................. 4
CHÚ GIẢI CÁC THUẬT NGỮ SỬ DỤNG TRONG LUẬN VĂN............................... 5
DANH MỤC BẢNG ........................................................................................................ 8
DANH MỤC CÁC HÌNH VẼ.......................................................................................... 9
Chương 1 TỔNG QUAN ............................................................................................... 11
1.1 Bài toán chia sẻ dữ liệu ........................................................................................ 11
1.2 Hướng giải quyết bài toán .................................................................................... 14
1.3 Nhiệm vụ đề tài .................................................................................................... 16


1.4 Nội dung luận văn ................................................................................................ 16
Chương 2 CƠ SỞ LÝ THUYẾT CỦA LUẬN VĂN .................................................... 17
2.1 Tổng quan về lưới dữ liệu (Data Grid) ................................................................. 17
2.1.1 Các khái niệm cơ bản..................................................................................... 17
2.1.2 Phân loại lưới dữ liệu ..................................................................................... 19
2.1.3 Đặc điểm của lưới dữ liệu .............................................................................. 22
2.1.4 Các thành phần của công nghệ lưới dữ liệu được áp dụng vào bài toán ....... 29
2.2 Công nghệ J2EE ................................................................................................... 35
2.3 Phần mềm mã nguồn mở J-FTP ........................................................................... 38
Chương 3: XÂY DỰNG TẦNG LƯỚI DỮ LIỆU ........................................................ 40
3.1. Mô hình lưới dữ liệu của hệ thống ...................................................................... 40
3.2 Các chức năng triển khai trên lưới dữ liệu ........................................................... 41
3.2.1 Chức năng quản lý Proxy .............................................................................. 41
3.2.2 Module điều khiển truyền tệp ........................................................................ 42
3.2.3 Dịch vụ định vị bản sao RLS ......................................................................... 46
Chương 4 XÂY DỰNG TẦNG ỨNG DỤNG ............................................................... 49
4.1 Chức năng Upload tệp .......................................................................................... 49
4.1.1 Cơ chế Upload tệp của hệ thống .................................................................... 49
4.1.2 Kỹ thuật truyền tệp sử dụng giao thức FTP ................................................... 51
4.1.3 Kỹ thuật Upload tệp sử dụng giao thức HTTP .............................................. 52
4.2 Chức năng Download tệp ..................................................................................... 54
4.2.1 Cơ chế Download tệp của hệ thống ............................................................... 54
4.2.2 Kỹ thuật Download tệp sử dụng giao thức HTTP ......................................... 55
4.3 Chức năng an toàn, bảo mật của Web Server....................................................... 56
4.3.1 Giới thiệu các chính sách bảo mật cho Web Server ...................................... 56
4.3.2 Cài đặt chức năng bảo mật với Web Server Tomcat ..................................... 57
4.4 Chia sẻ dữ liệu cho người dùng ............................................................................ 62

1



4.4.1 Chia sẻ tệp thông qua gửi thư điện tử (e-mail) .............................................. 63
4.4.2 Chia sẻ tệp thông qua các mạng xã hội (social network) .............................. 63
4.5 Chức năng đồng bộ hóa dữ liệu ............................................................................ 69
4.5.1 Mô hình chức năng đồng bộ dữ liệu .............................................................. 69
4.5.2 Xây dựng tiện ích đồng bộ hóa dữ liệu.......................................................... 71
Chương 5 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN....................................................... 75
5.1 Kết quả đạt được................................................................................................... 75
5.2 Hướng phát triển ................................................................................................... 84
TÀI LIỆU THAM KHẢO .............................................................................................. 85

2


LỜI CAM ĐOAN

Tôi – Bùi Hải Phong – xin cam đoan
• Luận văn tốt nghiệp Thạc sĩ Kỹ thuật này là công trình nghiên cứu của bản thân
tôi dưới sự hướng dẫn của TS Phạm Đăng Hải.
• Các kết quả trong Luận văn tốt nghiệp là trung thực, không phải sao chép toàn
văn của bất kỳ công trình nào khác.
Hà Nội, ngày 16 tháng 3 năm 2012

Bùi Hải Phong

3


LỜI CẢM ƠN
Tôi xin được gửi lời cảm ơn tới TS Phạm Đăng Hải bộ môn Khoa học Máy

tính Viện Công nghệ Thông tin và Truyền thông Đại học Bách Khoa Hà Nội. Thày đã
tận tình hướng dẫn, giúp đỡ tôi hoàn thành luận văn này.
Tôi xin được gửi lời cảm ơn tới GS. TS Nguyễn Thanh Thuỷ. Thày đã đóng
góp nhiều ý kiến quý báu cho luận văn.
Tôi xin được gửi lời cảm ơn tới TS Nguyễn Hữu Đức. Thày đã tạo điều kiện,
môi trường làm việc cho tôi thực hiện luận văn.
Tôi xin gửi lời cảm ơn tới các cán bộ Trung Tâm Tính Toán Hiệu Năng Cao –
Đại học Bách Khoa Hà Nội. Các anh đã giúp đỡ rất nhiều để tôi có thể hoàn thành luận
văn

4


CHÚ GIẢI CÁC THUẬT NGỮ SỬ DỤNG TRONG LUẬN VĂN
Thuật ngữ tiếng anh Nghĩa tiếng Việt

Chú giải
Quá trình truyền chương trình hay dữ
liệu tệp thông qua một giao thức truyền

Upload

Tải tệp lên

dữ liệu từ một hệ thống máy khách (nhỏ
hơn) tới một hệ thống máy phục vụ (lớn
hơn).
Quá trình truyền dữ liệu từ một máy tính

Download


tới một máy tính khác, thường là từ một

Tải tệp xuống

hệ thống máy chủ lưu trữ (lớn hơn) tới
một hệ thống máy khách (nhỏ hơn).
Một kiểu đặc biệt của tệp trên hệ điều

SymLink (Symbolic
Link)

hành UNIX. Nó trỏ tới một tệp khác tồn
Liên kết “mềm”

tại thực và đóng vai trò tương tự như tệp
thực đó trong mọi thao tác với liên kết
“mềm” này.
Trong hệ thống, tầng giao tiếp đóng vai

Front End Tier

Tầng giao tiếp

trò là cầu nối giữa người dùng và tầng
lưới dữ liệu.
Trong hệ thống, tầng lưới dữ liệu là tầng

Data Grid Tier


Tầng lưới dữ liệu

đảm trách vai trò lưu trữ dữ liệu tệp và
quản lý các máy chủ lưu trữ phân tán.
IP là chữ viết tắt của Internet Protocol

IP (Internet Protocol)

(giao thức Internet). Mỗi gói tin IP sẽ bao
gồm một địa chỉ IP nguồn và một địa chỉ

5


IP đích.
Trong hệ thống, liên kết này được tạo ra
khi một tệp được tải lên máy chủ lưu trữ.
Liên kết này tồn tại mãi cùng với tệp đó
Logic Link

Liên kết logic

và để chỉ ra tệp đó khi người dùng cần tải
tệp đó về. Tuy nhiên liên kết này không
chỉ ra chính xác tệp đó nằm ở đâu trong
hệ thống lưu trữ.
Trong hệ thống , liên kết này chỉ ra
đường dẫn trực tiếp tới nơi tệp được lưu

Physical Link


trữ. Do vậy liên kết này luôn phải được

Liên kết vật lý

che đi đối với người sử dụng. Chỉ hệ
thống mới có được liên kết này đề tạo ra
liên kết “mềm” để người dùng tải tệp về.
GridFTP là mở rộng của giao thức FTP,

GridFTP (Grid File

tích hợp khả năng bảo mật lưới, truyền

Transfer Protocol)

dữ liệu tốt hơn so với FTP.
Dịch vụ định vị bản sao trong kiến trúc

RLS

(Replica Dịch vụ Định vị lưới dữ liệu Globus, cho phép xác định vị

Location Service)

bản sao

trí của các bản sao của thực thể dữ liệu
trong lưới.
Dịch vụ siêu dữ liệu của kiến trúc lưới dữ


MCS

(Metadata Dịch vụ siêu dữ

Catalog Service)

liệu

liệu Globus, cho phép gắn các đối tượng
dữ liệu với một số thuộc tính mô tả, và
hỗ trợ người sử dụng trong việc truy vấn
đối tượng dữ liệu theo những thuộc tính

6


này.
CA là cơ chế chứng thực người dùng và
CA

(Certificate Cơ

Authentication)

chế

chứng

thực


tài nguyên sử dụng trong môi trường
lưới. Nó dựa trên nền tảng khóa công
khai để chứng thực các đối tượng liên
quan.

JDBC (Java Database

JDBC là API chuẩn cho phép một ứng

Connectivity)

dụng viết bằng Java kết nối với nhiều cơ
sở dữ liệu khác nhau.

API

(Application Giao

Programming

diện

lập Thường là một tập các hàm giúp lập trình

trình ứng dụng

viên dễ dàng tương tác với dịch vụ hoặc

Interface)


hệ thống.

AJAX

JavaScript

và Là một nhóm các công nghệ phát triển

(Asynchronous

XML không đồng web được sử dụng để tạo các ứng dụng

JavaScript and XML)

bộ

web động hay các ứng dụng giàu tính
Internet.

7


DANH MỤC BẢNG
Bảng 4.1 Các phiên bản của server Tomcat ................................................................... 57
Bảng 5.1 Các máy tham gia hệ thống ............................................................................ 76

8



DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Logo của Dropbox........................................................................................... 11
Hình 1.2 Trang chủ MediaFire ....................................................................................... 12
Hình 1.3 Logo 4Share .................................................................................................... 13
Hình 1.4 Mô hình phân tầng của hệ thống ..................................................................... 15
Hình 2.1 Hai thành phần của một lưới ........................................................................... 18
Hình 2.2 Tiến trình phân tán sử dung space để phối hơp hoạt động............................. 21
Hình 2.3 Hệ quản trị dữ liệu và mô tơ dữ liệu của nó.................................................... 23
Hình 2.4 Kiến trúc phân tầng của lưới dữ liệu ............................................................... 27
Hình 2.5 Các thành phần của Globus Toolkit 4 ............................................................ 28
Hình 2.6 Mối quan hệ giữa RLI và LRC dưới quan điểm của người dùng toàn cục và
người dùng địa phương .................................................................................................. 34
Hình 2.7 Các thành phần cài đặt của RLS ..................................................................... 35
Hình 2.8 Các thành phần của công nghệ J2EE .............................................................. 36
Hình 2.9 Sơ đồ package của phần mềm mã nguồn mở J-FTP ....................................... 38
Hình 3.1 Mô hình lưới dữ liệu ....................................................................................... 41
Hình 3.2 Sơ đồ Package của module quản lý Proxy ...................................................... 42
Hình 3.3 Mô hình truyền tệp .......................................................................................... 44
Hình 3.4 Sơ đồ Package của GridFTP ........................................................................... 45
Hình 3.5 Các lớp trong GridFTP.................................................................................... 46
Hình 3.6 Sơ đồ quá trình tạo lập bản sao ...................................................................... 47
Hình 3.7 Sơ đồ Package của RLS .................................................................................. 47
Hình 3.8 Sơ đồ lớp RLSConnection .............................................................................. 48
Hình 3.9 Sơ đồ lớp RLS ................................................................................................. 48
Hình 4.1 Sơ đồ Upload tệp ............................................................................................ 50
Hình 4.2 Sơ đồ Download tệp ........................................................................................ 54
Hình 4.3 Chức năng cấp Certificate của trang web .................... 61
Hình 4.4 Certificate của tổ chức oak.cs.ucla.edu ........................................................... 61
Hình 4.5 Server Tomcat cấu hình sử dụng HTTPS ....................................................... 62
Hình 4.6 Giao diện chia sẻ đường dẫn Download tệp qua e-mail ................................. 63

Hình 4.7 Chia sẻ qua FaceBook ..................................................................................... 68
Hình 4.8 Twitter share button ........................................................................................ 69
Hình 4.9 Mô hình chức năng đồng bộ hóa dữ liệu......................................................... 70
Hình 4.11 Cấu trúc cây thư mục .................................................................................... 72
Hình 4.12 Sơ đồ duyệt cây thư mục ............................................................................... 73
Hình 4.13 Chức năng đồng bộ hóa dữ liệu .................................................................... 74
Hình 5.1 Trang chủ LindaX .......................................................................................... 79
Hình 5.2 Giao diện upload tệp ....................................................................................... 79

9


Hình 5.3 Giao diện tiến trình upload............................................................................. 80
Hình 5.4 Upload tệp thành công ................................................................................... 80
Hình 5.5 Upload tệp bị lỗi ............................................................................................. 81
Hình 5.6 Giao diện download ....................................................................................... 81
Hình 5.7 Giao diện Desktop ........................................................................................... 81
Hình 5.8 Lựa chọn máy chủ lưu trữ ............................................................................... 82
Hình 5.9 Kết nối tới máy chủ FTP ................................................................................. 82
Hình 5.10 Giao diện Desktop Upload tệp ...................................................................... 83
Hình 5.11 Giao diện quản lý thư mục của người dùng .................................................. 83

10


Chương 1 TỔNG QUAN
1.1 Bài toán chia sẻ dữ liệu
Hiện nay nhu cầu lưu trữ và chia sẻ dữ liệu của người dùng internet ngày càng trở nên
cần thiết. Dữ liệu của người dùng không chỉ được lưu trữ trên các máy tính cá nhân mà
còn được lưu trữ trên các máy khác nhau được kết nối mạng. Việc lưu trữ dữ liệu trên

các hệ thống lưu trữ khác nhau đảm bảo tính sẵn dùng của dữ liệu: khi dữ liệu trên máy
tính cá nhân gặp sự cố, các dữ liệu đó vẫn đảm bảo được lưu trữ trên các hệ thống
khác; dữ liệu có thể được truy cập từ nhiều nơi khác nhau sử dụng mạng internet
…Hơn nữa người dùng cũng mong muốn chia sẻ dữ liệu của mình. Tính năng này giúp
người dùng cho phép tài liệu của mình được chia sẻ với một số lượng lớn người dùng
khác hoặc sử dụng dữ liệu của người dùng khác.
Để hiểu rõ thêm các chức năng của một hệ thống lưu trữ và chia sẻ dữ liệu, chúng ta sẽ
khảo sát một số hệ thống thông dụng hiện nay.
Một số hệ thống chia sẻ dữ liệu phổ biến:
Dropbox ()

Hình 1.1 Logo của Dropbox

Dropbox là dịch vụ chia sẻ file, được thành lập năm 2007 tại Hoa Kỳ.
Một số chức năng chính của Dropbox:
• Hỗ trợ dung lượng lưu trữ 2GB với người dùng không miễn phí; 50 GB, 100 GB
dung lượng lưu trữ với người dùng trả phí

11


• Hỗ trợ truy cập thông qua máy tính và các thiết bị di động
• Tăng dung lượng lưu trữ khi mời bạn bè tham gia hệ thống thành công
• Đồng bộ dữ liệu của người dùng khi người dùng sử dụng hệ thống từ các thiết bị
khác nhau hoặc ngắt kết nối internet
• Chia sẻ dữ liệu qua e-mail
MediaFire ()

Hình 1.2 Trang chủ MediaFire


Mediafire là trang web chia sẻ dữ liệu miễn phí, trụ sở tại Harris County, Texas, Hoa
Kỳ, được thành lập vào năm 1998
Một số chức năng chính:
ƒ

Không yêu cầu đăng ký.

ƒ

Truy cập tập tin không cần chờ đợi.

ƒ

Không giới hạn thời gian lưu trữ.

ƒ

Không giới hạn số tập tin tải cùng một lúc.

ƒ

Cho phép khôi phục các tiến trình tải tập tin bị lỗi.

12


ƒ

Cho phép sử dụng trình tăng tốc và Quản lý download (như Internet Download
Manager).


ƒ

Cho phép tải lên tập tin không quá 200 MB.

ƒ

Cho phép trực tiếp tải tập tin lên vào một thư mục (chức năng mới ở MediaFire
3.0).

ƒ

Cho phép đổi tên tập tin.

ƒ

Cho phép xóa các tập tin.

ƒ

Hỗ trợ RSS (chức năng mới ở MediaFire 3.0).

ƒ

Không phân biệt quốc gia, vùng lãnh thổ của người dùng.

Một số hạn chế:
ƒ

Không cho phép mã hóa tập tin.


ƒ

Không hỗ trợ tải lên tập tin theo giao thức FTP.

ƒ

Không hỗ trợ tải tập tin từ xa.

ƒ

Dung lượng mỗi tập tin bị giới hạn ở mức 2 GB.

4Share ( />
Hình 1.3 Logo 4Share

13


4shared là dịch vụ lưu trữ file được thành lập năm 2005 bởi Alex Lunkov và Sergey
Chudnovsky
Các tính năng chính của 4shared:
• Dung lượng lưu trữ 10GB cho người dùng miễn phí và 100GB cho người dùng
trả phí
• Giao diện tiếng Anh, Việt
• Hỗ trợ upload/download dữ liệu theo các giao thức HTTP và FTP
• Tìm kiếm tài liệu
• Hỗ trợ làm việc với các thiết bị di động
• Đồng bộ dữ liệu


1.2 Hướng giải quyết bài toán
Để đáp ứng yêu cầu lưu trữ và chia sẻ dữ liệu, hệ thống phải có khả năng lưu trữ lớn,
quản lý dữ liệu phân tán, đáp ứng yêu cầu bảo mật. Tệp của người dùng được upload
lên hệ thống cần được lưu trữ một cách an toàn, có tính sẵn dùng cao. Từ thực tế yêu
cầu đó, đề tài quyết định lựa chọn công nghệ tính toán lưới. Đây là một công nghệ cho
phép kết hợp tài nguyên tính toán (tài nguyên lưu trữ, CPU, băng thông mạng …) của
các máy phân tán về địa lý, của các tổ chức khác nhau. Đồng thời, công nghệ tính toán
lưới cũng rất thích hợp cho các bài toán phục vụ một lượng lớn người sử dụng cũng
như đảm bảo độ an toàn dữ liệu. Hạ tầng lưới dữ liệu đã được xây dựng và triển khai
nhiều năm tại Trung tâm Tính toán Hiệu năng cao – Đại học Bách Khoa Hà Nội là môi
trường phù hợp để xây dựng và phát triển hệ thống. Bên cạnh công nghệ tính toán lưới,
hệ thống sử dụng công nghệ lập trình Web J2EE (Java 2 Enterprise Edition) giúp người
dùng tương tác một cách dễ dàng, thuận tiện, trong suốt với hạ tầng lưới dữ liệu. Hệ
thống hỗ trợ người dùng hai giao diện làm việc: giao diện Web và giao diện Desktop.

14


Hình 1.4 Mô hình phân tầng của hệ thống

Kiến trúc của hệ thống gồm 3 tầng:
• Tầng ứng dụng: tầng này giúp người dùng tương tác với hệ thống. Hệ thống
cung cấp hai giao diện làm việc: Giao diện Web và giao diện Desktop. Thông
qua các giao diện làm việc, người dùng gửi yêu cầu tới hệ thống (yêu cầu đăng
ký, đăng nhập; yêu cầu upload, download tệp; yêu cầu chia sẻ tệp …). Với sự hỗ
trợ của các công nghệ lập trình web (HTML, JSP, Servlet …) và phần mềm mã
nguồn mở J-FTP, tầng ứng dụng cho phép người dùng tương tác với hệ thống
một cách trong suốt, và thuận tiện.
• Tầng dịch vụ: Cung cấp các chức năng, dịch vụ của hệ thống. Tầng này sử dụng
công nghệ lập trình Web Services của J2EE cũng như việc triệu gọi các dịch vụ

của lưới dữ liệu. Tầng dịch vụ còn giúp hệ thống có tính mở rộng và linh hoạt
cao (dễ dàng mở rộng các chức năng của hệ thống trong tương lai).
• Tầng lưới dữ liệu: Đóng vai trò lưu trữ dữ liệu (chủ yếu là các tệp của người
dùng), được xây dựng dựa trên nền tảng lưới dữ liệu.

15


Luận văn áp dụng công nghệ lưới dữ liệu và công nghệ lập trình Web của Java, xây
dựng hệ thống lưu trữ và chia sẻ dữ liệu với tên gọi LindaX (Linda is not data
archive Extension)

1.3 Nhiệm vụ đề tài
Đề tài thực hiện các nhiệm vụ chính:
• Nghiên cứu, áp dụng công nghệ lưới dữ liệu vào bài toán lưu trữ, chia sẻ dữ liệu
• Xây dựng các chức năng, dịch vụ, cơ chế cho phép người dùng lưu trữ dữ liệu
trên các máy tham gia lưới
• Xây dựng các cơ chế cho phép người dùng chia sẻ dữ liệu
• Đảm bảo tính bảo mật cho dữ liệu của người dùng

1.4 Nội dung luận văn
Chương 1: Giới thiệu đề tài, đưa ra phương hướng giải quyết, môi trường thực hiện đề
tài.
Chương 2: Giới thiệu cơ sở lý thuyết, các công nghệ chính được sử dụng trong đề tài
Chương 3: Thiết kế tầng lưới dữ liệu, đi sâu trình bày các chức năng, thành phần của
lưới dữ liệu được xây dựng, sử dụng trong luận văn.
Chương 4: Thiết kế, xây dựng các chức năng của tầng ứng dụng. Chương này giới
thiệu chi tiết quá trình xây dựng, thiết kế các chức năng chính của tầng ứng dụng cũng
như việc kết nối với tầng lưới dữ liệu.
Chương 5: Trình bày các kết quả đã đạt được của luận văn và hướng phát triển, mở

rộng của luận văn.

16


Chương 2 CƠ SỞ LÝ THUYẾT CỦA LUẬN VĂN
Chương này trình bày, làm rõ các khái niệm, các dịch vụ của một lưới dữ liệu đồng
thời giới thiệu công nghệ xây dựng ứng dụng Web J2EE và sử dụng phần mềm mã
nguồn mở J-FTP để xây dựng tầng ứng dụng cho hệ thống

2.1 Tổng quan về lưới dữ liệu (Data Grid)
2.1.1 Các khái niệm cơ bản
Trong những năm gần đây, tính toán lưới – Grid Computing nổi lên như một nền tảng
hỗ trợ tính toán phân tán trên những bộ dữ liệu lớn, thực hiện những công việc tính
toán phức tạp. Tư tưởng của Grid là kết hợp sức mạnh tính toán của hàng trăm, hàng
nghìn máy tính bình thường nằm phân tán về mặt địa lý, tạo thành một cơ sở hạ tầng
tính toán tổng hợp tương đương hoặc thậm chí vượt xa sức mạnh của những siêu máy
tính hiện đại đắt tiền.
Michael Di Stefano[1] đưa ra định nghĩa về tính toán lưới như sau:
“Lưới tính toán là cụm tài nguyên tính toán nào cung cấp môi trường hỗ trợ chia sẻ và
quản lý tài nguyên cho các công việc phân tán dựa trên chính sách nào đó”.
Còn Ian Foster[2] đưa ra ba đặc điểm của một lưới thực sự :
• Phối hợp sử dụng tài nguyên không dựa trên điều khiển tập trung.
• Sử dụng các giao thức chuẩn và có tính mở.
• Cung cấp chất lượng dịch vụ không tầm thường, theo nghĩa tài nguyên hoạt động
kết hợp trên môi trường lưới tạo ra chất lượng dịch vụ tốt hơn so với tổng chất
lượng dịch vụ của các tài nguyên đơn lẻ.
Hiện nay, nhiều người vẫn lẫn lộn khái niệm “tính toán lưới” với “tính toán ngang
hàng”. Cả hai có điểm chung là cùng giải quyết bài toán chia sẻ tài nguyên phân tán
giữa các tổ chức ảo (Virtual Organization)[3], cùng được xây dựng dựa trên kiến trúc


17


phân tầng, và mỗi hướng tiếp cận có điểm mạnh, điểm yếu riêng. Lưới được xây dựng
trên nền tảng kiến trúc chặt chẽ, phục vụ cộng đồng người dùng quy mô nhỏ, thường
nằm trong cùng lĩnh vực nghiên cứu mà họ quan tâm, hỗ trợ khả năng tích hợp tài
nguyên mạnh mẽ đa dạng hơn tính toán ngang hàng. Ứng dụng trên lưới thường là ứng
dụng khoa học, đòi hỏi khả năng tính toán cao và hướng người dùng. Ngược lại, tính
toán ngang hàng được xây dựng trên nền kiến trúc linh hoạt hơn, phục vụ cho một số
lượng lớn người dùng, có thể lên đến hàng triệu, chủ yếu hỗ trợ ứng dụng chia sẻ tài
nguyên như chia sẻ chu kỳ tính toán hoặc tệp.
Về mặt vật lý, lưới bao gồm một số lượng lớn các máy tính, cụm máy tính kết nối với
nhau qua một mạng, và được điều khiển bởi những kỹ thuật Quản lý hiệu quả. Về mặt
logic, lưới gồm hai thành phần tính toán và dữ liệu.
Lưới tính toán – Computing Grid: cung cấp dịch vụ Quản lý công việc trên môi trường
phân tán, tài nguyên là các chu kỳ CPU rỗi, băng thông mạng, bộ nhớ…
Lưới dữ liệu – Data Grid: cung cấp khả năng Quản lý dữ liệu, cho phép truy cập, đồng
bộ hóa và phân phối dữ liệu trên lưới. Tài nguyên của lưới dữ liệu gồm các hệ thống
lưu trữ, băng thông mạng và các tệp dữ liệu nằm phân tán trên các nút lưới.

Hình 2.1 Hai thành phần của một lưới

18


Lưới được phát triển để giải quyết các bài toán có tính song song hóa. Các bài toán này
đòi hòi tiến hành phân tích trên những bộ dữ liệu lớn, thường là dữ liệu tĩnh, lưu trữ
dưới dạng tệp. Những bộ dữ liệu này nằm phân tán trên các nút khác nhau của lưới tính
toán. Làm thế nào để các nút tính toán truy cập hiệu quả tài nguyên này? Vấn đề đảm

bảo tính toàn vẹn, đồng bộ dữ liệu được thực hiện thế nào?... Lưới dữ liệu sẽ giải đáp
câu trả lời trên.
Trong bất kỳ môi trường lưới nào, quản lý dữ liệu đều rất cần thiết, vì tài nguyên quan
trọng nhất của ứng dụng là dữ liệu. Một câu hỏi đặt ra: tại sao không sử dụng các kiến
trúc quản lý dữ liệu sẵn có để giải quyết bài toán quản lý dữ liệu trên lưới? Câu trả lời:
do tính chất phân tán, không đồng nhất là đặc trưng riêng của lưới, nên những giải
pháp truyền thống không áp dụng được.
2.1.2 Phân loại lưới dữ liệu
Lưới dữ liệu được phân làm hai loại: lưới dữ liệu mức 0 – quản lý các bộ dữ liệu tĩnh,
Lưới dữ liệu mức 1 – quản lý các bộ dữ liệu động.
2.1.2.1 Lưới dữ liệu mức 0
Lưới dữ liệu mức 0 cung cấp khả năng quản lý các bộ dữ liệu tĩnh, có dung lượng lớn
nằm phân tán trên các nút lưới. Đây là loại lưới dữ liệu được nghiên cứu triển khai và
cài đặt sớm nhất trên thế giới. Vì dữ liệu không thay đổi theo thời gian nên lưới mức 0
không giải quyết vấn đề liên quan đến cập nhật, quản trị giao dịch, tích hợp dữ liệu với
các hệ thống ngoài.
Trên lưới dữ liệu mức 0, vấn đề then chốt là dịch chuyển bộ dữ liệu giữa các nút. Hiện
nay, có ba kỹ thuật cơ bản nhất được sử dụng để truyền dữ liệu giữa các nút mạng, bao
gồm:
Giao thức truyền tệp FTP - File Transfer Protocol: được sử dụng rộng rãi để truyền
dữ liệu trên mạng. Trong môi trường lưới, các chức năng do FTP cung cấp là không

19


đủ. Nhóm dự án Globus đề xuất và phát triển giao thức mới GridFTP hỗ trợ truyền dữ
liệu tốt hơn. GridFTP phù hợp những bộ dữ liệu lớn, không thay đổi theo thời gian.
Hệ thống tệp phân tán - Distributed File System: cũng cho phép quản lý các tệp trên
mạng. Nhìn từ phía người sử dụng, hệ thống tệp phân tán có dạng cây thư mục. Người
sử dụng không cần biết tệp thực sự đang nằm trên nút nào. Kiến trúc của hệ thống tệp

phân tán là kiến trúc dựa trên máy chủ. Có một máy chủ làm nhiệm vụ quản lý ánh xạ
giữa tệp vật lý nằm trên nút cụ thể với tệp lôgic trong cây thư mục. Người dùng duyệt
cây thư mục, gửi yêu cầu tới máy chủ. Máy chủ đàm phán với nút đang lưu giữ tệp vật
lý tương ứng, rồi gửi lại tệp thực sự cho người dùng. Ví dụ về hệ thống tệp phân tán là
CODA hay hệ thống tệp mạng NFS – Network File System. Tuy nhiên, do tính phân
tán mạnh, không đồng nhất và nguyên tắc điều khiển phi tập trung nên hệ thống tệp
phân tán ít được sử dụng.
Trung tâm siêu dữ liệu: tích hợp dữ liệu từ các nguồn và khuôn dạng khác nhau vào
cấu trúc nhất quán, có khuôn dạng phù hợp với yêu cầu ứng dụng. Trung tâm siêu dữ
liệu nằm ở tầng trung gian giữa ứng dụng và nguồn dữ liệu, có nhiệm vụ che đi kỹ
thuật phức tạp liên quan đến kết nối, chuyển khuôn dạng, và truyền dữ liệu. Điều này
gần giống với khái niệm lưới dữ liệu ảo – Virtual Data Grid.
Điểm chung của ba kỹ thuật trên là không hỗ trợ tính năng quản trị giao dịch và xử lý
cập nhật. Chúng chỉ phù hợp đối với các nguồn dữ liệu bất biến, ít thay đổi theo thời
gian.
2.1.2.2 Lưới dữ liệu mức 1
Lưới dữ liệu mức 1 hỗ trợ bộ dữ liệu động, nội dung thường xuyên thay đổi theo thời
gian. Bên cạnh các chức năng thông thường, lưới dữ liệu mức 1 cung cấp khả năng
quản trị giao dịch và đồng bộ hóa dữ liệu. Ba kỹ thuật phổ biến được sử dụng để xây
dựng lưới dữ liệu mức 1 là JavaSpace, Bộ nhớ phân tán - Distributed Memory và Nhân
bản toàn cục - Global Replication.

20


JavaSpace là kiến trúc lập trình phân tán trong đó tiến trình phân tán liên lạc với nhau
bằng trao đổi đối tượng thông qua “không gian” - space hay bộ nhớ chia sẻ, thay vì liên
lạc trực tiếp qua truyền thông điệp hoặc các phương pháp triệu gọi từ xa. Tiến trình có
thể “ghi” hoặc “đọc” đối tượng từ một “không gian”. Khi muốn sửa đổi đối tượng,
trước tiên, tiến trình đưa đối tượng ra khỏi “không gian”, sửa đổi, rồi đặt nó trở lại.


Hình 2.2 Tiến trình phân tán sử dung space để phối hơp hoạt động

Kỹ thuật quản lý “không gian” của JavaSpace có khả năng truy vấn đối tượng dựa trên
điều kiện nào đó, khả năng quản trị giao dịch, đảm bảo tính nhất quán giữa các đối
tượng, và khả năng chia sẻ dữ liệu phân tán. Các đặc điểm này phù hợp để xây dựng
lưới dữ liệu mức 1. Vì JavaSpace chia sẻ đối tượng, nên thuộc tính và các phương thức
thực thi của đối tượng đó cũng được chia sẻ. Do đó, JavaSpace mang cả đặc tính của
lưới tính toán. Tuy nhiên, ứng dụng phân tán sử dụng JavaSpace phải được viết bằng
ngôn ngữ Java. Điều này cản trở tính mở của lưới dữ liệu.
Nhân bản toàn cục là kỹ thuật cung cấp khả năng lưu trữ dữ liệu phân tán và bền vững
trên các máy tính của lưới. Một trong những hệ thống như vậy là OceanStore của các
nhà khoa học thuộc trường đại học Berkeley, Hoa Kỳ. OceanStore cung cấp một loạt
các khả năng quản lý và lưu trữ bản sao hiệu quả, đảm bảo tính nhất quán cao giữa các

21


bản sao. Một tính năng quan trọng nữa là khả năng di chuyển dữ liệu tới những nút mà
dữ liệu được sử dụng thường xuyên nhất. Cũng giống như JavaSpace, kỹ thuật này mới
chỉ được triển khai trên ngôn ngữ Java. Vì vậy khả năng tích hợp với các ứng dụng
không viết Java bị hạn chế.
Bộ nhớ phân tán là môi trường truyền thông, cho phép các tiến trình phân tán chia sẻ
dữ liệu. Kỹ thuật quản lý bộ nhớ truyền thống được áp dụng, như xử lý tương tranh,
các cơ chế khóa tài nguyên… Điều này giúp đảm bảo tính đồng bộ, nhất quán của dữ
liệu. Để dễ hình dung, ta có thể liên hệ tới môi trường OpenMP phục vụ các hệ thống
nhiều bộ vi xử lý SMP – Symetric Multi Processor, trong đó, các bộ vi xử lý sử dụng
không gian nhớ chia sẻ.
2.1.3 Đặc điểm của lưới dữ liệu
Lưới dữ liệu thường được so sánh với các phương pháp quản trị dữ liệu truyền thống,

cụ thể là kỹ thuật quản trị dữ liệu quan hệ, từ đó thấy được đặc điểm nổi bật của lưới
dữ liệu so với các kỹ thuật trước đó.
2.1.3.1 Các kỹ thuật quản lý dữ liệu truyền thống
Trong số các kỹ thuật quản trị dữ liệu, kỹ thuật quản trị dữ liệu quan hệ được sử dụng
phổ biến nhất. Đặc điểm của kỹ thuật quản trị dữ liệu quan hệ thể hiện trên một số
phương diện:
Mô tơ dữ liệu: là tầng trung gian gắn kết giữa biểu diễn logic của dữ liệu với phương
diện vật lý của dữ liệu đó. Mô tơ dữ liệu bao gồm một chương trình quản trị thiết bị lưu
trữ và một chương trình quản trị dữ liệu Hình 2.3. Đặc điểm của mô tơ dữ liệu quyết
định tốc độ lưu trữ, tốc độ truy cập, khả năng mở rộng, tốc độ nhân bản dữ liệu cũng
như hiệu năng của hệ thống.

22


Hình 2.3 Hệ quản trị dữ liệu và mô tơ dữ liệu của nó

Cấu trúc dữ liệu: dữ liệu được tổ chức thành các bảng hai chiều, mỗi dòng là một bản
ghi, và mỗi cột là một thuộc tính của bản ghi đó. Bảng được ánh xạ tới tệp ở trên đĩa
thông qua mô tơ. Hệ quản trị cơ sở dữ liệu quan hệ có công cụ cho phép thiết lập
những mối quan hệ phức tạp giữa các bảng. Tính duy nhất của bản ghi trong bảng được
thiết lập nhờ khóa chính. Các bảng có thuộc tính chung có thể kết hợp với nhau nhờ
các khóa ngoại.
Truy vấn trong hệ quản trị cơ sở dữ liệu quan hệ được thực hiện bằng ngôn ngữ truy
vấn có cấu trúc SQL – Structured Query Language. SQL là một ngôn ngữ truy vấn
mạnh, đơn giản, dễ học và dễ sử dụng. Với SQL, người sử dụng có thể:
• Tạo lược đồ dữ liệu
• Truy vấn dữ liệu trên các bảng
• Tạo mối quan hệ giữa các bảng
• Sửa đổi bảng qua câu lệnh cập nhật và xóa

Thông qua ngôn ngữ SQL, người sử dụng có thể dễ dàng truy cập đến hệ thống. Đây là
một trong nhiều lý do khiến cho kỹ thuật quản trị dữ liệu quan hệ được sử dụng rộng
rãi.
Tính toàn vẹn: khi cập nhật hoặc thêm dữ liệu, ứng dụng phải đảm bảo dữ liệu đúng
đắn và chính xác. Hệ quản trị cơ sở dữ liệu quan hệ chỉ có trách nhiệm đảm bảo tính
toàn vẹn cho dữ liệu. Toàn vẹn dữ liệu là vấn đề đảm bảo – chừng nào còn có thể đảm

23


bảo được dữ liệu trong cơ sở dữ liệu được chính xác ở mọi lúc. Có hai cấp độ toàn vẹn:
toàn vẹn bản ghi và toàn vẹn tham chiếu.
Quản trị giao dịch: giao dịch là một đơn vị thực hiện chương trình có thể truy cập và
cập nhật các khoản mục dữ liệu khác nhau. Hệ quản trị cơ sở dữ liệu phải đảm bảo thực
hiện đúng đắn của giao dịch cho dù có lỗi xảy ra. Cụ thể: hoặc toàn bộ giao dịch được
thực hiện hoặc không một thao tác nào được thực hiện. Hơn nữa, quản lý đồng thời các
giao dịch phải được thực hiện để tránh trạng thái không nhất quán.
Sự kiện: hệ quản trị dữ liệu hỗ trợ và quản lý sự kiện, cả trong lẫn ngoài hệ thống. Khi
sự kiện xảy ra, hệ thống có những hành động phù hợp với sự kiện đó. Ví dụ, khi người
sử dụng xóa dữ liệu trên một bảng có toàn vẹn tham chiếu đến một số bảng khác, thì dữ
liệu tương ứng trong những bảng này cũng phải được xóa.
Sao lưu, phục hồi, tính sẵn dùng của dữ liệu: hệ quản trị dữ liệu phải là nguồn tài
nguyên thông tin tin cậy. Nó lưu trữ hiểu biết phục vụ cho các đơn vị nghiệp vụ hoạt
động. Vì thế, nó phải có khả năng phục hồi nhanh mỗi khi lỗi xảy ra. Để đảm bảo điều
này, sao lưu là một trong những biện pháp hữu hiệu. Bên cạnh đó, tính sẵn dùng của dữ
liệu, đáp ứng được yêu cầu của ứng dụng nghiệp vụ cũng tiêu chí quan trọng. Một số
kỹ thuật thực hiện việc này là kỹ thuật nhân bản, kỹ thuật theo dõi vết, kỹ thuật sao lưu
một phần hoặc toàn phần.
Bảo mật dữ liệu: trong hệ quản trị cơ sở dữ liệu quan hệ, vấn đề bảo mật rất quan
trọng. Hệ quản trị cơ sở dữ liệu có cơ chế thiết lập quyền hạn của người sử dụng. Dữ

liệu chỉ hữu hình đối với người có thẩm quyền. Định danh người dùng, phân nhóm và
định rõ quyền hạn trên mỗi nhóm người sử dụng, đồng thời tiến hành mã hóa dữ liệu là
những kỹ thuật phổ biến nhất đảm bảo tính bảo mật cho cơ sở dữ liệu.
2.1.3.2 Các yêu cầu thiết kế của lưới dữ liệu
Lưới dữ liệu có nhiều điểm tương đồng với hệ quản trị cơ sở dữ liệu quan hệ về mặt
chức năng. Lưới dữ liệu hỗ trợ chất lượng dịch vụ giống như hệ quản trị cơ sở dữ liệu
quan hệ, nhưng mang một số đặc điểm mới, phù hợp với hình trạng phân tán, không
đồng nhất của lưới. So với các phương pháp quản trị dữ liệu truyền thống, giao diện lập

24


×