DEV Community

Quang Thịnh Lương
Quang Thịnh Lương

Posted on

Mô hình kiến trúc ba lớp (3-Layer Architecture)

1. Giới thiệu về mô hình ba lớp

  • Kiến trúc ba lớp (3-Layer Architecture) là một mẫu kiến trúc phần mềm tổ chức hệ thống thành ba lớp (layers), mỗi lớp có trách nhiệm riêng và được phân tách để đảm bảo:
    • Tính tách biệt: Mỗi lớp đảm nhiệm một vai trò cụ thể và không can thiệp vào các lớp khác.
    • Tính linh hoạt: Dễ dàng thay đổi hoặc mở rộng từng lớp mà không làm ảnh hưởng đến toàn bộ hệ thống.
    • Dễ bảo trì: Tăng khả năng bảo trì và phát triển trong dài hạn.
  • Mục tiêu:
    • Đảm bảo sự tách biệt và độc lập giữa các thành phần của hệ thống.
    • Hỗ trợ phát triển tuần tự hoặc song song, giúp cải thiện hiệu quả làm việc khi có nhiều nhóm phát triển cùng tham gia.

2. Cấu trúc của mô hình ba lớp

Kiến trúc ba lớp chia hệ thống thành ba phần chính:

2.1. Presentation Layer (GUI)

  • Lớp này có nhiệm vụ chính là giao tiếp với người dùng.
  • Bao gồm các thành phần giao diện (winform, webform, ...) và thực hiện các công việc như nhập liệu, hiển thị dữ liệu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL).

2.2. Business Logic Layer (BLL)

  • Nhiệm vụ:
    1. Đáp ứng các yêu cầu thao tác dữ liệu của Presentation Layer, xử lý dữ liệu trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL.
    2. Kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ trước khi trả kết quả về Presentation Layer.

2.3. Data Access Layer (DAL)

  • Lớp này 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 lưu trữ và truy vấn dữ liệu (tìm kiếm, thêm, xóa, sửa, ...).

3. Các thành phần của từng lớp

Presentation Layer (GUI)

  • Thành phần chính:
    1. UI Components:
      • 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 nhận và hiển thị dữ liệu cho người dùng (ví dụ: button, textbox, combobox, ...).
    2. UI Process Components:
      • Quản lý các 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)

  • Thành phần chính:
    1. Service Interface: Giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử dụng.
    2. 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.
      • Sắp xếp và thực hiện theo thứ tự chính xác.
    3. Business Components:
      • 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.
      • Thực hiện các dịch vụ mà Service Interface cung cấp.
    4. Business Entities:
      • Thường được sử dụng như Data Transfer Objects (DTO) để truyền dữ liệu giữa các lớp (Presentation và Data Layer).
      • Ví dụ: Class Student lưu trữ dữ liệu về tên, ngày sinh, ID, lớp.

Data Layer (DAL)

  • Thành phần chính:
    1. Data Access Logic Components:
      • Lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như XML, file system, ...
      • Tạo thuận lợi cho việc dễ cấu hình và bảo trì.
    2. Service Agents:
      • Giúp 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.

4. Cách các lớp tương tác với nhau

  • Quy tắc tương tác:
    • Presentation Layer: Gửi yêu cầu từ người dùng đến Business Logic Layer.
    • Business Logic Layer: Xử lý yêu cầu, gọi Data Access Layer để truy xuất hoặc lưu trữ dữ liệu.
    • Data Access Layer: Thực hiện các thao tác với cơ sở dữ liệu và gửi phản hồi lại Business Logic Layer.
  • Quy tắc giao tiếp:
    • Mỗi lớp chỉ giao tiếp với lớp ngay bên cạnh (Presentation ↔ Business ↔ Data Access).

Image description
Hình ảnh: Mô hình kiến trúc 3-layer.


5. Ưu điểm và nhược điểm của mô hình ba lớp

5.1. Ưu điểm

  • Tách biệt trách nhiệm: Giúp các phần của hệ thống độc lập và dễ bảo trì hơn.
  • Dễ mở rộng: Có thể thêm tính năng mới mà không ảnh hưởng đến toàn bộ hệ thống.
  • Tái sử dụng: Các lớp có thể được tái sử dụng trong các dự án khác.
  • Độc lập công nghệ: Presentation Layer có thể dùng bất kỳ công nghệ nào (web, desktop, mobile).

5.2. Nhược điểm

  • Độ phức tạp: Tăng độ phức tạp khi áp dụng cho các ứng dụng nhỏ.
  • Hiệu năng: Hiệu năng có thể giảm nếu hệ thống thực hiện nhiều lần chuyển tiếp giữa các lớp.

Top comments (0)