admin 管理员组

文章数量: 1184232


2024年4月24日发(作者:jsonp溯源)

第23卷第3期 

2008年9月 徐州教育学院学报 

Vo1.23,No.3 

J.of Xuzhou Education College 

Sep.,2008 

三层架构模型及在J2EE平台中的应用 

王 永 ,王 锋2 

(1.徐州工业职业技术学院信息工程系,江苏徐州221006;2.苏州农业职业技术学院 电子信息系,江苏苏州215008) 

摘要:文章介绍了三层架构模型的组成及其特点,并讨论了其在J2EE平台中的典型应用。 

关键词:三层架构;J2EE平台 

中图分类号:TP31 文献标志码:A 文章编号:1008—6625(2008)03—0084—02 

结果返回给客户端。 

数据访问层(DAL):数据访问层负责实际的数据存储和 

随着以网络计算为中心的应用系统规模的扩大和软硬 

检索,该层所做事务直接操作数据库,针对数据的增、删、改、 

件结构的13趋复杂多样,客户端和服务器端的负担也13益繁 

查。 

重,并且传统软件的移植性、互操作性和重用性也都不能满 

三层架构示意图如图1所示。 

足现在的性能需求。传统的客户机/服务器模式采用的是一 

种双层模型。在双层模型里,程序逻辑在客户机与服务器这 

l 用户界面层…用户界面包 

两种物理位置之间分担,应用程序的商业逻辑必须物理性地 

0 

驻留于客户机端,或在后端DBMS里以触发器或存储过程的 

形式实现。双层客户 服务器模型存在许多的限制因素, 

l 业务逻辑层…业务逻辑包 

如不可伸缩、不能管理、性能较差等因素。正是由于双层客 

{ 

户机/服务器方案存在诸多限制,因此产生了一种新的三层 

数据访问层…数据访问包 

服务器模型。三层客户机/服务器模型以构建分布式应用程 

序为基础。对一个应用程序进行分割以后,可将代码划分为 

不同的逻辑组件,在三层的客户机服务器模型中,这些逻辑 

组件分为三个逻辑层:用户服务、业务服务和数据服务,它们 

共同组成一个应用程序。 

2三层架构及其组成 

图1三层架构示意图 

软件系统中的三层架构就是将整个系统业务应用划分 

3三层架构的优点 

为三个层次,即:用户界面层(UI)、业务逻辑层(BLL)、数据 

访问层(DAL)。三层结构中区分层次的主要目的是为了体 

三层架构由于其灵活性和可扩展性使得设计人员在应 

现出软件开发中“高内聚,低耦合”的思想。 

用三层开发技术时具有如下优势: 

用户界面层(UI):也称为表现层或uI层,主要是用来进 

(1)解决了客户机/服务器结构的维护成本问题,改善客 

行用户界面的显示和处理。用户界面层负责处理用户的输 

户杌/服务器结构延展性问题。客户机/服务器结构支持的 

入和面向用户的输出,但并不负责解释其含义。 

用户人数有一定限度,这种结构限制了Intemet/lntranet及电 

业务逻辑层(BLL):业务是软件系统开发的核心,开发 

子商务的发展。三层开发应用模式提供了高度延展性。 

者就是根据业务规则来开发软件提供服务的,业务逻辑层针 

(2)解决应用逻辑重复使用的问题。 

对具体问题进行对数据层的操作,对数据业务逻辑进行处 

(3)整合了不同系统结构的需要,及时应用新技术的需要。 

理,业务逻辑层是上下两层的纽带,它建立实际的数据库连 

4三层架构在J2EE平台中的应用实例 

接,根据用户的请求生成SQL语句检索或更新数据库,并把 

4.1 基于JSP+JavaBean+Servlet三层结构解析 

[收稿日期J2oo8—07—12 

[作者简介]王永(1972一),男,江苏徐州人,徐州工业职业技术学院讲师,硕士。研究方向:软件工程、软件开发与应用;王锋(1970 

),男,江苏徐州人,副教授,博士研究生。研究方向:G1S农业应用、计算机网络应用与农业生态。 

84・ 

典型的J2EE三层结构,分为用户界面层、业务逻辑层和 

数据服务层。三层体系将业务规则、数据访问及合法性校验 

等工作放在中问层处理。客户端不直接与数据库交互,而是 

通过组件与中间层建立连接,再由中间层与数据库交互。 

为了克服两层架构中相存在的不能很好地解决的的几个 

问题,诸如由于业务逻辑由JavaBean来实现而造成的页面问 

逻辑耦合,给页面修改以及更新工作带来的不便,以及不利于 

代码重用而造成的健壮性和可伸缩性不好等明显问题,开发 

人员引入了三层架构,一个典型的三层架构模式如图3所示。 

厂 、 

用户界面层是传统的JSP技术,经过多年的发展,其广 

泛的应用和稳定的表现,为其作为表现层技术打下了坚实的 

基础。 

WebContainel" 

业务逻辑层采用的是流行的Spring+Hibernate,为了将 

控制层与业务逻辑层分离,又细分为以下几种: 

Web层,就是MVC模式里面的“C”(controller),负责控 

浏 

Us 

览器 R Syeqsutemst 

u 

l 

制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务 

数据返回给表现层作组织表现,该系统的MVC框架采用 

Strutso 

Service层(就是业务逻辑层),负责实现业务逻辑。业务 

逻辑层以DAO层为基础,通过对DAO组件的正面模式包 

装,完成系统所要求的业务逻辑。 

DAO层,负责与持久化对象交互。该层封装了数据的 

增、删、查、改的操作。 

PO,持久化对象。通过实体关系映射工具将关系型数据 

库的数据映射成对象,很方便地实现以面向对象方式操作数 

据库,Hibernate主要是数据的持久化到数据库。 

spring负责业务层管理,Spring的作用贯穿了整个业务 

逻辑层,将Web层、Service层、DAO层及PO无缝整合,其数 

据服务层用来存放数据。 

在J2EE分层结构中,层与层之间相互独立,每个层面提 

供特定服务,任何一层只要其提供的接口不变,实现发生变 

化对其它层面没有影响。J2EE使用了EJB作为商业组件的 

部署环境,在EJB Server中提供了分布式计算环境中组建需 

要的所有服务,其应用模型如图2所示。 . .. 

客户端 服务器端 服务器商业逻辑 企业信息系统 

浏览器 WEB EJB 

●——+ 

服务器 容器 

I Ja ̄aApplet I 

JSP 

囊面系统 l EJB。 

I1 JAVA应用I

.........................

_|J 

 ■——+ J

Se ̄le

A、『A ●

t 

——+ 

l萁他设备 ll

—IJ2 ̄—II

 

● — 平台 

J2EE J平台 2EE 

}I I 

图2 J2EE系统分层应用模型 

4.2基于Struts、Spring典型的MVC三层架构模型 

参考 

[1]宋晓梁.中间件及其在三层客户机/服务器模型中的应用[J]. 

计算机应用,1999(19). 

[2]吴雪阳.信息系统三层结构及其实现技术[J].电脑与信息技 

术,1999(4):2—5,22. 

[3]陶再平.三层结构模型应用的研究[J].电脑与信息技术,1999 

(6):4—6. 

Response 

图3基于Struts\Spring的三层架构模型 

在这个模式中引入了“控制器”的概念,并且由Servlet 

来担任,客户端的请求直接送达控制器,再由其根据具体的 

请求调用不同的事务逻辑,并将结果返回到用户要求的界 

面。与两层结构相比,JSP文件变成了一个单 完成显示任 

务的显示层,即图中的Viewer。事务逻辑独立出来形成Mod— 

el,大大提高开发工作效率,也利于维护。 

4.3 由三层架构扩展的多层架构 

J2EE的三层架构是非常高效,也是目前非常流行的模 

式。实际工作中,设计人员会对这个架构进行一些扩展,也 

为多层架构。方法是将模型层进行拆分,分成服务层(DAO) 

以及数据持久层(Data Persistence),其中服务层用于操作层 

的数据操作,数据持久层表示数据库的持久内存存储对象。 

夏 

\L—————__J

1(VieweO I

 

 

/ 

图4多层架构模型 

5结论 

在三层模型中,通过把各种业务规则都封装在各自相应 

的构件中,这样业务规则的实现和客户使用的图形用户界面 

的实现就相分离了,当一方要进行改变时,只对需改变的一 

方进行改变。与此同时,在同一层上的构件之间也可以相互 

调用,这样也增加了代码的可重用性,减少了编程量,而且因 

为构件也是相互独立的,所以当需求改变时也只需对相应的 

构件进行改变。如此一来就大大减少了系统维护的负担,并 

提高了系统的适用性。 

文献: 

[4]雨阳隆春.深入JSP网络编程[M].北京:清华大学出版社, 

2oo1. 

[5]姜晓铭,陈武,等.JSP程序设计与实例分析教程[M].北京: 

清华大学出版社,2001. 

[6]飞思科技产品研发.JSP应用开发详解[M].2版.北京:电子工 

业出版社.2004. 

85・ 


本文标签: 业务 逻辑 应用 模型 服务器