You are on page 1of 28

Chương 6:

MÔ HÌNH ĐA LỚP (Multi-Layers)


Nguyễn Mạnh Tuấn
tuannm@ueh.edu.vn
Nội dung
 Phân biệt 3-tier, 3-layer
 Vai trò và nhiệm vụ của mỗi layer
 Quản lý ngoại lệ trong mô hình 3-layer
 Demo & Những dự án thực tế

2
3-tiers and 3-layers
Tier cho thấy một sự
tách biệt vật lý của các
thành phần, có thể có
nghĩa là các assemblies
khác nhau như DLL,
EXE,…trên cùng một
máy chủ hoặc nhiều
máy chủ.

3
3-tiers and 3-layers
Layer cho thấy sự
phân cách hợp lý của
các thành phần, như
vậy là có các
namespaces và các
class riêng biệt
Database Access
Layer, Business
Logic Layer and
User Interface Layer.

4
3-tiers and 3-layers

5
3-tiers and 3-layers

6
1-tier, 3-layer
Physical view Logical view

GUI

Application + Data
Business logic

Data Access

Data

7
2-tier, 3-layer
Physical view Logical view

Client tier GUI

Business logic

Data Access

Data
Data tier

8
3-tier, 3-layer
Presentation tier Browsers GUI

Logical view
Local clients
Web Server

Web Server Application Web

Business logic
Business tier
Data Access

Data tier Data

9
Vai trò của các layer
 GUI (Presentation) Layer:
 Thu thập và hiển thị thông tin cho người dùng cuối.
 Không sử dụng trực tiếp các dịch vụ của lớp Data
Acces.
 Sử dụng các dịch vụ do lớp Business Logic cung
cấp.
Ở lớp này, chúng ta có thể bỏ qua các ràng buộc,
các logic nghiệp vụ của ứng dụng.

10
Vai trò của các layer

 Business Logic Layer:


 Lớp này thực hiện các nghiệp vụ chính của hệ
thống (Ví dụ: kiểm tra các yêu cầu nghiệp vụ trước
khi cập nhật dữ liệu)
 Sử dụng các dịch vụ do lớp Data Access cung cấp.
 Cung cấp các dịch vụ cho lớp Presentation

11
Vai trò của các layer

 Data Access Layer:


 Lớp này thực hiện các công việc liên quan đến lưu
trữ và truy xuất dữ liệu của ứng dụng.
 Cung cấp các dịch vụ cho lớp Business Logic sử
dụng.
 Sử dụng các dịch vụ của các hệ quản trị cơ sở dữ
liệu như MySql, SQL Server, Oracle,… để thực
hiện nhiệm vụ của mình.

12
Các lưu ý quan trọng

 Phân biệt vai trò Business Layer và khái niệm “xử


lý”
 Mỗi Layer vẫn có xử lý riêng, đặc trưng của Layer
đó
 Đôi khi việc quyết định 1 xử lý nằm ở layer nào
chỉ mang tính chất tương đối

13
Việc trao đổi liên lạc giữa các layer

Presentation

Business logic

Data Access

Data Transfer Object (DTO)

Các giá trị, dòng, bảng


Data

14
Sự phụ thuộc giữa các layer

Presentation

Business logic Data Transfer


Object (DTO)

Data Access

Data

15
Tính chất của mô hình 3-layer

 Mã lệnh (code) tường minh


 Dễ bảo trì
 Dễ phát triển
 Dễ bàn giao

16
Error Handling

GUI

Error messages
Errors while
treating data input GUI layer Error Handling

Thrown business
Log
Business exceptions
Errors while
treating in
business layer Business Error Handling

Database error codes

Database errors Database Error Handling


Database while executing
(controlled by DBMS)

17
Quản lý ngoại lệ
 Ngoại lệ có thể xảy ra ở bất kỳ layer nào
 Khi ngoại lệ xảy ra ở một layer thì:
 Xử lý nội bộ trong layer đó
 “Ném” ngoại lệ lên layer “cao hơn”
 Không xử lý
 Khi một layer nhận ngoại lệ từ một layer “thấp
hơn”
 Xử lý nội bộ
 “Ném” ngoại lệ lên layer “cao hơn”
 Không xử lý

18
Phát triển ứng dụng

19
Phát triển ứng dụng

20
Phát triển ứng dụng

 Các lớp DTO


 Nội dung mỗi lớp gồm:
 Fields
 Các phương thức khởi tạo.
 Các phương thức set, get
 VD: SanPhamDTO, LoaiSanPhamDTO

21
Phát triển ứng dụng
 Các lớp DAL
 Ứng với mỗi bảng trong database tạo một class DAL
tương ứng.
 VD: SanPhamDAL, LoaiSanPhamDAL

22
Phát triển ứng dụng
 Các lớp BLL
 Tạo các class giao tiếp với lớp Presentation
 Sử dụng các dịch vụ ở lớp DAL để xử lý nghiệp vụ.
 VD: SanPhamBLL, LoaiSanPhamBLL

23
Phát triển ứng dụng
 Các lớp PL
 Giao tiếp với người dùng.
 Sử dụng các dịch vụ do lớp Business cung cấp.
 VD: Xuất ra màn hình.

24
Phát triển ứng dụng

25
Phát triển ứng dụng

DEMO
Lấy code tại link

26
Những đồ án thực tế
 Quản lý sinh viên
 Hướng dẫn sử dụng và tài liệu hỗ trợ khá tốt
 Quản lý quán cafe
 Có video hướng dẫn khá chi tiết

27

You might also like