(计算机应用技术专业论文)软件框架集成及在商品数据库系统中的应用研究.pdf_第1页
(计算机应用技术专业论文)软件框架集成及在商品数据库系统中的应用研究.pdf_第2页
(计算机应用技术专业论文)软件框架集成及在商品数据库系统中的应用研究.pdf_第3页
(计算机应用技术专业论文)软件框架集成及在商品数据库系统中的应用研究.pdf_第4页
(计算机应用技术专业论文)软件框架集成及在商品数据库系统中的应用研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)软件框架集成及在商品数据库系统中的应用研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 j 2 e e 为构造、管理和运行可伸缩的企业级业务应用提供了一个运行平 台及一系列应用组件。j 2 e e 经过不断的发展和完善,为基于w e 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 m a t e 等框架技术;接着针对j 2 e e 架构的缺陷并结合s t r u t s 、s p r i n g 和 h i b e m a t e 各自特点,将这三种框架集成一个s s h 多层框架模型。集成框 架模型以基于m v c 模式的s t r u t s 框架模型为基础,将s t r u t s 应用中的业务 逻辑交给s p r i n g 管理,用s p r i n g 的b e a n s 完成相关类的配置;由h i b e m a t e 封装j d b c 动作,负责数据持久化相关工作。实现了一个由s t r u t s 实现表 示层、s p r i n g 实现业务逻辑层和h i b e r n a t 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 a b s t r a c t a b s t r a c t j 2 e eo f f e ra no p e r a t i o np l a t f o r ma n das e r i e so f a p p l i c a t i o ni m p l e m e n tf o r c o n s t r u c t i n g 、m a n a g i n ga n do p e r a t i n gt h es c a l a b l ee n t e r p r i s ea p p l i c a t i o n j 2 e e s u p p l yt h ep o w e r f u lt e c h n i c a ls u p p o r tf o rt h ec o m p l i c a t e de n t e r p r i s ea p p l i c a t i o n o fw e bw i t hf u r t h e rc o n s t a n td e v e l o p m e n ta n dp e r f e c t i o n h o w e v e r , b e c a u s e c o m p l e x a n dn o t v e r yg o o di nc o d er e u s ea n dt h ec o u p l i n ga s p e c t , i ti sr e l a t i v e l y d i f f i c u l tf o rt h ed e v e l o p e r sw h ol a c ko f a d e q u a t es k i l l so re x p e r i e n c e a tp r e s e n t , al o to fj 2 e eo p e ns o u r c ed e v e l o p i n gf la m e m e r g eo u tc o n s t a n t l y , o f f e rs t r o n g s u p p o r tf o ro u rd e v e l o p e r t h i sp a p e re x p l o r e st h er e l a t e dk n o w l e d g eo ft h r e em a i n s t r e a m sw e b f r a m e w o r ks t r u t s 、s p r i n ga n dh i b e r n a t ew h i c hb a s e do nj 2 e em u l t i - s t o r e y a r c h i t e c t u r e a c c o r d i n gt h e i rf e a t u r e ,w ed e s i g nt h ec o m b i n a t i o no ft h et h r e e f r a m e w o r k sw h i c hc a l l e ds s hm u l t i - s t o r e yf r a m e w o r k i n t e g r a t i o nf r a m e w o r k b a s e do ns t r u t sm v cf r a m e w o r km o d e l ,p u ts t r u t sa p p l i c a t i o ni nt h eb u s i n e s s l o g i ct ot h es p r i n gm a n a g e m e n t ,埘ms p r i n g sb e a n sc o m p l e t et h er e l a t e d c o n f i g u r a t i o n ;e n c a p s u l a t e dj d b cm o v e m e n t sb yh i b e r n a t e ,i sr e s p o n s i b l ef o r d a t ap e r s i s t e n c er e l a t e dw o r k t oa c h i e v et h ei n t e g r a t e df r a m e w o r k l i g h t w e i g h t m o d e l :s t r u t si sf r a m e w o r ko fv i e wl a y e r , s p r i n gi sf r a m e w o r ko fb u s i n e s sl o g i c l a y e r , h i b e r n a t ei sf r a m e w o r ko fp e r s i s t e n c el a y e r , w h i l eu s i n gt h i ss c h e m ef o r t h er e a l s y s t e ma n dd e v e l o p i n g ( g o o d s d a t a b a s e s y s t e m ) ,t ov e r i f y 0 1 1 1 i n t e g r a t i o nm o d e l t h eg e n e r a li d e a sa n ds t e p st h r o u g hg o o d ed a t a b a s es y s t e mi nt h e a p p l i c a t i o no fi n t e g r a t e df r a m e w o r ks h o wt h a tt h ef r a m e w o r ko fi n t e g r a t e d a p p l i c a t i o n sc a ni m p r o v et h ee f f i c i e n c yo fs y s t e md e v e l o p m e n t ,w h i l es a t i s f y i n g s y s t e mr e q u i r e m e n t so fc a l a b i l i t y , m a i n t a i n a b i l i t y , p o r t a b i l i t ya n d r e u s e k e y w o r d :j 2 e ea r c h i t e c t u r e ,l i g h t w e i g h tf r a m e w o r k , s t r u t s ,s p r i n g , h i b e r n a t e i i i 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外, 本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对 本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:学亟虚 谢吝年歹月z 7 日 学位论文版权使用授权书 本学位论文作者完全了解我校有关保留、使用学位论文的规定, 即:我校有权保留并向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅。本人授权武汉工程大学研究生处可以将本学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或扫描等复制手段保存和汇编本学位论文。 保密0 ,在年解密后适用本授权书。 本论文属于 不保密o 。 ( 请在以上方框内打“4 ”) 学位论文作者签名:季c 羔筐 纠年s 月垆 指导教师签名:彳可魂巧 渺幽7 日 第1 章绪论 1 1 选题背景和意义 第1 章绪论 选题背景 随着信息化社会的到来和世界全球网上商品交易业务的不断完善和 发展,以i n t e m e t 为基础的电子商务和商品贸易正在世界范围内展开。在 欧美,许多大规模跨领域的以制造商、批发商和零售商为主导的商品贸易 及信息共有化系统已经进入实用化阶段,亚洲各国也正在积极朝这方面发 展。 传统的商品交换模式是依赖于人工服务,商品交换像传递接力一样需 要用户手工操作,容易出现传递错误的、不可靠的数据信息,降低了商品 交换效率。伴随着信息技术特别是网络技术的发展,在网上购物逐渐成为 一种时尚。 商品数据库系统是以制造商、批发商和零售商的使用需求为前提,结 合商品信息共有化的现状,在不偏离国际标准的情况下,进行实际的商品 共有。该系统不仅提高了信息交换的效率和同步,也使商品信息交换不受 企业规模的限制。商品数据库系统的优势是使制造商、批发商和零售商之 间实现商品的无纸化办公,通过i n t e r n e t 就可以实时的获得商品,使商品 数据的正确性和实时性得以提高,加快了实现商品流通业务的效率。 随着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 a v a 2 平台 企业版) 的发展和计算机软件开发技术的日益成熟,为提高软件开发的效 率和降低开发难度,更多开发者在开发时选用j 2 e e 多层体系结构模型,并 将轻量级框架应用于基于j 2 e e 的软件开发中。在三层体系结构模型中,主 要包括以下三个开发层次:提供用户界面的显示和与用户所进行交互操作 的表示层;进行核心业务逻辑处理的业务逻辑层;用于对象持久化操作的 持久层。本文以实现商品数据库系统为例,分析了一种如何集成当今流行 的基于j 2 e e 轻量级开源框架( s t r u t s 、h i b e r n a t e 及s p r i n g ) 开发基于b s 结 武汉工程大学硕士学位论文 构的大型w e 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 s h ) 架构是基于j a v a 平台,这种 框架将组件进行模块化,具有灵活性和重用性的优点,同时简化了基于 m v c 的w e b 应用程序的开发。对于商品数据系统来说,可以解决其业务灵 活、跨越地域广、结算复杂等问题,所以将s s h 架构应用于商品数据库系 统,是非常合理和重要的技术选择。本文以商品数据库系统为例,研究了基 于s s h 架构下的商品数据库系统中的设计与实施的问题,有深远的意义。 1 2 研究现状 软件技术发展到今天,随着软件规模不断扩大和复杂度日渐升级,开 发人员面临的问题也越来越多。主要体现在设计者或开发者如何将新的设 计或者开发建立在以往工作基础上,复用以往成功的案例。因此,人们越 来越意识到软件重用技术的重要性,设计模式和框架技术应运而生【l 】o 开 源软件的兴起,使得框架更是层出不穷。 在j 2 e e 平台下 2 1 ,e j b 是分布式业务应用的标准j a v a 架构,它将很 多底层技术封装在特别的e j b 服务器中。e j b 是j 2 e e 的“核心”。e j b 通 常被认为是一种重量级的高侵入性的框架,重量级和高侵入性使e j b 开发 2 第1 章绪论 与当前敏捷开发的需求背道而驰。 轻量级架构是相对于e j b 重量级架构而言的,在开发中更倾向鼓励 开发者使用轻量级的简单j a v a 对象( p l a i no l dj a v ao b j e c t ,p o j o ) 编程。轻 量级架构在继承传统的j 2 e e 多层架构的基础上,结合p o j o 和一些开源 的框架来提供整体的解决方案【3 】。目前,也存在一些基于j a v a 轻量级的框 架的重要技术原理: 1 ) p o j o 类来实现数据访问和业务逻辑:该类一个特点是使用i o c 容 器,通过使用i o c 模式,所有的p o j o 可以实现最大化的松散耦合。 2 ) 控制反转i o c ( i n v e r s eo f c o n t r 0 1 ) 策略:降低了代码对容器的依赖性。 3 ) 依赖注入( d e p e n d e n e yi n j e e t i o n ) :目前最流行的i o c 类型,使用 轻量化的框架容器将服务或其他对象注入到p o j o ,让容器自动决定对象 间的依赖关系。 4 ) 面向方面的编程( 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 ) - a o p 的 目标是将横切性的问题以一种更加通过的方式模块化,从而提升程序的模 块化程度,很好的避免代码的重复。 由于轻量级的框架架构简单,功能强大,提供了代码的复用,而且不 具侵犯性,易于测试,因此基于j 2 e e 的轻量级框架目前发展迅速,已成 为j 2 e e 技术发展的推动力。但相对于e j b 来说,j 2 e e 仍有其自身的不足, 比如,许多轻量级框架由于是开源框架,所以没有形成统一的标准;由于 框架模型技术形成比较晚,技术还不够成熟;各个框架在解决用户需求方 面也并不是那么完美。 1 3 研究内容 轻量级解决方案对j 2 e e 多层架构进行了较大的改进和突破,轻量级 框架的发展已成为下一代j 2 e e 技术架构的基础。本文主要是针对不同轻 量级框架的特点,结合p o j o 以及j 2 e e 多层架构体系结构,探索出一种 基于轻量级架构开发企业应用的一般模式。主要研究目标是采用分层技术, 武汉工程大学硕士学位论文 将复杂企业应用系统分层,针对每一层的特点与职责,合理集成具有特定 功能的轻量级开源框架s s h 模型,从而实现一个完整高效的面向企业级应 用的开发框架。 本文的研究内容主要包括以下几个方面: 1 ) 分析了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 三种框架的特点及核心技术进行深入研究。 2 ) 详细分析了三种框架集成的可能性及具体集成过程,包括集成后 的工作流程,集成模型中配置文件的设置及集成后的优点。根据应用系统 自身的特点和s p r i n g 框架的无侵入与易集成的优势,业务逻辑引入s p r i n g 负责主要业务功能处理,表示层引入s t r u t s 负责用户与系统交互,持久层 引入h i b e r n a t e 实现o 瓜映射功能。极力打造一种松耦合、高可靠性、开 发周期短以及节约开发成本的框架集成模型。 3 ) 将集成后技术应用于实际的系统开发( 商品数据库系统) 中,以 验证我们的模型。 1 4 论文章节安排 全文共分5 章,各章内容安排如下: 第1 章是绪论部分,主要介绍了研究背景和意义、研究现状和研究内 容以及章节安排。 第2 章是相关技术介绍部分,主要分析了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 三种框架) 的体系结构及核心技术。 第3 章提出了一种集成s t r u t s 、s p r i n g 和h i b e r n a t e 的轻量级解决方案。 并分析了该集成框架的模型、工作流程、集成技术以及集成后优点。 第4 章以商品数据库系统的其中一个模块为例,具体分析了该模块在 集成过程中的具体实现和运行结果。 第5 章对全文进行总结,并提出对以后研究工作的期望。 4 第2 章j 2 e e 介绍及框架技术分析 第2 章j 2 e e 介绍及框架技术分析 2 1j 2 e e 多层框架体系结构 框架技术简介 框架( f r a m e w o r k ) 是可重用的、半成品的应用程序,是整个或部分 系统的可重用设计1 4 ,表现为一组抽象构件及构件实例间交互的方法。可 以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐 明了整个设计、协作构件之间的依赖关系、责任分配和控制流程。构件通 常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码 重用,部分设计重用。框架不是软件体系结构,体系结构确定了系统整体 结构、层次划分,不同部分之间的协作等设计考虑,而框架比较具体。一 般来说,框架是体系结构中每个模块中更细小的结构,例如,如果需要表 示w - e b 技术,就会用到m v c 框架。 框架强调的是软件的设计重用性和系统的可扩充性,以便缩短大型应 用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重 用技术比较,应用框架更注重于面向专业领域的软件重用。框架具有领域 相关性,构件根据框架进行复合而生成可运行的系统,同样它也是一个系 统的一个核心元素,是系统中最本质的部分。系统的各个组成部分正是通 过框架所描绘的方式协同工作,共同完成系统的功能,从而实现了一个完 整的系统。总的来说框架具有以下优点: 1 ) 重用性:框架的最大好处就是重用。框架是面向对象系统获得的 最大重用方式,一个大的应用系统往往可能由多层相互协作的框架组成。 框架能重用设计,它提供可重用的抽象算法以及高层设计。框架还可以进 行重用分析,所有的人员若按照框架的思想来分析事务。框架组件的复用 可以大规模地提高软件的开发效率、软件质量、软件可靠性和协同性,并 且提高了核心设计的质量。 武汉工程大学硕士学位论文 2 ) 扩展性:框架具有灵活的扩展性,根据某个领域内的框架,开发 人员可以在此框架上进行“二次开发 或者更加具体的开发。通过提供外 在的方法,来扩展已有的接口,框架技术加强了可扩展性,不仅可以增加 领域内的软件结构一致性,建立更加开放的系统,还可以增加代码的重用, 大大提高了软件生产效率和质量。 3 ) 系统结构清晰,易于开发和设计。使w e b 应用具有层次结构清晰, 易于分工协作。 分析了框架之后,下面来看一下j 2 e e 多层软件框架体系结构相关方 面理论技术知识。 软件体系结构及其发展 一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软 件构件的外部的可见特性及其相互关系【5 】【6 】。软件体系结构的发展经过了下 面三个过程: 1 ) 集中式体系结构。它采用分时调度的方法来同时为连接的多个终 端用户提供服务。但随着计算机硬件和计算机网络技术的发展和计算机软 件的规模与复杂度不断增长,这种模式的局限性越来越明显,如硬件投资 高、资源利用率低、可移植性低及不够灵活。 2 ) 两层分布式体系结构。在传统的两层应用程序中,一部分负责数 据输入和业务逻辑处理,一部分负责数据持久存储。两层分布式体系结构 克服了集中式体系结构的缺点,为局域网内并发用户提供了一个不错的方 案。但是当用户增多时,性能开始恶化。在客户栅服务器计算模式发展的 初期,普遍采用的软件体系结构是两层模型。 3 ) 三层和多层分布式体系结构。为了解决两层体系结构中的问题, 软件业界开发了三层体系结构,即应用程序被分解成三个不同的逻辑层, 每层都有一组定义好的接口。三层体系结构如图2 1 。客户层( c l i e n t t i e r ) 是应用系统的用户界面,是用户接口和请求的发出地。服务器层( s e r v e rt i e r ) 也称业务层,控制着整个业务系统的处理流程。典型应用是w e b 服务器和 6 第2 章j 2 e e 介绍及框架技术分析 运行业务代码的应用程序服务器。数据层( d a t at i e r ) 包含的是应用程序需要 的数据,典型应用是关系型数据库和其他后端( b a c k - e n d ) 数据资源。 ,t 口_ 凹2 1 三层体系结构示震幽 j 2 e e 多层体系结构 j 2 e e 降低了开发多层应用程序的费用和复杂性,同时对现有应用程序 的继承提供强有利的支持。它与传统的互联网应用程序模型相比,有着不 可比拟的优势。 在传统模式中,由于客户担当过多的角色而显得臃肿,在这种模式中, 第一次部署时候容易,但是难于升级或改进,伸展性也不理想,而且常基 于某种专有协议( 通常是某种数据库协议) ,它使得重用业务逻辑( 业务过程) 和界面逻辑非常困难。 在j 2 e e 基于分布式的多层应用模型中,应用逻辑按功能划分为不同的 组件,各个应用组件根据他们所在的层分布在不同的机器上。j 2 e e 多层应用 模型设计的目的是为了解决两层模式c s 模式( 客户端服务器) 难于升级、 可伸展性差等的弊端,而且一个多层化应用能够为每种不同的服务提供一 个独立的层嗍网。 j 2 e e 分步式多层体系结构的应用模型一般是: 1 ) 运行在客户端机器上的客户层( c l i e n t t i e r ) :在w 曲应用中,客户 端机器运行的浏览器负责实现用户界面; 2 ) 运行在服务器上的w e b 层( w e bt i e r ) :完成某些动态内容显示, 用来处理与用户的交互; 武汉工程大学硕士学位论文 3 ) 运行在服务器上的业务逻辑层( b u s i n e s st i e r ) ,业务层的实现多 为多个e j b 组件之间的共同协作; 4 ) 运行在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 ) 服务器上的企业信息系 统层:为系统提供底层数据,通常由多个数据库组成。 目前,为提高j 2 e e 多层架构的可重用性,比较普遍的技术是在基于 j 2 e e 的多层架构上使用已经开发出的框架技术,这些框架在提高了开发人 员的效率的同时,也减轻了开发人员的负担。开发者可以将不同层上的框 架集成到一起,从而从繁杂的底层编码中解脱出来。 在构建w e b 应用时,用户请求的处理、业务逻辑处理以及数据的持久 化是必须仔细考虑的因素,而且也是大部分应用必须具备且较为复杂的职 责。因此日前针对这三方面人们开发了很多框架,如图2 2 所示: 图2 2j 2 e 霸g 构上b 9 框架 1 ) 应用于j 2 e ew e b 表示层的框架【1 0 1 s t r u t s 框架:是目前非常流行的一种企业级w e b 开发框架,是v _ a p a c h e 软件组织负责开发的一个开源项目。s t r u t s 主要是采用s e r v l e t c - 和j s p 技术来实现,把s e r v l e t 、j s p 、自定义标签和信息资源集成到一个 统一的框架中,关注于c o n t r o l l e r 流程,开发人员利用其进行开发 时不用再自己编码实现全套m v c 模式,极大的节省了时间。 t u r b i n e 框架:这是_ a p a c h e 开发的基于s e r v l e t 开源项目。它的速度 一般比较快,基于s e r v i c e 的方式提供各种服务。 c o c o o n 框架:这p v _ a p a c h e 的开源项目。基于x m l 和x s p 技术,其 中,( x s p 是在x m l 静态文档中加入j a v a 程序段后形成的动态江l 文档) 。特点是可以与多种数据源交互,包括文件系统,数据库, 8 第2 章j 2 e e 介绍及框架技术分析 l d a p , x m l 资源库,网络数据源等。 j a t o 框架:这是s u n 推出的一个商业性框架,主要应用技术是j s p , t a 酉i b ,j a v a b e a n 等。它是一个成熟的、强大的、基于j 2 e e 标准的 面向于开发w e b 应用程序的应用框架。j a t o 可适用于中、大及超 大规模的w e b 应用。但是它也不是一个企业层的应用框架,也就 是说它不会直接提供创建e j b 、w e bs e r v i c e 等企业级组件的方法, 但用它可以构造出访问企业层组件的客户应用。 2 ) 应用于业务层的框架 s p r i n g 框架:s p r i n g 是一个服务于所有层面的应用框架,具有维护 容易、分层清楚、速度快、代码少、支持对象关系映射( 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 ) 技术与a o p 概念等优点。s p r i n g 带来的好处有面向接口的编程,业务对象的依赖注入,一致的数 据存取框架和声明式的事务处理,统一的配置文件等,更重要的 是s p r i n g 既是全面的又是模块化的,s p r i n g 有分层的体系结构,这 意味着能选择仅仅使用它任何一个独立的部分,而它的架构又是 内部一致的。 w a f 框架:w a f 是w e b a p p l a t i o nf r a m e w o r k 的简称,是s u n 蓝皮 书例子程序中提出的应用框架。实现m v c 和其他良好的设计模式。 p i c o c o n t a i n e r :p i c o c o n t a i n e r 也是一个基于反转控制脏入依赖的业 务逻辑层框架,该框架有效的管理业务逻辑对象的关系以及生命 周期,使开发人员写出高效的易于测试和维护的代码。 3 ) 应用于数据持久层的框架主要有: h i b e r n a t e 框架:h i b e r n a t e 是一个面向j a v 稠:境的对象关系数据库 映射工具。它不仅仅管理j a v a 类到数据库表的映射,还提供数据查 询和获取数据的方法,可以大幅度减少开发时人工使用s q l 和 j d b c 处理数据的时间。h i b e r n a t e 的目标是实现开发者关于数据持 久化相关方面的编程任务。 9 武汉工程大学硕士学位论文 l b a t i s :i b a t i s 是一个功能强大实用的s q l m a p - v 具,不同于其它 o r m i 具( h i b e r n a t e ) ,它是将s q l 语句映射成j a v a 对象。i b a t i s 以 s q l 开发的工作量和数据库移植性上的让步,为系统设计提供了 更大的自由空间。有i b a t i s 代码生成的工具,可以根据d d l 自动生 成i b a t i s 代码,能减少很多工作量。 j d o :j d o 是面向大型信息系统的一个j a v a 灵j 象持久化方案。j d o 是一个通用持久性框架,潜在地可以处理任何类型的数据源。 3 ) j 2 e e 的特点 j 2 e e 平台包含了一整套开发基于组件的多层的企业级应用的规范,也 就是为各种不同的技术定义一个j a v a 的规范,使这些不同的技术结合起来, 在j a v a 平台上构建强壮的企业级应用。从这一点来看,j 2 e e 这个概念应该 是涵盖j 2 m e 和j 2 s e 的。 j 2 e e 不仅巩固了标准版本中的许多优点,例如“w r i t eo n c e , r u n a n y w h e r e ”的特性【1 1 1 ,还提供了在网络应用中保护数据的安全模式,并提 供了对一些流行技术( 如e j b ,s e r v l e t 及以l ) 的全面支持。其特点是: 1 ) 安全性:j 2 e e 有良好的安全控制和状态控制机制,这使得整个应 用具有统一的状态控制规则,这样也可以使电子商务的开发更加简单可 靠,为客户提供更好的服务,不会让用户进入到不该进入的页面而引起状 态的混乱,增加了系统的安全性。 2 ) 可移植性:j a v a 是一个跨平台的语言,在任何平台上,只要有j v l v i , 就可以执行j a v a 程序。j a v a 语言的这种特点使j 2 e e 具有很好的可移植性。 3 ) 面向对象的编程语言:j 2 e e 平台是建立在j a v a 语言基础上的,j a v a 是一种面向对象语言,具有丰富的数据类型和强大的功能。面向对象的设 计方法不但可以设计复杂的系统,还可以使w e b 应用程序具有良好的扩展 性和维护性,深受w e b 开发人员的欢迎。 4 ) 多层体系结构:层次分工明确,结构清晰及维护成本低。 j 2 e e 多层框架的利弊 1 0 第2 章j 2 e e 介绍及框架技术分析 目前,j 2 e e 多层体系架构上已经开发出了很多框架,开发者可以将不 同层上的框架集成到一起,这大大减轻了开发人员的负担,提高了开发效 率,也能够让开发人员从繁杂的底层编码中解脱出来。 分层架构模式把应用系统组织成一个层次结构分明的系统,每一层为 上层服务,同时也作为下层的客户端( 使用下层的功能为本层服务) 。通过 这种分层思想,允许每层用不同的方法实现,因此为软件重用提供了强大的 支持,同时也有利于系统以后的维护和扩展。 分层架构模式是最常用的软件体系架构模式,该模式有以下优点: 1 ) 层次的复用性。每个层次都有很好的抽象接口,有良好的复用性。 2 ) 支持基于抽象程度递增的系统设计,这种设计易于把复杂系统按 递增的步骤进行分解,使系统易于模块化。 3 ) 支持功能增强,因为每一层至多和相邻的上下层交互,因此,功 能的改变最多影响相邻的上下层。 4 ) 可替换性,独立的层次设计很容易被功能相同的模块替换。 同时,多层框架也有它不足的一面。有时,一些低效率分层架构因为 高层过分依赖底层的服务,必须穿过许多中间层进行数据的传送,影响了 开发效率;有些分层架构开发部署也比较复杂。从分层后开发项目的效率 和代码的复杂度来看,j e e e 框架的分层架构是利大于弊的。 2 2m v c 设计模式和s t r u t s 框架 2 2 1m v c 模式研究 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 首先被应用在s m a l l t a l k 8 0 环境中,现在随着网路的飞速发展,m v c 模式在w e b 应用开发中也得到了广泛的应用。这样就把一个应用程序分为 m o d e l ( 模型) 、v i e w ( 视图) 和c o n t r o l l e r ( 控制器) 三个层次: 视图( v i e w ) :是模型的表示,提供用户交互界面。视图向用户显示 武汉工程大学硕士学位论文 相关的数据,并能接收用户的输入数据,当模型状态发生变化时,视图应 该得到通知,以便更新。 模型( m o d e l ) :就是业务流程、状态的处理以及业务规则的制定。模 型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说 舢c 的主体部分。 控制器( c o n t r o l l e r ) :可以理解为接受来自于用户的请求,将模型与 视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它 清楚地告诉开发者,选择什么样的模型,选择什么样的视图,可以完成什 么样的用户请求。一个模型可能对应多个视图,一个视图可能对应多个模 型。它们分别担负不同的任务,m v c 设计模式处理流程如图2 3 所示【1 2 】: 图2 3m v c 设计模式处理流程图 m v c 的处理流程可以描述为:首先由控制器接收客户的请求,并决定 应该调用哪个视图进行显示或哪个模型来进行业务处理,如果用户请求为 某个视图,直接将视图显示给用户,如果请求为调用某个模型,则模型利 用业务逻辑来处理用户的请求,最后由控制器调用相应的视图,并返回更 1 2 第2 章j 2 e e 介绍及框架技术分析 新后数据,通过表示层将结果呈现给用户。 如果将m v c 运用n 4 , 型应用程序中,会给开发人员带来额外的工作 量,增加应用程序的复杂性,因此不适合用m v c 模式开发小型应用系统程 序。对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,引 入m v c 架构模式将会使软件在健壮性、代码重用和结构优化方面进入一个 新的台阶。尽管在最初构建框架时会花费一定的工作,但从长远的角度来 看,它会大大提高后期软件开发的效率和可维护性。 2 2 2s t r u t s 框架及流程分析 s t r u t s 是一个免费的、开源的w e b 层应用框架,它是m v c 设计模式 具体实现,为开发人员提供强壮的、可重用的、可扩展的应用系统开发框 架,减少了开发者运用m v c 设计w e b 应用的时间,提高开发效率,缩短 开发周期。 s t r u t s 框架分析 s t r u t 提供了对开发m v c 系统的底层支持,它采用的主要技术是 s e r v l e t 、j s p 和c u s t o mt a g l i b r a r y 。作为一个m v c 的框架,s t r u t s 继承了 m v c 设计模式的所有特性和优点,对m o d e l 、v i e w 和c o n t r o l l e r 都提供 了对应的实现组件,s t r u t s 实现的m v c 框架图如图2 4 所示: 毕,。、 1 ( 控制器) k v b r o w s e ri - 勰1 | 扩a j a v a b e a n e ,b i 。( 浏览器) r ( 模型) r 1 ( 视图) ix 触i o l l7 图2 4 s t r u t s 实现的m v c 框架 由上图可知,s t r u t s 应用框架按照m v c 模式的设计思想划分为三个组 武汉工程大学硕士学位论文 成部分,对应上面的框架图【1 2 1 ,下面对三个组成部分进行介绍。 1 ) 控制器( c o n t r o l l e r ) :控制器从客户端接受请求,并且选择执行相应 的业务逻辑,然后把响应结果送回到客户端。 控制器由a c t i o n s e r v l e t 类和a c t i o n 类来实现。a c t i o n s e r v l e t 是一个通 用的控制组件,主要负责接受用户请求信息。这个控制组件提供了处理所 有发送到s t r u t s 的h 兀p 请求的入口点。它截取和分发这些请求到相应的 动作类( 这些动作类都是a c t i o n 类的子类) 。a c t i o n s e r v l e t 根据配置文件 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 本身也可以完成一些实际的业务逻辑。对 于大型的项目来说,为了将请求与业务逻辑分开,a c t i o n 充当用户请求和 业务逻辑之间的适配器( a d a p t o r ) ,根据用户的请求调用相关的业务逻辑 对象。a c t i o n 没有实现应用程序的业务逻辑,应用程序的业务逻辑是由 j a v a b e a n 或者e j b 来完成的,a c t i o n 类只侧重于控制应用程序的流程。这 样可以提高应用程序的灵活性和可重用性。 2 ) 模型( m o d e l ) :模型通常以一个或多个j a v ab e a n 的形式存在,用来 表示应用程序的状态和业务逻辑。这些b e a n 分为三类:a c t i o nf o r m 、 a c t i o n 、j a v a b e a n 或e j b 。a c t i o nf o r m 通常被称之为f o r m b e a n ,封装了 来自于c l i e n t 的用户请求信息,如表单信息。开发者可以利用它派生子类 对象,利用它和s t r u t s 提供的自定义标签库结合可以实现对客户端的表单 数据的良好封装和支持,a c t i o n 处理器对象可以直接对它进行读写。通过 a c t i o n f o r m 组件对象实现了对v i e w 和m o d e l 之间交互的支持。s t r u t s 通常建议使用一组j a v a b e a n 表示系统的内部状态,根据系统的复杂度也 可以使用像e n t i t ye j b 和s e s s i o ne j b 等组件来实现系统状态。s t r u t s 建 议在实现时把“做什么 ( a c t i o n ) 和“如何做”( 业务逻辑) 分离。这样 可以实现业务逻辑的重用。 3 ) 视图( v i e w ) :主要由j s p 文件生成页面来完成视图,在j s p 文件 1 4 第2 章j 2 e e 介绍及框架技术分析 中没有业务逻辑和模型信息,只有标签,这些标签可以是标准的j s p 标签 或客户自定义标签。s t r u t s 提供的自定义标签可以和系统的m o d e l 部分进 行完美的交互,通过使用标签创建的j s p 表单,可以实现和m o d e l 部分中 的a c t i o n f o r m 的映射,完成对用户数据的封装。 a c t i o n f o r m b e a n 属于视图模块,也是一种j a v a b e a n ,s t r u t s 利用 a c t i o n f o r m b e a n 来进行视图和控制器之间表单数据的传递,它的过程是这 样的:s t r u t s 将用户输入的表单数据保存在a c t i o n f o r mb e a n 中,然后 a c t i o n f o r mb e a n 把数据信息传递给控制器,控制器可以修改a c t i o n f o r m b e a n 中的数据,j s p 文件使用s t r u t s 标签读取修改后的a c t i o n f o r m b e a n 的 信息,重新设置页面显示。 工作流程分析 下面来分析一下s t r u t s 框架的工作流程。对于采用s t r u t s 框架的w e b 应用程序,在w e b 应用启动时s t r u t s 框架就会加载并初始化a c t i o n s e r v l e t , a c t i o n s e r v l e t 从s t r u t s c o n f i g x m l 中读取配置信息,并把配置信息存放到各 种配置对象中。当接受到用户请求时,执行以下流程【1 3 1 ,如图2 5 所示: 1 ) 检索和用户请求匹配的a c t i o n m a p p i n g 对象,若不存在,返回用户 请求路径无效的信息。 2 ) 若a c t i o n f o r m 对象不存在,则新建一个,并把客户提交的表单数 据保存到该对象中。 3 ) 根据配置信息决定是否需要表单验证。若需要验证,则调用 a c t i o n f o r m 对象中的v a l i d a t e 0 方法。 4 ) 如果a c t i o n f o r m 的v a l i d a t e 0 方法返回n u l l 或返回一个不包含 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证成功;返回包含一个 或多个a c t i o n e r r o r s 的a c t i o n e r r o r s 对象,就表示表单验证失败。此时, a c t i o n s e r v l e t 将直接把请求转发给客户提交表单的j s p 组件,不再创建 a c t i o n 对象并调用a c t i o n 的e x e c u t e o 方法。 5 ) a c t i o n s e r v l e t 根据配置文件信息决定将请求转发给哪个a c t i o n 。 武汉工程大学硕士学位论文 a c t i o n s e r v l

温馨提示

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

评论

0/150

提交评论