Mô hình 3 lớp (Three Layer Model) là một kiến trúc phổ biến, cơ bản và là lõi của tất cả dạng lập trình phần mềm, giúp tách biệt các thành phần của ứng dụng để dễ dàng quản lý và bảo trì. Mô hình này thế hiển quy trình nghiệp vụ một cách thống nhất, xuyên suốt và có trật tự như mũi tên đã chỉ rõ. Cùng FPT Polytechnic TP HCM tìm hiểu về 3 lớp chính của mô hình.

Lớp giao diện người dùng (GUI Layer)
Lớp giao diện người dùng là lớp đầu tiên mà người sử dụng tương tác trực tiếp. Lớp giao diện người dùng chủ yếu tập trung vào việc hiển thị thông tin và cung cấp một giao diện trực quan và dễ sử dụng cho người dùng.
Một trong những lợi ích lớn nhất của việc tách lớp giao diện người dùng là khả năng thay đổi giao diện mà không làm ảnh hưởng đến các lớp còn lại. Điều này cho phép các nhà phát triển thay đổi giao diện người dùng hoặc cải thiện trải nghiệm người dùng mà không phải thay đổi phần lớn mã nguồn của ứng dụng.
Lớp logic nghiệp vụ (Business Logic Layer)
Lớp logic nghiệp vụ đóng vai trò quan trọng trong việc xử lý các yêu cầu và các quy trình nghiệp vụ của ứng dụng. Đây là nơi mà các quyết định, phép toán và logic phức tạp được thực hiện. Lớp này nhận dữ liệu từ lớp giao diện người dùng, xử lý theo các quy trình nghiệp vụ và trả lại kết quả cho người dùng.
Lớp này cũng không giao tiếp trực tiếp với cơ sở dữ liệu, mà thay vào đó, nó tương tác với lớp dữ liệu để lấy hoặc lưu trữ thông tin. Điều này giúp tách biệt rõ ràng giữa việc xử lý nghiệp vụ và việc lưu trữ dữ liệu, làm cho mã nguồn dễ bảo trì và mở rộng.
Lớp cơ sở dữ liệu (Database Layer)
Lớp dữ liệu, hay còn gọi là lớp lưu trữ, chịu trách nhiệm quản lý việc lưu trữ, truy xuất và cập nhật dữ liệu trong hệ thống. Đây có thể là cơ sở dữ liệu quan hệ (SQL), cơ sở dữ liệu NoSQL, hoặc các nguồn dữ liệu khác. Lớp dữ liệu không xử lý các yêu cầu nghiệp vụ hay giao diện người dùng mà chỉ thực hiện các thao tác liên quan đến việc lưu trữ dữ liệu.
Lợi ích của lớp dữ liệu là giúp tách biệt hoàn toàn phần lưu trữ dữ liệu khỏi các phần khác của ứng dụng. Điều này cho phép thay đổi cách thức lưu trữ dữ liệu mà không ảnh hưởng đến các phần khác của ứng dụng. Ví dụ, có thể chuyển từ cơ sở dữ liệu SQL sang NoSQL mà không làm thay đổi mã nguồn của lớp giao diện người dùng hay lớp logic nghiệp vụ. Vậy T-SQL giúp gì cho mô hình 3 lớp?
Tạo ra các procedure, functions..
Trong mô hình này, việc sử dụng T-SQL để viết các thủ tục lưu trữ (stored procedure), functions… giúp tối ưu hóa hiệu suất và bảo mật của ứng dụng, làm giảm dữ liệu khi gửi tới lớp logic nghiệp vụ, điều này thường được gọi là “Xử lý dữ liệu tại nguồn”. Thay vì sử dụng các câu truy vấn để lấy toàn bộ dữ liệu từ database sang Java, sau đó mới dùng Java để lọc dữ liệu theo yêu cầu thì nhờ T-SQL, dữ liệu sẽ được lọc trước nhờ kết quả của procedure hay functions
Gọi Stored Procedure từ Java
Trong lớp Logic Nghiệp Vụ, bạn có thể sử dụng Java để gọi thủ tục lưu trữ rất dễ dàng, và sử dụng toàn bộ kết quả cho việc xử lý logic.
Tăng hiệu suất truy cập
Việc lọc dữ liệu và gửi tới ứng dụng sẽ giúp tốc độ truy cập nhanh hơn, đặc biệt với big data, bóc tách rõ ràng việc code bằng Java cho ứng dụng và code T-SQL trong database.
Lợi ích của mô hình 3 lớp
- Tách biệt rõ ràng các vai trò: Mỗi lớp có một nhiệm vụ riêng biệt.
- Bảo trì dễ dàng: Khi có thay đổi về yêu cầu nghiệp vụ, giao diện người dùng hoặc cơ sở dữ liệu, các lớp có thể được thay đổi độc lập mà không ảnh hưởng đến các phần khác của hệ thống.
- Khả năng mở rộng: Mô hình 3 lớp cho phép mở rộng và thay đổi từng lớp mà không ảnh hưởng đến các lớp khác.
- Tái sử dụng mã: Lớp logic nghiệp vụ có thể được tái sử dụng trong các ứng dụng hoặc dịch vụ khác mà không cần thay đổi lớp giao diện người dùng hay lớp dữ liệu.
Tuy trong lúc phát triển, Dev còn có thể thêm nhiều lớp hoặc object khác nhau như DAO(Data Access Object) hay controller…Nhưng mô hình 3 lớp là cơ bản, mặc định, phương pháp thiết kế mạnh mẽ, linh hoạt và rõ ràng. Đặc biệt trong các ứng dụng phức tạp, big data thì T-SQL càng góp phần công sức cho hiệu năng của ứng dụng.
Giảng viên Trần Thế Bảy
Bộ môn Ứng dụng phần mềm
FPT Polytechnic TP HCM

