Theo nghĩa truyền thống, N-tier có nghĩa là tách ứng dụng thành "tầng" và đặt mỗi "tầng" trên các máy chủ khác nhau. Điều này đã được thực hiện trong vòng ít nhất 3 lý do:Kiến trúc N-tier có nghĩa là gì?
Maintenance:
a) Mã Maintenance: dễ dàng hơn để làm sửa lỗi và bổ sung tính năng.
b) Bảo trì phần cứng: Lấy một máy chủ không làm gián đoạn dịch vụ từ cấp khác.
Hiệu suất: Một máy chủ thường không đủ nhanh để xử lý yêu cầu web, tính toán logic nghiệp vụ và truy cập cơ sở dữ liệu/tệp cùng một lúc.
Khả năng mở rộng: Cụ thể ngang khả năng mở rộng
a) Fault Tolerance: Khả năng có nhiều hơn 1 máy chủ vật lý mỗi tầng có nghĩa là khi 1 server bị down, ứng dụng vẫn có thể hoạt động như một toàn thể.
b) Cân bằng tải: Có nhiều phiên bản của cấp giúp dịch vụ số lượng lớn yêu cầu.
Ngày nay, phần cứng và mạng đủ nhanh để phân phát hàng nghìn yêu cầu mỗi giây trên một máy chủ. Ngoài ra, từ buzz cho CNTT ngay bây giờ là "hợp nhất". Vì vậy, ngay cả khi ứng dụng được chia thành các tầng, chúng có thể sẽ chỉ lưu trữ trên các máy ảo trên một máy chủ duy nhất.
Tôi nghĩ ngày nay khi mọi người nói về kiến trúc N-tier, họ đang nói về việc phân tách các mối quan tâm trong ứng dụng. Nó là một sự phân tách logic hơn là một sự phân tách vật lý. Tôi nghĩ rằng miễn là chúng tôi đạt được sự tách biệt tốt các mối quan tâm và khớp nối lỏng lẻo, các ứng dụng không phải là N-tier. Có vẻ như nhiều lập trình viên nghĩ rằng kiến trúc N-tier là một tiêu chuẩn vàng mà mọi ứng dụng web phải tuân thủ.
Vì vậy, kiến trúc N-tier cho bạn ngày nay là gì?
Đồng ý. Tách thành các thành phần rời rạc vì lý do khả năng mở rộng chưa chết nhưng việc hợp nhất phần cứng và mạng và máy chủ chắc chắn sẽ đẩy mạnh số lượng ứng dụng cần thực hiện điều này. –
Nó có lẽ không chết, nhưng ví dụ trong trường hợp của các trang web có nhiều cách hiệu quả hơn để xử lý nhiều lượt xem trang hơn. – Durden81