早期的網絡系統設計常常采用三層結構。最常見的結構,就是表示( presentation )層 , 領域( domain )層 , 以及基礎架構( infrastructure )層。
n層結構的提出是為了適應當前B/S模式開發WEB Application的需要而提出的。傳統的Brown模型是指:表示層( Presentation ),控制 / 中介層( Controller/Mediator ),領域層( Domain ) , 數據映射層( Data Mapping ) , 和數據源層( Data Source )。它其實就是在三層架構中增加了兩個中間層。控制 / 中介層位於表示層和領域層之間,數據映射層位於領域層和基礎架構層之間。
J2EE規范提出了自己的n-tiers結構。
下表是幾種模型的對照
ISA Brown J2EE 層 對應程序部分 表示層 表示層 客戶層 浏覽器 HTML 頁面, XSL, 手機客戶端等 服務器表示層 JSP 及 ActionForm ,XML 控制/中介層 Controller 控制器及 Action 領域層 領域層 業務層 Javabeans / SessionBean /Session Facade 數據映射層 整合層 EntityBean / JDO / Hibernate / JDBC 數據層 數據源層 資源層 RDBMS 數據庫
J2EE的基本原則之一,是使得各個層的實現解除耦合或耦合最小化。最終實現可以任意的切換某個層的實現。
例如,在數據映射層,可以采用EJB的BMP,CMP,也可以采用Hibernate等O/RMapping,或者采用JDO。這由部署的環境來決定。