




已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)lbusframe轻量级业务服务层框架——概念、分析、设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 以j 2 e e 为代表的面向对象技术已展现其价值。然而,传统的j 2 e e 实现使简单的问题复杂化。 导致过度设计的j 2 e e 应用。应用程序开发者不应该设计资源池、线程管理、服务定位、数据访 问以及业务层框架。本文描述业务层框架l b u s f r a m e 的核心需求、包结构、u m l 图和代码片断, 给出构建j 2 e e 应用的简单途径。 典型的j 2 e e 应用程序具有多层结构,包括数据访问层、表示层和业务服务层。业务服务层 是应用程序的核心,表示层主要应用m v c 模式,处理用户界面以及远程接口。数据访问层主要 应用d a o 模式,处理持久化问题。 l b u s f r a m e 使用c o m p o s i t e 和s t r a t e g y 模式实现业务服务层。业务概念视图的所有实体构成业 务模型,业务模型通过业务接口和数据访问层的d a o 通信。用户感兴趣的实体及其关系组成域 模型,域模型为表示层提供用户界面。业务服务层处理实体及其关系。l b u s f r a m e 具有c o m p o s i t e 类和l e a f 类,这两个类都继承自c o m p o n e n t 抽象类。c o m p o s i t e 类和l e a f 类保持实体关系的单向性 或双向性,构成网状的实体关系。l b u s f r a m e 将通过实现i o c 模式,生成可以被管理的依赖对象 来提供资源定位能力。 通过将算法包装为算法类,l b u s f r a m e 能够将几个算法组合成一个算法,以及将算法从组合 算法中剥离出来。利用s t r a t e g y 模式,l b u s f r a m e 能够在运行时动态载入或卸载算法。 关键词:轻量级框架,业务服务,c o m p o s i t e 模式,s t r a t e g y 模式,m v c ,i o c a b s t r a c t o b j e c t - o r i e n t e dt e c h n o l o g y , d e l e g a t e db yj 2 e e h a sd e m o n s u a t e di t sv a l u ei nam u l t i t u d eo fe n t e r p r i s e a p p l i c a t i o n sa r o u n dt h ei n d u s t r y h o w e v e r , t r a d i t i o n a lj 2 e eo r t h o d o x ym a k e sh e a v yw o r kf o rs i m p l e p r o b l e m s ,r e s u l t si no v e r - d e s i g n e dj 2 e ea p p l i c a t i o n s a p p f i c a t i o n sb u i l d e rs h o u l dn o td e s i g ns o u t e e p o o l i n g ,t h r e a dm a n a g e m e n t , s e r v i c el o o k u p ,d a t aa c c e s s ,a n dm o r ei m p o r t a n tb u s i n e s sl a y e rf r a m e w o r k s o m es i m p l ea p p r o a c h e st od e v e l o p i n gj 2 e ea p p l i c a t i o n se m e r g e a m o n gt h o s ea p p r o a c h e s ,b u i l d i n ga b u s i n e s sl a y e rf r a m e w o r k ,w h i c hi sd e s c r i b e di nt h i st h e s i s ,p r e s e n t sa l la l t e r n a t ea c c e s s 1 土n s f r a m e f r a m e w o r k ,i si n t r o d u c e dt h r o u g h o u tw i t hc o r er e q u i r e m e n t s ,d e t a i l e da n a l y s i sp r i n c i p l e s ,p a c k a g e d e s c r i p t i o n s ,u m l d i a g r a m s ,a n dc o d ef r a g m e n t s a nt y p i c a lj 2 e ea p p l i c a t i o nh a sm u l f i - t i e ma r c h i t e c t u r e ,n a m e l yd a t aa c c e s sl a y e r ,p r e s e n t a t i o nl a y e r a n do u rf o c u s ,b u s i n e s ss e r v i c e sl a y e r b u s i n e s ss e r v i c e sl a y e ri st h ec e n t e ro fa p p l i c a t i o n p r e s e n t a l i o n l a y e r ,m a i n l yw i t hm v cp a t t e r n ,o p e r a t e si i s e ri n t e r f a c e sa n dr e m o t ef a c a d e s a n dd a t aa c c e s sl a y e r w i t ht y p i c a ld a op a t t e r n ,m a n i p u l a t e sp a m i s t e n c es t o r e o u ra p p r o a c ht ob u s i n e s ss e r v i c el a y e ri sb a s e do nc o m p o s i t ep a t t e r na n ds t r a t e g yp a t t e r n b u s i n e s s m o d e lm e a n sa l le n t i t i e sw h i c hs h o u l db ef o u n di nt h ec o n c e p t u a lv i e wo ft h eb u s i n e s s ,f r o mw h i c hw e c a ne x t r a c td o m a i nm o d e l ,w h i c hc o n s i s t so fo n l yt h o s ee n t i t i e st h a ta r eo fi n t e r e s tt ot h eu s e ra n d r e l a t i o n s h i p sa m o n gt h e m d o m a i nm o d e lp r o v i d e su s e ri n t e r f a c ef o rp r e s e n t a t i o nl a y e r , w h i l eb u s i n e s s m o d e la p p l i e sb u s i n e s sf a c a d e sc oc o m m u n i c a t ew i t hd a o sf r o md a t aa c c e s sl a y e r w i t l l i nb u s i n e s s s e r v i c el a y e r ,t h e r ea r en o t h i n ge l s ee x c e p te n t i t i e sa n dr e l a t i o n s h i p sa m o n gt h e m t om a n i p u l a t e ,s u c h a sc r e a t e ,r e a d ,u p d a t ea n dd e l e t et h o s er e l a t i o n s h i p s ,l b u s f r a m ea d o p t sc o m p o s i t ec l a s s e sa n dl e a f c l a s s e s ,b o t hd e r i v e df r o ma b s t r a c tc o m p o n e n tc l a s s b e i n gs u b c l a s so fo n ec l a s s ,c o m p o s i t ec l a s sa n d l e a fc l a s sd e l e g a t eb a s i cu n i t st ob u i l d “n e t s - s h a p e s ”a r c h i t e c t u r e a n dr e s u l t a n tu n i t sh e l d u n i d i r e c t i o n a l i t yo rb i d i r e c t i n n a l i t yo fe n t i t yr e l a t i o n s h i p a o nt h er o a d m a p ,l b o s f r a m ew i l lp r o v i d e s r e s o u r c el o o k u pf a c i l i t y , r e s o l v i n gd e p e n d e n c i e sm a n a g e do b j e c t sb yi m p l e m e n t i n gi n v e r s i o no fc o n t r o l o o a d e s p i t eo ft h o s ee n t i t i e sa n dt h e i rr e l a t i o n s h i p s , w i t l lw i r i n ga l g o r i t h m st o “a l g o r i t h mc l a s s ”l b u s f r a m e h a sa b i l i t yo fc o m p o s i n gs e v e r a la l g o r i t h mt oo n ea n dd e p r i v i n ga l g o r i t h mf o r ma n t h e r g e a r sw i t h s t r a t e g yp a t t e r n l b n s f r a m ec a n1 0 a do ru n l o a da l g o r i t h m sd y n a m i c a l l ya tm n t i m e k e y w o r d :l i g h t w e i g h tf r a m e w o r k ,b u s i n e s ss e r v i c e ,c o m p o s i t ep a t t e r n ,s t r a t e g yp a t t e r n ,m v c , i o c 1 图 2 图 3 表 4 图 5 图 6 图 7 图 8 图 9 图 1 0 图 1 1 表 1 2 图 1 3 图 1 4 图 1 5 图 1 6 图 1 7 图 1 8 图 1 9 图 2 0 图 2 1 图 2 2 图 2 3 圈 2 4 图 2 5 图 2 6 图 2 7 图 插图和附表清单 卜l 简单的s t r u t s 组件结构 卜2s p r i n g 整体架构 卜1w e b 框架比较 卜3h i b e r n a t e 在多层体系结构中的位置 卜4 技术路线 2 一l 两层结构c s 2 2b s 模式示意图 2 - 3b s 模式的三层架构 2 4j 2 e e 多层体系结构 2 - 5m v c 模式的结构图 2 1i o c 模式的类型 3 1c o m p o s i t e c o m p o n e n t 包的u m l 类图之一 3 2c o m p o s i t e c o m p o n e n t 包的u m l 类图之二 3 3c o m p o s i t e c o m p o n e n t 包的u 札类圉之三 3 - 4c o m p o s i t e c o m p o n e n t 包的u m l 类图之四 3 5l b u s f r a m e c o m m a n d 包的删l 类图 4 - lc o m p o s i t e c o m p o n e n t i n t e r f a c e 类图 4 - 2 树形关系图 4 - 3 一种树结构 4 4 另一种树结构 4 - 5p o l i c y l e a f 类的u m l 图 4 - 6p o l i c y c o m p o s i t e 类图 4 7a d d c h i l d 算法族类 4 8a d d c h i l d p o l i c y 接口类图 4 9a d d c h i i d p o l i c y d e f a u l t 类图。 4 - 1 0a d d p a r e n t 算法族类 4 - i la d d p a r e n t p o l i c y d e f a u l t 类图 i v 0 o 0 0 , 0 0 加 m 堙 ” 掩 掩 憎 均 加 船 弱 弱 虬 s ; 弛 弘 弘 2 8 图4 1 2r e m o v e c h i l d 算法类3 6 2 9 图4 1 3r e m o v e c h i l d p o l i c y d e f a u l t 类图3 7 3 0 图4 1 4r e m o v e c h i l d p o l i c y p e r m i t c y c l e 类图3 7 3 1 图4 1 5r e m o v e p a r e n t 算法类3 8 3 2 图4 1 6r e m o v e a n c e s t o r 算法类3 9 3 3 图4 1 7r e m o v e d e s e n d a n t 算法类4 0 3 4 图4 1 8 汽车的组成4 2 3 5 图4 一1 9 使用框架的方法继承方法a 4 2 3 6 图4 - 2 0 使用框架的方法继承方法b 4 5 3 7 图4 - 2 1 使用框架的方法包含的方法4 7 3 8 图4 2 2 使用包含方法的汽车制造系统示意图4 8 3 9 图5 1 工作模式5 l 4 0 图5 - 2 内部工作流程5 2 4 1 图5 3 图书物流系统功能图5 3 4 2 图5 - 4 图书物流系统技术框架5 4 4 3 图5 5 图书包的结构示意图5 5 4 4 图5 6 存储包的结构示意图5 5 4 5 图5 7 图书物流系统对象关系图5 6 4 6 图5 - 8 图书物流系统仓储业务结构图5 6 4 7 图5 - 9 图书业务的结构类图5 7 4 8 图5 1 0 结算类中的算法类结构5 8 v 独创性声明 本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发 表或撰写过的研究成果,也不包含为获得中国农业大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本课题所做的任何贡献均在论文中作了明确 的说明,并表示了感谢。 一橼磷素警 帆m 年厶月抽日 关于论文使用授权的说明 本人完全了解中国农业大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复 制手段保存、汇编学位论文。同意中国农业大学可以用不同方式在不同媒体上发表、 传播学位论文的全部或部分内容。 研究生橼糊 导师签名: 涯纰 时间:z 矿,年6 月h 日 时间:逸年月p 日 1 1 研究背景和意义 第1 章绪论 企业级应用是指那些为商业组织、大型企业而创建并部署的解决方案及应用【1 j 。当代的企业 级应用决不可能是个个的独立系统。在企业中,一般都会部署多个彼此连接的、相互通过不同 集成层次进行交互的企业级应用,同时这些应用又都有可能与其它企业的相关应用连接,从而构 成一个结构复杂的、跨越i n t r a n e t 和i n t e m e t 的分布式企业应用群集。 企业级应用需要使用优秀的企业级应用体系结构,而优秀的企业级应用体系结构通常来自于 优秀的解决方案。应用程序设计开始就要考虑其体系结构的合理性、灵活性、健壮性,从而既可 满足企业级应用的复杂需求,也能为今后系统的调整和升级留有余地。体系结构影响整个应用的 生命周期实际上能够延长摧个应用的生命周期,同时增强了用户在多变的商业社会中的适应性, 减少了系统维护的开销和难度,从而给用户带来最大的利益。 为了满足架构企业级应用的需求,j a v a 的台口始人s u n 公司在早期的j 2 s e ( 1 a v a2p i a f f o r m s t a n d a r de d i t i o n ) 基础上,针对企业级应用的各种需求,主导并创造了j 2 e e ( j a v a2p l a t f o r m e n t e r p r i s ee d i t i o n ) 。j 2 e e 是使用j a v a 技术开发企业级应用的一种事实上的工业标准,它是j a v a 技术不断适应和促进企业级应用过程中的产物1 2 1 【3 】【】。s u n 推出j 2 e e 的目的是为了克服传统 c l i e n t s e r v e r 模式的弊病,迎合b r o w s e r s e r v e r 架构的潮流,为应用j a v a 技术开发服务器端应用 提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应 用的开发、管理和部署。 j 2 e e 作为一个事实上的工业标准其规范多、内容广从而给开发j 2 e e 应用增加了分析、设 计和实现的难度。例如:为实现内容的r d b m s 存储,可能的方法有j d b c 、e n t i t vb e a n s 、j d o 、 o r m a p p i n g 工具、x m l - d b m s 等方法。此外,随着j 2 e e 本身的快速发展,开发人员在架构和 开发具有工业强度的j 2 e e 应用时也出现了一些难题。因此,很多厂家和开潭组织致力于框架的 研究来降低开发j 2 e e 应用的难度,从而使企业级应用具备更好的可移植性、重用性以及弱耦合 等优点。目前比较流行的框架有s t r u t s 、w e b w o r k 、s p r i n g 、h i b e r n a t e 等。s t r u t s 、w e b w o r k 侧重 w e b 应用层,s p r i n g 在业务层上只涉及到应用i o c 技术生成业务对象,对于如何建立业务类和业 务对象之间的关系却没有涉及,h i b e r n a t e 是一个o r 映射技术,重点在对象的持久化。因此, 本文试图从设计模式和j a v a 技术入手,探究适合某一特定应用领域的业务层框架的设计和实现, 从而为后续开发业务层框架工作提供准备和参考,具有一定研究意义和实用价值。 1 2 国内外研究现状 1 2 1 术语 1 体系结构( a r c h i t e c t u r e ) :定义了硬件或软件的主要特征,通常基于文档吼 2 框架( f r a m w o r k ) :不仅仅是文档( 包括一些程序代码) ,但也不是产品。其实就是某种应用 的半成品,就是一组组件,开发人员可以选用框架完成他自己的系统。框架一般是成熟的,不断 升级的软件川。 3 模式( p a t t e n ) :a l e x a n d e r 给出的经典定义是:每个模式都描述了一个在我们的环境中不 断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些 已有的解决方案。无需在重复相同的工作1 6 j 。 1 2 2 基于j 2 e e 规范的框架研究 目前,国内外对框架的研究多在j 2 e e 项目的w e b 应用层和持久层,著名的框架有w e b 框架 s t r u t s ,s p r i n g 等;持久层技术h i b e r n a t e 。 1 2 2 1w e b 应用框架 1 s t r u t s 框架川嘲【9 】【1 0 l l a 8 s t r u t s 已经成为了用j a v a 创建w e b 应用的一个最流行的框架,s t m t s 所实现的m v c 模 式给w e b 应用带来了良好的层次划分,同时也提供了一系列的工具来简化w e b 应用的开发。简 单的s t r u t s 组件结构如图1 - 1 示。 厂 l 均gl i b r a r i e si 1一 2 田1 1 简单的s t r u t s 组件结构 s t r u t sc o n t l o g e r 为a c t i o n s e r v l e t 处理客户请求,利用配置a c t i o n m a p p i n g 对象把请求映射到 a c t o n 处理器对象进行处理。a c t i o n 处理对象访问a c t i o n f o r m 中的数据,处理和响应客户请求, 它还调用后台的b e a n 组件,这些组件封装了具体的业务逻辑。a c t i o n 处理器对象根据处理结果 通知c o n t r o l l e r ,c o n t r o l l e r 进行下一步的处理。 s t r u t s 是建立在m v c 模式上的,s t r u t s 在m 、v 和c 上都有涉及,但它主要是提供一个好的 控制器和一套定制的标签库上,也就是说它的着力点在c 和v 上,因此,它天生就有m v c 所带 来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发 与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,它是个开源项目得到 了包括它的发明者c r a i gr m c c l a n a h a n 在内的一些程序大师和高手持续而细心的呵护,并且经受 了实战的检验,使其功能越来越强大,体系也日臻完善;最后,s t r u t s 对其他技术和框架显示出 很好的融合性。当然,和其他任何技术一样,它也不是十全十美的,如:它对类和一些属性、参 数的命名显得有些随意,给使用带来一些不便;还有如a c t i o n 类e x e c u t e 方法的只能接收一个 a c t i o n f o r m 参数等。但瑕不掩瑜,这些没有影响它被广泛使用。 2 s p r i n g 框槊【“i t l 2 】【1 3 3 1 1 4 l s p r i n g 仅仅是一个从2 0 0 3 年2 月才开始的开源项目,但s p r i n g 有深厚的历史根基。这个开 源工程是起源自在2 0 0 2 年晚些时候出版的( e x p e r t o n e - o n - o n e j 2 e e 设计与开发书中的基础性 代码。这本书展示了s p r i n g 背后的基础性架构思想。然而,对这个基础架构的概念可以追溯到 2 0 0 0 年的早些时候,并且反映了一系列商业工程开发基础结构的成功经验【l l 】。 s p r i n g 的主要目的是使j 2 e e 易用以及促进开发人员养成良好的编程习惯s 州n g 为已建立的 企业级应用提供了一个轻量级的解决方案,这个方案包括声明性事务管理,通过r m i 或 w e b s e r v i c e s 远程访问业务逻辑,m a i l 支持工具以及对于数据和数据库之间持久层的各种配置的支 持。s p r i n g 还提供了一个m v c 应用框架,可以通过集成a o p 透明的嵌入你的软件和一个优秀的 异常处理体系,这个异常体系可以自动从属性异常体系进行映射。 s p r i n g 包含许多功能稚特性,并被很好地组织在图1 - 2 所示的七个模块中。 3 圈1 2s p r i n g 整体架构 s p r i _ n gc o r e 主要提供b e a nf a c t o r y 和i o cc o n t a i n e r ,以及若干实用类- s p r i n g 框架对所 有j a v a b e a n s 的管理是基于一个总入口b e a nf a c t o r y 机制。b e a n f a c t o r y 可以管理所有应用的 j a v a b e a n s ,开发人员只要将自己的j a v a b e a n s 通过配置文件告诉b e a n f a c t o r y ,那么b e a n f a c t o r y 将会加载这些j a v a b e a n s 。 s p r i n g a o p 提供运行时的a o p 支持和原代码级的元数据支持。 s p r i n g d a o 事务支持,d b c 包装类d a o 模式的支持。 s p r i n go r m 多种常见o r m 技术的支持,如j d o 、h i b c m a m 。 s p r i n gc o n t e x t 对j n d ie j bj a v a m a i l 验证和u i 。 s p r i n gw e b 基于w e b 的c o n t e x t ,透明的组件上传,w e b 开发使用类。 s p i n g w e b m v cm v c 框架,j s p e x c e i p d f x m l j v e l o c l t y 等多种视图技术的支持e 从图1 - 2 可以看出,s p r i n g f r a m e w o r k 的模块性很强,你可以选择使用它的一个或多个功能, 如仅使用它的b e a n f a c t o r y i o c c o n t a i n e r 甚至只使用它对j d b c 的封装。如果开发团队中比较 熟悉s t r u t s ,则可以继续使用s t r u t s 作为w e b 框架,用s p r i n g 提供的j a v a b e a n 管理事务支持。 所以,虽然s p r i n g 提供了o n e - s t o ps h o p 的服务但使用多少完全是开发人员的选择,这一点上 不像一些别的技术,要么不用,要么都用。 b e a n f a c t o r y 和i o c 容器 上文提到了b e a n f a c t o r y 和i o c 容器,这是s p r i n g 中很重要的一个概念,是s p r i n g 的耩 髓。 什么是b e a n f a c t o r y ? 经典的f a c t o r y 设计模式分为工厂方法、简单工厂和抽象工厂。把创建什么对象怎么创建的 职责从类本身或是客户程序员处转到专门的工厂类中确实提供了更好的封装和重用。j d k 中也 随处可见这样的倒子,如s w i n g a p i 中的b o r d e r f a c t o r y 。但这一设计模式的问题在于工厂的责任 过于重大它需要了解很多被生产类的信息。这甚至一定程度上违背了面向对象一个很基本的 原则开闭原则( s o f t w a r ee n t i t i e s s h o u l d b e o p e n f o r e x t e n s i o n , b u t d o s e d f o r m o d i f i c a t i o n ) 。一 旦类发生了改变或是增加了新的类,往往工厂也得修改。为此有人主张借助j a v a 强大的反射功 能来以不变应万变,动态生成类的实例。 比如原本的简单工厂为: p u b l i ci s t u f f f a c t o r y ( s t r i n gn a m e ) i f ( ”a e q u a l s ( n a m e ) ) r e t u r n 埘”b e q u a l s ( n a m e ) ) r e t u r n 使用反射,可以简化为: p u b l i ci s t u f f f a c t o r y ( s t r i n gd a s s n a m e ) c l a s sc l a = c a s s f o r n a m e ( c l a s s n a m e ) ; o b j e c to b j = d a z z n e w l m t a n c e o ; i f ( o b ji n s t u n c e o f i s t u f f ) r e t u r no b j ; 4 这样工厂就只承担简单的类型判断等责任,足以应付将来的各种变化。 i o c 容器 i o c ,i n v e r s i o no fc o n 油l 现在被正式更名为d 印e n d e n c yi n j e c f i o n 。这其实也是一个很简单 的模式。 s p r i n g , f r a m e w o r k 就提供一个i o cc o n n t a i n e r ,在用户需要生成一个对象时由用户接口创建, 用户接口就是前面提到的b e a n f a c t o r y 。 对于i o c 的各种变种和深层次讨论,限于篇幅不在此 讨论,有兴趣的可以查看相关书籍和两上的讨论。 除去b e a n f a c t o r y 、i o c s p r i n g 还有很多重要的部分,就像前面的整体架构图中看到那样。 不过限于篇幅,就不再一一介绍了,s p r i n g f r a m e w o r k 本身已经提供很多框架性的支持和不少的 实用类,它也在积极地改进和发展中,并有不少项目支持和扩展s p r i n g ,如基于s p r i n g 的r i c h c l i e n tp l a t f o r m 和权限框架,s p r i n g 的d e 插件,m i c r o s o f t n e t 平台的s p r i n g f r a m e w o r k 移植 等。 总之,s p r i n g 能有效地组织中间层对象,不管是否选择使用了e j b 。通过一种在不同应用程 序和项目间一致的方法来处理配置文件,s p r i n g 能消除各种各样自定义格式的属性文件的需要。 s p r i n g 提倡对接口编程而不是对类编程,s p r i n g 能够促进开发人员养成良好的编程习惯。s p r i n g 被设计为让使用它创建的应用尽可能少的依赖于他的a p i s 。在s p r i n g 应用中的大多数业务对象 没有依赖于s p r i n g 。s p r i n g 能使e j b 的使用成为一个实现选择,而不是应用架构的必然选择。 开发人员可以选择用p o j o s 或l o c a le j b s 来实现业务接口,却不会影响调用代码。同时也要注 意到:s p r i n g 框架类似“杂烩”,它包含了很多j 2 e e 应用的工具,例如:对e j b 的调用。它的 m v c 与s t r u t s 也是相竞争的。与纯i o c 和a o p 设计相比,s p r i n g 框架也是一种很重的( h e a v y 、 w e i g h t ) 框架。s p r i n g 框架是复杂的。 w e b 应用框架比较 囊1 - 1w e b 框架比较 框架实现v y c 模式重用性墨谢性用际化支挣 与其它捱架市蜘占有事 集成 e c n t r o l l e r sm o d e l v i e w s s t r u t s 一十公用控制嚣一般好好无法进行单元好容鼻 高需求 穗试广泛使用 s p r i n g 过于灵活 较好 一般好 窖曼好容易受咀 1 2 2 2 持久层框架 h i b e r n a t e 框架旧 h i b e r n a t e 是一个开放源代码的o rm a p p i n g ( 对象关系映射框架) ,是一个面向j a v a 环境的 对象,关系数据库映射工具。对象,关系数据库映射( o b j e c t r e l a t i o n a lm a p p i n g ( o m 嘞这个术语表示 一种技术,用来把对象模型表示的对象映射到基于s q l 的关系模型结构中去【1 4 】。i - i i b e r n a t e 对 j d b c 进行了轻量级的对象封装,使j a v a 程序员可以随心所欲地使用对象编翟思维来操纵数据库。 5 h i b e r n a t e 在多层体系结构中的位置如图1 - 3 所示: a o p l i c 越i o n 。p e m i s t e n t o b j e c t s i h l b e m a 抽 :慧翟:蚺 啦婶” o e t t i e d a t a b a b e 田卜3h i b e r n a t e 在多屡体系结构中的位置 图1 3 展示了h i b e r n a t e 使用数据库和配置文件数据来为应用程序提供持久化服务( 和持久化 的对象) 。 h i b e r n a t e 比较注重使用当前数据库的特性。以一个分页功能为例,使用h i b e r n a t e 的实现 是: q u e r yq2s e s s i o n e r e a t e q u e r y ( ”f r o mn e w sa sn e w sw h e l ”) ; q s e t f i r s t r e s u l t ( 1 1 ) ; q s e t m a x r e s u l t s ( 1 0 ) ; l i s tl = q 1 i s t 0 ; h i b e r n a t e 会尝试使用当前数据库对分页的支持来完成这一功能,如o r a c l e 提供的r o w n u m , m s s q l 和d b 2 提供的t o p ,m y s q l 和p o s t g r e s o l 提供的l i m i t 字句。如果数据库本身不支持 分页,则会使用j d b c 2 的可滚动结果集,来绝对定位到起始记录来得到一定条数的纪录。由于 j d b c 中的r e s u l t s e t 是保持连接的,并非一次性把数据全部读到本地,绝对定位会跳过前面的纪 录,所以性能也不差。如果当前数据库既不支持分页s q l 也没有提供j d b c 2 以上的驱动。则会 使用j d b c i 的方式,用r e s u l t s e t n e x t o 来跳过若干纪录,来实现读取特定区域的纪录。 h i b e r n a t e 在延迟读入、大对象处理、多表关联等方面都做得比较灵活和强大。难怪它的支 持者人数要比j d o 的多一些,成为当前最主流的o rm a p p i n g 技术之一。 尽管h i b o m a t e 等o r m 技术大大提高了我们的生产力,并使数据库持久层的代码和业务逻 辑层一样,符合面向对象的思想。但我们还是应该谨慎选择和使用o r m 技术,并且尽量小范围 地使用这些a p i ( 如仅在d a o 实现类中) ,不要让系统受限于当前使用的数据持久技术。虽然 很多o p , m 技术都提供本地的高速缓存和对象延迟加载来提高性能,但是有些时候直接使用 d b c 或许效率更高。”。 另外,由于h i b e r n a t e 比较好地做到了适应各个数据库,所以对提高应用适应多数据源很有 帮助。 6 1 3 研究内容和技术路线 本文主要的研究目标:本文试图从设计模式和j a v a 技术入手,探究适合某一特定业务的业 务层框架的设计和实现,并将该框架应用在图书物流系统中。 主要研究内容: 1 业务层框架的核心需求( l b u s f r a m e c o n o e p t u a l i z a t i o n ) :不考虑业务需求的具体内容,仅仅考 虑业务需求的结构。提供容纳业务对象的结构组件,设定业务对象之间的逻辑关系。 2 业务层框架的分析( l b u s f r a m e a n a l y s i s ) :l b u s f r a m e 体系包括多个基本组件,每个组件可 以和其他组件按照体系设定的组合逻辑进行组合,l b u s f r a m e 对组合给出统一的接口。 3 业务层框架的设计0 3 b u s f r a m e d e s i g n ) :通过对业务层框架需求的分析,对业务层框架进行总 体设计和详细设计。 4 业务层框架的实现o - b u s f r a m ee v o l u t i o n ) :根据框架的详细设计,进行编码工作。 5 业务层框架的应用( l b u s f r a m e a p p l a y ) :在开发图书物流系统的过程中使用l b u s f r a m e 框架。 本文的主要技术路线如图1 - 4 所示: 舶1 - 4 技术路线 7 第2 章框架实现技术解决方案 本章首先介绍了软件的多层体系结构,明确多层体系结构的意义,然后对框架的实现技术作 了详细的阐述。 2 1 多层体系结构 为了实现系统的“高内聚、低耦合”。把问题划分开来逐个解决,需要引入多层体系结构开 发企业应用。 2 1 1 经典两层结构 客户机,服务器两层结构,又称c s ( c l i e n t s e r v e r ) 模式,在上个世纪八十年代及九十年代 初得到了大量应用,最直接的原因是可视化开发工具的推广凹i 。如图2 - 1 所示,它由两部分构成: 前端是客户机,通常是p c ;后端是服务器,运行数据库管理系统,提供数据库的查询和管理。 田2 1 两层结构c $ 在两层结构下,业务逻辑在客户端和服务器端都有分布而且服务器端的主要计算任务都由 数据库承担 2 9 】。数据库系统本身作为系统级软件,它本身的优势在于提供高效率的数据访问和处 理而不是数值计算,利用数据库系统处理大量的业务计算并没有完全发挥出数据库管理系统的特 长,当请求并发量巨大时,数据库性能下降很快。 两层结构作为经典的结构,其技术历史发展悠久。从技术成熟度及软件设计、开发人员的掌 握水平来看,c s 技术是更成熟、更可靠的。但是c s 系统的各部分模块中有一部分改变,就要 关联到其它模块的变动。使系统升级成本比较大。 8 2 1 2 分布式多层体系结构 2 1 2 1a s 模式: 由于c 幅模式不仅要求较高的客户机配置,而且需要在客户端安装、配置、升级应用程序, 不能充分发挥i n t e m e t 的优势。于是,2 0 世纪9 0 年代以来,随着技术的进步,出现了b s ( b r o w s e r s e l v e r ,浏览器,服务器) 模型。它将数据、表示逻辑和应用逻辑的处理集中在服务器 端进行,而客户端负责少量的工作。显然,这种方式把c 侣模型中客户端的负担转嫁到了服务器 端,会造成服务器应用的“瓶颈”问题。但是目前硬件、软件技术水平足以解决这个问题。b s 模型较c s 模式,具有开发、管理成本低,资源共享,简单的优点【l q 。 b s 模式层次结构如图2 - 2 所示。处于第一层的是客户端,处于第二层的是应用服务层,由一 台或多台服务器组成,该层具有良好的可扩充性,可以随着应用的需要增加服
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七册教案全册
- 重庆考级速写8级课件
- 含碘对比剂静脉外渗的临床防治与护理规范指南
- 新解读《GB-T 18867-2014电子工业用气体 六氟化硫》
- 建筑施工-安全培训课件-安全生产双重预防机制解读与班组安全标准化建设
- 人教版高中生物选择性必修1《稳态与调节》必背知识考点提纲填空练习版(含答案)
- 热点作家:陈忠实(原卷版)-2026年中考语文复习之现代文阅读热点作家作品
- 数据分析-列联表与独立性检验专练-全国高考数学一轮复习(提高版)
- 老年人保养课件
- 人教版八年级英语下册阅读理解专练(含答案)
- 生态环境标准应用 课件 大气污染物综合排放标准2
- 酒店安全考试试题及答案
- 珠宝店员工保密协议合同
- 关节镜的使用和管理
- 2025届吉林省通化市梅河口市高考一模地理试题(原卷版+解析版)
- 租地安全管理协议书
- 2025年度车辆外借责任免除及保险条款协议
- GB/T 45214-2025人全基因组高通量测序数据质量评价方法
- 养老机构老人入住协议书范本
- 新能源光伏电站组件产业园项目可行性研究报告
- 《庄子与庄子思想》课件
评论
0/150
提交评论