1. Mở đầu
Trong những năm gần đây, sự bùng nổ của ngành Công nghệ thông tin nói chung
và mạng Internet nói riêng kéo theo nhu cầu xây dựng các website doanh nghiệp lẫn cá
nhân. Để xây dựng một website cho các doanh nghiệp thường cần một chi phí không
nhỏ, chi phí này bao gồm cả phần cứng và phần mềm để duy trì hoạt động của một
website. Với các website cá nhân chi phí thường thấp, thậm chí có là miễn phí, tuy
nhiên tính tồn tại cũng như tính tự chủ của các cá nhân với website của mình thường
còn hạn chế.
Để đơn giản và hiện thực hóa vấn đề này, chúng tôi đề xuất và hiện thực hóa việc
xây dựng một nền tảng web server nhỏ gọn (tự đặt tên là PedaServer) nhưng đủ đáp
ứng đủ những yêu cầu tối thiểu như bảo mật, dễ dùng để xây dựng và duy trì các
website nhỏ.
5 trang |
Chia sẻ: thanhle95 | Lượt xem: 446 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Xây dựng nền tảng Webserver và ứng dụng trong dạy học, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Năm học 2010 – 2011
33
XÂY DỰNG NỀN TẢNG WEBSERVER
VÀ ỨNG DỤNG TRONG DẠY HỌC
Lê Nguyên Dũng
(SV năm 2, Khoa Công nghệ Thông tin)
GVHD: Lương Trần Hy Hiến
1. Mở đầu
Trong những năm gần đây, sự bùng nổ của ngành Công nghệ thông tin nói chung
và mạng Internet nói riêng kéo theo nhu cầu xây dựng các website doanh nghiệp lẫn cá
nhân. Để xây dựng một website cho các doanh nghiệp thường cần một chi phí không
nhỏ, chi phí này bao gồm cả phần cứng và phần mềm để duy trì hoạt động của một
website. Với các website cá nhân chi phí thường thấp, thậm chí có là miễn phí, tuy
nhiên tính tồn tại cũng như tính tự chủ của các cá nhân với website của mình thường
còn hạn chế.
Để đơn giản và hiện thực hóa vấn đề này, chúng tôi đề xuất và hiện thực hóa việc
xây dựng một nền tảng web server nhỏ gọn (tự đặt tên là PedaServer) nhưng đủ đáp
ứng đủ những yêu cầu tối thiểu như bảo mật, dễ dùng để xây dựng và duy trì các
website nhỏ.
2. Mục đích, đối tượng nghiên cứu
Đề tài này nghiên cứu xây dựng một WebServer nhỏ gọn có đầy đủ các tính năng
cơ bản phục vụ cho việc phát triển ứng dụng web và cung cấp các tính năng mới như:
bảo mật, phân quyền truy cập webserver theo tập tin, thư mục; phân quyền thực thi
scrpiting, sqlite,
Đối tượng nghiên cứu gồm những nội dung sau:
• Server core: Phần tương tác kết nối, quản lý các kết nối, truyền nhận giữa
server và các client.
• Minimum Scripting Engine: Phần xử lý ngôn ngữ kịch bản tại server (ngôn
ngữ lập trình được server hỗ trợ).
• SQLite: Phần xử lý tương tác với cơ sở dữ liệu.
• Plugin: Nền tảng bổ sung chức năng.
3. Kết quả nghiên cứu
3.1. Server core
Chúng tôi đã xây dựng được server core phục vụ cho các mục đích sau:
Kỷ yếu Hội nghị sinh viên NCKH
34
- Quản lý các kết nối từ các máy trạm tới server theo giao thức HTTP.
- Quản lý tương tác tới các thành phần như plugin, scripting, tương tác file
thích hợp với mỗi request của máy trạm.
3.2. Xây dựng một ngôn ngữ lập trình
Phân tích
ngữ pháp
Máy ảo
Hình 2. Kiến trúc xây dựng một trình thông dịch
Hình 1. Kết nối client-server
ServClient
Process
Thread 1
Thread 2
Thread 3
Thread 4
Năm học 2010 – 2011
35
- Đề tài tiến hành xây dựng một trình thông dịch và một máy ảo riêng với cú pháp
đầu vào là một ngôn ngữ có cú pháp tương tự ngôn ngữ PHP được gọi là Minimum
Scripting Language.
- Ngôn ngữ này cho phép làm việc với nền tảng Cơ sở dữ liệu SQLite.
- Trình thông dịch này với máy ảo chạy độc lập với hệ thống thực đảm bảo an
toàn khi vận hành mã thực thi trên server.
3.3. Tương tác plugin
- Plugin là thành phần nhúng (embed) bổ sung chức năng cho ứng dụng ban đầu.
Ở PedaServer, chúng tôi cho phép sử dụng các plugin để bổ sung thêm tính năng xử lý
ở các URL quy định từ phía người quản trị.
- Mỗi plugin là một thành phần hoàn toàn riêng biệt lẫn nhau và lẫn server core.
Các plugin chỉ liên kết với server core bằng các hàm gọi. Plugin được khởi động khi
server khởi động, kết thúc phiên làm việc khi server dừng làm việc.
- Một plugin của PedaServer là một Thư viện liên kết động (Các tập tin có đuôi
.dll) gồm có 3 hàm:
Init: Khởi tạo dữ liệu ban đầu.
RunIt: Với mỗi truy vấn tới, hàm này sẽ được gọi để xử lý sau đó trả về giá trị
tương ứng với truy vấn đó.
Clean: Giải phóng bộ nhớ.Với việc cho phép sử dụng plugin, PedaServer có thể
Client
Hình 3. Tương tác với Plugin
Server
core
Server
Plugin
table
Request
Request
Resul
Respons
Plugin Plugin Plugin
Kỷ yếu Hội nghị sinh viên NCKH
36
dễ dàng xây dựng ứng dụng web service mà vẫn đảm bảo tính gọn nhẹ của ứng dụng.
3.4. Bảng phân quyền hệ thống
- Xây dựng cơ chế phân quyền theo thư mục với các quyền: truy xuất thư mục,
truy xuất dữ liệu bên trong thư mục, thực thi scripting, cho sử dụng SQLite.
- Cơ chế phân quyền xuyên suốt từ quyền truy xuất tới thực thi scripting giúp
đảm bảo hệ thống vận hành bảo mật theo cấu hình của người quản trị.
3.5. Ứng dụng minh họa: Từ điển online (PedaDict)
- Một từ điển online (Anh Việt - Việt Anh) hoạt động nhanh mà vẫn gọn nhẹ, có
thể triển khai trên những máy yếu. Cơ sở dữ liệu của từ điển lấy từ
www.tudientiengviet.net.
/add /sample/site/index.min
/sample/sql.min /sql
Tập nguồn Tập đích
Hình 4. Ánh xạ URL
Hình 5. Giao diện chính của từ điển PedaDict
Gợi ý
Nghĩa
Năm học 2010 – 2011
37
Đây là ví dụ thể hiện khả năng ứng dụng của nền tảng web server PedaServer với
cơ chế Plugin.
- Ứng dụng:
o Khai triển tại máy cá nhân: Do ứng dụng đòi hỏi cấu hình rất thấp nên có thể
dễ dàng cài đặt trên máy tính cá nhân.
o Dùng trong mạng nội bộ: Do thế mạnh là giao diện trên nền web nên các máy
khác cùng mạng có thể dễ dàng truy cập và sử dụng từ điển này khi có một máy bất kỳ
trong mạng có cài đặt ứng dụng.
o Từ điển online: Chỉ cần một máy chủ có kết nối Internet và cấu hình có thể
khai triển ứng dụng thành một từ điển online dễ dàng.
4. Kết luận
- Mặc dù còn gặp một số hạn chế, nhưng đề tài bước đầu đã xây dựng được một
nền tảng cơ sở để có thể phát triển và duy trì một số dạng web site nhất định trên các
máy chủ không yêu cầu cao về cấu hình.
- Nền tảng trình thông dịch của đề tài với máy ảo là cơ sở để phát triển lên một
web server hỗ trợ các ứng dụng web service trong tương lai.
TÀI LIỆU THAM KHẢO
1. Devin Cook (2011), GOLD Meta-Language Overview.
2. D. Richard Hipp (2011), SQLite, website: www.sqlite.org.
3. Jan Niestadt (1999), Article: Implementing A Scripting Engine, website:
www.flipcode.com.
4. Sekio (2007), article: SupraWWW, website:
5. Lê Ngọc Sơn (2009), Giáo trình trình biên dịch, Đại học Công nghiệp TP Hồ Chí
Minh, lưu hành nội bộ.
6. Lee Thomason (2010), TinyXML.
7. w3schools (2011), PHP MySQL Introduction.
8.