Xây dựng nền tảng Webserver và ứng dụng trong dạy học

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ỏ.

pdf5 trang | Chia sẻ: thanhle95 | Lượt xem: 459 | Lượt tải: 1download
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.
Tài liệu liên quan