Kiến trúc

21
1 Chương 6: Chương 6: Kiến trúc phần mềm Kiến trúc phần mềm GVLT: ThS. Trần Minh Triết

Transcript of Kiến trúc

Page 1: Kiến trúc

1

Chương 6:Chương 6:Kiến trúc phần mềmKiến trúc phần mềm

GVLT: ThS. Trần Minh Triết

Page 2: Kiến trúc

2

Nội dung

Mở đầu Kiến trúc phần mềm Layer VS Tier Một số mô hình kiến trúc phần mềm

Page 3: Kiến trúc

3

Kiến trúc 1 layer

Người dùng

Dữ liệu của X

Màn hình nhiệm vụ f

I/OXử lý biến cốXử lý chính

Xử lý trên dữ liệu

Page 4: Kiến trúc

4

Kiến trúc 2 layer

Người dùng

Dữ liệu của X

Màn hình nhiệm vụ f

I/OXử lý biến cố

Người dùng

X

Dữ liệu của X

Màn hình nhiệm vụ fI/O

Xử lý biến cốXử lý chínhXử lý trên dữ liệu

Page 5: Kiến trúc

5

Kiến trúc 3 layer

Người dùng

X

Dữ liệu của X

Màn hình nhiệm vụ f

DL_X

I/OXử lý biến cố

Xử lý chínhXử lý trên dữ liệu

Người dùng

X

Dữ liệu của X

Màn hình nhiệm vụ fI/O

Xử lý biến cố

Xử lý chínhXử lý trên dữ liệu

Page 6: Kiến trúc

6

Vai trò của các layer

GUI (Presentation) Layer: Nhập liệu và trình bày dữ liệu, có thể bao gồm các bước kiểm tra dữ liệu trước khi gọi Business Logic Layer.

Business Logic Layer: Kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu, quản lý các transaction, quản lý các concurrent access.

Data Access Layer: Kết nối CSDL, tìm kiếm, thêm, xóa, sửa,…trên CSDL/XML

Page 7: Kiến trúc

7

Data

GUI

Data Access

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

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

Business logic

Page 8: Kiến trúc

8

Data

GUI

Data Access

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

Data Transfer Object (DTO)

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

Business logic

Page 9: Kiến trúc

9

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

Giảm sự kết dính giữa các thực thể phần mềm (decoupling)

Tái sử dụng Chia sẻ trách nhiệm

Page 10: Kiến trúc

10

Quản lý ngoại lệ

Database

Business

GUI

Thrown business exceptions

Database Error Handling(controlled by DBMS)

Business Error Handling

GUI layer Error Handling

Database error codes

Error messages

Database errors while executing

Errors while treating data input

Errors while treating in

business layer

Log

Page 11: Kiến trúc

11

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 đó “Quăng” 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ộ “Quăng” ngoại lệ lên layer “cao hơn” Không xử lý

Page 12: Kiến trúc

12

1-tier, 3-layer

Data

GUI

Business logic

Data Access

Application + Data

Physical view Logical view

Page 13: Kiến trúc

13

2-tier, 3-layer

Data

GUI

Business logic

Data Access

Data tier

Client tier

Physical view Logical view

Page 14: Kiến trúc

14

3-tier, 3-layer

Browsers

Data tier

Business tier

Web Server

Local clients

Presentation tier

Data

Business logic

Data Access

Web Server

GUI

Application Web

Phys

ical v

iew

Logi

cal v

iew

Page 15: Kiến trúc

15

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

Page 16: Kiến trúc

16

Physical tiers

Page 17: Kiến trúc

17

Physical tiers

Page 18: Kiến trúc

18

“Tiers of layers”

Page 19: Kiến trúc

19

Business Layer đặt tại Storage Tier

Page 20: Kiến trúc

20

Business Layer đặt tại Client Tier

Page 21: Kiến trúc

21

Ví dụ về các thành phần tại mỗi Tier