Mô hình hoạt động hệ thống

Một phần của tài liệu Nghiên cứu mô hình xử lý dữ liệu mã hóa và bảo mật dữ liệu trong điện toán đám mây (Trang 74 - 79)

CHƯƠNG 3. TRIỂN KHAI CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ MÔ HÌNH

3.1. Mô hình triển khai

3.1.2. Mô hình hoạt động hệ thống

Hình 3.2. Lưu đồ hoạt động

Hoạt động của hệ thống: Nhìn vào lưu đồ hoạt động của hệ thống ta thấy rõ quá trình hoạt động trải qua 6 bước cụ thể như sau:

- Bước 1: Người dùng tại máy Client mở trình duyệt web truy cập vào ứng dụng được lưu trên máy Web server. Sau đó người dùng gửi các yêu cầu về dữ liệu thông qua việc sử dụng các chức năng của ứng dụng đó.

- Bước 2: Ứng dụng xử lý các yêu cầu chức năng của người dùng, sinh ra các truy vấn tương ứng để truy vấn tới cơ sở dữ liệu thông qua CryptDB.

- Bước 3: CryptDB proxy chặn lại và viết lại các truy vấn đó, điều chỉnh các lớp mã hóa nếu cần thiết sau đó chuyển tiếp các truy vấn đƣợc mã hóa tới máy chủ DBMS để thực thi.

- Bước 4: Máy chủ DBMS thực thi các truy vấn đó và trả về kết quả của truy vấn (đƣợc mã hóa) cho CryptDB.

- Bước 5: CryptDB sẽ tiến hành giải mã các kết quả được mã hóa đó thành bản rõ và trả về cho ứng dụng.

- Bước 6: Ứng dụng nhận và hiển thị kết quả dưới dạng bản rõ đáp ứng các yêu cầu của người dùng.

Ứng dụng thử nghiệm: Là ứng dụng quản lý sách đơn giản đƣợc xây dựng bằng HTML, CSS, PHP và MySQL gồm có một số chức năng cơ bản nhƣ tạo cơ

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

sở dữ liệu, tạo bảng “books” trong cơ sở dữ liệu, thực hiện các thao tác trên bảng đó để quản lý sách nhƣ; thêm, xem, sửa, xóa, tìm kiếm.

Giao diện của ứng dụng thử nghiệm: Bằng cách sử dụng HTML và CSS, ta có thể dễ dàng tạo đƣợc một ứng dụng quản lý sách với giao diện đơn giản nhƣ hình 3.3. Trong đó, phần header bao gồm các mục thể hiện một số thông tin về ứng dụng, phần sidebar bên trái chứa các chức năng của ứng dụng và phần chính giữa hiển thị nội dung khi ta thực hiện các chức năng đó của ứng dụng.

Hình 3.3. Giao diện ứng dụng thử nghiệm

Chức năng của ứng dụng thử nghiệm: Để tạo các chức năng cho ứng dụng, ngôn ngữ lập trình ta sẽ sử dụng ở đây là PHP. Các chức năng bao gồm tạo cơ sở dữ liệu, tạo hoặc thiết lập lại bảng trong cơ sở dữ liệu; thêm, xem, sửa, xóa, tìm kiếm thông tin của sách trong cơ sở dữ liệu.

- Chức năng tạo cơ sở dữ liệu: Để tạo cơ sở dữ liệu sử dụng cho ứng dụng, trước hết ta cần kết nối tới máy chủ cơ sở dữ liệu (ở đây ta sẽ kết nối tới CryptDB qua cổng 3307 với user/password mặc định của CryptDB là

„root‟/„letmein‟, thành phần kết nối với máy chủ cơ sở dữ liệu là CryptDB), sau khi kết nối thành công ta sẽ tiến hành chạy câu lệnh “CREATE DATABASE IF NOT

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

EXISTS `lvtn`”để tạo một cơ sở dữ liệu mới có tên là “lvtn”. Đoạn mã PHP sau đây sẽ giúp ta thực hiện đƣợc việc này.

$dbc = mysql_connect('127.0.0.1:3307', 'root', 'letmein');

if($dbc) {

//kết nối cơ sở dữ liệu thành công //tạo cơ sở dữ liệu

$r = mysql_query("CREATE DATABASE IF NOT EXISTS `lvtn`;");

if(!$r) { //câu lệnh bị lỗi

$fail = 1; //cờ lỗi gán bằng 1 die(mysql_error($dbc));

}

//thông báo tạo thành công nếu không có lỗi if($fail != 1) {

echo "<p class='success'>your database has been created succesfully</p>";

} } else {

//kết nối cơ sở dữ liệu không thành công

trigger_error("Could not connect to database: ".

mysqli_connect_error());

}

- Chức năng tạo hoặc thiết lập lại bảng “books” trong cơ sở dữ liệu “lvtn”:

Chức năng này sẽ thực hiện kiểm tra trong cơ sở dữ liệu “lvtn” đã tồn tại bảng

“books” chƣa. Nếu bảng “books” chƣa tồn tại, sẽ tiến hành tạo bảng “books”

mới với các trường “book_id”, “title”, “publisherName”, “publicationDate”,

“author”, “number”. Nếu bảng “books” đã tồn tại, sẽ tiến hành xóa bảng

“books” đó đi và tạo một bảng mới. Ở đây các câu lệnh SQL để tạo bảng, ứng dụng sẽ tiến hành thực thi từng câu lệnh để tạo bảng “books”.

@$create=mysql_query("CREATE TABLE `books` (

`book_id` mediumint(8) UNSIGNED AUTO_INCREMENT ,

`title` VARCHAR(120) NOT NULL ,

`publisherName` VARCHAR(120) NOT NULL ,

`publicationDate` mediumint(12) UNSIGNED NOT NULL ,

`author` VARCHAR(120) NOT NULL ,

`number` mediumint(8) UNSIGNED NOT NULL ,

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn PRIMARY KEY (`book_id`)

);");

//thông báo thành công nếu không có lỗi

if ($create) print "Creating successful table<br>";

else print "Table \"books\" Error SQL.<br>";

- Chức năng thêm sách: Một form để nhập thông tin của từng sách đƣợc tạo ra với các trường tương ứng với các trường trong bảng “books”. Bằng phương thức POST của PHP, giá trị của các trường trong form sẽ được lưu vào các biến cụ thể, các biến này sẽ đƣợc sử dụng để thêm thông tin cho một quyển sách vào bảng “books” thông qua lệnh INSERT trong SQL:

$sql="insert into books (title, publisherName, publicationDate, author, number)

values('$title','$publisherName','$publicationDate','$author','$numb er')";

$query=mysql_query($sql);//thực thi truy vấn

if($query) echo "<p style=\"color:#008bff; text-align:center;\">The Book was added successfully!</p>";

else echo "<p style=\"color:#008bff; text-align:center;\">The Book was not added due to a system error</p>";

- Chức năng xem thông tin sách: Khi thực hiện chức năng này, ứng dụng sẽ truy vấn toàn bộ thông tin của các quyển sách có trong cơ sở dữ liệu thông qua lệnh SELECT và hiển thị ra màn hình.

$sql="select * from books";

$query=mysql_query($sql);

if ($query){

if(mysql_num_rows($query) == 0){

echo "<tr>"; echo "<td>Empty Data</td>"; echo "</tr>";

}else{

while($data=mysql_fetch_assoc($query)){

echo "<tr height=\"35\" align=\"center\">";

… // hiển thị dữ liệu echo "<td><a

href='edit.php?cid=$data[book_id]'>Edit<a></td>";

echo "<td><a href='del.php?cid=$data[book_id]' onclick='return xacnhan();'>Delete</a></td>";

echo "</tr>";

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn }}}

- Chức năng sửa/xóa sách: Trong chức năng xem sách, khi hiển thị sách ra màn hình, bên cạnh mỗi tên sách sẽ có liên kết tới hai chức năng sửa/xóa. Để có thể sửa/xóa đúng sách, ta sẽ thêm một biến „cid‟ vào liên kết tới hai chức năng này, sau đó sử dụng phương thức GET trong PHP để lấy giá trị của biến „cid‟ và cuối cùng tiến hành UPDATE/DELETE sách có books_id tương ứng với „cid‟

đã chọn.

$sql="update books set title = '$title', publisherName =

'$publisherName', publicationDate = '$publicationDate', author = '$author' , number = '$number' where book_id = '$id'";

mysql_query($sql); // thực thi lệnh cập nhật

echo "<p style=\"color:#FF0000; text-align:center;\">Edit Content succesfully!</p>";

---

$sql="delete from books where book_id='$id'";

mysql_query($sql); // thực thi lệnh xóa 1 quyển sách echo "Books have been deleted!"

- Chức năng tìm kiếm sách: Với chức năng này, ta sẽ tạo một form cho người dùng nhập tên sách cần tìm kiếm. Ứng dụng sẽ truy vấn tới cơ sở dữ liệu và SELECT sách có tên ứng với giá trị cần tìm, sau đó hiển thị ra màn hình.

$sql="select * from books where title='$title'";

$query=mysql_query($sql);

if($query){

if(mysql_num_rows($query) == 0){ echo "Not found";

}else{

// hiển thị kết quả đã tìm thấy }

Kịch bản thử nghiệm: Với hệ thống đƣợc trình bày nhƣ trên, kịch bản thử nghiệm mô hình diễn ra như sau: Đóng vai trò là một người dùng thông thường, ta sẽ sử dụng một trình duyệt web (nhƣ Mozila Firefox chẳng hạn) để truy cập tới ứng dụng trên Web server. Sau đó ta sử dụng các chức năng của ứng dụng nhằm truy xuất các dữ liệu cần thiết, ứng dụng thực thi yêu cầu và trả về kết quả.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Đóng vai trò là một người quản trị của Database server, ta sẽ xem xét dữ liệu của người dùng được lưu trữ thế nào trên cơ sở dữ liệu mà ta quản trị. Thử nghiệm thành công nếu kết quả từ Web server trả về cho người dùng bình thường là đọc được còn người quản trị Database server không thể đọc được dữ liệu được lưu trên cơ sở dữ liệu do dữ liệu đã được mã hóa hoàn toàn. Lưu ý với việc các truy vấn phải đi qua CryptDB trước khi tới được Database server nên ta có thể dự đoán đƣợc tốc độ đáp ứng yêu cầu của ứng dụng sẽ chậm hơn bình thường.

Một phần của tài liệu Nghiên cứu mô hình xử lý dữ liệu mã hóa và bảo mật dữ liệu trong điện toán đám mây (Trang 74 - 79)

Tải bản đầy đủ (PDF)

(93 trang)