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.. Web Service Quản Lý Dữ Liệu sẽ cung cấp các chức năng tương tự
Trang 1PHÁ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
Trang 2 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ương trình client Tên người dùng
Algorithm
MAC
MAC: Message Authentication Code
Module Thẩm Định Tên người dùng
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 = ?
Trang 3Thẻ 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ợ
Trang 4như: 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
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
Bảng 4.1: Thực hiện mô hình cây bằng cách sử dụng một bảng
Trang 5Dị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:
<Tree Id="1" Name="VN"/>
<Tree Id="2" Parent="1" Name="SG"/>
<Tree Id="3" Parent="1" Name="HN"/>
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
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
SG 2
Q1
Q5
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ả
Trang 65 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