(通信与信息系统专业论文)ota系统的java+ee实现研究.pdf_第1页
(通信与信息系统专业论文)ota系统的java+ee实现研究.pdf_第2页
(通信与信息系统专业论文)ota系统的java+ee实现研究.pdf_第3页
(通信与信息系统专业论文)ota系统的java+ee实现研究.pdf_第4页
(通信与信息系统专业论文)ota系统的java+ee实现研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

o t a 系统的j a v ae e 实现研究 摘要 o t a 空中下载技术是通过移动通信网络的空中接口对s i m 卡的数 据及应用进行远程管理的技术。目前中国移动、中国联通、中国电信 等运营商都已开展了o t a 下载业务。随着中国3 g 牌照的发放,未来 的3 g 网络将为用户提供更高速、优质的网络服务,基于o t a 的下载 业务将获得进一步发展。正是在这种背景下,本文提出了一个基于 j a v ae e 平台的o t a 下载系统的解决方案,目的是为o t a 无线增值业 务平台的开发提供参考,以有效地提高o t a 系统的开发效率,对o t a 业务的进一步推广产生积极的影响。 j a v ae e 是一种利用j a v a 平台来进行企业级应用开发的标准体系, 它是一个具有良好的稳定性、开放性和安全性的开发平台。框架技术 是j a v ae e 中重要的软件重用技术,框架技术通过重用提高了软件的 开发效率。如今,各种优秀的j a v ae e 开源框架的流行,也给开发人 员提供了更多选择。本文在对几种当前主流的j a v ae e 框架进行分析 比较的基础上,结合w e b 应用系统多层体系结构的设计思想,对 s p r i n g 、s t r u t s 、h i b e r n a t e 三种框架进行研究,具体分析各个框架在 w 曲应用的不同层次上所发挥的作用,并详细论述了三种框架的整合 方法,并在此基础上,设计出一个适合o t a 下载系统的实现方案。该 方案通过分层处理,使整个系统结构清晰,功能明确,用户界面、业 务逻辑、数据存储相互分离,各层次之间相互独立,实现了各层次代 码间的低耦合。s p r i n g 、s t r u t s s g l h i b e m a t e 这三者有效结合,充分发挥 了各个框架的优势,降低了开发的复杂性,提高了系统的开发效率和 质量,同时提高了系统的可维护性和可扩展性。 本文结合o t a 下载系统项目,详细讨论了如何利用s p r i n g 框架 整合s t r u t s 、h i b e r n a t e 等框架进行企业应用系统的开发,其中所用 到的设计思想和开发方法也适用于大多数企业级的w e b 应用系统的 设计和开发,因此,对于j a v ae e 企业应用系统开发具有普遍的参考 意义。 关键词o t aj a v ae e 框架s p r i n gs t r u t sh i b e m a t e t h er e s e a r c h0 nt h ei 口l e m 匣n 1 7 a t i o no f o t as y s t e mb a s e do n 乩瓠7 = f e ep l a t f o r m a bs t r a c t o t ai sat e c h n i q u eu s e dt om a n a g et h ed a t aa n da p p l i c a t i o n so fs i m c a r dt h r o u g hm o b i l en e t w o r k s n o w , c h i n am o b i l e ,c h i n au n i c o ma n d c h i n at e l e c o mh a v ep r o v i d e do t as e r v i c e st ot h e i ru s e r s i nt h ef u t u r e , 3gn e t w o r k sw i l lp r o v i d eu s e r sw i t hn e t w o r ks e r v i c e sw i t hh i g hs p e e d a n dh i g hq u a l i t y , s ot h a tt h ed o w n l o a d i n gs e r v i c e sb a s e do no t aw i l lg e t m o r ed e v e l o p m e n t b a s e do nt h eb a c k g r o u n da b o v e ,t h i sp a p e rs h o w sa n e ws o l u t i o nf o ro t as y s t e mb a s e do nj a v ae ep l a t f o r m a n dt h i s s o l u t i o nc a nb ep r o v i d e dt od e v e l o p e r so fo t a p l a t f o r ma sr e f e r e n c et o i m p r o v ed e v e l o p i n ge f f i c i e n c y t h i sw i l lh a v eap o s i t i v ei n f l u e n c eo nt h e p o p u l a r i z a t i o no f o t as e r v i c e s j a v ae ei sas t a n d a r ds y s t e mw h i c hu s e sj a v ap l a t f o r mt od e v e l o p e n t e r p r i s ew e ba p p l i c a t i o n i t sad e v e l o p i n gp l a t f o r mw i t hg o o ds t a b i l i t y , o p e n n e s sa n ds e c u r i t y f r a m e w o r ki si m p o r t a n ts o f t w a r er e u s et e c h n i q u e i nj a v ae e a n df r a m e w o r kt e c h n i q u ec a i lr a i s ed e v e l o p i n ge f f i c i e n c y n o w , m a n yp o p u l a ro p e n s o u r c ef r a m e w o r k s p r o v i d e s o f t w a r e d e v e l o p e r sm o r eo p t i o n s c o m b i n i n gt h ed e s i g np h i l o s o p h yo fm u l t i t i e r a r c h i t e c t u r ei nw e ba p p l i c a t i o ns y s t e m ,t h i sp a p e rw i l lr e s e a r c hs p r i n g , s t r u t sa n dh i b e m a t ef r a m e w o r k so nt h eb a s i so fa n a l y z i n ga n d c o m p a r i n gs e v e r a lp o p u l a rj a v ae ef r a m e w o r k s t h i sp a p e rw i l la l s o a n a l y z et h e r o l eo ft h ef r a m e w o r k si nt h ed i f f e r e n tt i e r so fw e b a p p l i c a t i o n ,a n dg i v ead e t a i l e dd e s c r i p t i o no ft h em e t h o do fi n t e g r a t i n g t h et h r e ef r a m e w o r k s b a s e do nt h er e s e a r c ha b o v e ,t h ep a p e rd e s i g n sa n a p p r o p r i a t ei m p l e m e n t a t i o ns c h e m eo fo t ad o w n l o a d i n gs y s t e m b y u s i n gl a y e r e ds t r u c t u r e ,t h i ss c h e m em a k et h es y s t e mh a v eac l e a r a r c h i t e c t u r ea n dd e f i n i t ef u n c t i o n s t h eu s e ri n t e r f a c e ,b u s i n e s sl o g i ca n d d a t as t o r a g ea r es e p a r a t e ,a n dt h e s el a y e r sa r ei n d e p e n d e n to fe a c ho t h e r , s ot h a tt h el o wc o u p l i n go fd i f f e r e n tl a y e r sl si m p l e m e n t e d t h e c o m b i n a t i o no fs p r i n g ,s t r u t sa n dh i b e m a t ec a r lg i v ef u l ls c o p et ot h e i r a d v a n t a g e s ,r e d u c et h ec o m p l e x i t yo fd e v e l o p m e n t ,i m p r o v ed e v e l o p i n g e f f i c i e n c ya n ds o t t w a r eq u a l i t y , a n di m p r o v et h em a i n t a i n a b i l i t ya n d e x p a n d a b i l i t yo fs o f t w a r es y s t e m c o m b i n e dw i t ht h eo t ad o w n l o a d i n gs y s t e m ,t h i sp a p e rd i s c u s s e d h o wt od e v e l o pe n t e r p r i s ea p p l i c a t i o ns y s t e mw i t hs p r i n g ,s t r u t sa n d h i b e r n a t ef r a m e w o r k s t h e d e s i g np h i l o s o p h y a n ds o f t w a r e d e v e l o p m e n tm e t h o da r ea p p l i c a b l et om o s to fe n t e r p r i s ea p p l i c a t i o n s t h u s ,t h i sp a p e rm a ys e r v ea s ar e f e r e n c ef o rt h ed e v e l o p m e n to f e n t e r p r i s ea p p l i c a t i o ns y s t e m sb a s e do nj a v ae ep l a t f o r m k e yw o r d so t aj a v a e ef r a m e w o r ks p r i n gs t r u t sh i b e m a t e 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处, 本人签名: 本人承担一切相关责任。 日期:型p 型一 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅 和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印 或其它复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密 论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 丝选i 盎 日期: 翌盘:三:! 苎 导师签名: 主甾牢 日期: 远要= 兰:! 么 v 7 第一章绪论 1 1 课题研究背景及现实意义 j a v ae e ,即j a v a 平台企业版( j a v ap l a t f o r i l l ,e n t e r p r i s ee d i t i o n ) ,是一个标 准中间件体系架构,旨在简化和规范多层企业应用系统的开发和部署。j a v ae e 体系架构使得应用开发者能够高效、快捷地开发出具有可扩展性、安全性、可 伸缩性、平台无关性的企业级应用,己经成为企业级w e b 应用的主要解决方案。 随着w e b 应用系统规模和复杂度的日渐升级,在软件开发实践中,人们越来越 深刻地认识到系统总体结构设计的重要性,良好的系统结构对保证系统的成功 至关重要【i 】。因此,各种开发框架应运而生。在众多的开发框架中,选择合适 的开发框架对企业级w 曲应用的开发具有极其重要的意义。 o t a ( o v e r t h e a i r ,空中下载) 技术是通过移动通信网络的空中接口对s i m 卡数据及应用进行远程管理的技术。目前中国移动、中国联通、中国电信等运 营商都已开展了o t a 下载业务。但现有的o t a 下载系统的服务端采用多线程 应用程序来实现,随着用户数量增多,o t a 服务器程序的负载能力已不满足系 统性能要求。另一方面,随着中国3 g 牌照的发放,未来的3 g 网络将为用户提 供更高速、优质的网络服务,基于o t a 的下载业务将获得进一步发展。这也对 o t a 服务器的性能提出了更高的要求。 本文将对以上这些问题进行理论和实现研究,并在对几种当前主流的j a v a e e 框架进行分析比较的基础上,结合w 曲应用系统多层体系结构的设计思想, 对s t r u t s 、s p r i n g 、h i b e r n a t e 三种框架进行研究,具体分析各个框架在w e b 应 用的不同层次上所发挥的作用,并详细论述三种框架的整合方法。最后,在此 基础上,提出一种基于s p r i n g 、s t r u t s 和h i b e r n a t e 框架的o t a 下载系统的实现 方案,为无线增值业务平台的开发提供参考。这将有效地提高o t a 下载系统的 开发效率,对o t a 业务的进一步的推广产生积极的影响。 本文对s p r i n g 开发框架的关键技术进行研究,在此基础上找到符合企业级 w 曲应用系统需求特点的开发方法,通过在s p r i n g 框架中整合j a v ae e 多层架 构中表示层、业务层和持久层的相关组件,充分发挥每个组件的优势。最后, 结合o t a 下载系统项目实例,详细讨论如何利用s p r i n g 框架整合s t r u t s 、 h i b e r n a t e 等框架,来进行企业应用系统的开发,这对于j a v ae e 企业级w e b 应 用系统开发具有普遍的参考意义。 1 2 本文的主要工作和内容安排 论文的主要工作如下: l 、总结了当前j a v ae e 的两种主流的开发路线及相关框架,并对其进行了 简要分析与比较。 2 、深入研究了轻量级开发框架s p r i n g ,介绍了其两大核心机制i o c 和a o p , 分析了s p r i n g 的m v c 框架。 3 、介绍并分析了系统开发中用到的其它相关技术如s t r u t s 、h i b e r n a t e 等框 架。讨论了将它们在s p r i n g 框架中进行整合的优势和方法。 4 、详细论述了o t a 系统的结构及组成等,并基于s p r i n g 框架,集成s t r u t s 和h i b e r n a t e 等框架,设计了一种o t a 空中下载系统的实现方案。并结合o t a 系统相关功能模块,通过具体的实例代码,详细说明了s p r i n g 、s t r u t s 、h i b e r n a t e 框架在o t a 系统中的实现。 论文的内容安排如下: 第一章绪论。描述论文的研究背景和现实意义,介绍本文的主要工作和内 容安排。 第二章j a v ae e 概述及架构的分析比较。对j a v ae e 平台进行简要介绍,并 总结了当前j a v ae e 的两种主流开发路线。 第三章w e b 应用框架。对s p r i n g 、s t r u t s 、h i b e r n a t e 等框架进行介绍。包 括:s p r i n g 框架结构及其组成模块,s p r i n g 框架的技术原理,重点研究了s p r i n g 框架中的i o c 和a o p 技术;s t r u t s 框架和h i b e r n a t e 框架概述。 第四章o t a 相关知识及技术基础。描述了o t a 下载系统的网络体系结构 及各个主要组成部分。 第五章o t a 系统的j a v ae e 实现设计方案。设计出一个具有灵活性、低耦 合性、高度可扩展性和可维护性的开发框架,详细描述了其运作机制,阐述了 该架构的特点。最后给出了o t a 下载系统的详细实现方案,并结合具体的功能 模块实例,详细论述了软件开发方法。 第六章总结。总结了本文的研究成果及存在的不足,提出以后进一步深入 研究的几个方向。 第二章j a v ae e 概述及架构的分析比较 前一章描述了论文的研究背景和现实意义,并介绍了本文的主要工作和内 容安排。在这一章,我们将对j a v ae e 平台进行介绍,并对当前基于j a v ae e 平 台的企业级应用的主流开发路线及其相关技术进行总结。 2 1j a v ae e 概述 2 1 1j a v a e e 简介 j a v a 语言自诞生之日起,就受到了广泛的关注,s u n 公司在1 9 9 9 年底发布了企 业级j a v a 平台j 2 e e ,j a v a2e n t e r p r i s ee d i t i o n 。2 0 0 5 年,s u n 公司官方已经把j 2 s e 改称为j a v as e ,相应的j d k 版本也改为j d k5 0 ( 目前的大多数书籍仍把它称为 j d k1 5 ) ,随着j d k5 0 的发布,s u n 公司将j 2 e e 正式更名为j a v ae e 。 j a v ae e 并非是一个产品,而是一种利用j a v a 平台来进行企业级w e b 应用开发 的标准体系,它是一个具有良好的稳定性、开放性和安全性的开发平台。具体的 j a v ae e 平台下的产品由各厂商实现并遵循同一个标准。 j a v ae e 是一种基于j a v a 平台提供企业级解决方案的开发、部署和管理的体系 结构,它由一套健壮的中间件服务构成,使得服务器端应用开发者能够高效、快 捷地开发应用。j a v a e e 技术以j a v a 平台标准版j a v as e 为基础,不仅继承了标准 版中的诸多优点,同时还提供了对e j b ( e n t e r p r i s ej a v ab e a n s ) 、j a v as e r v l e t 、 j s p ( j a v as e r v e rp a g e s ) 等技术的支持。j a v ae e 平台规范的使命是,提供平台独立 的、多用户的、安全的、遵循标准的企业级平台。 2 1 2 基于j a v ae e 开发企业级应用的优势 j a v ae e 为搭建企业级应用系统提供了良好的机制,从实践上来看,基于j a v a e e 技术实现的企业级应用系统具有如下几个明显的优势【2 】: 1 、独立于硬件配置和操作系统 j a v ae e 应用运行在j v m ( j a v av i r t u a lm a c h i n e ,j a v a 虚拟机) 上,利用j a v a 本身的跨平台特性,独立于硬件配置和操作系统。j r e ( j a v ar u n t i m ee n v i r o n m e n t , j a v a 运行环境) 几乎可以运行于所有的硬件操作系统组合。因此,基于j a v ae e 架构的企业应用可以使企业免于硬件设备和操作系统的再投资,保护已有的资 源。 2 、高效的开发 j a v ae e 体系架构具有功能强大的中间件的支持,允许开发人员把一些通用 的、复杂的服务端任务交给中间件去完成,把精力专注于业务逻辑的开发上,从 而明显地缩短了开发时间,提高了开发效率。 3 、灵活性、可移植性和互操作性 j a v ae e 能够开发部署在异构环境中的可移植程序,j a v ae e 组件可以很方便 地移植到不同的应用服务器环境中。这样,企业就不必再拘泥于单一的开发平台。 j a v ae e 的应用系统可以部署在不同的应用服务器上,在全异构环境下,j a v ae e 组件仍可彼此协同工作。这一特征使得装配应用组件获得空前的互操作性。 4 、可伸缩性 可伸缩性指应用程序如何应对增长的流量。通常,更大的并发负载是由更大 规模的用户群产生的。企业必须要选择一种服务器端平台,这种平台应能提供极 佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。j a v ae e 的 部署支持从单一服务器到集群服务器,实现可高度伸缩的系统,满足未来商业应 用的需要。 5 、轻松的企业信息系统集成 j a v ae e 将j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ,j a v a 数据库连接) 、j m s ( j a v a m e s s a g es e r v i c e ,j a v a 消息服务) 和j c a ( j a v ae ec o n n e c t o ra r c h i t e c t u r e ,j a v ae e 连接器架构) 等一批标准归纳自身体系之下,大大简化了企业信息系统整合的工 作量,方便企业将遗产系统、e r p 和数据库等多个不同的信息系统进行无缝集成。 正是由于具有以上几方面的优势,在j a v ae e ( j 2 e e ) 平台诞生后的日子里, j a v ae e ( j 2 e e ) 几乎成了企业级开发的代名词。 2 2j a v ae e 主流开发路线 在j a v a 企业级应用开发中,一直有两条主流的开发路线并存,那就是w i t he j b 和w i t h o u te j b 。传统的j a v ae e 架构一般运用j s p 、j a v as e r v l e t 、e j b 及j d b c 构建 企业级应用程序,这种架构虽然能满足开发需求,但是仍存在着诸多弊端,如可 移植性差、开发周期长、测试困难等,并且基于e j b 的重量级的架构对于解决许 多问题都过于复杂,经常会出现“过度开发”的问题。面对这种情况,各种轻量级 j a v ae e 架构技术应运而生,o h s p r i n g ,p i c o c o n t a i n e r 等,所谓“轻量级”是相对于“重 量级”而言的,鼓励人们使用p o j o ( p l a i no l dj a v ao b j e c t ) 进行编程。轻量级架 构方案在继承传统的j a v ae e 采用多层架构的基础上,主要针对业务逻辑层和数 据持久层进行了较大的改进和突破【3 】。 4 这两条路线都体现了分层架构( 表示层、业务层、持久层) 的思想,但是它们 在各层的解决方案上存在着实现上的差异,下面分别对它们进行简单的介绍。 2 2 1 基于e j b 的j a v a e e 架构 e j b 在1 9 9 8 年作为j 2 e e 规范的核心规范出现,极大地转变了j a v a 企业级 开发的模式,为j a v a 软件开发提供了一个良好的架构。作为j a v ae e 中最核心 的e j b 技术,第一次提出了声明式事务管理的概念。这种事务管理模型大大简 化了企业级应用的开发,也被视为e j b 最为成功的特性。e j b 为企业级应用带 来了全新的开发模型,也一度成为j a v ae e 应用的核心。 e j b 是基于j a v a 构建服务器端组件的标准,采用e j b 架构的目标在于【4 】: 1 、提供远程服务; 2 、分布式能力; 3 、组件级安全性; 4 、持久化能力; 5 、同遗留应用进行集成; 6 、良好的伸缩性。 在旧的e j b 模型中( 2 1 以前) ,e j b 实现了大部分的目标,然而随着业界对 e j b 使用的深入,问题就渐渐暴露出来了,其问题主要体现在e j b 规范上,归 结起来主要有以下几个方面: 1 、e j b 采取的组件模型对系统具有很强的“侵入性”。为了享用e j b 容器提 供的底层服务,业务组件必须声明e j b 的各种接口,这给开发者带来了不必要 的复杂性,使开发者无法专注于业务逻辑本身。编写e j b 组件是复杂而困难的, 为了实现一个e j b 组件,除了b e a n 本身的实现类以外,还不得不编写额外的 h o m e 接口和r e m o t e 接口【5 j ; 2 、使用e j b 使应用变得更难测试。分布式应用测试起来比运行在同一个 j v m 中的应用更困难。e j b 应用,无论它们使用远程还是本地接口,测试起来 都很困难,因为它们严重依赖于容器服判6 】; 3 、使用e j b 使应用变得更难部署。使用e j b 引入了许多部署问题,如,复 杂的类装入器、复杂的部署描述符、更慢的开发部署测试周期。部署e j b 通 常比部署j 2 e ew e b 应用慢。因此,使用e j b 会降低开发人员的工作效率【6 】; 4 、e j b 并不比p o j o 拥有更清晰的多层体系结构,即便系统只需要很少的 几项服务,也不得不全部接收e j b 本身所有的基础服务,从而使得系统的复杂 度变高、性能降低。 e j b 是分布式应用和复杂事务管理问题的一个上佳解决方案。但是,许多 应用没有遇到这些问题。e j b 在这样的应用中增加了不必要的复杂性。到了2 0 0 4 年,随着p o j o 模型的出现,i o c 技术的发展和它们在各种独立产品中的表现, 都证明p o j o 、i o c 的技术比原有的e j b2 1 模型更加简单实用,开发的难度和 成本远远小于e j b 模型。2 0 0 6 年5 月,s u n 公司正式发布了j a v a e e5 新规范, 其核心是全面引入新的基于p o j o 和i o c 技术的e j b 3 模型。与e j b 2 相比,e j b 3 更具灵活性,其开发和部署也大大简化了。 2 2 2w i t h o u te j b 的j a v ae e 架构 很多j a v ae e 应用系统都没有使用e j b ,但还是成功了。对于w e b 应用系 统来说尤其如此。对于不使用e j b 的j a v ae e 架构来说,整体结构没有那么多 规范性。在目前常见的情况下,这种结构通常是由w e b 容器定义的,系统的结 构要由架构师自己设计出来。在这些架构中,表示层通常也会由某种m v c 框 架实现( m v c 即m o d e l v i e w c o n t r o l l e r ,模型视图控制器,本文3 2 3 小节将 对此进行详细的介绍) 。业务对象都是p o j o ,运行在w e b 容器中。数据访问有 两种办法:使用o r 映射( o b j e c t r e l a t i o n a lm a p p i n g ) 方案,或是使用j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ,j a v a 数据库连接) 【3 1 。 另一方面,目前,j a v ae e 多层架构上已经开发出了很多框架,这些框架大 大减轻了开发人员的负担,开发人员可以将不同层上的框架整合到一起,从而 能够从繁琐的底层编码中解脱出来。 s p r i n g 是一个流行的j a v ae e 应用程序框架。作为一个轻量级的容器,s p r i n g 也是目前j a v ae e 开发领域中e j b 的主要替代者。对于很多( 甚至是绝大多数) 应用和情况,采用s p r i n g 作为容器,并借助它对事务、o r m 和j d b c 访问等 的支持,是一种比采用e j b 及e j b 容器以实现同样的功能更好的选择【7 】。s p r i n g 的核心是轻量级容器,实现了i o c ( i n v e r s i o no f c o n t r o l ,控制反转) 模式的容器。 作为一个应用程序框架,s p r i n g 的目标是以一致的、高效的方式构建整个应用 程序,将单层框架的最佳组合糅合在一起建立一个连贯的体系结构。s p r i n g 框 架实现了多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它 的框架方案加以替代。例如,s p r i n g 有自己的m v c 框架方案,因为它觉得现 有的m v c 方案有很多可以改进的地方,但它不强迫使用它提供的方案,开发 者可以选用其它的框架,如s t r u t s 框架。此外,s p r i n g 还提供了大量的中间层 功能模块,能够大大简化j a v ae e 的开发,更轻松地实现轻量级、可扩展的j a v a e e 架构。 h i b e r n a t e 是采用o r m 模型实现数据持久层的一个优秀的j a v a 开源框架, 它提供了强大的、高效的将j a v a 对象进行持久化操作的服务。h i b e r n a t e 的目标 6 是在j d b c 之上提供一层薄薄的封装,同时提供完善的透明持久化;为应用程 序增加o r 映射的语意,但又不脱离底层的关系数据库【3 】。利用h i b e r n a t e ,开 发人员可以方便的按照j a v a 对象的结构进行持久层的开发,并可以使用 h i b e r n a t e 所提供的h q l ( h i b e m a t eq u e r yl a n g u a g e ) 完成j a v a 对象和关系型数据 库之间的转换操作。从2 0 0 1 年开始经过6 年的发展,随着h i b e r n a t e 3 的正式发 布,h i b e r n a t e 发展到了一个崭新的高度,在性能、灵活行、可扩展性方面得 到了进一步的提升。现在h i b e r n a t e 已经成为最具影响力的o r m 工具,正逐渐 应用于各种应用系统的持久层。 2 3s p r i n g 与e j b 3 的比较 e j b 3 0 和s p r i n g 这两个框架结构具有一个共同的核心设计理念:将中间件 服务传递给松散耦合的p o j o 。这些框架组件通过在运行时截取执行内容或向 p o j o 注入服务对象,把应用程序服务与p o j o 捆绑在一起。p o j o 本身不关心 捆绑的过程,并且对框架组件几乎没有依赖。因此,开发者可以专注于业务逻 辑的开发,并且可以在没有框架组件的情况下测试他们的p o j o 。此外,由于 p o j o 不需要继承框架组件类或实现框架组件接口,开发者可以灵活地建立继 承结构和构建应用程序。虽然e j b 3 0 和s p r i n g 具有相同的设计理念,但它们在 以下几方面有所不剐8 】: l 、依赖注入 e j b 3 0 通过简单的注解( a n n o t a t i o n ) 支持大多数通用服务对象和j n d i 对 象的注入。e j b 3 0 的注解简单明了,但其功能受到了一定的限制,不支持用户 自定义p o j o 之间的相互注入。 s p r i n g 对依赖注入的支持是基于x m l 配置文件的。其语法比较复杂,但功 能非常强大,可以将任何一个p o j o 注入到另一个p o j o 之中,包括应用程序 中自定义的p o j o 。 2 、服务集成 e j b 3 0 框架组件被紧密地集成到应用服务器中,服务集成代码被封装在标 准的接口中。这使得e j b 3 0 厂商可以集中优化总体性能和开发者的体验。 s p r i n g 框架处于应用服务器和服务相关类库的上方,服务集成的代码位于 框架中,并直接暴露给开发者。在s p r i n g 里,优化框架和服务之间的交互比较 困难。 3 、服务装配的灵活性 因为s p r i n g 的服务集成代码是以编程接口的形式发布的,所以开发者可以 7 获得极大的灵活性,根据项目需求装配自己的轻量级应用服务。而e j b 3 0 应用 服务器一般不具有这样可选择的灵活性。大多数情况下,不能根据项目需求对 e j b 应用服务器进行可配置的切割。 4 、可伸缩性 e j b 3 0 可支持多台服务器分布式计算,这可以给系统带来极大的伸缩性, 而这正是s p r i n g 本身所欠缺的。 5 、应用领域 e j b 3 0 不但适合于开发大型系统,也可用于开发中小型系统。而s p r i n g 比 较适合于中小型系统的开发。 由以上分析比较可以看出,s p r i n g 和e j b 3 0 各有所长,具体采用哪种方案, 还要看具体开发项目的需求情况。 2 4 采用s p r i n g 架构的可行性 由上文的分析可以看出,s p r i n g 让开发者能够更轻松地实现轻量级、可扩 展的j a v ae e 架构。s p r i n g 还提供了统一的应用架构方式,以及大量的中间层 功能模块,能够大大地减小j a v ae e 开发的复杂度,并且比基于e j b 的开发方 式更加灵活。此外,s 砸n g 还可以灵活地集成各种w 曲框架。 因此,本文设计了一种基于s p r i n g 、s t r u t s 、h i b e r n a t e 架构的实现方案,由 s p r i n g 提供业务层服务,从而实现业务逻辑的运转,并集成s t r u t s 和h i b e r n a t e 分别作为表示层和持久层开发框架。 2 5 本章小结 首先,对j a v ae e 平台进行了相关介绍,并总结了使用j a v ae e 平台进行企 业级应用开发的优势。然后,针对当前基于j a v ae e 平台的企业级应用的两种 主流开发路线,即w i t he j b 和w i t h o u te j b ,进行了逐一介绍并总结。在此基 础上,分析比较了基于p o j o 开发的两种框架:e j b 3 0 和s p r i n g 。最后,论证 了采用s p r i n g 轻量级架构进行开发的可行性。 第三章w e b 应用框架 前一章对j a v ae e 平台进行了简要介绍,并总结了当前j a v ae e 的两种主流 开发路线。本章将对s p r i n g 、s t r u t s 、h i b e r n a t e 等w e b 应用框架进行详细介绍, 最后,对s p r i n g 与s t r u t s 、h i b e r n a t e 集成开发的优越性进行论述。 3 1s p r i n g 概述 s p r i n g 框架包含许多功能和特性,并被很好地组织在如图3 1 所示的七个模 块中。本节将依次介绍每个模块。 图3 1s p r i n g 组件图 1 、s p r i n gc o r e :c o r e 包是框架的基础部分,即核心容器,提供s p r i n g 框架 的基本功能,并提供依赖注) k ( d e p e n d e n c yi n j e c t i o n ) 特性来使你可管理b e a n 容 器的功能。这里的基础概念是b e a n f a c t o r y ,它是工厂模式的实现,b e a n f a c t o r y 使用控制反转( i o c ) 模式将应用程序的配置和依赖性规范与实际的应用程序代 码分开。 2 、s p r i n gc o n t e x t :s p r i n g 上下文,是一个配置文件,向s p r i n g 框架提供上 下文信息。s p r i n g 上下文包括企业服务,例如j n d i 、e j b 、电子邮件、国际化、 校验和调度功能。 3 、s p r i n gd a o :提供了j d b c 的抽象层,它可消除冗长的j d b c 编码和解 析数据库厂商特有的错误代码。该包也提供了一种方法实现声明式事务管理, 9 不仅仅是针对实现特定接口的类,对所有的p o j o 也都适用。 4 、s p r i n go r m :为流行的对象关系映射a p i 提供了集成层,包括j p a 、j d o 、 h i b e r n a t e 和i b a t i s 。通过o r m 包,可以与所有s p r i n g 提供的其他特性相结合 来使用这些对象关系映射,如前边提到的简单声明式事务管理。 5 、s p r i n g a o p :提供了符合a o p 联盟规范的面向方面编程( a s p e c t o r i e n t e d p r o g r a m m i n g ) 实现。通过配置管理特性,s p r i n g a o p 模块直接将面向方面编程 功能集成到了s 砸n g 框架中。所以,可以很容易地使s p r i n g 框架管理的任何对 象支持a o p 。s p r i n g a o p 模块为基于s p r i n g 的应用程序中的对象提供了事务管 理服务。通过使用s p r i n g a o p ,不用依赖e j b 组件,就可以将声明式事务管理 集成到应用程序中。 6 、s p r i n gw 曲:提供了基本的针对w e b 开发的集成特性,如多方文件上传功 能,使用s e r v l c t 监听器的c o n t e x t 的初始化和面i - 句w e b 的a p p l i c a t i o nc o n t e x t 。w e b 上下文模块建立在应用程序上下文模块之上,为基于w e b 的应用程序提供了上下 文。所以,s p r i n g 框架支持与j a k a r t as t r u t s 的集成。 7 、s p r i n gm v c :提供了一个全功能的构建w e b 应用程序的m v c ( m o d e l v i e w c o n u o l l e r ) 实现。s p r i n g 的m v c 框架并不是仅仅提供一种传统 的实现,它还可以很容易地与其它m v c 框架集成,例如s t r u t s 。 3 2s p r i n g 核心技术 3 2 1 控制反转 s p r i n g 的核心就是它的轻量级控制反转( i n v e r s i o no fc o n t r o l ,i o c ) 容器的功 能。一个或者多个容器的实例将应用程序和框架对象配置和装配到一起,而且 通常可以完全按照j a v a 接口( i n t e r f a c e ) 或者抽象的超类来管理相关对象,无需担 心那些其他对象是如何实现的,也不用担心它们在哪里。容器( 在s p r i n g 框架中 是i o c 容器) 负责将这些联系在一起。 它听起来有点令人却步,好像是一种复杂编程技术或设计模式,但i o c 并 没有它听起来那样复杂。m a r t i nf o w l e r 在2 0 0 4 年初的一篇论文总结,获得依赖 对象的方式反转了,因此,他为控制反转提出了一个更好的名字,叫做依赖注 入( d e p e n d e n c yi n j e c t i o n ) 【9 1 。 相对于i o c 而言,“依赖注入”更加贴切、直观地描述了这种设计理念。从名 字上理解,所谓依赖注入,即对象的依赖是由容器在运行期注入到对象中的,即 由容器动态地创建被调用者实例,并将其注入到调用者之中。 1 0 应用依赖注入机制后,程序代码将会变得更加清晰,而且b e a n 自己也不再关 心对象之间的依赖关系,甚至不知道依赖的定义指定地方和依赖的实际类,从而 实现了更高层次的松耦合。 依赖注入具有以下几种实现类型1 0 】: 1 、构造注入 构造注入是指通过构造函数来完成依赖关系的设定,即往构造函数中注入 若干参数,容器通过调用类的构造方法,将其所需的依赖关系注入其中。 2 、设值注入 设值注入是指通过j a v a b e a n 构件模型中的s e t t e r 方法传入被调用者的实例。 这种注入方法简单、直观,因而在s p r i n g 的依赖注入中大量使用。 除了以上介绍的两种依赖注入的实现模式,另外还有一种接口注入模式,但 是因为接口注入模式具备侵入性,它要求组件必须与特定的接口相关联,因此并 不被看好,实际使用有限,在此就不详细论述了。 构造注入和设值注入两种方式均具备无侵入性的特点,它们都具有各自的优 势,s p r i n g 框架对这两种机制都提供了良好的支持,开发者

温馨提示

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

评论

0/150

提交评论