Phần 1: Kiến trúc N-Tier Architecture

Các sản phẩm tuyệt vời thường được xây dựng theo kiến trúc đa tầng. Bài viết này là sự tổng hợp các kiến thức về kiến trúc ứng dụng N tầng (N-Tier) và các thứ liên quan.

N-Tier Architecture?

Kiến trúc N-tier còn được gọi là multi-tier architecture, một phương pháp kiến trúc ứng dụng trong phát triển phần mềm. Nó thích hợp cho việc xây dựng các ứng dụng lớn, đặc biệt là các ứng dụng doanh nghiệp, các ứng dụng đòi hỏi tính scalability, security, fault tolerance, reusabilitymaintainability.

Gọi là N-tier điều đó có nghĩa kiến trúc này có thể có 1, 2, 3 hoặc hơn số các layer phụ thuộc vào cách phân chia kiến trúc hệ thống. Tuy nhiên 3-Tier vẫn là mẫu phổ biến nhất và được định nghĩa cụ thể về trách nhiệm từng tier như sau:

Tầng Presentation: Chính là Giao diện người dùng, đây chính là phần mềm ứng dụng mà người dùng sẽ thấy và tương tác (Có thể là Website hoặc Mobile App, hoặc Window app). Khi người dùng nhập thông tin họ cần. Hành động người dùng được xử lí đi qua các tầng Logic, tầng Data.

Tầng Logic: Đây là tầng chứa tất cả những phương pháp xử lý, đọc & ghi dữ liệu trước khi đưa đến UI người dùng, nó những gì được cho phép trong ứng dụng của bạn.

Tầng Data: Tầng Data là nơi lưu trữ tất cả dữ liệu trong ứng dụng, tại tầng này bạn thực hiện các phương thức lưu trữ dữ liệu vào DB, triển khai các giải pháp bảo mật, transaction cần thiết.

 

Với kiến trúc 3-tier, ứng dụng sẽ đảm bảo các tính chất Scalability, Data Integrity, Reusability, Reduced Distribution, Security, Improved Availability. Các tính chất tuyệt vời phù hợp với cho các dự án ứng dụng lớn. Tuy nhiên, chúng cũng có nhược điểm là gia tăng độ phức tạp cho dự án. 

Sơ qua về 1 & 2 tier cho ai tò mò

2-Tier Architecture: cũng như kiến trúc Client – Server, các giao tiếp chỉ xảy ra giữa Client – Server. Nó bảo gồm Presentation layer (UI) chạy phía client và 1 tầng Data layer làm nhiệm vụ thực thi, lưu trữ phía Server.

Không có tầng Business Logic hay tầng trung gian nào giữa Client và Server. Đây có lẽ là kiến trúc mà đa số các bạn “vô tình” sử dụng mà không biết khi còn là Newbie chưa có khái niệm nhiều về Architecture. Đơn giả như chúng ta xây dựng các ứng dụng web nhỏ với 1 đống code connection, query trực tiếp và DB lấy dữ liệu đổ ra view ..v.v.v..

1-Tier Architecture: Đây là loại đơn giản nhất, tiêu biểu là các ứng dụng chạy trên máy tính cá nhân của bạn. Tất cả các phần tử của ứng dụng chỉ chạy trên máy hoặc server đơn lẻ.

3-Tier & MVC Architecture

Nếu chỉ liếc qua, 3-Tier trông có vẻ khá giống MVC nhưng sự thật lại không phải vậy. Nguyên tắc cơ bản của 3-Tier Architecture đó là tầng Presentation/UI sẽ không bao giờ giao tiếp trực tiếp tới tầng cuối (Data Tier), mà buộc phải đi qua các tầng giữa (Middle Tier). Trong khi đó, các thành phần của MVC lại giao tiếp với nhau theo mô hình Tam giác: việc User tương tác với View sẽ đi tới Controller, Controller sẽ xử lí cập nhật Model và đẩy Model vào View, khi này View được cập nhật trực tiếp từ Model.

Giao tiếp giữa các tầng trong 3-Tier Architecture: Trong mô hình 3-Tier, mỗi lớp sẽ nằm tách biệt, như tầng Presentation/UI sẽ nằm trên một vài Server, chúng giao tiếp với back-end App Server chịu trách nhiệm thực hiện các Business Logic và nói chuyện với DB Server, (một vài App Server còn tương tác thêm với các dịch vụ từ xa khác. Ví dụ như Authorize để xử lý payment) . Đôi khi trong một số hệ thống, người ta thêm vào các tầng khác vì vậy mới sinh ra khái niệm N-Tier.

N-Tier và MVC có thể được sử dụng cùng trong một ứng dụng, đã có rất nhiều ứng dụng áp dụng điều này. Ví dụ, bạn có thể sử dụng kiến trúc N-tier là kiến trúc tổng thể, sử dụng MVC trong tầng Presentation.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *