Nhu cầu lưu trữ dữ liệu ngày nay không chỉ gói gọn trên một máy tính cục bộ, người dùng còn
mong muốn sử dụng dữ liệu họ mọi lúc mọi nơi. Vì vậy xây dựng ứng dụng lưu trữ trực tuyến
là vấn đề đang được quan tâm. Ngoài ra với xu hướng phần mềm ngày nay được cung cấp
như một dịch vụ. Ứng dụng lưu trữ trực tuyến còn được cung cấp dưới dạng dịch vụ (web
services), giúp cho các nhà phát triển thứ ba dễ dàng sử dụng và tích hợp vào các ứng dụng
của họ.
6 trang |
Chia sẻ: tuandn | Lượt xem: 2271 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Phát triển ứng dụng lưu trữ trực tuyến, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
75
PHÁT TRIỂN ỨNG DỤNG LƯU TRỮ TRỰC TUYẾN
DEVELOPING ONLINE STORAGE APPLICATION
SVTH: HUỲNH NGUYÊN TOẢN
Lớp: 03T2, Trường Đại học Bách khoa, Đại học Đà Nẵng
GVHD: TS. NGUYỄN THANH BÌNH
Khoa CNTT , Trường Đại học Bách khoa, Đại học Đà Nẵng
TÓM TẮT
Nhu cầu lưu trữ dữ liệu ngày nay không chỉ gói gọn trên một máy tính cục bộ, người dùng còn
mong muốn sử dụng dữ liệu họ mọi lúc mọi nơi. Vì vậy xây dựng ứng dụng lưu trữ trực tuyến
là vấn đề đang được quan tâm. Ngoài ra với xu hướng phần mềm ngày nay được cung cấp
như một dịch vụ. Ứng dụng lưu trữ trực tuyến còn được cung cấp dưới dạng dịch vụ (web
services), giúp cho các nhà phát triển thứ ba dễ dàng sử dụng và tích hợp vào các ứng dụng
của họ.
Bài báo này trình bày ứng dụng sử dụng các web services và cho phép người dùng lưu trữ và
quản lý dữ liệu từ xa qua mạng.
SUMMARY
Nowadays the need to store data is not only on a local computer, users want to use the data
available wherever and whenever. Therefore, online storage application becomes a concern.
In addtion, the tendency now in software is “Software as a Service”. Online storage application
also is service, facilitates the third developers to use and integrate online storage application
into their own applications.
This article presents application using web services and allowing users to store and manage
data over internet.
1. Đặt vấn đề
Ứng dụng được phát triển gồm hai phần: Dịch vụ và chương trình client.
1.1. Dịch vụ
Dịch vụ cung cấp không gian lưu trữ từ xa, cho phép người dùng lưu trữ và quản lý dữ
liệu. Không gian lưu trữ của người dùng được giới hạn bởi dịch vụ. Dịch vụ bao gồm hai web
service:
Web Service Quản Lý Người Dùng.
Web Service Quản Lý Dữ Liệu.
Web Service Quản Lý Người Dùng bao gồm các chức năng:
Cho phép tạo người dùng mới.
Cung cấp cơ chế login và logout.
Web Service Quản Lý Dữ Liệu sẽ cung cấp các chức năng tương tự các hàm Windows
API như:
Lấy cấu trúc thư mục của vùng lưu trữ người dùng.
Tạo, sao chép, xóa, đặt tên lại, di chuyển thư mục.
Thêm, sao chép, xóa, đặt tên lại, di chuyển, tải tập tin.
1.2. Chương trình client
Chương trình client tiêu thụ dịch vụ và có các tính năng tương tự Microsoft Windows
Explorer. Người dùng sẽ sử dụng chương trình này để truy cập và quản lý dữ liệu của mình
trên dịch vụ.
2. Mô hình hoạt động của ứng dụng
2.1. Giao tiếp giữa dịch vụ và chương trình client
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
76
Chương trình client xác thực người dùng bằng cách truyền tên người dùng và mật khẩu
đến Web Service Quản Lý Người Dùng. Khi được xác nhận đúng, Web Service Quản
Lý Người Dùng trả về cho chương trình client một khóa bí mật (giá trị Globally
Unique Identifier). Khóa bí mật này đồng thời được lưu trong cơ sở dữ liệu của dịch vụ
dưới dạng là một trong những thông tin của người dùng.
Chương trình client tạo thẻ quản từ các thông tin: khóa bí mật và tên người dùng. Thẻ
quản này sẽ được dùng cho mỗi lần chương trình client gọi các phương thức dịch vụ
của Web Service Quản Lý Dữ Liệu.
Trước khi các phương thức dịch vụ của Web Service Quản Lý Dữ Liệu được thực hiện,
để xác nhận tính hợp lệ của thẻ quản, một Module Thẩm Định Quyền Người Dùng của
dịch vụ sẽ kiểm tra tính hợp lệ của thẻ quản:
o Nếu thẻ quản hợp lệ thì phương thức dịch vụ của Web Service Quản Lý Dữ
Liệu được thực hiện.
o Ngược lại nếu thẻ quản không hợp lệ thì lời gọi bị từ chối và thông báo đến
chương trình client.
Người dùng từ xa
với chương trình client
Tên người dùng &
mật khẩu
Khóa bí mật
Gọi phương thức
dịch vụ & thẻ quản
Kết quả thực hiện
Web Server
Database Server
Web Service
Quản Lý Người Dùng
Web Service
Quản Lý Dữ Liệu
Hình 2.1: Mô hình hoạt động của dịch vụ
Ngoài ra cũng có thể tăng cường tính bảo mật cho dịch vụ bằng cách thực hiện các lời gọi
dịch vụ thông qua giao thức Secure Sockets Layer (SSL).
2.2. Tạo và kiểm tra thẻ quản
Chươn trình client
Tên người dùng
Khóa
MAC
Algorithm
MAC
MAC: Message Authentication Code
Module Thẩm Định
Tên người dùng
Khóa
MAC
Algorithm
MAC
Kiển tra: Nếu bằng nhau thì xác thực
thẻ quản hợp lệ.
MAC
Tên người dùng
Thẻ quản
MAC = ?
Hình 2.2: Tạo và kiểm tra thẻ quản
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
77
Thẻ quản là sự kết hợp từ:
Tên tài khoản người dùng (gọi tắt là tên người dùng và là duy nhất cho mỗi người
dùng).
Giá trị MAC (Message Authentication Code) được tính từ tên người dùng bằng khóa bí
mật chung.
Quá trình chương trình client tạo thẻ quản và Module Thẩm Định Quyền Người Dùng
của dịch vụ kiểm tra tính hợp lệ của thẻ quản dựa trên phương pháp Mã xác thực thông báo
(Message Authentication Code). Quá trình được thể hiện qua Hình 2.2.
3. Kiến trúc ứng dụng
Ứng dụng được thiết kế dựa theo ý tưởng mô hình 3 tầng:
Các web service của dịch vụ bao gồm hai tầng: Tầng truy cập cơ sở dữ liệu và tầng
nghiệp vụ. Nghiệp vụ được xuất ra bên ngoài là các phương thức dịch vụ (các web
method của web service).
Tầng giao diện được thực hiện bởi chương trình client.
Data Access Layer
Data Sources
Business Layer
Web Method
Client
call
Service
Hình 3.1: Kiến trúc ứng dụng
4. Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu được dùng để lưu trữ thư mục tập tin của người dùng. Có thể nói việc
dùng cơ sở dữ liệu là sự lựa chọn trái với thông thường cho thành phần lưu trữ thư mục tập tin
của một dự án. Xu hướng kỹ thuật là sử dụng các hệ thống tập tin có sẵn như FAT32 hay
NTFS, vì giao diện lập trình của các hệ thống tập tin này yêu cầu ít mã hơn và sự thực thi của
nó cũng dễ hiểu hơn.
Nếu không xét về tính dễ dàng khi lập trình, thì sẽ có các lợi ích khi sử dụng hệ thống
cơ sở dữ liệu. So với các hệ thống tập tin, hệ thống cơ sở dữ liệu dễ dàng tùy chỉnh không gian
lưu trữ hơn, cơ sở dữ liệu có thể được mở rộng, nó có một tập các công cụ và tính năng hỗ trợ
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
78
như: Chỉ mục (indexing), truyền dữ liệu, sao lưu, phục hồi, tạo bản sao (replication), truy vấn,
tìm kiếm, theo dõi (monitoring), và một số tính năng nghiệp vụ khác.
Cơ sở dữ liệu của dịch vụ được thiết kế dựa trên sự kết hợp của hai phương pháp là mô
hình cây và mô hình tập hợp.
4.1. Mô hình cây
Mô hình cây được sử dụng thường xuyên để miêu tả mối quan hệ cấp bậc. Trong mô
hình này thư mục và tập tin là những nút của cây. Có những loại nút sau:
Nút cha: Nút có ít nhất một nút con.
Nút con: Nút có một nút cha.
Nút gốc: Nút không có nút cha.
Nút lá: Nút không có nút con.
Hình 4.1 là một ví dụ về mô hình cây, ví dụ này được sử dụng xuyên suốt trong phần
trình bày này.
VN
SG
Q1
Q5
HN
DN
LC
HK
HM
NHS
HC
VN
SG
Q1 Q5
HN DN
LC NHS HC
HK HM
Hình 4.1: Mô hình cây
Để thực hiện mô hình cây trong cơ sở dữ liệu ta có thể thiết kế một ánh xạ giữa những
nút cha và những nút con bằng cách sử dụng một bảng (table). Trong bảng, mỗi bản ghi
(record) nút sẽ có một khóa chính và một khóa tham khảo đến nút cha (một bản ghi khác)
trong cùng một bảng.
Id Parent Name
1 Null VN
2 1 SG
3 1 HN
4 1 DN
5 2 Q1
6 2 Q5
7 4 LC
8 4 NHS
9 4 HC
10 7 HK
11 7 HM
Bảng 4.1: Thực hiện mô hình cây bằng cách sử dụng một bảng
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
79
Dịch vụ xuất ra nội dung cấp bậc thư mục tập tin của người dùng dưới dạng XML.
Chương trình client có thể sử dụng thông tin này để hiển thị trong một cây thư mục. Khi kết
quả được miêu tả dưới dạng XML, mỗi hàng là một phần tử, mỗi cột là một thuộc tính. Những
thuộc tính với giá trị null được bỏ qua. Những phần tử chỉ chứa những thuộc tính với những
giá trị của cột tương ứng là khác null. Ví dụ, ba bản ghi đầu tiên sẽ được xuất ra như sau:
4.2. Mô hình tập hợp
Chay Visual Basic là các ngôn ngữ thủ tục. Các nhà phát triển quen với việc dùng các
ngôn ngữ thủ tục để tổ chức dữ liệu trong các cấu trúc dữ liệu như danh sách hay mảng.
Những đối tượng trong những ngôn ngữ đó được xử lý ở một thời điểm sử dụng vòng lặp hay
đệ quy. SQL không giống như những ngôn ngữ nói trên, nó là ngôn ngữ hướng tập hợp. SQL
được sử dụng để tổ chức dữ liệu trong những tập hợp. Khi một tập hợp được xử lý, toàn bộ tập
hợp sẽ được xử lý với cùng một câu lệnh ở cùng một thời điểm hơn là một bản ghi ở một thời
điểm.
Đây là điểm quan trọng cho việc thực hiện phân cấp thư mục tập tin. Nếu người sử
dụng muốn sao chép thư mục DN thì tất cả những thư mục con của thư mục DN cũng phải
được sao chép. Chúng ta xem xét với cách thực hiện bằng mô hình cây: liệu cần bao nhiêu câu
lệnh select?, có cần thiết sử dụng bảng tạm (temporary table) hay kỹ thuật lặp nào không ?.
Bây giờ hãy xem xét mô hình tập hợp ở Hình 4.2. Q1
Q5
SG
HN
NHS HC
HK
HM
DN
LC
VN
Hình 4.2: Mô hình tập hợp
Sử dụng mô hình tập hợp cho phân cấp thư mục tập tin dễ dàng xác định các thư mực
con của thư mục DN. Nếu phân cấp thư mục tập tin được thực hiện bằng kỹ thuật này, thì chỉ
cần duy nhất một câu lệnh select. Mô hình tập hợp sử dụng chuỗi số (number line) thể hiện
qua Hình 4.3.
VN
1
HN
8 9
SG
2
Q1
3 4
Q5
5 6 7
LC
16
DN
10 11
HK
12 13
HM
14 15
NHS
17 18
HC
19 20 21 22
Hình 4.3: Mô hình tập hợp sử dụng phương pháp chuỗi số
Sử dụng phương pháp chuỗi số cho hệ phân cấp thư mục tập tin, dễ dàng truy vấn để
tìm các nút, số lượng các nút trong một tập hợp. Những kết quả này cũng có thể thực hiện
bằng mô hình cây, nhưng các câu truy vấn sẽ phức tạp hơn và không hiệu quả.
Tuyển tập Báo cáo “Hội nghị Sinh viên Nghiên cứu Khoa học” lần thứ 6 Đại học Đà Nẵng - 2008
80
5. Kết quả
Với chương trình client, người dùng có thể tạo tài khoản hay đặng nhập vào dịch vụ.
Sau khi đăng nhập thành công, người dùng có thể sử dụng vùng lưu trữ của mình trên dịch vụ.
Hình 5.1: Màn hình kết quả chương trình client
6. Kết luận
Dựa vào các yêu cầu đặt ra ban đầu, tôi đã xây dựng, thử nghiệm được ứng dụng lưu
trữ trực tuyến và đã đạt được một số kết quả sau:
Dịch vụ bao gồm các web service cung cấp các phương thức tương tự như các hệ thống
tập tin trên Windows hay Linux vì thế giúp các nhà phát triển thứ ba dễ dàng sử dụng
và tích hợp vào các ứng dụng của họ.
Chương trình client đóng vai trò là chương trình tiêu thụ dịch vụ, với giao diện tương
tự như Microsoft Windows Explorer giúp người dùng sử dụng và quản lý lưu trữu của
mình một cách dễ dàng.
Hướng phát triển của ứng dụng là thêm chức năng chia sẽ dữ liệu giữa các người dùng.
TÀI LIỆU THAM KHẢO
[1] David Jorgensen (2002). Developing .NET Web Services with XML. Syngress Publishing,
Inc.
[2] Thomas Erl (2005). Service-Oriented Architecture: Concepts, Technology, and Design.
Prenice Hall PTR.
[3] Edward Jezierski (2002). Application Architecture for .NET: Designing Applications and
Services. Microsoft Press.
[4] Microsoft Developer Network (MSDN).
[5] Wikipedia.org.