




已阅读5页,还剩58页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee轻量级架构的资源应用平台框架重构及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着软件系统开发技术的发展,多层次信息管理软件系统的开发 的重点已经从注重组件类库的进化转移到了关注系统应用架构的设 计上来,应用框架的设计更直接的影响到软件系统整体的健壮性、可 重用性和易扩展性。 本文首先分析了采用e j b 技术的传统j 2 e e 架构在应用开发中带 来的复杂性,说明这种架构并不适合大多数的j 2 e e 项目。再以降低 复杂性和提高重用性为出发点,详细研究和分析了d w r 和s p r i n g 框 架提供的优秀轻量级架构解决方案。d w r 框架能够简化w e b 层的 基于a j a x 技术的开发,更加轻松实现页面数据异步交互。s p r i n g 框 架以非侵入式的形式为软件提供架构支持,这种支持进一步提高系统 可重用性,降低各层次之间的耦合性。 然后,论文利用d w r 和s p r i n g 各自框架的特点提出了一个基于 d w r 和s p r i n g 组合的轻量级软件架构,并重点运用这种架构针对一 个j 2 e e 二次开发项目( 电信资源集中应用平台) 进行框架重构和架 构的应用实现。重构后的系统具有更好的健壮性、可重用性和可扩展 性。在重构后系统相关模块实现的同时也对一些技术( 如e x t 组件 技术、s v g 技术) 进行了论述。 关键词:轻量级,架构,s p r i n g ,d w r ,重构,资源应用 a bs t r a c t t h ee m p h a s i so ft h em u l t i l e v e li n f o r m a t i o ns o f t w a r eh a se v o l v e dt o t h el e v e lo f c o n s i d e r i n g m o r ea b o u t d e s i g n i n g t h e a p p l i c a t i o n a r c h i t e c h t u r e w i t hm o d e ms o f t w a r es y s t e md e v e l o p m e n t ,i ti sc r i t i c a lt o h a v eb e t t e ra p p l i c a t i o na r c h i t e c h t u r e ,w h i c hh a sd i r e c t l yi m p a c to nt h e r o b u s t n e s s ,r e u s a b i l i t ya n df l e x i b i l i t yo f t h ew h o l es o f t w a r es y s t e m t h i sa r t i c l e f i r s t l ya n a l y z e d t h e c o m p l e x i t y c o n v e n t i o n a lj 2 e e f r a m e w o r kg e n e r a t e db yu s i n ge j bt e c h n o l o g y , a n df u r t h e rd e m o n s t r a t e d t h a ts u c hf r a m e w o r km a yn o ts u p p o r tm o s to fj 2 e ep r o je c t s t or e d u c e t h e c o m p l e x i t ya n d e n h a n c er e u s a b i l i t y , t h er e s o l u t i o no fe x c e l l e n t li g h t w e i g h tf r a m e w o r ko f f e r e db yd w ra n ds p r i n gf r a m e w o r kw a s i n v e s t i g a t e da n dr e s e a r c h e di n d e t a i l s d w rf r a m e w o r km a ys i m p l i f y a j a xt e c h n o l o g yd e v e l o p m e n t ,a n dm o r ee a s i l yi m p l e m e n ta s y n c h r o n o u s d a t ai n t e r a c t i o n s p r i n gf r a m e w o r km a yp r o v i d ea na r c h i t e c h t u r es u p p o r t f o rs o f t w a r ei nt h ef o r mo fn o n i n t r u s i v ew a y s u c hs u p p o r tc a nf u r t h e r i m p r o v e t h e s y s t e mo fr e u s a b i l i t y , a n d r e d u c et h ec o u p l i n ga m o n g d i f f e r e n tl e v e l s u s i n gt h e s ea d v a n t a g e so f f e r e db yd w r a n ds p r i n g ,t h ea u t h o r r a i s e da l i g h t w e i g h tf r a m e w o r kb a s e do nd w r a n ds p r i n gc o m b i n a t i o n t h ep a p e rm a i n l yu s e dt h i sc o m b i n a t i o nf r a m e w o r kf o rt h ea r c h i t e c t u r eo f r e f a c t o r i n ga n di m p l e m e n t i n g i naj 2 e es e c o n d a r yp r o j e c t ( t e l e c o m r e s o u r c ea p p l i c a t i o np l a t f o r m ) t h er e f a c t o r e ds y s t e mm a yh a v eb e t t e r r o b u s t n e s s ,r e u s a b i l i t ya n df l e x i b i l i t y o t h e rt e c h n o l o g i e s ,i n c l u d i n ge x t a n ds v g , w e r ea l s od i s c u s s e di nt h ec o n t e x to ft h er e l e v a n tm o d e l s u p p o r t e db yt h i sr e f a c t o r e ds y s t e m k e yw o r d s : r e s o u r c ea p p l i c a t i o n l i g h t w e i g h t ,f r a m e w o r k ,s p r i n g ,d w r ,r e f a c t o r , i i 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得中南大学或其他单位的学位或证书而使用过的材料。与我共 同工作的同志对本研究所作的贡献均已在在论文中作了明确的说明。 作者签名: 日期:塑星年上月里日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校有 权保留学位论文并根据国家或湖南省有关部门规定送交学位论文,允 许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者虢链导师签趔日期必年上哗日 硕士学位论文第一章绪论 1 1 课题研究现状 第一章绪论 互联网对人类的生产活动和生活方式产生巨大冲击,企业、政府等都深受影 响,在此背后正产生了一场变革一基于c s 模式的传统应用向基于的b s 模式应 用的变化。各大企业为适应这场变革j 下积极寻求各种解决方案,其中企业信息化 建设对于企业能否在这场变革当中生存发展下去有着重要作用。企业信息化是一 个复杂而漫长的过程,不可能一蹴而就。但是,企业从成本和收益等经济效益等 角度考虑,通常希望对企业应用程序的开发周期尽量短,而且还要保证系统稳定、 高效的运行。这对从事企业应用的开发人员提出了非常高的挑战。在这种需求的 推动下如何同时提高一个软件系统的可维护性( m a i n t a i n a b l i l i t y ) 、可复用性 ( r e u s e a b i l i t y ) 和可扩展性( e x t e n s i b i l i t y ) 成为当前软件系统设计与开发时要解决的 核心问题。 在软件工程的实践中,为解决软件设计与开发中的问题,人们越来越深刻地 认识到系统总体结构设计的重要性已经远远超过了特定算法和数据结构的选择, 良好的架构对保障系统的成功至关重要1 2 j 。架构由一组相互协作的抽象类和具 体类组成,用来表达特定领域中若干相似的应用系统所具有的功能和基本结构。 架构是经验的总结和提炼,它包含的是实际开发过程中的最佳实践,因而不仅可 以提高企业开发的效率,还可以大大提高应用程序的质量。目前,基于j 2 e e 标 准为架构的企业级w e b 应用开发正得到广泛的应用。j 2 e e t 3 l 【4 l ,j a v a 平台企业版 ( j a v ap l a t f o r i l le n t e r p r i s ee d i t i o n ,j 2 e e ) ,是s u n 公司为企业级应用推出的标准 平台。j 2 e e 为使用j a v a 进行企业应用系统开发提供了一套扩展标准( 或者说是 一套组件模型) ,为我们开发分布式的多层应用提供了平台和技术基础。 针对j 2 e e 目前的发展趋势和结合众多的应用实例,我们开发的软件系统在 满足用户需求的基础之上,如何才能解决出现的问题从而更迸一步的让用户满意 昵? 这对于我们软件开发者来说是个巨大的挑战。实践表明应用开发采用传统的 重量级j 2 e e 架构正在向优秀的轻量级架构转向,在j a v a 开源项目进行得十分活 跃的今天,许多优秀的开源轻量级框架应运而生,并且为我们提供了帮助,这些 架构不仅可以为我们很好的解决了维护性、复用性和扩展性带来的问题,而且对 于软件开发周期和成本上都有较为明显的改善。 s p r i n g t 5 】框架是一个开源且基于p o j o 的轻量级j 2 e e 应用框架,它是为了解决 硕士学位论文第一章绪论 企业应用程序开发复杂性而创建的。d w r ( d i r e c tw 曲r e m o t i n g ,d w r ) 【6 j 是一 个w e b 层远程调用框架。它们都在各自的领域具有优越的应用,结合s p r i n g 和 d w r 这两个开源框架来构建应用是一个十分有效的技术选择。本文正是在以 s p r i n g 和d w r 这两个轻量级j 2 e e 框架为基础上结合作者实际参与开发以及后 期优化的电信资源应用平台系统对j 2 e e 架构进行了分析与研究。 基于s p r i n g 的轻量级架构的系统目前已经较多的在企业级系统上得到了应 用,这种开源轻量级的架构解决了企业开发复杂度高和部署代价高的问题。它为 企业节省了大量开发时间和开发成本。同样,d w r 也并非新的技术,目前也在 给类企业级w e b 开发中都得到了应用。但是,利用s p r i n g 和d w r 框架相组合 开发的案例还不多,特别是通过对国内电信资源管理各地不同系统的了解可以看 到在电信资源这个特定领域内利用这两类框架的组合形式开发还很少,即使是利 用这类框架实现的系统所具有的功能和成熟度都还较低,所以本文所提到的基于 s p r i n g 和d w r 组合框架重构和实现的电信资源管理系统是在这个领域内的一次 创新性和尝试性的应用开发,它为下一代电信资源管理系统提供了可借鉴的技术 经验。 1 2 项目背景 随着中国电信的上市和所面临的同益开放和竞争激烈的电信市场,为了更有 效地参与市场竞争,提升企业的核心竞争力,中国电信制定了“建立以市场为导 向、以客户为中心、以效益为目标的高效运营机制”的营运目标。对信息化而言, 中国电信进行了系统的未来规划,其c t g - - m b o s s 整体规划及下一代资源管理 系统规范的制订给整个集团的信息化指明了方向。 湖南电信在发展过程中,建设了网络资源管理、本地计费帐务系统、综合客 户服务系统等大量的支撑系统,它们给湖南电信的业务发展起到了很大的作用, 为了在激烈的市场竞争中处于领先地位,为了适应企业、业务转型和响应电信集 团建设下一代资源管理系统的号召,湖南电信决定启动下一代资源管理系统建 设,湖南电信根据自身实际情况要求建设新的资源管理系统。 电信资源管理系统是中国电信运营支撑系统( o s s ) 的核心子系统之一。资源 管理是一个对电信各类物理和逻辑资源的系统管理过程,为业务管理、决策支持 等电信业务的准确、迅速和安全的开展起到了至关重要的作用。本文旨在解决湖 南电信省集中资源管理平台第一期版本中出现的信息不畅通、分析数据滞后、数 据准确性不够、响应速度慢等缺陷,对其企业的生产效率和管理水平有着较大的 2 硕七学位论文第一章绪论 意义。从2 0 0 6 年7 月进行需求调研开始,到2 0 0 7 年3 月份第一期开发基本完成 这段时间中,经历了开发和调试过程。虽然实现的系统在功能上基本上满足了用 户的需求,但是随着用户在使用过程中发现的问题及用户在使用过程中提出的一 些新的扩展性需求时,发现对系统进行维护和扩展很难进行,因为代码的可修改 性、可读性、可重用性都较低。 综合分析造成资源管理系统后期维护困难,扩展性差等原因,最主要的就是 前期系统没有设计一个良好架构。系统大量采用了j s p 或是s e r v l e t 来充当业务 逻辑实现,表现层充斥的大量与业务逻辑相关的j a v a 代码,因此造成了大量代 码重复冗余,逻辑层次不明确,模块之间耦合性较强,j s p 和s e r v l e t 的角色不唯 一,很难进行后期维护和相关功能扩展。为了资源管理系统能够满足用户继续增 长需求,提高代码的可重用性和可扩展性,有必要对系统架构进行重新设计,并 对系统进行重构和移植实现。 为此本文研究了以s p r i n g 和d w r 这两个轻量级相组合的方式在企业级w e b 系统上进行框架重构和应用实现。通过这两个框架的整合解决前期系统中缺乏架 构支撑带来的逻辑层次不明确、模块耦合性强、代码重用率低、系统扩展困难等 缺点,真正达到高重用性、易扩展性和易维护性的目标。 1 3 本论文的主要工作 多层分布式的企业级应用开发中目前存在两个占主导地位的平台,j 2 e e 和n e t 。两种平台都有各自的优势和劣势,更多的决定于开发者的技术方向和熟 悉程度,因此从纯技术的观点来比较孰优孰劣,很难给出答案。在此作者也不打 算比较。本文主要是针对j 2 e e 平台下的企业级应用架构和开发技术研究,主要 研究内容为s p r i n g 、d w r 框架和基于这两个框架的轻量级架构技术及基于此架 构的资源管理系统重构实现,具体可以分为以下三个方面: ( 1 ) 企业级w e b 应用j 2 e e 架构分析。 论文介绍了企业级w e b 应用的j 2 e e 架构,论述了j 2 e e 设计模式和基于此 三层设计模式的软件架构,并对j 2 e e 重量级架构进行了分析,对比总结了轻量 级架构的优点与发展前途。 ( 2 ) j 2 e e 应用框架s p r i n g 及a j a x 框架d w r 研究及分析。 论文分析了s p r i n g 开源轻量级框架,通过对它的控制反转技术和面向方面编 程技术的分析以及基于s p r i n gj d b c 模板的事务管理技术的分析,总结出了 s p r i n g 框架在应用开发中的优点。同时详细分析了基于a j a x 技术的d w r 框架, 硕士学位论文 第一章绪论 对这些技术在实际应用之中的优点总结。最后论文结合实际应用项目提出了一个 基于s p r i n g 和d w r 框架组合的轻量级软件架构方案,并对此组合架构可行性及 优点进行了相关详细分析。 ( 3 ) 基于此架构的资源集中应用平台重构设计与相关模块实现。 在对湖南电信资源管理系统原始系统进行详细的分析和对j 2 e e 轻量级组合 架构的详细分析和理解后,提出了对原始系统框架重构的必要性,并确定资源集 中应用平台采用s p r i n g 和d w r 相结合的架构重构方案。重构的系统解决了一期 系统带来的扩展性差和维护性差等缺点,增强了系统的可扩展性、可维护性和可 重用性,达到了项目的预期目标。最后本文对作者实现的基于此架构的系统中一 些相关通用模块实现进行了阐述。 1 4 论文内容提要 论文共分五个部分,具体的内容提要如下: 第一部分:绪论。介绍课题背景、研究意义,并简要介绍论文的主要工作。 第二部分:介绍了企业级w e b 应用的j 2 e e 设计模式,以及基于j 2 e e 设计 模式的多层架构。详细分析了以e j b 为中心的重量级架构的缺点和阐述了轻量 级架构的优点。详细阐述了s p r i n g 的控制反转思想,s p r i n g 的事务管理技术和 a j a x 实现框架d w r 的w e b 层远程调用技术,并简要介绍了这些技术的研究 现状与发展方向,同时分析了两种技术具有的优点。 第三部分:详细分析了电信资源应用平台软件系统前一版本实现中存在着的 问题,结合考虑到系统的后期系统可维护性、代码可复用性和功能可扩展性,确 定系统的重构必要性。在分析了两类框架结合的可行性与优势的基础上,总结出 了一个适合于电信资源应用平台软件系统的基于s p r i n g 和d w r 框架的轻量级软 件架构,并结合系统详细进行的分析和重构设计。最后对此架构进行了应用实现。 第四部分:论文实现了重构后部分核心模块,具体分析了在系统开发过程是 如何在具体平台系统中进行技术实现,以及应用面向方面、控制反转思想和w e b 远程调用实现横切。同时,也阐述了一些新技术在系统实现中的应用。 第五部分:总结了研究工作,并展望将来进一步的工作。 4 硕士学位论文第二章j 2 e e 平台体系结构分析 第二章j 2 e e 平台体系结构分析 2 1j 2 e e 框架综述 架构技术的成功很重要的原因是依赖于架构之下良好的设计模式的应用。设 计模式【7 】【8 】是面向对象领域为实现高级代码复用而总结出来的各种方案,每一种 模式都是对在所处环境中不断重复发生的问题提供的解决之道,其最根本的意图 就是适应需求变化。j 2 e e 是一个基于j a v a 组件技术的企业应用系统开发规范, 它为不同厂商创建平台产品提供了标准,使不同j 2 e e 平台产品之间的交互成为 可能。j 2 e e 提供了丰富的开发工具和服务,便于开发模块化的、可重用的和平 台独立的业务逻辑。该平台采用多层的分布式应用模型,按功能不同划分成不同 的逻辑层:客户端的表示层、j 2 e e 应用服务器上的业务逻辑层、数据库服务器 上的数据层。各层将企业计算应用领域中不变的东西先定义好,其余即为可变的, 也就是针对特定领域中具体应用所产生的不同的变化需求,这些变化需求要由程 序员来实现。可见,设计模式的思想与j 2 e e 是相融的【7 j 。 j 2 e e 开发者在进行开发时,遇到了重复解决某个软件设计的问题。为给设 计j 2 e e 系统时所遇到的常见问题提供解决方案,经过不断的实践和筛选,j 2 e e 开发人员者提出了多种适用于j 2 e e 开发的设计模式,即j 2 e e 模式,如s e s s i o n f a c a d e 模式、d t o 模式、s e r v i c el o c a t o r 模式等。j 2 e e 模式解决了使用服务与 技术的常见设计问题,包括视图管理请求、处理服务定位与激活远程通信与层间 通信组件选择持久状态、事务与安全性管理、e i s 集成。在j 2 e e 的实际应用中, 正确地选择,有效地使用模式,不仅是对前人软件设计思想或实现方法的一种继 承,而且对应用系统的开发,保证系统的性能都是明智的选择。j 2 e e 模式是特 定于j 2 e e 平台的设计模式,对应于j 2 e e 平台的层次模型,j 2 e e 模式同样归结 为对应于不同层次的模式,因此对于j 2 e e 来说每个模式既是设计模式也是架构 模式,而模式的“策略部分则会考虑一些抽象层次比较低的技术细节,这样把 模式按照逻辑架构层次分类的方法可以分为三类:表示层,业务逻辑层和数据持 久层。这三层次的划分正好符合了w e b 应用中多层次分布式特点,有效的解决 了如何处理用户交互、如何处理业务逻辑、如何对应用数据进行持久化等问题, 以及为怎样选择这些层的实现技术和设计方案才能达到“高内聚,低耦合”要求 提供了帮助。 j 2 e e 是一种利用j a v a2 平台来简化企业信息系统开发、部署和管理的体系 硕士学位论文第二章j 2 e e 平台体系结构分析 结构。j 2 e e 技术的基础是核心j a v a 平台。j 2 e e 具有“编写一次、随处运行 的 特性、方便存取数据库的j d b ca p i 、c o r b 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 ,e j b ) 、j a v a s e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e ,j s p ) 以及x m l 技术的全面支持。其最终目的 就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。j 2 e e 体系 结构提供了中间层集成框架来满足低成本、高可用、高可靠以及可扩展应用的需 求。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性,同 时提供集成现有应用程序的能力。 j 2 e e 平台采用多层分布式的应用框架模式【l 】,一个完整的企业级应用的不同 部分作为组件进行开发实现,将这些组件打包部署到相应的容器中,并按照的规 范,提供各自的服务和向其它组件请求服务。在j 2 e e 的体系中,按照逻辑架构 层次分类的方法,一般把系统分为以下三个层次: ( 1 ) 运行在j 2 e e 应用服务器上的表现层组件。 ( 2 ) 运行在j 2 e e 应用服务器上的业务逻辑层组件。 ( 3 ) 运行在e i s 服务器上的企业信息系统( e n t e r p r i s ei n f o r m a t i o ns y s t e m ,e i s ) 层软件。 图2 - 1j 2 e e 整体架构图 各层之间的关系如图2 1 所示。基于层次化组件模式的框架把业务逻辑和底 层网络技术分离开来,具有可伸缩性、扩展性、易开发性和易维护性。对于各层 的具体设计模式和实现技术下面进行了具体分析。 6 硕士学位论文 第二章j 2 e e 平台体系结构分析 2 1 1 表现层 表现层是针对与用户交互提供接口功能的层次。目前典型表现层设计模式是 m v c 模式i g l 。m v c 模式即为模型( m o d e l ) 、视图( v i e w ) 、控制器( c o n t r o l l e r ) ,m v c 模式将应用程序开发分成三个比较独立的部分,具有各自独立的功能m o d e l 是 指具体负责业务逻辑处理的模块,往往是业务流程中的具体功能的抽象。v i e w 是指面向用户的结果显示及信息输入的模块,用于触发c o n t r o l l e r 并通过 c o n t r o l l e r 来访问相应的m o d e l 。c o n t r o l l e r 是一种流程控制模块,用于接收从v i e w 来的请求,控制业务逻辑流程,并调用相应m o d e l 的处理,然后根据处理的结 果选择相应的v i e w 返回给用户。现有较成熟的m o d e l - v ie w - c o n t r o l ( m v c ) 框架有 如s p r i n gm v c 和s t r u t s 开源框架等。 2 i 2 业务逻辑层 业务逻辑层也叫e j b ( e n t e r p r i s ej a v a b e a n s ,e j b ) o o i 层或应用层,它由服务器 和组件组成。业务逻辑层用来实现各种业务逻辑功能,是应用的核心所在,在 j a v a 中常用j a v a b e a n 、w e bs e r v i c e 、e j b 等技术。业务层既要承担着事件的处理、 业务逻辑的实现等任务,同时也要承担着与数据库的交互,并进行数据的存取等 非常任务。一般某个特定业务领域需要的逻辑业务代码都由运行在业务层的e j b 来进行处理。一个e j b 从客户程序处接受数据,对数据进行处理,然后将数据 发送到企业信息系统层存储。同样,一个e j b 也可以从企业信息系统中取出数 据,并将数据送回客户程序。业务层中的e j b 要运行在容器中,容器解决了底 层的问题,如事务处理、生命周期、状态管理、多线程安全管理、资源池等。业 务层和w e b 层一起构成了应用的中间层。 对于业务层组件的调用,可以在层中利用业务代理模式以实现表现层和业务 逻辑层之间的解耦。对于此业务代理模式应满足以下个条件:业务层所有服务完 全展示给客户端,客户端可以完全介入调用;动态扩展性强,可为整个业务逻辑 层动态扩展新的功能;客户端调用业务层的代码应尽量简洁,至少是可配置的, 最大限度降低代码的耦合性。 2 1 3 企业信息系统e i s 层 企业信息系统层运行企业信息系统软件,包括企业基础设施系统,例如数据 库系统、大型机事务处理和其它遗留信息系统。从逻辑功能层次划分的广义角度 来看,j 2 e e 用于为了数据库连接需要访问企业信息系统类组件也可归类于此 7 硕七学位论文第二章j 2 e e 平台体系结构分析 层当中,称之为数据持久层。一般数据持久层位于数据源之上,隐藏访问这些数 据源的数据访问,如j d b c 。从软件工程的角度来看,数据持久层实际上是为了 解决面向对象的编程语言与传统的关系型数据库之间的矛盾而设计的一种过渡 性解决方案。数据持久层实现数据访问细节,提供业务数据的保存、更新、删除、 查询等操作,常用的技术有s p r i n gj d b c t e m p l a t e 、j d o 、t o p l i n k 、h i b e r n a t e 等。 2 2 重量级与轻量级架构比较分析 j 2 e e 架构为实现分布式( d i s t r i b u t e d ) 应用提供了出色的支持。它所具有的标 准化、业界广泛支持、分布式体系架构平台的成熟性,作为企业级应用的架构经 过多年的考验得到了广泛的应用。它具有的可伸缩性、可维护性、支持异构环境 和跨平台等特性,适应了企业信息化建设的发展需要。 但是,在用传统j 2 e e 开发应用程序时通常会遇到一些问题。比如页面中可 能会包含复杂的业务逻辑。这不仅使得页面中的代码更不易被理解,而且要重用 这些代码,就必须进行复制和粘贴操作,这对应用程序的可重用性也是非常不利 的。同时这对应用程序的可扩充性也很有限,因为页面问都包含着各种不同功能 且彼此耦合关系非常紧密,所以修改或扩充这种应用程序中包含的功能也非常困 难。传统的j 2 e e 的分布式多层架构体系( 以e j b 组件为核心的架构体系为代表) 复杂、涉及的技术多、知识点多、难于理解、学习成本比较高、难于最优设计, 使开发简单的应用系统也需要花费较多的人力、物力。 2 2 1 传统e j b 重量级架构分析 提到传统j 2 e e 架构起恐怕不得不提及e j b ,其实这里所说的“传统实际 上就是指e j b 3 0 之前的版本。引入e j b 技术是为了构建分布式组件,最初,该 技术承诺可以解决c o r b a 的所有问题并降低其复杂性l l l 】【l2 1 。的确,作为传统 j 2 e e 架构的核心,e j b 技术出来一开始解决了c o r b a 带来的不少问题,如具 有以下优点:服务器端业务逻辑可移植,可以从现有的软件组件装配出服务器端 应用程序,内置了对典型企业级系统服务的支持如分布式对象和事务处理,e j b 组件构件的应用程序可以从一个服务器到另一个服务器等。 但是,e j b 经历了几次较大的修订,并加入了许多特性,因而变得臃肿起 来。e j b 开发开始变得没起初容易,相反,随着规范的相继发布,它还变得越来 越复杂了。如此一来,它在应用开发服务中的经济竞争力和吸引力大大的减少了。 虽然有许多工具能帮助我们开发e j b ,但是开发工作依然很困难,并且远远超过 8 硕士学位论文 第二章j 2 e e 平台体系结构分析 了简单j a v a 类与j 2 e ew e b 组件的难度。由于e j b 其庞大的体积与复杂性,我们 把这种架构的形象的称之为重量级架构。e j b 为核心的重量级架构从它的复杂性 来看,其缺点可以归结如下几点: ( 1 ) e j b 是侵入式的架构,系统必须严格遵循e j b 标准。e j b 所有服务都必 须强制提供,即使系统只使用到了其中的少数几个服务,也必须付出运行所有服 务的代价。 ( 2 ) e j b 使应用变得更难部署( 复杂的部署描述符、漫长的开发部署测试周 期) 。 ( 3 ) e j b 使应用不能在容器外测试模块,使得应用变得更难测试。 ( 4 ) 容器管理的持久性基于模型,也十分复杂,不利于开发和管理。缺乏一 些基本功能如按标准方法使用数据库序列定义主键等,且十分受限。 ( 5 ) 查找和调用非常复杂。为了在应用程序中使用必须了解的每个细节。 基于传统以e j b 为核心的重量级架构上的缺陷以及考虑到本项目的特点, 在以业务需求为导向的情况下,我们优先考虑不采用e j b 的轻量级j 2 e e 体系结 构,迸而采用一些轻量级的、灵活的框架来代替传统的使用e j b 的重量级框架。 2 2 2j 2 e e 轻量级架构的优点 所谓的轻量级是和以e j b 为核心重量级的复杂框架对比而言的,轻量级框 架致力于提供最简单的框架来构筑w e b 应用系统【1 3 】。轻量级框架主要是简化的 编程模型,它旨在消除与传统j 2 e ea p i 有关的不必要的复杂性和限制。它也将 缩短应用程序的开发部署时间,这对于支持开发最佳实践( 比如说频繁单元测试) 非常重要【l 训。 轻量级架构汲取了e j b 中成功的技术,把非e j b 架构提升到一个更高的成熟 水平。使开发者能够拥有e j b 提供的结构上的优势,又摆脱了e j b 的缺陷。轻 量级框架的一个关键特征是,它不像e j b 一样是侵入式的框架,它不会强迫业 务对象遵循平台特定接1 :3 。这允许开发人员在普通旧式j a v a 对象( p o j o ) 中实现 业务逻辑,从而使编程更加方便。由于业务逻辑实现在p o j o 中,所以不再需 要将对象部署到重量级容器中去测试它,完全可以将对象放在像j u n i t 之类的简 单测试环境中【l4 1 。轻量级框架另外一个特性是,它大量采用控制反转0 0 c ) 模式。 这使开发人员不需要编写复杂的代码来执行查询、处理基础架构异常或管理连 接,就能够解决对象依赖性问题。这有助于简化代码、将业务逻辑与基础架构分 离,从而使应用程序更易于维护。 9 硕二 :学位论文第二章j 2 e e 平台体系结构分析 目前,一个逐渐成熟并步入主流的开源轻量级框架s p r i n g 己经被越来越多的 企业开发人员所接受和认同。s p r i n g 的核心要点是:支持不绑定到特定j 2 e e 服 务的可重用业务和数据访问对象。这样的对象可以在不同j 2 e e 环境、独立应 用程序、测试环境之间重用。同样,表现层的新出现的开源框架d w r 也正越来 越多的被开发人员所采用。笔者采用的正是s p r i n g 轻量级架构和d w r 架构的组 合框架,关于s p r i n g 架构和与d w r 架构的在下一节将进行详细探讨。 2 3s p r i n g 与d w r 轻量级架构分析 2 3 1s p r i n g 框架分析 s p r i n g 1 5 1 1 6 】【1 7 1 是一个服务于所有层面的轻量级应用框架,提供了b e a n 的配 置基础、面向方面编程的支持、j d b c 抽象框架、抽象事务支持等。s p r i n g 是一 个一站式的解决方案,提供了一个典型应用所需要的大部分基础架构。s p r i n g 有 分层的体系结构,既是全面的又是模块化的,如果开发者不需要的支持,就可以 不使用提供的模块,它有别于重量级的侵入式,它允许我们在任何方面选择最合 适的解决方案,而不是强制我们接受提供的全套服务,使得工程不依赖于框架。 图2 2 给出了s p r i n g 框架的一个整体概貌。 三= s p r i n g w e b = s p r i n g d a o i 一 图2 - 2s p r i n g 整体架构图 s p r i n g 从设计理念上来讲,帮助实现了真正的逻辑层和持久层的分离。它是 为解决企业应用开发的复杂性而创建的,使用基本的j a v a b e a n 来完成以前只可 能由e j b 来完成的事情。它的主要设计目标是可重用性、易测试性、简单性以 1 0 硕+ 学位论文第二章j 2 e e 平台体系结构分析 及松耦合性。s p r i n g 并不是试图同现在的方案竞争,它更愿意与像s e v l e t ,j s p , j d b c 这些标准和如s t r u t s 、d w r 等这些优秀的专业领域框架无缝地集成起 来。把各个专用框架集成一个一致的、统一的、全面的应用框架。s p r i n g 真正成 为轻量级架构的最大的原因就是面向方面编程和控制反转的设计思想的运用。 ( 1 ) s p r i n g 的面向方面编程 面向方面编程( a s p e c to r i e n t e dp r o g r a m m i n g ,a o p ) 技术【1 8 l 【1 9 1 是一种区别于传 统编程技术的崭新的程序设计技术,它解决了软件开发中一直存在的关注点的分 离问题,体现了“分而治之 的解决问题思想。其思想的核心就是分散关注,把 一个复杂的系统看作是由多个关注点来组合实现,从软件系统架构角度看,它使 开发者更好地将那些本不应该纠缠在一起的业务或功能横向关注点分离开。 由图2 2 可以看出,s p r i n g 的整体框架由c o r e 包、a o p 包、d a o 包、o r m 包、w e b 包、c o n t e x t 包、w e bm v c 包组成。c o r e 包使整个框架的基础,其它 包建立在此微内核之上【”】,通过i o c 机制灵活的装卸。s p r i n g 所有包中的灵魂就 是a o p 包,它贯穿其它包,提供面向切面拦截能力,提供相关服务。 在s p r i n ga o p 中,以实现接口的方式为优先,这可以让应用程序的组件彼 此之间的耦合度降低。a o p 在s p r i n g 框架中的使用首先提供了声明式企业级服 务,特别是提供了e j b 的替代方案。这种服务中最重要的是象声明性事务管理 这样的机制,它构建于s p r i n g 框架的事务抽象层中;其次允许用户使用自己的 方面( a s p e c t ) ,将o o p 和a o p 互补使用。s p r i n g 实现a o p 的目标不是提供极 其完善的a o p 实现,而是提供一个和s p r i n gi o c 紧密整合的a o p 实现,帮助解 决企业应用中的常见问题。 ( 2 ) s p r i n g 的控制反转 s p r i n g 框架的另外一个与其他框架不同的特色就是控制反转( i n v e r s i o no f c o n t r o l ,l o c ) b 5 】。i o c 是s p r i n g 框架的核心与基础,整个框架中所有的模块包都 是通过i o c 机制灵活装卸的。i o c 概念经常表述为好莱坞原则的:“d o n tc a l lm e , i i l lc a l ly o u 。”它的的基本概念是:不创建对象,但是描述创建它们的方式。在代 码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服 务。容器( 在s p r i n g 框架中是i o c 容器) 负责将这些联系在一起。 在面向对象设计过程中经常涉及到一个对象a 对另一个对象b 的引用,对 象a 直接引用对象b ,这样就导致了对象a 依赖于对象b 。这种依赖关系随着 系统不断的深入和需求变化,使得系统演化和维护变的越来越困难。i o c 改变这 种不利的局面,它把对象a 对对象b 的依赖反转过来让和各自独立的变化,仅 仅当a 在需要调用b 的时候通过i o c 框架将依赖关系主动注入到a 中,完成依 硕士学位论文第二章j 2 e e 平台体系结构分析 赖的传递,使得b 对a 可用,这样当对象b 改变时a 可以保持不变,这种对依 赖的控制由直接主动变为间接被动的过程大大增加了系统的灵活性、扩展性和可 维护性。 在采用i o c 场景中有三种基本的实现模式:通过接口由对象提供服务,通过 j a v a b e a n ( s e t t e r ) 方法实现,通过构造函数实现。s p r i n gi o c 框架中主要是采用了 通过j a v a b e a n ( s e t t e r ) 的实现方法。s p r i n g 设计的核心是o r g s p r i n g f r a m e w o r k b e a n s 包,它的设计目标是与j a v a b e a n 组件一起使用。这个包通常不是由用户直接使 用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 b e a n f a c t o r y 接e l ,它是工厂设计模式的实现,允许通过名称创建和检索对象。 b e a n f a c t o r y 的概念是s p r i n g 作为i o c 容器的基础,将处理事情的责任从代码转 移到了框架。s p r i n g 框架使用j a v a b e a n 属性和配置数据来指出必须设置的依赖 关系。 由此可见,使用i o c 技术可以提供以下几种优势:组件不需要在运行时间寻 找合作者,所以他们可以更简单的编写和维护;由于采用了控制关系的转移,使 得单元测试与集成测试更容易展开;大部分业务对象不依赖于i o c 容器的a p i , 这使得很容易使用遗留下来的代码,且很容易的使用对象无论在容器内或不在容 器内。 ( 3 ) s p r i n g 的事务管理 s p r i n g 提供编程的事务管理( p r o g r a m m a t i ct r a n s a c t i o nm a n a g e m e n t ) 与宣告式 的事务管理( d e c l a r a t i v et r a n s a c t i o nm a n a g e m e n t ) ,对于l o c a l 的事务管理,我们可 以使用编程方式来处理事务,传统的事务处理,例如j d b c ,可以照样撰写,而 不必作太大的变更,而且s p r i n g 提供了一些辅助类与t e m p l a t e 类如j d b c t e m p l a t e 类,可以简化传统的数据库操作与事务处理,并可以运用其例外阶层的 优点。 s p r i n g 在事务管理上可以提供一致性的模型,您可以使用宣告式的事务处理, 如此您的组件就不用介入事务处理,藉由a o p 接口入组件进行事务管理,事务 管理只需要在定义文件中作一些选项撰写,由于组件并不介入实质的事务处理, 它可以设计的更通用,而改变事务处理策略,意味着您只要改变定义档的设定, 而不用对组件作任何的变动。 藉于课题项目对数据访问的复杂度与速度要求,以及综合分析对s p r i n g 在事 务管理上面的优势,在资源管理系统事务管理层面上笔者采用了s p r i n gj d b c 抽 象框架提供的处理方法。 由上述s p r i n g 核心技术分析总结得出,s p r i n g 作为一个由多个相对独立子框 1 2 硕士学位论文第二章j 2 e e 平台体系结构分析 架组成的完整的应用框架,它可以在很多应用层面发挥作用。s p r i n g 框架作为当 前应用开发的轻量级架构首的优势是明显的: 第一,非侵入式。s p r i n g 框架并不强迫开发者遵循严格的框架标准,它既是 全面的又是模块化的,如果开发者不需要的支持,就可以不使用提供的模块。应 用对象也尽量做到了避免依赖框架。如果需要使用s p r i n g 的某个功能,不管是 实现会调接口还是直接使用框架提供的类库,应用对象只依赖于这一项功能。 第二,提供统一的配置。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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初一下册生物期中试卷及答案
- 2025至2030中国软骨症治疗行业项目调研及市场前景预测评估报告
- 华山医院神经内科护理进修
- 美的售后年终工作总结
- 2025至2030中国微创手术(MIS)设备行业项目调研及市场前景预测评估报告
- 2025至2030中国血栓前体蛋白行业调研及市场前景预测评估报告
- 离婚后子女户口迁移及父母监护权划分合同
- 生产运营分析部门工作总结
- 离婚协议书中的共同子女监护权共享与探望权协议
- 离婚房产分割及共同债权债务处理协议
- (青岛2024版)科学二年级上册2.6 春夏秋冬 课件(新教材)
- 彩虹 第一课时 课件
- DB63-T 1921-2021 交通运输专业空间数据分类与编码规范
- (完整版)铝合金门窗施工方案
- 宽带基础培训知识课件
- 人行统计制度培训课件
- Unit 2 School life单元测试卷(含答案) 2025-2026学年译林版(2024)八年级英语上册
- 2025年国家电投黄河公司毕业生招聘考试笔试试题(含答案)
- 茶叶与咖啡混合饮品创新创业项目商业计划书
- 节点评审管理办法
- 来华留学生管理办法
评论
0/150
提交评论