Mô hình 3 lớp (mô hình kiến trúc 3 lớp) là 1 trong những khái niệm quan trọng sử dụng trong lĩnh vực mạng máy tính. Mô hình cung cấp cách tổ chức, phân chia chức năng mạng thành các lớp với nhiệm vụ riêng biệt.
Vậy mô hình 3 lớp là gì, ưu điểm và phân tích từng thành phần như thế nào? Cùng Mstar Corp tìm hiểu chi tiết thông tin trong nội dung tiếp theo nhé.
Mô hình 3 lớp là gì?
Mô hình 3 lớp là gì là thắc mắc chung của nhiều người bắt đầu học lập trình. Ngay sau đâu chúng tôi sẽ giúp bạn giải đáp vấn đề này.
Khái niệm
Mô hình 3 lớp (Three Layer hay 3-Layer) ra đời để phân chia các thành phần trong hệ thống đảm bảo hệ thống có tổ chức, vận hành hiệu quả. Các thành phần có cùng chức năng được nhóm lại và phân chia công việc cho từng nhóm để dữ liệu không chạy lộn xộn và không bị chồng chéo.
Khi xây dựng 1 dự án (project) mô hình này sẽ phát huy hiệu quả nhất, việc xử lý dữ liệu lỗi và quản lý code dễ dàng hơn. Thông qua phân chia công việc giữa các lớp rõ ràng, mô hình làm tăng hiệu quả trong quá trình bảo trì và phát triển hệ thống.
Ưu điểm
Mô hình 3-Layer mang đến nhiều ưu điểm:
- Phân loại rõ ràng các lớp với các nhiệm vụ khác nhau giúp quản lý và duy trì dự án tốt hơn
- Phân loại dễ dàng các hành động tại Business
- Phân loại dễ dàng cá hàm truy xuất tại Database, phân loại hàm theo table…
- Ứng dụng được cho các dự án lớn bên ngoài
Một số lưu ý không nên bỏ qua khi xây dựng mô hình 3 lớp:
- Cần một solution riêng cho dự án (project)
- Để làm nên 3 lớp cần 3 project khác nhau có tên đặt như sau:
- Lớp GUI (Ví dụ: QuanLy_GUI)
- Lớp Business (Ví dụ: QuanLy_BUS)
- Lớp Data Access (Ví dụ: QuanLy_DAL)
- Lớp DTO (Ví dụ: QuanLy_DTO)
Mô hình 3 lớp có thành phần như thế nào?
Thành phần của mô hình 3 lớp: Presentation Layer (GUI), Business Layer (BLL), Data Layer (DAL). Cụ thể:
Presentation Layer (GUI)
Presentation Layer (GUI) bao gồm các thành phần giao diện (webform, winform…) và có nhiệm vụ chính là giao tiếp với người dùng. Lớp này thực hiện các công việc như hiển thị dữ liệu, nhập liệu, kiểm tra tính đúng đắn của dữ liệu trước khi gọi lớp tiếp theo Business Logic Layer (BLL)
Business Layer (BLL)
Business Logic Layer (BLL) phân thành 2 nhiệm vụ:
- Đây là lớp đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ lớp trước đó (Presentation Layer) trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL.
- Lớp Business Layer (BLL) còn là nơi kiểm tra các ràng buộc, tính hợp lệ và toàn vẹn của dữ liệu, thực hiện tính toán và xử lý trước khi trả kết quả về lớp đầu tiên các yêu cầu nghiệp vụ.
Data Layer (DAL)
Data Layer (DAL) có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến truy vấn dữ liệu và lưu trữ (thêm, xóa, tìm kiếm, sửa…)
Cấu trúc mô hình 3 lớp
Cấu trúc mô hình 3 lớp Presentation Layer (GUI), Business Layer (BLL), Data Layer (DAL) là:
Presentation Layer (GUI)
Presentation Layer (GUI) bao gồm 2 thành phần chính với tác vụ cụ thể:
- UI Components: UI Components gồm các thành phần tạo nên giao diện của ứng dụng (GUI), chịu trách nhiệm thu hiện, hiển thị dữ liệu cho người dùng. Ví dụ: button, textbox, combobox…
- UI Process Components: UI Process Component là thành phần chịu trách nhiệm quản lý quá trình chuyển đổi giữa các UI. Ví dụ: Sắp xếp quá trình kiểm tra thông tin khách hàng: Hiển thị màn hình tra cứu ID => Hiển thị màn hình thông tin chi tiết khách hàng tương ứng => Hiển thị màn hình liên lạc với khách hàng
Business Layer (BLL)
Lớp Business Layer bao gồm 4 thành phần:
- Service Interface: Service Interface là thành phần giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử dụng.
- Business Workflows: Business Workflows chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ gồm nhiều bước và kéo dài. Các quy trình này phải được sắp xếp, thực hiện theo một thứ tự chính xác.
- Business Components: Business Components chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc. Các thành phần cũng thực hiện các dịch vụ mà thành phần Service Interface cung cấp và Business Workflows sẽ sử dụng nó.
- Business Entities: Business Entities thường được sử dụng như Data Transfer Objects (DTO). Người dùng có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation, Data Layer). Business Entities thường là cấu trúc dữ liệu ( DataSets, XML,… ) hay các lớp đối tượng đã được tùy chỉnh. Ví dụ : tạo 1 class Student lưu trữ các dữ liệu về tên, ID, ngày sinh, lớp.
Data Layer (DAL)
Data Layer gồm 2 thành phần:
- Data Access Logic Components: Data Access Logic Components chịu trách nhiệm chính lưu trữ, truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như file system, XML… Hơn nữa Data Access Logic Components còn tạo thuận lợi cho việc dễ cấu hình, bảo trì.
- Service Agents: Service Agents giúp người dùng gọi và tương tác với các dịch vụ từ bên ngoài một cách dễ dàng và đơn giản
Một số lưu ý quan trọng khi xây dựng mô hình 3 lớp
Khi xây dựng mô hình 3 lớp, chúng ta cần chú ý:
- Cần solution riêng: Khi xây dựng mô hình 3 lớp yêu cầu tạo 1 solution độc lập cho dự án, để tác biệt tài nguyên và mã nguồn mỗi lớp cho dễ quản lý và tạo sự rõ ràng.
- Cần tạo 3 project khác nhau: Cần tạo 3 project độc lập trong solution để xây dựng mô hình 3 lớp. Bao gồm:
- Lớp GUI (giao diện người dùng): Lớp GUI là nơi xây dựng giao diện và tương tác với người dùng.
- Lớp Business (Logic xử lý): Lớp Business là nơi triển khai logic xử lý của ứng dụng.
- Lớp Data Access (Truy xuất dữ liệu): Lớp Data Access là nơi thực hiện truy xuất, xử lý dữ liệu từ cơ sở dữ liệu.
- Lớp DTO (Data Transfer Object): Bên cạnh 3 lớp chính, lưu ý tạo lớp DTO để chứa các đối tượng dùng để truyền dữ liệu giữa các lớp
Việc tạo project, lớp tương ứng chúng ta có thể tận dụng, quản lý tốt mô hình 3 lớp trong dự án.
Mô hình 3 lớp (Three Layer) là kiến trúc phổ biến trong phát triển phần mềm có vai trò giúp tách biệt và tổ chức rõ ràng các thành phần trong hệ thống và mang lại nhiều lợi ích quan trọng. Sử dụng mô hình giúp tăng tính bảo mật, dễ dàng quản lý, tăng hiệu suất các dự án và phát triển phần mềm.