Muốn hiểu tại sao người ta chia một phần mềm có lưu trữ dữ liệu thành 3 lớp 3-Tiers, thì phải nhìn từ lịch sử lập trình, nghĩa là tại sao người ta cần chia một phần mềm ra thành nhiều
Trang 2Nội dung chính của slide này
Mô hình 3-Tiers
Xây dựng ứng dụng mẫu theo 3-Tiers
Trang 3Mô hình 3-Tiers
Tại sao lại sử dụng 3-Tiers?
Mô hình 3-Tiers là gì?
Trang 4Tại sao lại sử dụng 3-Tiers?
Muốn hiểu tại sao người ta chia một phần mềm có lưu trữ
dữ liệu thành 3 lớp (3-Tiers), thì phải nhìn từ lịch sử lập
trình, nghĩa là tại sao người ta cần chia một phần mềm ra thành nhiều phần khác nhau? Rồi những phần đó tại sao lại
được xếp nhóm vào 3 lớp chính là Presentation, Business
Logics và Data?
Trang 5Tại sao lại sử dụng 3-Tiers?
Sau nhiều năm phát triển, kinh nghiệm cho người ta thấy chia phần mềm thành 3-Tiers sẽ có tác dụng tốt nhất cho:
Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia
cho nhiều nhóm được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình đến tổ chức Database
Bảo trì: Với các lớp được phân chia theo như đã nói, thì các
thành phần của một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tán náo loạn trong cả chương trình
Mở rộng: Việc thêm chức năng vào cho từng lớp sẽ dễ dàng
hơn là phân chia theo cách khác
Trang 6Mô hình 3-Tiers là gì?
“3-Tiers là một kiến trúc kiểu client/server mà trong đó giao
diện người dùng (UserInterface), các quy tắc xử lý nghiệp vụ (BusinessRule hay BusinessLogic), và việc lưu trữ dữ liệu được
phát triển như những module độc lập, và mô hình 3 lớp
(3-Tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.” (dịch từ Wikipedia)
Trang 7Mô hình 3-Tiers là gì?
Như vậy, mô hình này phân tách ứng dụng ra làm 3 module riêng biệt, bao gồm:
Lớp Presentation: Để giao tiếp với người dùng, nhiệm vụ
chính là hiển thị dữ liệu và nhận dữ liệu từ người dùng
Lớp Business Logic: Xử lý dữ liệu, cung cấp các chức năng
của phần mềm
Lớp Data: Lưu trữ dữ liệu, cho phép lớp Business Logic có thể
tìm kiếm, trích xuất, cập nhật,… dữ liệu
Trang 8Mô hình 3-Tiers là gì?
Trang 9Xây dựng ứng dụng mẫu theo 3-Tiers
Các trang khác ngoài index.php
Code mẫu theo mô hình 3-Tiers
Trang 10Lớp DataService
Chứa thông tin kết nối đến CSDL:
server : Sever chứa CSDL muốn kết nối đến
username : Tên đăng nhập CSDL
password : Mật khẩu đăng nhập
database : Tên cơ sở dữ liệu cần kết nối
Chứa các hàm xử lý trực tiếp với CSDL:
Hàm kết nối
Hàm thực thi truy vấn
Hàm xử lý dữ liệu trước khi thực thi truy vấn
Lớp này được thực thi trên Server
Trang 11Lớp DataService
Trang 12Lớp Data
Chứa các hàm truy vấn đến CSDL
Lấy dữ liệu (SELECT) Dùng ExecuteQuery()
Thêm mới, Cập nhật, Xóa Dùng ExecuteNonQuery()
Các hàm trong lớp này gọi hàm trực tiếp từ lớp DataService
để thực thi truy vấn
Lớp này được thực thi trên Server
Trang 13Lớp Data
Tên lớp
Một số hàm thực thi
truy vấn
Trang 15Lớp Business
Danh sách các thuộc tính (Properties)
Trang 16Lớp Presentation
Trong thiết kế web, lớp này còn được gọi là Front-end (theo cách hiểu đơn giản), tức là phần giao diện mà người dùng nhìn thấy, thao tác được
Phần này chứa các giao diện hiển thị nội dung, các form nhập liệu, hộp thoại giao tiếp với người dùng
Lớp này được thực thi phía Client
Trang 17Lớp Presentation
Trang 18Trang index.php
Hàm autoload($class_name) dùng để lấy
tên lớp đang thực thi thông qua toán tử new
Kỹ thuật dùng include thông qua file do.php
Trang 19Trang index.php
Kỹ thuật dùng include thông qua file do.php
Trang 20Các trang khác ngoài index.php
Hàm autoload() bên
trang index.php sẽ “bắt”
được tên lớp là sachbs
Đảm bảo rằng mọi trang khác phải được
truy xuất thông qua trang index.php
Trang 21Code mẫu theo mô hình 3-Tiers
Demo bài tập quản lý sách trực tuyến
Source code mẫu tham khảo tại trang web:
http://www.mediafire.com/?uddl71c31o889
Tài liệu môn học:
http://www.mediafire.com/?0cfkrezobdzu6
Trang 22Giải đáp thắc mắc