




已阅读5页,还剩70页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee的轻量级架构开发方法及应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着j 2 e e 技术大规模的应用,e j b 技术受到广泛的质疑。e j b 技术给j 2 e e 应用开发带来了严重的复杂性和巨大的开销。降低j 2 e e 的复杂性开始成为开发者的主要关注点。目前,在开源社区大量出现 的开源框架为我们的轻量级架构开发方法研究提供了强大的支持。 本文对比分析了传统j 2 e e 架构和轻量级j 2 e e 架构的优缺点,。 推荐采用轻量级基础架构而尽量避免使用e j b 进行j 2 e e 开发,对多 层轻量级架构理论及框架结构进行了详细的研究,具体分析了s t r u t s 、 s p r i n g 和h i b e r n a t e 这三个代表性框架各自的特性。重点就轻量级容 器的核心机制控制反转和面向方面编程展开了深入的探讨。 本文以s p r i n g 框架为主要研究对象,具体研究了如何在容器管 理、面向方面编程、事务管理、数据持久化、远程调用等方面用轻量 级方案替代e j b ,同时就如何将s t r u t s 、s p r i n g 和h i b e r n a t e 等各层框 架合理整合给出了具体的解决方案。轻量级容器启动快,可方便配置, 能够管理任何粒度的对象,它借助控制反转,通过x m l 文件配置对象 之间以及对象和轻量级容器的依赖关系,解决了组件装配的问题,使 开发人员可以专心处理业务逻辑。同时轻量级方案通过面向方面编程 ( a o p ) 为j a v a 普通对象提供声明性企业级服务,实现轻量级框架 的无侵入性、灵活性和可扩展性。 论文最后设计并实现出一个基于j 2 e e 轻量级架构的网上购书系 统。实验结果验证了框架整合的开发能力,提高了开发效率,增加了 应用系统的可维护性,可扩展性和可移植性。 关键词轻量级架构,j 2 e e ,设计模式,s p r i n g a b s t r a t w h i l et h ej 2 e ei sw i d e l ye m p l o y e di na p p l i c a t i o n s ,t h e r ea r eal o to f q u e s t i o n so ne j b t h ee j bt e c h n i q u eb r i n g sal o to fc o m p l e x i t i e sa n d e n o r m o u se x p e n s e st ot h ej 2 e ea p p l i c a t i o n s r e d u c i n gt h ec o m p l e x i t yo f j 2 e ed e v e l o p m e n th a sb e c o m et h em a i nc o n c e r n a tp r e s e n t ,m a n y o p e n - s o u r c ef r a m e w o r k sw h i c ho r i g i nj 2 e eo p e ns o u r c ep r o v i d es t r o n g s u p p o r tf o ro u rl i g h t w e i g h td e v e l o p m e n tm e t h o d o l o g yf r a m e w o r k t h i st h e s i s a n a l y z e s t h e a d v a n t a g e sa n dd i s a d v a n t a g e so ft h e l i g h t w e i g h tj 2 e ea r c h i t e c t u r eb yc o n t r a s tw i t ht h et r a d i t i o n a lj 2 e e a r c h i t e c t u r e w ea r ei n c l i n e dt oc h o o s et h el i g h t w e i g h tf r a m e w o r ka n dt o a v o i du s i n ge j bt e c h n i q u ei nj 2 e ea p p l i c a t i o n t h i st h e s i sd o e sad e e p r e s e a r c ho nt h e m u l t i - l a y e rl i g h t w e i g h tf r a m e w o r kt h e o r y , m a k e sa d e t a i l e ds t u d yo i lt h e r e s p e c t i v ec h a r a c t e r i s t i c so ft h r e ef r a m e w o r k s : s t r u t s ,s p r i n ga n dh i b e m a t e i ta l s om a k e sad e e pd i s c u s s i o no nt h ec o r e m e c h a n i s mo fl i g h t w e i g h tc o n t a i n e r :i o ca n da o p t h i st h e s i sf o c u s e so nt h er e s e a r c ho fh o wt ou s es p r i n gf r a m e w o r k t or e p l a c ee j bi nc o n t a i n e rm a n a g e m e n t ,a s p e c t - o r i e n t e dp r o g r a m m i n g , t r a n s a c t i o nm a n a g e m e n t ,r e m o t ei n v o c m i o n ,d a t ap e r s i s t e n c ea n ds oo n w e g i v eas p e c i f i cs o l u t i o na b o u th o wt oe x a c t l yi n t e g r a t es t r u t s ,s p r i n g a n dh i b e r n a t et o g e t h e r l i g h t w e i g h tc o n t a i n e r ss t a r tf a s ta n dl i g h t i tc a n b ee a s i l yc o n f i g u r e da n dm a n a g ea n ys i z eo ft h eo b j e c t l i g h t w e i g h t c o n t a i n e ru s e si o ct or e s o l v et h e a s s e m b l yo fc o m p o n e n to b j e c t ,s o d e v e l o p e r sc a l lc o n c e n t r a t eo nb u s i n e s sl o g i c b a s e do na s p e c t - o r i e n t e d p r o g r a m m i n g ,l i g h t w e i g h tc a l lp r o v i d ee n t e r p r i s e l e v e ls e r v i c e s ,a c h i e v e r e a l i z a t i o no fn o i n s t r u s i o n ,f l e x i b i l i t ya n ds c a l a b i l i t y f i n a l l yt h et h e s i sd e s i g n sa n dr e a l i z e sa no n l i n es h o p p i n gb o o k s s y s t e mb a s e do nt h el i g h t w e i g h tj 2 e ea r c h i t e c t u r e e x p e r i m e n t a lr e s u l t s v a l i d a t et h ei n t e g r a t i o na n dd e v e l o p m e n tc a p a b i l i t i e so ft h ea r c h i t e c t u r e a n d i m p r o v ed e v e l o p m e n te f f i c i e n c y , i n c r e a s e t h e m a i n t a i n a b i l i t y , s c a l a b i l i t ya n dp o r t a b i l i t yo f t h ea p p l i c a t i o ns y s t e m k e yw o r d s l i g h t w e i g h ta r c h i t e c t u r e ,j 2 e e ,d e s i g np a r e m ,s p r i n g 硕士学位论文缩写词表 缩写词表 a o p a s p e c t - o r i e n t e dp r o g r a m m i n g 面向方面编程 b m pb e a nm a n a g e dp e r s i s t e n c e b e a n 管理持久化 c g l i bc o d eg e n e r a t i o nl i b r a r y j a v a 代码生成类库 c m pc o n t a i n e rm a n a g e dp e r s i s t e n c e 容器管理持久化 c m t c o n t a i n e r - m a n a g e dt r a n s a c t i o n s 容器事务管理 d a od a t aa c c e s so b j e c t 数据访问对象 e j b e n t c r p d s ej a v ab e a n 企业j a v a b e a n e n t i t y b e a ne n t i t y b e a n实体b e a n h i b e r n a t eh i b e r n a t e 一个数据持久层开源框架 i o ci n v e r s eo fc o n t r o l 控制反转 j 2 e ej a v a 2p l a t f o r me n t e r p r i s ee d i t i o n j a v a 2 企业版 j d b cj 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 d kj a v ad e v e l o p m e n tk i t j a v a 开发包 j m sj a v am e s s a g es e r v i c e j a v a 消息服务 肿i 、j a v an a m i n ga n dd i r e c t o r yi n t e r f a c ej a v a 命名目录服务 j s pj a v as e r v e rp a g e s j a v a 服务器端页面 j t a j a v at r a n s a c t i o na p i j a v a 事务接口 mj a v av i r t u a lm a c h i n e j a v a 虚拟机 m e s s a g e d r i v e nm e s s a g e - d r i v e nb e a n 消息驱动b e a n b e a n m v cm o d e l v i e w c o n t r o l模型一视图一控制器 o r m o b j e c tr e l a t i o n a lm a p p i n g 对象关系数据映射 p o j op l a i no l d j a v ao b j e c t 普通j a v a 对象 硕士学位论文 缩写词表 r m i r e m o t em e t h o di n v o c a t i o n 远程方法调用 s e s s i o n b e a ns e s s i o n b e a n会话b e a n s o a p s i m p l eo b j e c ta c c e s sp r o t o c o l简单对象访问协议 s p r i n gs p r i n g一个业务逻辑层开源框 ? 架,轻量级容器 s t r u t ss t r u t s 一个表示层开源框架 w s d lw e bs e r v i c e sd e s c r i p t i o nl a n g u a g ew e b 服务描述语言 x m le x t e n s i b l em a r k u pl a n g u a g e扩展标记语言 7 0 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在在论文中作了明确的说 明。 作者签名:聋掣 日期:墨出钥皇日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者签名: 笨叠盟导师签名二鞋当匿日期:2 喹上月2 日 硕士学位论文 第一章绪论 1 1 选题背景 第一章绪论弟一早殖化 随着经济全球化的发展和信息时代的到来,市场竞争变得越来越激烈。越来 越多的企业为了提高对市场的反映的能力,逐步走上了信息化的道路。企业的信 息化建立在企业级应用软件的基础之上,近年出现的e r p ( e n t e r p r i s er e s o u r c e p l a n n i n g ) 、s c m ( c u s t o m e rr e l a t i o n s h i pm a n a g e m e n t ) 、c r m ( c u s t o m e r r e l a t i o n s h i pm a n a g e m e n t ) 潮流无疑大大推进了企业信息化的进程。这些企业级 应用软件有效地整合了企业的各类资源,加强了企业链上下游之间的联系,提高 了企业的核心竞争力。 这些企业级应用软件最初都是采用客户端服务器模式,这要求在所有的客 户机上都要进行软件的安装。随着i n t e r n e t 的普及和w 曲技术的普遍应用,企业 越来越倾向于使用基于浏览器服务器的应用软件。使用浏览器h i 务器的应用软 件意味着在任何装有浏览器的机器上都可以访问服务器以进行交互,这种模式的 出现大大方便了企业应用软件的使用,同时也推动了企业应用软件的发展。 j 2 e e 平台( j a v a 2e n t e r p r i s ee d i t i o n ) 是s u n 公司推出的企业应用开发平台, 作为一个成功的多层体系结构,它面向一些基本任务提供了一致的标准,例如数 据库连接,分布式应用等。j 2 e e 平台采用了标准化、组件化的分布式应用模型, 并为这些组件定义了一套完整的服务集合,从而简化了开发易扩展,易伸缩的企 业应用的复杂性。越来越多的企业将j 2 e e 平台作为它们实现管理信息系统的首 先平台。 、 然而随着j 2 e e 平台广泛采用,在企业级应用开发领域,我们并没有在s u n 所推荐的以e j b 1 1 2 1 为核心的j 2 e e 应用架构中看到其所承诺的效果,实际情况恰 恰相反,e j b 在大部分实际应用中带来的坏处远远超过了它带来的好处。在项目 投资上,j 2 e e 项目经常显示较小的价值,大多数都超过预算;在项目实施中, 许多项目无法按期完成,原因是e j b 学习曲线陡峭,事实上很少有人能完全把 握和理解e j b ,因此扩展就存在着困难,并且这些服务的组件提供了许多服务往 往显得多余;在性能方面,许多应用程序达不到预期性能,某些则完全不符合需 求,其宣传的可靠性和可扩展性常常无法兑现,与需求的复杂性相比,应用程序 代码常常要复杂得多。从2 0 0 2 年开始,j 2 e e 社区全面开始了对e j b 的批评与反 思,整个j 2 e e 业界开始寻求一种更加简单、更加方便使用的、新的j 2 e e 架构。 硕士学位论文 第一章绪论 在吸取了n e t 的一些优秀思想和e j b 的失败经验,一些“轻量级”的开发框架逐渐 成型并被人们所广泛接受,它们开始慢慢取代e j b 架构在j 2 e e 中的核心位置, 基于j 2 e e 轻量级框架的开发方法由此产生,这也正是本课题要研究的重点。所 谓的轻量级,并不是功能弱、设计简陋、实现粗糙、比重量级差的代名词。它的 设计思想是在许多应用不需要分布式、不需要j 2 e e 中的那些重量级技术的情况 下,有必要将大多数应用中不必要的技术隔离和改造。完全可以针对最常见、最 简单的场景而设计,等到有特殊需求的时候,再进行扩展功能来解决问题【3 】。 1 2 研究与发展现状 图卜1j 2 e e 体系结构 图1 1 表示的是j 2 e e 体系结构,在j 2 e e 平台下,e j b 是编写分布式业务应 用的标准j a v a 架构,它是j 2 e e 编程模型的骨干枢纽,采用会话b e a n 和消息驱 动b e a n 实现业务逻辑,用d a o 或者实体b e a n 访问业务逻辑。在设计j 2 e e 应 用时,基于e j b 的框架一度成为j a v a 企业级开发的首选。e j b 早期版本e j b l 0 及后来经典的e j b 2 0 将很多底层技术:缓存池、安全以及事务封装在特别的e j b 服务器中,很大程度上解脱了开发者的工作。 因为e j b 标准的推出,业务组件层基本是由e j b 来解决,基本上所有的大 型企业高端都是选用j 2 e e ,选用j 2 e e 实际是选用e j b 。e j b 强调的高可伸缩性 2 硕士学位论文 第一章绪论 为大型企业日益发展提供最大的发展空间,不再因为企业快速发展导致整个企业 系统结构都要发生根本变化,考虑了大型系统的需求,在这方面e j b 显示了一 定的优势。但在系统结构和系统实施上显得过于复杂,因而e j b 在实现全面而 完整的服务策略的同时,它也带来了许多的负面效果,在性能和简单性方面做出 了牺牲。 本文研究的主题正是基于这种现状提出的,在很多情况下,应用程序并不需 要完整e j b 提供的功能。例如,多数中小型企业应用只需要存取单一的数据库, 这样的应用程序就没有必要使用分布式事务处理和远程调用【4 】。选择简单可行的 解决方案不仅可以减少企业级应用开发的复杂性,提高系统的生产率,而且还可 以降低开发与维护的成本。轻量级架构的概念就是针对传统j 2 e e 解决方案提出 的,它整合开源社区一些优秀的框梨5 1 ,以简化开发、提高性能和效率为目的, 为应用开发人员提供一种可以解决传统j 2 e e 应用问题的良好解决方案,使他们 可以在最快的时间内开发简单、高效、稳定的j 2 e e 应用。 1 3 本文的主要研究内容 本文对目前传统的j 2 e e 解决方案存在的缺陷和不足做出深入分析,提出基 于j 2 e e 轻量级架构的思想,对比论证选择轻量级架构开发企业应用系统的意义。 然后对采用轻量级架构开发时表示层、业务逻辑层和数据存储层的原理和结构作 了较深入的研究,并分别选取s t r u m 、s p r i n g 和h i b e r n a t e 等开源的框架为代表进 行详细探讨,重点对s p r i n g 框架i o c 7 】和a o p l 8 】【9 】的原理、实现和应用进行研究。 本文首先在介绍多层轻量级框架的基础上,重点研究了在业务对象管理、面 向方面编程、构建表示层与轻量级容器之间的整合、事务管理、数据持久化和远 程调用等方面替代并改进e j b 架构进行j 2 e e 开发。通过使用轻量级容器的控制 反转来消除业务对象中所有的寻址代码,提高业务对象的复用和减轻业务对象和 容器之间的耦合;借助a o p 来实现事务、日志和安全控制等功能;在轻量级与 表现层整合方面提出轻量级自己的m v c 框架的同时也给出了轻量级容器与一些 流行的m v c 框架比如s t r u t s 之间的整合;通过提供一套精巧的、轻量级的事务 基础设施来使开发者能够在任何环境下使用一致的编程模型。然后在数据持久化 方面集成多种底层持久化方案的基础上提供了一致的d a o 访问解决方案来满足 不同情况下的数据持久化,因此本文提出的轻量级架构在解决了传统e j b 架构 的高侵入性、复杂性和难以扩展和移植等缺点的基础上,扩展了一般的包装 s t r u t s 、s p r i n g 和h i b e r n a t e 这三个框架的开发模式,使得开发者在应用轻量级架 构上更具有选择性、灵活性,可以根据具体情况选择合适的实现策略。最后以一 3 硕士学位论文 第一章绪论 个网上购书系统为实例,通过对该实例详细的需求分析,提炼出了系统的结构模 型以及各模型之间的关系,选用本文的轻量级架构进行分层及模块化设计,分别 对对象关系、系统流程、表现层、业务逻辑层、事务处理和数据持久层等进行了 详细设计和代码实现,它验证了轻量级方案的简易性、可行性和实用性。 1 4 论文的组织结构 本论文共分为五章,组织结构如下: 第一章绪论。对选题的背景和国内外研究与发展现状进行了综合论述,并对 本文的主要研究内容做了介绍。 第二章j 2 e e 体系架构比较和多层轻量级框架。分别对使用e j b 的传统j 2 e e 体系结构和轻量级j 2 e e 架构做了介绍和分析,对比分析出这两种架构各自的优 缺点,并以s t r u t s 、s p r i n g 和h i b e r n a t e 框架为代表对表示层、业务逻辑层、数据 持久层等各层的设计理论进行深入探讨。 第三章轻量级架构应用和开发方法研究。重点研究了轻量级架构如何在业务 对象管理、面向方面编程、事务管理、数据持久化、远程调用等方面替代e j b 解决方案,并结合新技术提出了一些新的开发方法。 第四章轻量级架构开发实例。介绍基于本文整合的轻量级构架实现了一个网 上购书系统,验证了本文提出的轻量级架构。 第五章总结与展望。对本文的工作进行总结,说明了本文工作的意义,并对 今后的研究工作进行了展望。 4 硕士学位论文第二章j 2 e e 体系架构比较和多层轻量级框架 第二章j 2 e e 体系架构比较和多层轻量级框架 2 1 使用e j b 的j 2 e e 体系结构 传统j 2 e e 是一种利用j a v a2 平台来简化企业解决方案【l o 】的开发、部署和管 理相关的复杂问题的体系结构。j 2 e e 技术的基础就是核心【1 1 】j a v a 平台或j a v a2 平台的标准版,传统j 2 e e 不仅巩固了标准版的许多优点,方便存取数据库的 j d b ca p i 、c o i a 技术以及能够在i n t e m e t 应用中保护数据的安全模式等等, 同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v i a a p i 、j s p ( j a v as e r v e r p a g e s ) 以及x m l 技术的全面支持,它包括j m s 、j n d i 、e j b 、i 洲i 【1 2 1 、j t a 、 j d b c 、j s p 等在内的1 3 种具体的技术规范。 传统j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高 可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性,同时对现有应用程序集成提供强有力的支 持,有良好的向导支持打包和部署应用,增强了安全机制,提高了性能。 图2 - 1 传统e j b 体系结构 5 硕士学位论文第二章j 2 e e 体系架构比较和多层轻量级框架 传统j 2 e e 架构呈现为一种分布式的多层结构,运行在特定的容器中。图2 1 表示的是使用e j b 的j 2 e e 的体系结构,j 2 e e 应用程序由组件构成,j 2 e e 规范 定义了下面一些组件: 1 客户层组件 j 2 e e 应用程序可以是基于w e b 方式的,或者基于传统客户端界面方式的。 j 2 e ew e b 层组件可以是j s p 页面或s e r v l e t ,w e b 层包含某些j a v a b e a n 对象来处 理用户输入,并把输入发送给运行在业务层上的组件来进行处理。 2 业务层组件 业务层组件的逻辑用来满足银行、零售、金融等特殊商务领域的需要,由运 行在业务层上的e j b 进行处理,e j b 可以重新从存储器找回数据,然后处理后发 送到客户程序。 3 企业信息系统层 企业信息系统层运行企业信息系统软件,这层包括企业基础建设系统,例如 企业资源计划( e i 冲) 、大型机事务处理、数据库系统和其它的遗留信息系统。 在装配组件时,所有的e j b 都需要配置到e j b 服务器( 一般的w e b l o g i c 、j b o s s 等j 2 e e 应用服务器都是e j b 服务器) 中。e j b 服务器作为容器和低层平台的桥 梁管理着e j b 容器,并向该容器提供访问系统服务的能力。所有的e j b 实例都 运行在e j b 容器中,e j b 容器提供了系统级的服务,控制了e j b 的生命周期。 e j b 容器为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管 理等技术环节,简化了商业逻辑的开发。 因此,使用e j b 架构的j 2 e e 适合于大型企业系统的开发,例如大型金融机 构的系统。因为这些系统往往都需要分布式服务器来支持,部署在不同服务器上 的程序需要互相通讯,这时使用专为j a v a 打造的i i o p 协议来进行通讯是最好的 选择,同时对于很强的事务管理的系统,采用了e j b 的传统j 2 e e 架构也是非常 适合的。 除e j b 外,j 2 e e 还提供了各种技术用于解决企业开发中的问题,而这些技 术大部分还是非常成功的,例如用于定位各种服务的j n d i 技术,用于分布式事 务管理的j t a ,这些技术在今天仍然被广泛使用。 但是,传统的j 2 e e 架构的主要组成部分e j b 规范于1 9 9 9 年推出以来,业 界已经发生了变化,这种复杂的技术在大多非大型企业级开发中得到的结果往往 令人无法满意,并带来高昂的开发和维护成本,主要归纳为以下几个问题: ( 1 ) 容器的锁定。首先,使用e j b 必须有一个e j b 容器,但却带来以下一 些负面的影响:业务对象会被e j ba p i 侵入:开发者不能在e j b 容器之外复用 e j b 的业务逻辑。另外,e j b 容器独立于应用服务器之外的存在也是一个问题, 6 硕士学位论文 第二章j 2 e e 体系架构比较和多层轻量级框架 开发者只需要在w e b 层和业务逻辑层之间有一种逻辑上的区分,而不是从物理 上区分它们。开发者没必要将它们放在不同的受控环境中,这样做反而会带来问 题,比如说,应用程序的w e b 部分和e j b 部分将很难共享配置信息。 ( 2 ) 复杂的结构。实现任何一个s e s s i o nb e a n ,开发者至少需要三个j a v a 源文件:h o m e 接口、组件接口( 本地或者远程) 、b e a n 实现类对于本地e j b , 使用e j b 不会影响到业务方法接e 1 ,因此开发者可以把e j b 看作是实现特定业 务接口时的可选方案。然而,对于远程e j b ,所有的业务接口中的方法需要抛出 r m i 的r e m o t e e x c e p t i o n 异常,这就把业务接口绑在了e j b 及其使用的远程调用 策略上。 ( 3 ) 复杂的部署描述文件。e j b 的部署描述文件冗长,几乎不可能手工编 写,而且不是特别直观,由于标准的e j b - j a r x m l 部署描述文件将一些重要的信息, 例如指定b e a n 的j n d l 名称、配置实例池等留给容器开发商定制,开发者总是 需要一个额外的、厂商专有的部署描述文件,例如w e b l o g i e - e j b - j a r x m l 。对于会 话b e a n 和消息驱动b e a n ,复杂的部署描述文件是导致生产力下降、不得不依赖 代码生成工具的重要原因之一。对于实体b e a n ,由于标准的和专有的部署描述 文件的复杂性,需要严重依赖代码生成工具。 ( 4 ) 类加载器的问题。e j b 基于复杂的类加载机制,即使是部署在单个j v m 中的集成j 2 e e 应用,e j b 容器通常也不与w e b 容器使用同一个类加载器,这就 意味着至少需要一个额外的类加载器。使用的类加载器越多,潜在的问题也越大, 在应用服务器之间的行为差异也越大。j a v a 类加载器是分等级的,基本的规则是 子类加载器在加载类之前,必须先请求父类加载器加载类,由于e j b 类加载器 是w a r 类加载器的父亲,这导致一个e j b 类加载器不能看到、访问w a r 类加 载器加载的类。 ( 5 ) 测试。因为建立在e j b 之上的应用严重地依赖e j b 容器,对它们进行 单元测试相当困难。般来说,大量采用e j b 的应用都缺乏有效的单元测试。 ( 6 ) 复杂的编程模型。e j b 把一种复杂的编程模型强加给开发者,开发者 不仅需要编写所有的实现类,还需要主动执行j n d i 查找来访问每一个e j b 。这 让使用业务对象的代码不得不依赖于j n d i 和e j ba p i ,而且使用e j b 的传统方 法迫使开发者对服务定位器和业务委派对象进行硬编码。 ( 7 ) 较低的软件生产率软件的生产率是软件开发一个极其重要的方面, 但j 2 e e 的传统架构常常忽略这一点,基于e j b 的j 2 e e 项目的生产率常常不能 令人满意,开发者需要花很多时间在非关键任务上。 当然,在某些复杂的中间件应用领域,比如金融应用中的处理过程常常需要 大量的时间和计算能力,比起业务处理本身的开销,远程调用的开销常常倒是可 硕士学位论文第二章j 2 e e 体系架构比较和多层轻量级框架 以忽略不计了,而且,金融消息件也通常是面向消息的,很适合使用m d b 1 2 1 。 2 2 轻量级j 2 e e 架构 轻量级j 2 e e 架构与传统的j 2 e e 架构都是采用典型的分层架构模式,但是 它们在各个层采用的具体方案不同。轻量级j 2 e e 架构是在架构的各个层中应用 了优秀的开源的轻量级框架,并且所有的j a v a 类都将运行在同一个j v m 中。轻 量级j 2 e e 架构在业务层使用优秀的开源轻量级容器取代e j b 容器来管理业务对 象,并且用p o j o ( p l a i no l dj a v ao b j e c t ) 完全替代了e j b ,。通过容器提供的i o c ( i n v e r s i o no f c o n t r 0 1 ) 对类进行配置管理,所以轻量级j 2 e e 架构也被称为轻量 级容器架构。轻量级j 2 e e 架构在表现层通常应用流行的开源w e b 框架,在数据 持久层使用开源的o r m t ”】工具或是一些混合的解决方案,架构的整体设计则需 要轻量级容器作为黏合剂。目前,轻量级j 2 e e 架构设计的核心问题就是对轻量 级容器和各种框架技术的选择。 图2 - 2 非e j b 体系结构 图2 2 表示的是不使用e j b 的轻量级j 2 e e 体系结构,轻量级容器的“轻”, 那就是相对“重”而言,而“重”的典型代表就是e j b 。虽然业界并没有对轻量级容 器( 1 i g h t w e i g h tc o n t a i n e r ) 的准确定义,但是我们可以总结出它的一些关键特性: ( 1 ) 无侵入性( n o n e i n v a s i v e ) :尽量不对被容器管理的对象提出特殊的要 硕士学位论文 第二章j 2 e e 体系架构比较和多层轻量级框架 求,如必须继承某个超类或实现某个接口。我们把这种不需要强加应用代码对某 框架或开发包的依赖就可以使用其所提供的功能的特性称为“无侵入性”。 ( 2 ) 启动速度快。 ( 3 ) 运行容器的系统开销小,不需要任何特殊的部署来配置运行其内的对 象。 ( 4 ) 灵活,可以在多种环境下运行,最小限度的依赖a p i 。 ( 5 ) 能够管理任何粒度的对象,而e j b 容器只管理粗粒度的e j b 组件,它 并不管理普通的j a v a 对象。 无侵入性是轻量级容器最重要的优势之一e i b 的最大缺点之一也正是它太 强的侵入性为写一个e n t i t yb e a n ,我们不得不编写三个j a v a 类,而且有很 多的编程限制。而对于轻量级容器来说,我们只需要编写普通的j a v a 类,我们 甚至不需要了解其它的a _ p i _ 除非我们要使用一些容器特有的功能,这也在很大 程度上降低了轻量级容器的学习曲线。轻量级容器良好的非侵入性使我们不依赖 于任何具体的容器a p i 或运行环境,这相当地提高了代码的可复用度、可测试性。 目前,轻量级容器在整个j 2 e e 业界已经得到了广泛的认可。在已存在的轻 量级容器框架中,绝大部分来自开源社群,其中包括p i c o c o n t a i n e r 、s p r i n g 这些 最为重要的轻量级容器。 轻量级架构有许多优点,主要表现在下面几个方面: ( 1 ) 架构简单,功能强大。 ( 2 ) 和e j b 架构一样,轻量级架构中可以通过配置w e b 容器集群来达到横 向扩展。 ( 3 ) 轻量级架构不需要e j b 容器,可以快速启动,能够在s e r v l e t 引擎中运 行。另外,软件许可费用低、容易管理,而且负载小 ( 4 ) 轻量级容器支持a o p ,能提供非常成熟的声明式服务。比如,s p r i n g 框架中包含的声明式事务管理提供了比e j b 更多、更灵活的配置方式。 ( 5 ) 控制反转( i o c ) 可以让轻量级容器为开发者组装对象,应用代码中不 再需要编写资源寻址代码或者合作者对象寻址代码,而且应用对象也不需依赖于 容器a p i 。对象与合作者之间的依赖关系,通过普通的j a v a b e a n 属性或是构造 函数的参数来体现,i o c 容器负责在运行时解析这些关系。 ( 6 ) 最小限度的a p i ,在不同的应用服务器之间具有较好的移植性。 ( 7 ) 更好的面向对象,可插拔的服务配置,提供给开发者灵活选择多样的 选择,如可以使用轻量级的o r m 产品提供透明的持久化。简单的应用中可以使 用j d b c 抽象层进行持久化操作。 ( 8 ) 比较容易在应用服务器之外进行业务对象的单元测试,可以用j u n i t 进 9 硕士学位论文第二章j 2 e e 体系架构比较和多层轻量级框架 行测试。 2 3 设计模式与框架 在前面对j 2 e e 两种架构对比分析的基础上,本章的余下部分将对j 2 e e 多层 轻量级架构进行讨论。在介绍多层轻量级架构中,我们采用了开源社区中不少 j 2 e e 开发框架,这些优秀的框架广泛应用了一些常用的设计模式,它们支持系 统的可重用、可扩展和可维护,这样可以避免我们重新开始开发一个复杂平台, 从而替我们节省了大量的时间和精力,首先我们将讨论设计模式和框架的关系。 1 设计模式【1 4 1 【1 5 】【1 6 】 有经验的面向对象设计者能做出良好的设计,当找到一个好的解决方案,他 们会一遍又一遍地使用。因此,会在许多面向对象系统中看到类和相互通信的对 象的重复模式,这些模式解决特定的问题,使面向对象设计更灵活、更优雅,最 终复用性更好。他们帮助设计者将新的设计建立在以往工作的基础上,复用以往 成功的设计方案,这就是通常所说的设计模式。 将面向对象软件的设计经验作为设计模式记录下来,每一个设计模式系统地 命名和解释了面向对象系统中一个重要的和重复出现的设计。设计模式使人们可 以更加方便地复用成功的设计和体系结构,帮助做出有利于系统复用的选择,避 免设计伤害了系统复用性。 2 框架 框架是项目软件开发过程中提取特定领域软件的共性部分,它是由一组紧密 关联的c l a s s ( 类) 组成,强调类彼此的配合来完成某种可以重复运用的设计概 念,这些类之间以特定的方式合作,彼此不可或缺。 框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新 项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些开发和 调整便可满足要求;对于开发过程而言,这样做会提高软件的质量,降低成本, 缩短开发时间,使开发越做越轻松,效益越做越好,形成一种良胜循环。 框架不是现成可用的应用系统,它只是一个半成品,需要后来的开发人员进 行二次开发来实现具体功能的应用系统。框架不是“平台”,平台概念比较模糊, 可以是一种操作系统,一种应用服务器,一种数据库软件,一种通讯中间件,因 此平台在应用中主要指提供特定服务的系统软件,而框架更侧重于设计,开发过 程,或者可以说,框架通过调用平台提供的服务而起作用。 应用的设计依赖于框架,所以应用对框架接口的变化是极其敏感的。因此框 架的设计非常重要,一个使用设计模式的框架比不用设计模式丘句框架更可能获得 l o 硕士学位论文第二章j 2 e e 体系架构比较和多层轻量级框架 高层次的设计复用和代码复用,成熟的框架通常使用了多种设计模式,设计模式 有助于获得无须重新设计就可适用于多种应用的框架体系结构。 模式与框架有些类似,他们之间最主要的区别表现在如下几个方面: 设计模式比框架更抽象,框架能够用代码表示,而设计模式只有其实例才能 表示为代码。 设计模式是比框架更小的体系结构元素,一个典型的框架包括了多个设计模 式,而反之决非如此。 框架比设计模式更加特例化,框架总是针对一个特定的应用领域。一个图形 编辑器框架可能被用于一个工厂模拟,但它不会被错认为是一个模拟框架,而设 计模式几乎能用于任何应用。 2 4 表示层及其框架 2 4 1 表示层设计 表示层用来处理用户与软件的交互。可能简单到只是命令行或基于文本的菜 单系统,但是当前的客户界面往往是功能完善的胖客户图形界面,或者是基于 h t m l 的浏览器界面。表现层的主要职责是向用户显示信息并把从用户那里获取 的信息解释成业务层或数据持久层上的各种动作。 由于j 2 e e 应用程序自身的许多特性,它很多都是致力于w e b 应用,在w e b 框架中,表现层就是通过一个w e b 界面提供业务服务。一般情况下,我们在业 务对象和w e b 层之间需要有一个逻辑的分隔,逻辑分隔的首要意义,就是拥有 一个严格定义的业务服务层,要确保这些服务很容易被访问到,而且不能让表现 层与业务服务接口之间产生依赖。 m v c 是一种了最常用的表现模式,它强制性的把应用程序的输入、处理和 输出分开,m v c 把程序分成三个核心模块:模型、视图和控制器,它们分别担 负不同的任务。首先控制器接收用户的请求,并决定应该调用哪个模型来进行处 理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器 调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。 2 4 2s t r u t s 框架结构 s t r u t s 是一个开源框架,包含了一系列相互的类、s e r v l e t t l 8 】和j s p t l 9 】标记。 框架是基于m v c 框架开发w e b 应用程序的具体应用。使用s t r u t s 框架可以将商 业逻辑、控制和数据显示功能模块区分开来,这样对其中一个模块的改动不会影 响到其它模块。使用这一框架,开发人员可以分别集中开发商业逻辑模块、应用 过程控制模块和数据显示模块,而不用担心这三个模块的耦合问题。 硕士学位论文第二章j 2 e e 体系架构比较和多层轻量级框架 图2 - 3s t r u t s 实现的m v c 框架图 现在从m v c 的角度来分析s t r u t s 框架中的各个组件,图2 3 表示的是s t r u t s 的m v c 框架图,控制器用a c t i o n s c r v l e t 类和a c t i o n 类来实现。a c t i o n s c r v l c t 继 承了j a v a g s e r v l e t 1 螂h t t p s c r v l g t 类,它在m v c 模型中扮演中央控制器的角色。 a c t i o n s c r v l c t 主要负责接收h t i p 请求,根据配置文件s t r u t s c o n f i g x m l 的配置 信息,把请求转发给适当的a c t i o n 对象,如果该a c t i o n 对象不存在,a c t i o n s c r v l c t 会先创建这个a c t i o n 对象,图2 3 显示了三个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三阅读鉴赏课件
- 高三放飞梦想课件
- 2025年各地中考语文试卷【综合性学习题】汇集练附答案解析
- 高一物理集体备课课件
- 宪法九版习题及答案 第2章 第3章(在线练习题)
- 高一地球公转课件
- 高一功率说课课件
- 精准夫妻离婚协议书:共同财产与债务清算协议
- 企业用友U86合同管理系统采购实施合同
- 汽车美容店租赁合同(含客户关系管理系统)
- 平面构成在服装设计中的运用
- 体育赛事餐饮服务方案策划
- 2025年天文地理知识竞赛题库及答案
- 医疗广告培训课件
- 秋天美术课件图片
- 排球整套教学课件
- 睑腺炎的护理与治疗
- 2025至2030中国空气制水机行业市场发展分析及发展前景与投融资报告
- 公司礼仪培训课件
- 防汛应急培训课件
- 职工小家日常管理制度
评论
0/150
提交评论