当前位置:文档之家› 基于J2EE核心模式的组合Web框架研究

基于J2EE核心模式的组合Web框架研究

第35卷2007年第6期

6月

华中科技大学学报(自然科学版)

J.HuazhongUniv.ofSci.&Tech.(NatureScienceEdition)

V01.35No.6

Jun.2006基于J2EE核心模式的组合Web框架研究

亮齐欢王小平陈迎春

(华中科技大学控制科学与工程系,湖北武汉430074)

摘要:在研究多种J2EEweb框架和J2EE核心模式的基础上,提出了一种基于J2EE核心模式的组合web框架——CwFBP(CompositeWebFrameworkbasedoncoreJ2EEPatterns)模型.框架采用分层体系架构,集成了开源的J2EEweb框架和持久层框架,并在表示层和业务层综合应用多种J2EE核心模式,实现了层次之问和业务层内部的松散耦合,提高了系统的可复用性和开放性.研究了N层计算模式、AJAX和正则表达式等在模型中的应用.采用CWFBP进行软件架构,设计实现了三峡——葛洲坝水利枢纽通航调度系统.系统运行实践表明了CwFBP的正确性和有效性.

关键词:J2EE核心模式;Web框架;松散耦合;复用性;通航调度

中图分类号:TP393文献标识码:A文章编号:167l一4512(2007)06一0043一04

Researchofcomp惦iteWebframeworkb嬲ed

ZP咒gLi口7zgQiH“口咒Wa豫gXi口D户i咒g

oncoreJ2EEpatternsCIIlP行yi行gf^“咒

(DepartmentofControlScienceandEngineering,HuazhongUniversity

ofScienceandTechnology,Wuhan430074China)

Abstr越t:AnewcompositeWebframeworkbasedoncoreJ2EEpatterns(CWFBP)ispresented,afteranalyzingcoreJ2EEpatternsandenterprise

Webapplications.DeVeIopedundermulti—tiredarchitec—tureandintegratedwithwell—designed,opensourceJ2EEWebapplicationframeworks,CWFBPen—joysseveraladvantagessuchasloosecouplingamonglayers,portability,replaceabilityandreusabili~ty.

Inaddition,theapplicationofN一1ayercomputingmodel,AJAXandreguIarexpressioninCWFBPisdescribed.Thenavigationco—schedulingsystemfortheThreeGorges—GezhoubaDamsisimplemen—tedunderCWFBP.Thepracticesshowthevalidity,efficiencyandapplicationpotentialofCWFBP.Keywords:coreJ2EEpatterns;Webframework;loosecoupling;reusability;naVigationco—schedu—ling

本文提出一种基于J2EE核心模式的组合Web框架——CWFBP,通过综合应用各种优秀、开源的J2EEweb框架、持久化框架以及J2EE核心模式(拦截过滤器、前端控制器、服务定位器、数据访问对象工厂策略等[1’2]),实现了各个层面之间和业务层内部的松散耦合口],使CWFBP具有较好的开放性和灵活性;通过添加对AJAX的支持,实现了CWFBP客户端的动态显示和交互;通过应用正则表达式等客户端验证方法,完善了CWFBP的验证机制.基于该框架设计实现了三峡一葛洲坝水利枢纽通航调度系统.

基于J2EE核心模式的组合Web

框架(CWFBP)

CWFBP的整体结构如图1所示.

1.1客户端

与一般意义上的客户端不同,CWFBP的客户端除应用程序客户端之外,还包含AJAX引

收稿日期:2006一03—23.

作者简介:曾亮(1980一).男,博士研究生;武汉,华中科技大学控制科学与工程系(430074).E。mail:zenglllo@163.com

基金项目:国家自然科学基金资助项目(60574088).

?44?华中科技大学学报(自然科学版)第35卷

擎.AJAX(AsynchronousJavaScriptandXML)并不是一门新的语言或技术,它实际上是几项技术按一定的方式组织在一起协作发挥作用,包括:使用XHTML和CSS标准化呈现;使用DOM(Document0bjectModel)实现动态显示和交互;使用XML和XSLT进行数据交换与处理;使用

表现层

业务层

持久层XMLHttpRequest进行异步数据读取;最后用JavaScript绑定和处理所有数据.AJAX不同于传统Web处理方式的地方在于它的异步特性(用户操作与服务器响应异步化),将以前服务器负担的一些工作转移到客户端,有利于利用客户端闲置的处理能力,减轻服务器和宽带的负担.

图1CwFBP的整体结构图

客户端包含AJAX引擎后,就可以在Java-Script里自由访问Web服务器的资源,就像访问浏览器本地代码一样,并且可以轻松地利用获取的数据向客户端动态地生成内容.

1.2表现层

表现层的主要功能是接收、管理来自客户端的请求,并调度相应的Action来处理请求,同时传递请求过程中的数据,最后将执行结果返回客户端.CWFBP的表现层包含一个WebWork框架和一个虚拟的Struts框架.表现层中,Front—Controller是WebWork框架和虚拟Struts框架的前端控制器(Controller).前端控制器结构图如

篇嚣羹赢lI;嚣蔷蒹l箧

小服务器前端lJsP前端ll!型至

图2前端控制器结构图

图2所示.其中的控制器负责定位特定的操作(action)、应用控制器或派遣器,完成上下文转换,并把控制权转发到该操作上;派遣器负责视图管理和导航.通过这个公共前端控制器的使用,给客户端的HTTP请求安排惟一的访问点,对表现层的逻辑进行集中控制,将表现层和业务层分开,简化了表现层结构,有利于实现表现和数据的松散耦合,同时也可以结合Webwork和Struts框架二者的优势,方便地扩展系统功能.

在CWFBP中,继承了Webwork的很多核心功能,如拦截器,IoC(InversionofControl,倒置控制)容器、表达式语言(OGNL_theObjectGraphNotationLanguage)、类型转换等,另外还充分利用Servlet组件技术,使Servlet担任拦截过滤器或者Web页面之间的消息转发器的角色‘引.

在CWFBP的表现层应用的另一个J2EE核心模式是拦截过滤器.拦截过滤器在请求到达JSP或Servlet之前或响应返回客户端之前添加一些额外的操作,实现Web应用程序中的预处理和后处理逻辑,例如会话处理、权限控制、日志记录、字符集转换等.这也是分散关注的编程方法,即AOP(AspectOrientedProgramming,面向切面编程).另有一个过滤器管理器,与Unix和DOS命令中的管道类似,是Servlet链提供Serv—let应用的一种特殊功能,可以将各个处于松耦合关系的过滤器以特定顺序链接起来,并把控制依次委派给合适的过滤器.拦截过滤器作为可插入的Web组件。可以通过Web部署描述符中的

第6期

曾亮等:基于J2EE核心模式的组合web框架研究

?45?

XML标签来灵活地声明配置,它对Servlet和JSP页面以及Action来说是透明的.拦截过滤器在运行时由Servlet容器动态调用,实现了控制集中化.

1.3

业务层

业务层负责实现业务规则和系统需求.为实

现业务层的解耦,使应用程序的各部分和业务逻辑的各个层面之间相互独立,在CwFBP的业务层中引入N层计算模式.具体开发时,根据系统需求和业务规则,将高级别的业务逻辑和低级别的数据访问逻辑分离,使下一层完全向上层隐藏实现细节,然后部署到N层计算模式的不同层次中去嘲.CWFBP的业务层的构成方式有如图3

[至匠][至匠]

tI

[驷匦函t

叵至函叵垂硇

A嘶帆

lB璐in髂sscfvicc

DAo

IDo删linobj∞b

图3CWFBP业务层的构成方式

所示的(a)~(c)三种.其中的Action是表示层请求的每个动作,BusinessService对应具体的业务操作.Action的主要功能是提供从请求中取得参数的值,转化成相应的模型,再将模型传递给执行业务操作的对象,由业务对象执行业务操作,再返回执行的结果.DA0采用了J2EE设计模式中的数据访问对象(DataAccessObject)模式,封装了数据访问及操作的逻辑,用于访问、操作持久化存储介质中的数据,为异构数据源提供了一个统一的数据访问API,消除了应用程序其余部分对持久化存储实现机制之间的耦合.在CWFBP中,把数据访问对象模式与工厂方法(FactoryMethod)模式结合,形成数据访问对象工厂策略,使用工厂方法模式来实现具体工厂和工厂的产品DAO.

DomainObjects即与数据库表结构对应的持久化

对象.N层计算模式和J2EE核心模式的结合使用,降低了应用程序各部分之间和应用层与持久层之间的耦合程度,提高了CWFBP的灵活性和易扩展性.1.4持久层

持久层负责从一个或多个数据库中存取数据,并把关系表记录完整地映射到持久对象的关系上来.它必须包含一个业务域实体模型.目前在J2EE架构中开发持久层可选用CMP(Container_

managed

persistence),JDBC/SQL/DAO,JD0

(JaVaDataObject)等.使用JDBC/SQL/DAO手

工编码实现持久层时,需要为每个类编写持续性代码,代码量很大,并且缺乏灵活性,维护困难;CMP和JDO都不是轻量级封装,本身比较复杂,调试困难,并且JD0是商业产品,没有开源免费实现,JD01.0的标准还很不完善,各厂商的JDO产品的分裂情况也比较严重.

基于上面的这些考虑,选择采用Hibernate作为数据持久层框架[6].通过Hibernate官方提供的MiddleGen

forHibernate和Hibernate—Ex—

tension工具包,可以很方便地导出数据库表结构,生成ORM和PCIJO.正因为Hibernate具有完备的对象一关系映射策略,支持复杂的对象模型,并且存取策略(懒加载和即时存取)和缓存策略都对应用透明地实现,所以对持久层的操作非常简便高效[7].2

CWFBP应用实例

为了提高三峡船闸和葛洲坝船闸的通过能

力,最大限度地满足船舶过坝要求,保证船舶过闸安全、有序、便捷和畅通,逐步实现智能化调度,启动了“三峡一葛洲坝水利枢纽通航调度系统”的建设和实施.同期启动的还有长江三峡通航管理局办公自动化平台(简称门户系统)和GPS船舶水上定位监控系统(简称GPS系统).三峡一葛洲坝水利枢纽通航调度系统(简称通航调度系统)采用基于J2EE核心模式的组合Web框架CWFBP进行软件架构设计.系统总体结构图如图4所示.

系统总体结构图中(a)~(d)分别与CWFBP的客户端、表现层、业务层和持久层对应.通航调度系统的业务层按应用逻辑划分为数据采集、计划编制、计划发布、计划执行、GPS调度指令、统计报表、综合查询、调度公开、值班日志和系统管理等多个子模块.

2.1

J2EE核心模式的应用

作为基于J2EE核心模式的组合Web框架

CWFBP的具体实例,通航调度系统中也综合应用了多种J2EE核心模式,如拦截过滤器、前端控制器、Context对象、视图助手、服务定位器以及结合数据访问对象和工厂方法模式形成的数据访问对象工厂策略等.2.2对Web框架的补充

CWFBP的客户端包含AJAX引擎,可以在JavaScript中轻松访问Web服务器资源,并利用返回结果在客户端动态生成或更新页面.作为对船舶申报的补充,在申报信息被通航调度系统接

?46?华中科技大学学报(自然科学版)第35卷

(b)(d)

通航调度系统用户

l局域网内用户l;I船删f公司II锚地ll其他Int啪et用户IIGPs船舶l

?●

}r:==1l…。一IIvicwJsP|Iservlet网网蚓婺_一一一一一I

T、『幕1¨厂~r

—一门户接口卜

弋,七,

l数据采集I计划编制I计划发布l计划执行lGPs调度指令l

l统计报表l综合查询I调度公开l值班日志I系统管理l

彳了J2EE软件架构平台通航调度系统业务层模块

七岁

I通航调度系统数据库I备份数据库l

图4三峡一葛洲坝水利枢纽通航调度系统总体结构图

收并确认后,船舶会在抵达指定锚地后向系统发然如何进一步优化CWFBP的执行效率和健壮送到锚确认信息.系统接收到锚确认信息后修改一性,简化其业务层子框架等工作还需要更深入的对应申报记录的到锚标志的操作是利用AJAX研究.

技术实现的.这种异步处理的方式,减轻了网络和服务器负担,同时简化了用户的操作.另外,针对WebWork框架存在的客户端校验不成熟的问题,CWFBP在客户端采用了正则表达式和JavaScript校验相结合的办法.

2.3CWFBP的实用性讨论

CWFBP中,由于各种优秀、开源的J2EEWeb框架和持久化框架以及J2EE核心模式的综合应用,实现了表现层、业务层和持久层各个层面之间以及业务层内部的松散耦合,使CWFBP具有较好的开放性、灵活性和易扩展性.具体开发web应用的过程中,可以方便地用其他的子框架替换现有的表现层和持久层而不至于影响CWFBP的整体性能.尽管如此,CWFBP的执行效率还有待进一步检验,业务层子框架的构成也过于灵活,并且设计和实现CWFBP给企业级应用开发人员提出了较高的要求.

采用CWFBP进行软件架构设计的三峡一葛洲坝水利枢纽通航调度系统已于2005年12月28日正式投入运行.目前从用户反馈的消息来看,系统运行稳定,设计性能达到预期的目标.当

参考文献

[1]DeepakAlur,Johncrupi.DanMalks.J2EE核心模式[M].刘天北,熊节,等译.北京:机械工业出版社,2005.

[2]DeepakAlur,JohnCrupi,DanMalks.CoreJ2EETMpatterns:bestpracticesanddesignstrategies,secondedition[M].PaloAlto:PrenticeHallPTR,2003.[3]ErichGamma,RichardHelm,RalphTohnson,eta1.设计模式——可复用面向对象软件的基础[M].李英军,马晓星,等译.北京:机械工业出版社,2000。[4]陈传波,商丽.网络综合信息发布系统层次模型研究[J].华中科技大学学报:自然科学版,2002,30(5):4—6.

[5]LiuV,Gortonl,FeketeA.Design—levelperformancepredictionofcomponent~basedapp】ications[J].IEEETransactionsonSoftwareEnginee“ng,2005,31(11):928—941.

[6]ChenNan,MaKai—Kuang.Java’sfutures:chaIlengeandopportunity[J].ITProfessional,20()4。6(4):19—26.

[7]RodJohnson.J2EEdevelopmentframeworks[J].Computer,2005,38(1):107—110.

基于J2EE核心模式的组合Web框架研究

作者:曾亮, 齐欢, 王小平, 陈迎春, Zeng Liang, Qi Huan, Wang Xiaoping, Chen

Yingchun

作者单位:华中科技大学,控制科学与工程系,湖北,武汉,430074

刊名:

华中科技大学学报(自然科学版)

英文刊名:JOURNAL OF HUAZHONG UNIVERSITY OF SCIENCE AND TECHNOLOGY(NATURE SCIENCE EDITION)年,卷(期):2007,35(6)

被引用次数:10次

参考文献(7条)

1.Rod Johnson J2EE development frameworks[外文期刊] 2005(01)

2.Chen Nan;Ma Kai-Kuang Java's futures:challenge and opportunity 2004(04)

3.Liu V;Gorton I;Fekete A Design-level performance prediction of component-based applications[外文期刊] 2005(11)

4.陈传波;商丽网络综合信息发布系统层次模型研究[期刊论文]-华中科技大学学报(自然科学版) 2002(05)

5.Erich Gamma;Richard Helm;Ralph Tohnson;李英军,马晓星设计模式--可复用面向对象软件的基础 2000

6.Deepak Alur;John Crupi;Dan Malks Core J2EETM patterns:best practices and design strategies 2003

7.Deepak Alur;John Crupi;Dan Malks;刘天北,熊节J2EE核心模式 2005

引证文献(10条)

1.贺朝霞.刘更.韩冰.何丽复杂机械产品性能仿真报告管理系统研究[期刊论文]-机械设计与制造 2011(2)

2.向凯全.李雄伟.王红胜.张阳可重用构件的软件开发技术研究[期刊论文]-河北科技大学学报 2010(1)

3.王勇.程飞.张涛.刁伟基于Struts2框架的学生助理管理系统的设计与实现[期刊论文]-电脑知识与技术

2010(18)

4.张鹏伟.陈景霞.张文平.王雨团基于ExtJS和SSH的Web应用架构的研究与实现[期刊论文]-陕西科技大学学报(自然科学版) 2010(6)

5.焦桂芝.向凯全.陈军广基于构件的Web-MIS的设计与实现[期刊论文]-四川兵工学报 2009(6)

6.史笛扬.贾卓生J2EE轻量级框架在高校课程管理系统中的应用[期刊论文]-计算机与现代化 2009(8)

7.何丽.吴立言.刘更.尤明明基于BIRT的机械仿真智能报告创建系统[期刊论文]-计算机工程与设计 2009(9)

8.李少辉.别红霞基于Struts的Web系统开发技术及论文在线系统实现[期刊论文]-计算机工程与科学 2009(8)

9.朱峰.刘万军基于授权矩阵的RBAC模型的应用研究[期刊论文]-世界科技研究与发展 2009(1)

10.许强基于AOP的Web应用框架的研究与实现[期刊论文]-电脑知识与技术(学术交流) 2008(4)

本文链接:https://www.doczj.com/doc/7814217900.html,/Periodical_hzlgdxxb200706014.aspx

相关主题
文本预览
相关文档 最新文档