(计算机应用技术专业论文)基于jsf和ejb30的web应用研究.pdf_第1页
(计算机应用技术专业论文)基于jsf和ejb30的web应用研究.pdf_第2页
(计算机应用技术专业论文)基于jsf和ejb30的web应用研究.pdf_第3页
(计算机应用技术专业论文)基于jsf和ejb30的web应用研究.pdf_第4页
(计算机应用技术专业论文)基于jsf和ejb30的web应用研究.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机应用技术专业论文)基于jsf和ejb30的web应用研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕士学位论文 摘要 随着w e b 技术的发展和j 2 e e 平台的广泛采用,基于b s 的多层w e b 应用 体系结构逐渐发展成熟,针对j a v aw e b 应用的每一层都开发出了许多框架。由 于使用e j b 2 x 开发企业应用非常复杂,j a v a e e 5 0 新规范对e j b 进行了大幅度 的修改,推出了e j b 3 0 新规范,开发了持久化规范j p a 代替以前规范中的 e n t i t y b e a n ,j s f 也正式成为规范的一部分。 面对层出不穷的开发框架,在设计w e b 应用架构时,如何选择框架,如何 整合框架让每层以松散耦合的方式相互协作,是每一个开发人员都要考虑的问 题。针对这个问题,本文提出了一个集成j s f 和e j b 3 0 的w e b 应用开发架构, 此架构从表示层到业务逻辑层,再到数据对象持久层,为开发企业应用系统提 供了一站式解决方案。两种框架的融合能很好的兼顾开发效率与维护成本,具 有极高的实用价值。 本文首先对w e b 应用多层框架技术进行了研究,介绍了j a v a e e 5 0 规范和 w e b 应用分层架构。在将j s f 、e j b 3 0 与其它主流w e b 应用框架比较分析后, 提出了基于j s f 和e j b 3 0 的w e b 应用开发架构。 其次,本文对j s f 和e j b 3 0 技术做了详细研究,探讨了集成j s f 和e j b 3 0 进行w e b 应用开发的几种方案。对j s f 和e j b 3 集成架构进行了改进,通过在架 构中集成了f a c e l e t s 和a j a x 技术,设计了一个功能完备的w e b 应用架构,并 讨论了用此架构开发应用系统的优势。 最后,本文使用j s f 和e j b 3 集成架构设计和开发一个电子商务系统。在系 统设计和开发过程中,本文遵循面向对象的思想,没有使用传统的以数据库为 中心的开发方法,采用以领域模型为中心的开发方法进行系统的设计和开发, 为开发高效、灵活的多层w e b 应用系统提供一种新的思路及方法。其中还对系 统中购物车功能进行改进,提出了一个新的购物车实现方法。 关键字:j a v a e e ,框架,j s f , e j b 3 0 ,j p a a b s t r a c t w i t ht h ed e v e l o p m e n to ft h ew e b t e c h n o l o g ya n dt h ew i d e s p r e a du s eo fp l a t f o r m o ft h ej 2 e e ,t h em u l t i - l a y e rw e ba r c h i t e c t u r eb a s e do nb sp a t t e r nm a t u r e sg r a d u a u v , al o to ff r a m e w o r k sh a v eb e e nd e v e l o p e df o re a c hl a y e ro ft h ej a v aw e b a p p l i c a t i o n b e c a u s ee j b 2 xw a s v e r yc o m p l e x ,j a v a e e 5 0n e ws p e c i f i c a t i o nc o n d u c t e de x t e n s i v e r e v i s i o n so ne j b j a v a e e 5 0s p e c i f i c a t i o ni s s u e de j b 3 0n e ws p e c i f i c a t i o na n d d e v e l o p e dap e r s i s t e n ts p e c i f i c a t i o nj p ai n s t e a do fe n t i t y b e a ni nt h ep r e v i o u s s p e c i f i c a t i o n ,j s fh a do f f i c i a l l yb e c o m eap a r to ft h es p e c i f i c a t i o n w h e nad e v e l o p e rd e s i g n saw e ba p p l i c a t i o ns t r u c t u r e ,h em u s tc o n s i d e rh o w t o c h o o s ef r a m e w o r k sa n dh o wt oi n t e g r a t ef r a m e w o r k si no r d e rt oe a c hl a y e rm u t u a l c o o p e r a t e d i nal o o s ec o u p l i n gm a n n e r t h i st h e s i s d e s i g n e daw e ba p p l i c a t i o n s t r u c t u r eb a s e do nj s fa n de j b 3 0 ,t h es t r u c t u r e p r o v i d e do n e s t o ps o l u t i o nf o r e n t e r p r i s ea p p l i c a t i o nd e v e l o p m e n tf r o mp r e s e n t a t i o nl a y e rt ob u s i n e s sl o g i cl a y e ra n d p e r s i s t e n c el a y e r t h ei n t e g r a t i o no ft w of r a m e w o r k sc a n sv e r yg o o db a l a n c et ot h e d e v e l o p m e n te f f i c i e n c ya n dm a i n t e n a n c ec o s t s ,w h i c hh a s h i g h l yp r a c t i c a lv a l u e f i r s t l y , t h et h e s i ss t u d i e dt h ew e ba p p l i c a t i o nm u l t i 1 a y e rf r a m e w o r k t e c h n o l o g y i ti n t r o d u c e dt h ej a v a e e 5 0 s p e c i f i c a t i o na n dt h ew e ba p p l i c a t i o nm u l t i 1 a v e r a r c h i t e c t u r e t h r o u g hc o m p a r a t i v ea n a l y z e dt h em a i n s t r e a mw e ba p p l i c a t i o n f r a m e w o r k ,t h et h e s i sp u tf o r w a r dt h ew e ba p p l i c a t i o ns t r u c t u r eb a s e do nj s fa n d e j b 3 0 s e c o n d l y , t h et h e s i ss t u d i e di nd e t a i lj s fa n de j b 3 0t e c h n o l o g ya n dp u tf o r w a r d t h ev a r i o u sm e t h o d so fi n t e g r a t i n gj s fw i t he j b 3 0t od e v e l o paw e b a p p l i c a t i o n t h r o u g hi n t e g r a t e df a c e l e t sa n da j a xt e c h n o l o g y , t h et h e s i sd e s i g n e daf u l l y f u n c t i o n a lw e ba p p l i c a t i o ns t r u c t u r e i nt h ee n d ,t h et h e s i sd i s c u s s e dt h ea d v a n t a g e s o ft h ew e b a p p l i c a t i o ns t r u c t u r e f i n a l l y , t h ea u t h o rd e s i g n e da n dd e v e l o p e da ne c o m m e r c es y s t e mu s i n gt h ej s f a n de j b 3 0 i n t e g r a t i n gs t r u c t u r e i nt h ep r o c e s so ft h es y s t e m sd e s i g na n d d e v e l o p m e n t ,t h ea u t h o rf o l l o w e dt h eo b j e c t - o r i e n t e dt h o u g h t t h es y s t e mw a s d e s i g n e da n dd e v e l o p e du s i n gt h ed e v e l o p i n gm e t h o db a s e do nt h ed o m a i nm o d e l i i 武汉理工人学硕士学位论文 i n s t e a do ft h et r a d i t i o n a ld e v e l o p i n gm e t h o db a s e do nt h ed a t a b a s e t h i sd e v e l o p i n g m e t h o dp r o v i d e dan e wi d e aa n dm e t h o df o rt h ed e v e l o p m e n to fae f f i c i e n ta n d f l e x i b l em u l t i l a y e rs y s t e m i na d d i t i o n ,t h ea u t h o ri m p r o v e ds h o p p i n gc a r t sf u n c t i o n a n dp u tf o r w a r dan e wm e t h o dt od e v e l o ps h o p p i n gc a r t k e y w o r d s :j a v a e e ,f r a m e w o r k ,j s f , e j b 3 0 ,j p a i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:墨删赔 日期:型丘座 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:细蜃导师签名: 日期:塑:幺丝 第1 章绪论 1 1 课题研究的目的及意义 在互联网基础架构日益发达的今天,越来越多的企业将自己的核心业务系 统搬上w e b ,w e b 应用成为独占鳌头的企业应用类型,有着巨大的市场容量和 诱人的前景。 选择一个合理高效的开发框架对开发企业级应用程序有着极为重要的意义。 好的开发框架有着非常清楚的层次结构,各部分功能定位明确,能够有效地降 低各个模块,不同层次的耦合,有利于程序的扩展和维护。好的应用框架会利 用前人的成果,这样开发人员无须关心底层实现,只需关注具体业务实现即可, 从而提高开发效率。好的开发框架会有高的处理效率,对大量并发访问,对数 据源的交互都有充分的考虑【。 基于j a v a 的w e b 应用多层架构上的开发框架层出不穷。如何选择和整合框 架来开发w e b 应用系统,给每一个开发人员带来了挑战。本课题的研究目的就 是在比较分析各种框架技术的基础上,给出一个开发多层w e b 应用系统的解决 方案。 传统的j 2 e e 开发企业级应用非常复杂,为了简化开发。2 0 0 6 年5 月s u n 正式发布了j a v a e e 5 ( j a v ap l a t f o r me n t e r p r i s ee d i t i o n 5 ) 新规范,j a v a e e 5 中对 一些重要的规范进行了本质的改动。其中对e j b 进行了大幅度的修改,推出了 e j b 3 0 ( e n t e r p r i s ej a v a b e a n s3 0 ) 新规范,并在e j b 3 0 中引入了新的持久化标 准j p a ( j a v ap e r s i s t e n c e a p i ) 取代以前规范中的e n t i t y b e a n 。j s f ( j a v a s e r v e rf a c e s ) 正式成为规范的一部分。 开发一个企业级w e b 应用系统,系统架构的实现方式有很多的选择。基于 j s f 和e j b 3 0 的w e b 应用架构开发的系统,表示层使用j s f 框架实现,业务逻 辑层由若干e j b 组件构成,这些可重用组件独立于任何用户界面逻辑,数据持 久层使用j p a 实现。这两种技术的结合充分发挥了两者的优点,基于二者的w e b 应用层次清晰、性能优良、易于维护,具有很好的可扩展性和可移植性,非常 适合面向对象的设计和开发。 1 武汉理工大学硕士学位论文 1 2 课题研究现状 目前基于j a v a 的w e b 应用程序的开发采用分层的体系架构,主要分3 层【1 】: 表示层、业务逻辑层、持久层。基于j a v a 的w e b 应用多层架构上已经开发出了 很多框架,这大大减轻了开发人员的负担,开发者可以将不同层上的框架整合 到一起开发w e b 应用程序,从而能够从繁杂的底层编码中解脱出来。 1 应用于表示层的框架 表示层框架分为两类:请求应答型框架和事件响应机制框架。请求应答型 框架有s t r u t s ,w e b w o r k ,s p r i n gm v c ( m o d e l - v i e w - c o n t r o l l e r ) ,以及一些基于这 些框架的框架,如s p r i n gw e b f l o w , b e e h i v e 等等;事件响应机制框架有j s f , t a p e s t r y ,e c h o 等。 2 应用于业务逻辑层的框架 业务层的框架有s p r i n g 、e j b 等。 3 应用于持久层的框架 持久层提供j a v a 对象到关系数据的映射,实现技术有h i b e r n a t e 、i b a t i s 、 j d o ( j a v ad a t ao b j e c t s ) ,j p a 等。 j s f 是一种面向组件和事件驱动模型的w e b 开发技术。2 0 0 4 年3 月j a v a 标 准制订组织推出j s f1 0 规范。2 0 0 6 年5 月,j s f 推出1 2 版本并作为j a v a e e 5 规范的一部分同时发布。 j s f 是一种用于构建w e b 应用程序的新标准j a v a 框架。它提供了一种以 组件为中心来开发j a v aw e b 用户界面的方法,从而简化了开发1 6 j 。由于j s f 是 通过j a v a 标准制订组织开发的一种j a v a 标准,因此开发工具供应商完全能够 为j s f 提供易于使用的、高效的可视化开发环境。s u n 的j a v as t u d i oc r e a t o r 2 和 o r a c l e 的o r a l c ej d e v e l o p e r1 0 9 都是免费的j s f 开发工具,e c l i p s e 也有相应的插 件提供对j s f 的支持。j s f 技术也同时得到了许多厂商的支持,如:s u n 的j s f w e bu i ( u s e ri n t e r f a c e ) 、i b m 的j s fe x t e n s i o n 、o r a c l e 的a d f ( a p p l i c a t i o n d e v e l o p m e n tf r a m e w o r k ) f a c e s 。还有许多开源项目如m yf a c e s 都提供了对j s f 的支持和扩展。 但是j s f 的不足之处有很多,比如u i 组件还不够丰富、具体实现的可选择 余地过窄、使用j s f 开发的实际项目不多、s u n 的参考实现还存在诸多b u g 、短 期内缺乏成熟工具支持等等,尤其是在国内,j s f 的中文文档和书籍相当缺乏。 2 武汉理t 大学硕士学位论文 在1 9 9 8 年,s u n 推出了j s p 和e j b l 0 规范。j s p 在诞生后,很快成为了 w e b 开发的主流。而和它同时诞生的e j b l 0 却一直倍受冷落。在e j b l 0 诞生后 的几年,s u n 又推出了e j b 2 0 规范,由于e j b 过于复杂,使用它的开发人员比 较少。为了减少f j b 开发的复杂性,2 0 0 6 年5 月推出了e j b 3 0 新规范。e j b 3 0 中重要的变更包括【2 j :使用了j a v a 5 中的程序注解工具;引入了基于p o j o ( p l a i n o l dj a v ao b j e c t ) 的对象关系映射( o b j e c t r e l a t i o n a lm a p p i n g ,o r m ) 模型;引入了 d i ( 依赖注入) 容器类。 在j a v a e e 5 中,开发了通用持久化规范j p a l 0 代替以前规范中的e n t i t y b e a n 。j p a 是j a v a 持久化技术的一个集大成者,它吸取了h i b e r n a t e 、j d o 、t o p l i n k 等优秀技术和框架,将这几年发展成熟起来的基于p o j o 模型的o r m 技术标准 化,成为在j a v a 中通用的a p i ,大大减轻了编程的复杂性1 3 1 。目前主要j p a 实现 有:o p e n j p a 、o r a c l et o p l i n ke s s e n t i a l s 、h i b e r n a t ee n t i t y m a n a g e r 等。 e j b 3 0 的应用依赖e j b 容器,现在有很多e j b 服务器支持e j b 3 0 ,像开源 的j b o s s ,g l a s s f i s h ,商业的w e b l o g i c 、w e b s p h e r e 等,但是这些应用服务器的 功能和成熟度都有待提高。 在j s f 和e j b 3 0 技术的基础上,j b o s s 推出了j b o s ss e a m 框架,s e a m 提 供了以注解为基础的整合e j b 3 0 和j s f l 2 的方法。在s e a m 中,只要为e j b 3 0 组件提供一个简单的注解,就可以在j s f 中直接使用e j b 3 0 组件了【5 1 。但是s e a m 的这一做法是一把双刃剑,一方面,对于小规模应用,两个组件模型界线的模 糊化,显然简化了应用框架的格局,降低了编程的复杂度,但另一方面,表示 层和业务层的融合,是否适用于大规模复杂应用,有待实际项目的考验。 1 3 课题研究的内容 面对基于j a v a 的w e b 应用多层架构上层出不穷的开发框架,在设计w e b 应用架构时,如何选择框架,如何整合框架让每层以松散耦合的方式相互协作, 给开发人员带来了困惑。本课题就是针对这个问题展开的。 本课题研究和设计了一个基于j s f 和e j b 3 0 的架构来开发w e b 应用系统的 解决方案,为开发高效、灵活的多层w e b 应用系统提供一种新的思路及方法。 论文结构组织如下: 第1 章:绪论。介绍了课题研究的目的和意义以及课题的研究现状。 3 武汉理t 大学硕士学位论文 第2 章:w e b 应用多层框架技术的研究。介绍了j a v a e e 体系结构及w e b 应 用分层体系结构。在比较分析了主流w e b 应用框架后,探讨了如何选择和整合 框架来架构w e b 应用系统,提出了基于j s f 和e j b 3 0 的w e b 应用开发架构。 第3 章:j a v a e ew e b 应用技术分析。介绍了m v c ,重点分析了j s f 的体系 结构、组件模型事件、导航模型、b a c k i n gb e a n 管理以及e j b 3 0 简化开发模型、 轻量级j a v a 持久a p i 模型等。 第4 章:j s f 和e j b 3 0 集成架构设计。探讨了j s f 与f _ _ j b 3 0 集成的几种方 案,并对j s f + e j b 3 的架构进行了改进,在架构中集成了f a c e l e t s 和a j a x 技 术,设计了一个功能完备的w e b 应用架构。 第5 章:w e b 应用系统设计与应用。用面向对象方法对一个电子商务系统 进行分析和设计。详细论述了基于j s f 与e j b 3 0 架构的w e b 应用实现细节。对 购物车功能进行改进,提出了一个新的购物车实现方法。 第6 章:总结和展望。概括总结作者在本文所做的工作及心得体会,并对 今后需进一步探索的工作提出展望。 4 武汉理工大学硕十学位论文 第2 章w e b 应用多层框架技术的研究 2 1j a v a e e 规范 2 1 1j a v a e e 概述 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 是s u n 公司定义的一个开发分布式 企业级应用的规范。它提供了一个多层次的分布式应用模型和一系列开发技术 规范。使用j 2 e e 开发企业级应用非常复杂,为了简化开发,2 0 0 6 年5 月s u n 正式发布了j a v a e e 5 ( j a v ap l a t f o r me n t e r p r i s ee d i t i o n 5 ) 新规范,j a v a e e 5 吸收 了很多大家耳熟能详的框架的设计思想( 包括h i b e r n a t e ,s p r i n g ,t o p l i n k 和j d o 等 等) 。对一些重要的规范进行了本质的改动。这个版本有了一个新名字_ j a v ae e , 以前的版本仍然使用老名字j 2 e e 。 j a v a e e 5 主要的新特征包括【2 】: i e j b 规范的版本从2 1 升级到3 0 ,在版本升级的背后包含了如下的显著特 征:e j b 成为轻量级的p o j o ,可以脱离容器运行和测试;e j b 3 0 中引入的持久化 规范j p a 可以脱离j a v a e e 运行环境,单独运行在标准的j a v a 应用程序中。 2 引入了j s f l 2 和j s t l l 2 ( j a v as e r v e rp a g e ss t a n d a r dt a gl i b r a r y1 2 ) ,在 传统的j s p 和s e r v l e t 的基础之上,这两个规范的引入将大大简化w e b 层或者说 是表示层的开发。 3 注解( a n n o t a t i o n ) 是j a v a s e 5 在j a v a 语言上的一个重大变化,j a v a e e 5 大量 使用了注解。注解的使用可以简化j a v a e e 应用程序的发布过程,使得开发人员 可以从代码和发布文件的同步中解脱出来;同时,注解也可以大大简化应用程序 中资源( 例如:j d b cc o n n e c t i o n ,e j b 业务接口) 的查找过程,使得开发人员不用 过多考虑系统环境的问题,专注于业务的开发。 j a v a e e 平台由一整套服务、应用程序接e ( a p i ) 矛i 协议构成,它对开发企业 的多层应用提供了全面的功能支持,主要有以下技术规范:j d b c ( j a v ad a t a b a s e c o n n e c t i v i t y ) ,j n d i ( j a v an a m ea n dd i r e c t o r yi n t e r f a c e ) ,e j b ,r m l ( r e m o t em e t h o d i n v o c a t i o n ) 、j s p 、j a v as e r v l e t 、j s f 、j m s ( j a v am s s a g es e r v i c e ) 、j a v am a i l 等【2 1 。 5 武汉理工大学硕士学位论文 2 1 2j a v a e e 架构 一个多层的分布式应用模型意味着应用逻辑依据功能被划分成组件,并且 可以在同一个服务器或不同的服务器上安装这些不同组件。j a v a e e 组件是具有 独立功能的软件单元,它们通过相关的类和文件组装成j a v a e e 应用程序,并与 其他组件交互。j a v a e e 架构图如图2 1 所示【2 1 。 图2 1j a v ae e 架构图 图中展示了j a v a e e 平台架构元素问的关系。由独立矩形标明的容器是 j a v a e e 运行环境,它为矩形上半部分的应用组件提供需要的服务。这些服务在 矩形的下半部分的盒子中说明。箭头代表访问j a v a e e 平台的其他部分。 一个应用组件应被安装在什么地方,取决于该组件属于多层的j a v a e e 环境 中的哪一层。这些层是客户层、w 曲层、业务层及e i s ( f k _ k 信息系统) 层p j : 用户层:用来与用户交互,并把来自系统的信息显示给用户。j a v a e e 平台 支持不同类型的用户。包括h t m l 用户,j a v a a p p l e t s 和j a v a 应用等。 w e b 层:w e b 层产生表示逻辑,并接受来自客户端的用户反馈。在所接收 6 武汉理工大学硕士学位论文 的客户端请求的基础上,表示层对用户的请求产生相应的回应。在j a v a e e 平台 中,是由w e b 容器内的s e r v l e t 、j s p 和j s f 来实现这一层。 业务层:业务层负责处理某一特定领域的业务逻辑。它可以从客户程序接 收数据,作适当处理后存到数据存储设备中,也可以从数据存储设备中读取数 据,处理后发送给客户程序。业务层组件由j a v a b e a n ,e j b 组成。 e i s 层:该层为企业的信息服务系统服务,包括数据库系统,事物处理系统, 企业资源计划系统等。e i s 是j a v a e e 应用与非j a v a e e 应用的连接点。 在系统的部署过程中,组件被安装到容器中。容器就是组件与支持组件的 特定平台功能之间的接口。容器设置定制了j a v a e e 服务器所提供的内在支持, 包括安全,事务管理,j n d i 寻址,远程连接等服务。 2 2w e b 应用分层架构 用j a v a 语言来建立一个w e b 应用程序并不是一个简单的任务,因为在架构这 个应用程序框架时,大多数的开发人员都会面临着关于如何构建用户接口,何 处驻留业务逻辑,以及如何实现数据持久性等等问题。而这三个问题其实就是 对应着软件开发过程涉及的一个架构的三个层次。 大部分的w 曲应用在职责上至少能被分成3 层,这三层是:表示层 ( p r e s e n t a t i o nl a y e r ) ,业务逻辑层( b u s i n e s sl o g i cl a y e r ) ,持久层( p e r s i s t e n c e l a y e r ) 4 1 。每个层在处理程序上都应该有一项明确的责任,而不应该在功能上与 其它层混合,并且每个层要与其它层分开的,但要给他们之间放一个通信接口。 下面分别介绍这3 层,讨论一下这些层应该负责什么,不应该负责什么。 1 表示层 一般来讲,一个典型的w e b 应用的的前端应该是表示层。 表示层负责:管理用户的请求,做出相应的响应;提供一个流程控制器, 委派调用业务逻辑和其他上层处理;处理异常:为显示提供一个数据模型;用 户界面的验证。 表示层不应该负责:与数据库直接通信;与应用程序相关联的业务逻辑及 校验;事务处理。 2 持久层 一个典型的w e b 应用的后端是持久层,这里通常是程序最容易失控的地方。 7 武汉理工大学硕+ 学位论文 开发者总是低估构建他们自己的持久框架的挑战性。系统内部的持久层不但需 要大量调试时间,而且还经常缺少功能使之变得难以控制,这是持久层的通病。 目前在持久层领域有几个对象关系映射( 0 b j e c t r e l a t i o nm a p p i n g ,o r m ) 开源 框架很好的解决了这类问题 持久层负责:如何查询对象的相关信息;如何存储,更新,删除数据库记 录。 7 3 业务逻辑层 一个典型w e b 应用的中间部分是业务逻辑层或者服务层。这层是最容易被 忽视的一层,程序开发人员往往在u i 层或持久层周围编写业务处理的代码,这 种做法导致了程序代码的紧密耦合,随着时间推移这些代码很难维护。 业务逻辑层所负责的任务如下:处理应用程序的业务逻辑和业务校验;管理 事务;允许与其它层相互作用的接口;管理业务层级别对象的依赖,在显示层 和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起;通过揭 示从显示层到业务层之间的c o n t e x t 来得到b u s i n e s ss e r v i c e s 管理程序的执行( 从 业务层到持久层) 。 既然致力于开发一个w e b 的应用,那么还需要一个实际需求中的业务对象 集合,让它在不同层之间移动的。例如,h i b e r n a t e 允许你将数据库中的信息存 放入领域对象( d o m a i no b j e c t s ) ,这样你可以在数据库连接断开的情况下把这些数 据显示到u i 层。而那些对象也可以返回给持久层,从而在数据库里更新。这个 模型使得开发人员能很自然运用面向对象的思想,而不需要附加的编码。 对于w e b 应用架构的每一层,每层需要实现那些技术,应用如何设计来进 行松散耦合并能进行灵活变更。应用架构是否允许某一层变更而不影响到其它 的层次,应用应该如何处理容器一级的服务比如事务等技术问题都是需要解决 的事情。有很多开发者都意识到这个问题,并建立了很多框架来解决这些问题。 一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力; 它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常 能很好的解决一个问题。然而,w e b 应用是分层的,可能每一个层都需要各自 的框架,因此需要整合各层框架将业务逻辑和持久性逻辑和u i 组件很好的耦合, 如何建立w e b 应用架构,并且怎样让各个应用层保持一致。如何整合框架 以便让每个层以一种松散耦合的方式彼此作用而不用管低层的技术细节。这是 每一个程序架构师或者软件开发人员都不可回避的问题。 8 武汉理t 大学硕士学位论文 图2 2 展示了w e b 应用的三层体系结构以及每层的主流框架 表示层业务逻辑层 持久层 ,、 、一,一一 , j 1 卜、 4 j s f e j b h i b e m a t e d a t e b a s e s t r u t s s p r i n g i b a = r i s t a p e s t r y j p a , 图2 - 2 w e b 应用的三层体系结构 2 3 主流w e b 应用框架比较 2 3 1 表示层框架 目前比较流行的表示层框架主要有j s f ,s t r u t s 和t a p e s t r y 。s t r u t s 框架由于 出现时间早,所以使用相对广泛,很容易找到很多现成的开源功能标签和样例 程序以供使用和参考。但是它的组件在页面中显示的粗粒度,以及框架类的限 制在很多情况下会表现得过于死板,给表示层的开发带来一些额外的代码开销。 j s f 是一个可重用、可扩展、基于组件、工具友好的服务器端u i 框架。在 支持j s f 的r a d ( r a p i da p p l i c a t i o nd e v e l o p m e n t ) 开发工具中,人们可以像使用 v i s u a ls t u d i o n e t 一样方便快捷地构建w e b 用户界面。j s f 是一个开放的标准, 具有很好的可扩展性。依照j s f 的规范,用户完全可以根据需求定制自己的用 户界面组件、事件处理器、数据校验和转换组件等,这些组件和标准的j s f 组 件一样是可重用的。j s f 有的另外一个优势就是其身后有s u n 公司和其他的一些 大公司的支持。 t a p e s t r y 是一个完全组件的框架,t a p e s t r y 的组件可以被套嵌并包裹其它组 件,因此可以组合形成一个更大的组件或逻辑页面。组件的行为模式为w e b 页 面编程提供了很大的方便,事件处理也方便很多。所以,如果做一个对页面要 求灵活度相当高的系统就可以考虑选用t a p e s t r y 。 三种表示层框架的技术细节比较如表2 1 所示【6 j 【7 j 【8 】: 9 武汉理工大学硕士学位论文 表2 1 三种表示层框架的技术细节比较 框架s t r u t sj s f t a p e s t r y m v cm v c 体系结构m v c f r o n tc o n t r o l l e r + 组件 p a g ec o n t r o l l e r + 件 化编程化编程 业务逻辑:s t r u t s 中业务逻辑:p o j o 的编 业务逻辑:t a p e r s t r y 4 需要继承基类; 程模型; 需要继承基类; t a p e r s t r y 5 是p o j o 编 编程模型 程模型; 页面逻辑:可以是页面逻辑:主要是 j s p ,也可以通过模j s p ,也可以用h t m l 页面逻辑:普通的 版引擎渲染。风格。 h t m l 。 p a t h 和a c t i o n 绑定, 通过f a c e s c o n f i g x m lu r l 是全局的,没有额 页面导航 需要配置文件解析。配置文件完成。外的配置文件。 通过表单提交 能够给于表单每个字 事件触发s u b m i t 激活,不能细 段赋一个事件,事件组 同j s f ,事件组件必须 件必须实现 实现p a g e l i s t e n e r 接 化到表单里字段。 口。 a c t i o n l i s t e n e 接口。 2 3 2 业务逻辑层框架 应用于业务逻辑层的框架有s p r i n g 、e j b 等,e j b2 x 框架有些过于复杂了, 有如下缺点:e j b 模型需要建立许多组件接口和实现许多不必要的回滚方法; e j b 的部署描述复杂而容易出错;开发人员不能脱离e j b 容器测试。 对于以上缺点j c p ( j a v ac o m m u n i t yp r o c e s s ) $ 1 4 订的e j b 3 0 规范做了相应的 改进。e j b 3 0 和s p r i n g 两个框架结构都有一个共同核心设计理念:将中间件服 务传递给松散耦合的p o j o 。 e j b 框架与应用服务器高度整合,服务整合代码也包装在一个标准接口后 面。e j b 框架一方面有成熟的e j b 容器支持,基于e j b 框架的企业应用性能优 良;另一方面e j b 容器设计因为考虑了多方面的功能,所以其内核显得臃肿, e j b 不能根据项目需求对e j b 整体包括e j b 容器进行可配置式的切割。 1 0 武汉理工大学硕士学位论文 s p r i n g 框架处于应用服务器和服务库的上方,服务整合的代码属于框架,并 暴露给应用开发者。它与应用服务器整合的能力相对e j b 3 0 要弱,但是s p r i n g 框架模块的可分离配置体现了它优于e j b 3 0 的灵活性。 e j b 和s p r i n g 框架的具体细节比较如表2 - - 2 所示9 h 1 0 1 : 框架 e j b 2 e j b 3 s p r i n gf r a m e w o r k 灵活性e j b 3 比e j b 2 更具灵活性,e j b 3支持应用系统p o j o ,框架 ( 松耦合) 支持应用系统p o j o 。本身可分离配置。 较为全面。有自己的表示层 功能完整性全面,支持异步j m s 分布式事务。和持久层模板,可支持异 步。 e j b 框架组件被紧密地集成到应服务集成代码位于框架组 用程序服务器中,服务集成代码被件之中,并暴露给应用程序 服务集成 封装在标准的接口中。e j b 厂商可开发者。开发者可灵活地集 以优化总体性能和开发者体验。成服务。 e j b3 0 通过简单的注解支持大多 支持基于x m l 配置文件的 依赖注入( d i )数通用服务对象和j n d i 对象的注 d i a p i 。 入操作。 可伸缩性可支持多台服务器分布式计算。不支持,可依靠e j b 实现。 e j b 2 开发部署复杂。e j b 3 开发和可挑选只适合自己的功能 开发效率 部署大大简化。实现。相对e j b 稍简单。 e j b 适合大中型系统;e j b 3 也可开适合中小型系统,可借助 应用领域 发中小型系统。e j b 支持中大型系统。 2 3 3 持久层框架 应用于持久层的框架主要有h i b e r n a t e 、j p a 、i b a t i s 等。在e j b 2 1 中,容 器管理持久性( c m p ) 是对e j b 中e n t i t yb e a n 进行持久性管理的方式,e j b 2 1 持 久性模型过于复杂并且存在基础缺陷。e j b 3 0 规范开发了持久化规范j p a 代替 以前规范中的e n t i t yb e a n 。j p a 的优势如下【2 7 1 : 1 标准化:任何符合j p a 标准的框架都遵循同样的架构,提供相同的访问 1 1 武汉理工大学硕士学位论文 a p i ,这保证了基于j p a 开发的企业应用能够经过少量的修改就能够在不同的 j p a 框架下运行。 2 对容器级特性的支持:j p a 框架中支持大数据集、事务、并发等容器级事 务,这使得j p a 超越了简单持久化框架的局限,在企业应用发挥更大的作用。 3 简单易用,集成方便:在j p a 框架下创建实体和创建j a v a 类一样简单, 只需要使用i a v a x p e r s i s t e n c e e n t i t y 进行注释;j p a 基于非侵入式原则设计,因 此可以很容易的和其它框架或者容器集成。 4 可媲美j d b c 的查询能力:j p a 的查询语言是面向对象而非面向数据库的, 它以面向对象的自然语法构造查询语句。j p a 定义了独特的j p q l ( j a v a p e r s i s t e n c eq u e r yl a n g u a g e ) ,它是针对实体的一种查询语言,操作对象是实体, 而不是关系数据库的表。 5 支持面向对象的高级特性:j p a 中能够支持面向对象的高级特性,如类之 间的继承、多态和类之间的复杂关系,这样的支持能够让开发者使用面向对象 的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。 j p a 作为对象持久化的标准,不但可以获得j a v a e e 应用服务器的支持,还 可以直接在j a v a s e 中使用,开发者将无需在现有多种o r m 框架中艰难地选择。 h i b e r n a t e 相对而言其基本优势如下:h i b e r n a t e 使用j a v a 反射机制而不是 字节码增强程序来实现透明性;h i b e r n a t e 使用简单,映射的灵活性很出色;它 支持各种关系数据库,从一对一到多对多的各种复杂关系。 h i b e r n a t e 也有一些缺点,它限制所使用的对象模型( 例如,一个持久性类 不能映射到多个表) 。 使用i b a t i s 提供的o rm a p p i n g 机制,对业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论