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。这由部署的环境来决定。