Định nghĩa hệ thống 3 tầng


8

Mọi người thường tuyên bố rằng họ đang theo một kiến ​​trúc '3 tầng (hoặc n tầng), và đôi khi họ tuyên bố sẽ chuyển sang Mô hình miền. Nhưng tôi thực sự chưa bao giờ hiểu "kiến trúc 3 tầng" huyền thoại này là gì. Nó dường như không có định nghĩa chính thức. Trong khi có rất nhiều tài liệu tham khảo và ví dụ xung quanh giải thích và thể hiện mẫu Mô hình miền, mọi tham chiếu đến 3 tầng chỉ đơn giản gợi ý bạn nên tách mã của mình thành các lớp UI, Business Logic và Data Access. Và đó là tất cả những gì họ dường như nói.

Điều tôi thấy đặc biệt kỳ lạ là với tôi, Mô hình miền là hiện thân hoàn hảo của mô hình 3 tầng này. ORM và các tệp ánh xạ là Lớp truy cập dữ liệu, Miền là Logic nghiệp vụ và giao diện người dùng là UI. Vậy tại sao mọi người nói chuyện như thể nó là một cái gì đó mới và khác biệt, và một cái gì đó họ nên chuyển sang?

Trước khi tôi thấy mọi người triển khai Mô hình miền, hầu hết các ứng dụng là UI truy cập các thủ tục được lưu trữ với logic được phân chia trên UI và SP. Đôi khi, có một vài hội đồng được gọi là 'UI', 'BLL' và 'DLL' nhưng thông thường đây chỉ là các trung gian giữa các UI và SP, để lại nhiều chỗ hơn cho logic được lan truyền ngẫu nhiên.

Vậy kiến ​​trúc '3 tầng' huyền thoại này là gì? Nó thực sự thậm chí tồn tại? và nếu vậy, một số ví dụ về nó được thực hiện tốt ở đâu?

Câu trả lời:


9

Định nghĩa của kiến ​​trúc 3 tầng là một trường hợp đặc biệt của kiến trúc n tầng . Trong kiến ​​trúc n tầng, có n thành phần và mỗi thành phần chỉ tương tác với thành phần ngay lập tức "bên trên" và "bên dưới" nó. Một kiến ​​trúc ba tầng có ba thành phần như vậy.

Thông thường, kiến ​​trúc ba lớp bao gồm lớp tương tác người dùng, lớp quy tắc kinh doanh và lớp dịch vụ dữ liệu (bao gồm cả cơ sở dữ liệu). Lớp tương tác người dùng chỉ đưa ra các yêu cầu cho lớp quy tắc nghiệp vụ, lấy dữ liệu từ các dịch vụ dữ liệu khác nhau, xử lý nó và sau đó trả lại cho người dùng thông qua lớp tương tác người dùng.

Kiến trúc n tầng là một ví dụ về mẫu kiến ​​trúc (hoặc kiểu kiến ​​trúc). Nó chỉ đơn giản là định nghĩa một số ràng buộc về kiến ​​trúc của hệ thống. Chính nó, nó không phải là một cái nhìn hoàn chỉnh về kiến ​​trúc của hệ thống. Mặc dù tôi chắc chắn rằng có những hệ thống thực hiện một cái gì đó giống như kiến ​​trúc ba tầng, nhưng đó chỉ là một mẫu có nghĩa là để thiết lập một cuộc thảo luận để thiết kế bổ sung và thực hiện một hệ thống.


Về cơ bản, những gì bạn đang nói là kiến ​​trúc 3 tầng là một kiến ​​trúc có 3 tầng ... đó chính xác là câu trả lời đúng :-)
Jörg W Mittag

@ JörgWMittag Khá nhiều. Nhưng tôi cũng nói rằng đó chỉ là một mô hình được sử dụng để đơn giản hóa giao tiếp giữa các kiến ​​trúc sư hệ thống, nhà thiết kế ứng dụng và lập trình viên. Trong thực tế, đó là trường hợp đặc biệt của kiến ​​trúc n tầng, là trường hợp đặc biệt của kiến ​​trúc máy khách-máy chủ.
Thomas Owens
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.