Giới thiệu về kiến trúc phần mềm


Kiến trúc nhiều tầng

Với các bạn đã học qua Java SE chắc sẽ biết đến mô hình MVC. Sang JavaEE hay .Net các bạn sẽ biết thêm một mô hình nữa đó là mô hình N-Tier.

Trong công nghệ phần mềm, kiến trúc N-Tier (hay còn gọi là kiến trúc nhiều tầng) là một kiến trúc client-server trong đó việc trình bày (presentation), xử lý (process) và quản lý dữ liệu (data management) là các quy trình riêng biệt. Tạo thành nhiều tầng khác nhau. Phổ biến nhất hiện nay là kiến trúc 3 tầng (Three-Tier architecture).


Mô hình Tier

Kiến trúc nhiều tầng cho phép người lập trình linh hoạt hơn trong việc phát triển phần mềm. Bằng cách chia ứng dụng thành các tầng. Các nhà phát triển chỉ phải chỉnh sửa hay thêm bớt trong một lớp cụ thể, thay vì phải chỉnh sửa lại toàn bộ chương trình. Kiến trúc này có tầng trình diễn (Presentation Tier), tầng ứng dụng (Application Tier, Bussiness Tier, Data Access Tier, Logic Tier), và tầng dữ liệu (Data Tier).


Ví dụ về kiến trúc đa tầng trong một ứng dụng

Kiến trúc 3 tầng ban đầu có vẻ giống với kiến trúc MVC. Nhưng thực tế lại khác hẳn nhau. Kiến trúc MVC hoạt động theo hình tam giác, trong đó Controller trực tiếp điều khiển Model và View. Còn trong kiến trúc N-Tier, tầng trình diễn không bao giờ tác động trực tiếp vào tầng dữ liệu.


Mô hình kiến trúc MVC

Khái niệm Layer

Layer khác hoàn toàn với Tier. Mọi người thường hay nhầm lẫn giữa chúng. Tier thường gắn liền với phần cứng (mỗi tầng là một hay nhiều client hoặc server). Còn layer là các lớp cấu tạo nên một ứng dụng. Khi chúng ta triển khai ứng dụng, không cần quan tâm ứng dụng đó sẽ triển khai như thế nào mà chỉ cần quan tâm chúng ta tổ chức ứng dụng ra thành các layer ra sao. Sau đó khi triển khai, các layer thường sẽ tương ứng với các tier.

Một ứng dụng sẽ chia làm 3 lớp, lớp giao diện người dùng (Presentation Layer), lớp nghiệp vụ (Business Layer) và lớp dữ liệu (Data Layer). Trong lớp nghiệp vụ chia làm 2 lớp nhỏ hơn là Business Logic (chỉ chuyên làm về nghiệp vụ) và Persistance Layer (chịu trách nhiệm giao tiếp với Data Layer). Persistance Layer sẽ làm nhiệm vụ truy xuất dữ liệu từ Data Layer.


Mô hình các layer trong một ứng dụng .Net

Với cách phân chia như vậy, trong một nhóm phát triển, mỗi người hoặc vài người sẽ đảm nhận một layer khác nhau. Và chỉ tập trung làm phần việc của họ, giúp nâng cao hiệu suất làm việc.

Gửi phản hồi

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s