(计算机应用技术专业论文)基于松散耦合的web框架的应用研究.pdf_第1页
(计算机应用技术专业论文)基于松散耦合的web框架的应用研究.pdf_第2页
(计算机应用技术专业论文)基于松散耦合的web框架的应用研究.pdf_第3页
(计算机应用技术专业论文)基于松散耦合的web框架的应用研究.pdf_第4页
(计算机应用技术专业论文)基于松散耦合的web框架的应用研究.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机应用技术专业论文)基于松散耦合的web框架的应用研究.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 随着i n t e r n e t 技术和企业信息化建设的发展,构建基于w e b 的应用系统的需 求越来越复杂,开发周期越来越紧迫,同时对系统的稳定性、扩展性和可维护 性要求也越来越高。因此一种好的设计模式,一个好的可复用的系统框架设计 成为提高软件开发效率和开发质量的关键。 文章深入研究了m v c 设计模式和三大主流开源框架技术。m v c 设计模式 分离了业务逻辑和数据表现,而s t r u t s 框架全面体现了m v c 设计思想,减轻了 构建多层w e b 应用的负担。s p r i n g 是一种多层的j 2 e e 应用轻量级框架,它使用 依赖注入的设计原理,可以动态地使系统主要组件之问的耦合变松散。h i b e r n a t e 是个开源的持久层框架,它封装了j d b c 动作,以优良的设计大大提高了数据 库访问层的开发效率,并且通过对数据访问中各种资源和数据的缓存调度,实 现了更佳的性能,从而全面减轻了数据库开发的复杂度,使系统具有更好的性 能和可移植性。 通过具体分析各个框架在w e b 应用的不同层次上所发挥的作用,文章提出 一种集成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 t r u t s ,业务逻辑层用s p r i n g ,丽数据持久层采用h i b e r n a t e ,即将s t r u t s 应用中 的业务逻辑交给s p r i n g 管理,相关类用s p r i n g 的b e a n s 配置完成,由s p r i n g 管 理与表现层的控制器及更下层的数据访问对象( d a t a a c c e s so b j e c t ) 对象的关系, 由h i b e r n a t e 负责数据的持久化。 最后文章结合一个电子政务子系统的实际开发,详细论述了组合框架在具体 应用中的实现过程,验证了这一整合策略的可行性,以及对系统可移植性、可 维护性和性能的优化。 总之,组合框架的运用对于复杂w e b 应用系统开发是有其理论意义和实用 价值的。 关键牢:框架,设讨模式,s t m 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 w i t ht h ei n c r e a s i n ge x t e n s i o no fi n t e r n e ta n de n t e r p r i s ei n f o r m a t i z a t i o n ,t h e r e h a v eb e e ng r e a t e rd e m a n d sf o ra p p l i c a t i o ns y s t e m sb a s e do nw e bt om e e tm o r e c o m p l i c a t e dr e q u i r e m e n t s ,s h o r t e rr & d t i m ec y c l ea sw e l la sh i g h e rs y s t e ms t a b i l i t y , e x p a n s i b i l i t y , a n dm a i n t a i n a b i l i t y s oab e t t e rd e s i g np a t t e r na n dar e u s a b l es y s t e m f r a m e w o r kh a v eb e e nt h ek e yi s s u eo fi m p r o v i n gt h e e f f i c i e n c ya n dq u a l i t yo f s o f t w a r ed e v e l o p m e n t t h i st h e s i sd i dd e e p l yr e s e a r c ho nm v c d e s i g np a t t e r na n dt h e r ep o p u l a ro p e n s o u r c ef l a m e st h a tm v c d e s i g np a t t e r ns e p a r a t eb u s i n e s sl o g i ca n dt h ew a yo fd a t a p r e s e n t a t i o n ,a n ds t r u t sw h i c hi m p l e m e n t sm v cp a t t e r nl e s s e nt h eb u r d e no f b u i l d i n g m u l t i - t i e rw e ba p p l i c a t i o n s p r i n gi s am u l t i t i e rj 2 e el i g h t w e i g h tf r a m e w o r ki t i s d e s i g n e dw i t hd e p e n d e n c yi n j e c t i o na n dc a nm a k em a i nc o m p o n e n tl o o s ec o u p l i n g d y n a m i c a l l yh i b e r n a t ei sa no p e ns o u r c ep e r s i s t e n c ef r a m e w o r kw h i c hi se n c a p s u l a t e j d b ca c t si te n h a n c e st h e e f f i c i e n c yo fd a t a a c c e s sa n d g e t s m u c hb e t t e r p e r f o r m a n c eb yc a c h em e c h a n i s m ,i na d d i t i o n ,i tr e d u c e st h ec o m p l e x i t yo f d e v e l o p i n gd a t a b a s ea n dm a k e ss y s t e mp o r t a b l e b ym e a n so fa n a l y z i n ge a c hf r a m e w o r k sf u n c t i o ni nw e ba p p l i c a t i o nl a y e r , t h i s t h e s i sp u tf o r w a r dan - t i e rs y s t e m sm o d e lw h i c hi si n t e g r a t e dw i t hs t r u t s ,s p r i n ga n d h i b e r n a t e :s t r u t sf o rt h e p r e s e n t a t i o nl a y e r , s p r i n gf o rt h eb u s i n e s sl a y e r , a n d h i b e r n a t ef o rt h ep e r s i s t e n tl a y e r t h ea r c h i t e c t u r eh a n d sb u s i n e s sl o g i co fs t r u t st o s p r i n g ;u t i l i z eb e a n sc o n f i g u r a t i o nt om a n a g et h er e l a t e dc l a s s e s ;m a n a g eo b j e c t s r e l a t i o no fb e t w e e nc o n t r o l l e ra n dd a t aa c c e s so b j e c tt h r o u g hs p r i n ga n dm a k ed a t a p e r s i s t e n c eb yh i b e r n a t e f i n a l l y , a ne g o v e r n m e n tp r o j e c ti si m p l e m e n t e db yt h ea p p l i c a t i o no fd e s i g n e d a r c h i t e c t u r et h er e s u l ts h o w st h ef e a s i b i l i t yo ft h ei n t e g r a t e df l a m et a c t i c ,a n dt h e o p t i m i z a t i o nf o rt h ep o r t a b i l i t y , m a i n t a i n a b i l i t ya n dp e r f o r m a n c e i naw o r d ,t h eu s eo fc o m b i n a f i v ef r a m e w o r kh a st h e o e 2m e a n i n ga n dp r a c t i c a lv a l u et o c o m p l i c a t e d w e bs y s t e m d e v e l o p m e n t k e yw o r d s :f r a m e w o r k , d e s i g np a t t i n g , s l r u t s , s p 曲_ g ,h b 碰电c o m b i n a t i v ef r a m e w o r k 武汉理工大学硕士学位论文 第1 章绪论 随着软件系统的复杂程度增加,软件系统的架构( a r c h i t e c t u r e ) 设计显得 越来越重要。软件系统的架构是其从整体到部分的最高层次的划分,它确定了 系统整体结构、层次划分,不同部分之间的协作等。工业化的软件复用已经从 通用的类库进化到了面向领域的应用框架【1 】。框架是软件系统的设计、开发过程 中的一个概念,它是可重用的、半完成的应用程序,可以用来产生专门的定制 程序,它强调对已完成的设计、代码的重复使用,并且一个框架主要适用于实 现某一特定类型的软件系统 2 1 。框架复用可大大提高软件的开发效率,保证软件 质量。 如何在众多的框架中选择建立适合企业应用的架构,并且怎样让各个应用 层无缝连接? 如何整合框架以便让各个层以一种松散耦合的方式彼此作用而不 用考虑底层的技术细节? 这给软件人员提出了挑战。 1 1 研究背景 2 0 世纪6 0 年代的软件危机使得人们开始重视软件工程的研究。起初,人们 把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、 越来越复杂,整个系统的结构和规格说明也显得越来越重要。面对日益复杂的 软件系统,人们开始认识到,要真正实现软件的工业化生产方式,达到软件产 业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径,因此有 了设计模式和框架的迫切需求。 设计模式就是一个常用的方案,而框架则是项目软件开发过程中提取特定领 域软件的共性部分,它是由一组紧密关联的c l a s s e s ( 类) 组成,强调类彼此的 配合来完成某种可以重复运用的设计概念。这些类之间以特定的方式合作,彼 此不可或缺。在开发过程中,经常会遇到一些相同或者相近的问题,每次开发 人员都会去寻找一个新的解决方法,为了节省时间提高效率,业界提供一些能 够解决这些常见问题的、被证实可行的方案,来构成一个统一的资源库。 随着w e b 和i n t e r a c t 的增长,越来越多的企业开始开发与部署基于w e b 的 武汉理工大学硕士学位论文 企业内部网和外部网应用。如何通过信息化的建设进行对其更好的管理并节省 成本、提高效率成为人们关注的问题。而j 2 e e 为基于w 曲的企业应用恰恰提供 了无与伦比的支持。该体系采用分布式结构、重用性组件技术和基于w e b 构架 的分布式数据库技术,符合软件发展的最新趋势。 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 多层架构作为目前流行的w e b 应 用开发架构之一,己成为解决电子商务和企业级应用的标准平台。但这个平台 并不能满足所有需求特点,其中的业务逻辑层的解决方案e j b ( e n t e r p r i s e j a v a b e a n s ) 机制存在一些不足,其架构方式本身有一些问题,而且e j b 的机制 是一种对代码和设计强侵入性的规范,使业务组件移植不是很方便。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 框架。 1 2 研究的目的及意义 框架是特定领域基于架构的、解决某类应用问题的半成品,是大粒度的软 件复用【3 】,它为w e b 应用开发提供了一个能够使用的架构模板和软件包,让开 发者从编码中解脱出来,不必一切从头开始,自己来完成,只需将注意力集中 在业务逻辑上,从而减轻了开发者处理复杂问题的负担,提高了工作效率;其 次在应用和分析框架的基础上,可以对其进行改进和扩展,以适应实际的需求。 因此框架也为扩展和维护系统奠定了基础【4 j 。 本文研究的目的是克服j 2 e e 架构的w e b 应用解决方案中存在的一些不 足,找到符合企业级应用软件系统需求特点的开发方法。诚然单单用s t r u t s 已经 可以很有效的开发出一个系统,但是追求性能是无止境的,这三种开源框架各 有优势,主攻点也不样,并且在实际项目中有很多各自的特性需要处理,例 2 武汉理工大学硕士学位论文 如用户验证、安全校验、异常预处理等等。所以本文研究的意义在于,通过整 合j 2 e e 多层架构中w 曲层、业务层和持久层的三个优秀的框架,充分发挥每 个框架的优势,以实现: 复用设计,以简化开发的复杂性: 复用代码,减少编码和测试时间,提高工作效率; 提高系统的可扩展性、可维护性和可移植性; 降低层问的耦合度。 1 3 技术应用现状 建立依托w e b 的企业应用平台是目前大部分企业应用的首要选择,而b s 框架则是目前主流的企业应用系统的开发体系,因此构造功能更加强大、应用 更为灵活的、开发更为简便的w e b 应用程序成为当前i n t e r n c t 技术发展的热点。 1 3 1j 2 e e 平台 以往用过程语言比如a s p 、p h p 进行w e b 应用开发,开发速度通常比较快, 但由于初始的开发模板是混合层的数据编程,数据和页面的分离不是很直接, 因而很难体现出业务模型的样子或者模型的重要性。产品设计弹性力度很小, 很难满足用户的变化性需求。而随着j 2 e e 平台的成熟,为w e b 应用程序更进一 步的发展提供了更广阔的空间。j 2 e e 是一种利用j a v a 来简化企业解决方案的开 发、部署和管理相关的复杂问题的体系结构。它有着严格的规范,更能够胜任 迅速开发一个灵活而又功能强大的w 曲信息系统。 目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的j a v a2 平 台m i c r o 版( j a v a2p l a t f o r mm i c r oe d i t i o n , j 2 m e ) 、适用于桌面系统的j a v a 2 平台 标准版( j a v a2p l a t f o r ms t a n d a r de d i t i o n , j 2 s e ) 和适用于创建服务器应用程序和服 务的j a v a2 平台企业版( j a v a2p 1 a t f o r me n t e r p r i s ee d i t i o n , j 2 e e ) 。 1 3 2m v c 设计模式 m v c ( m o d e l v i e w - c o n t r o l l e r ) 是x e r o xp a r c 在八十年代为编程语言s m a l l t a l k 8 0 发明的一种软件设计模式。它属于结构型设计模式,对于生成结构严谨 3 武汉理工大学硕士学位论文 的模块化应用程序的有效性己得到了广泛的证实。m v c 的核心是实现三层甚至 多层的松散耦合,它将应用程序抽象为m o d e l ( 模型) 、v i e w ( 视图) 、c o n t r o l l e r ( 控制器) 三个功能截然不同的部分,三者既分工又合作地完成用户提交的每项 任务,如图1 1 所示。 查询状态 通知改变 v j e w 表现m o d e l m o d e l 更新请求 将用户请求提交c o n t r o l l e r 允许c o n t r o l l e r 选择v i e w 选择v i e w 用户请求 c o n t r o l l c r 定义应用程序行为 将用户行为映射b 批o d e l 的更新 选择v i e w 响应 每一个功能对应一个c o n t r o l l e r 图1 1 m v c 设计模式 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 i e w 对象可视地 显示m o d e l 对象的状态。v i e w 对象与m o d e l 对象的关系有如形式与内容:当 m o d e l 对象中的状态发生改变时,v i e w 对象所代表的用户界面也会相应地改变, 达到内容与形式的一致;对于同一个m o d e l 对象,针对不同的用户请求,可以产生 多个v i e w 对象。另外v i e w 只是显示数据内容,处理数据的业务逻辑部分留给了 m o d e l 对象和c o n t r o l l e r 对象。 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 对象的更新;将m o d e l 对象状态的改变及时反映到v i e w 对象上。 1 3 3 基于j 2 e e 架构的框架技术 目前,j 2 e e 多层架构上已经开发出了很多框架,这大大减轻了开发人员的 负担,开发者可以将不同层上的框架整合到一起,从而能够从繁杂的底层编码 中解脱出来。 在构建w e b 应用时,用户请求的处理、业务逻辑处理以及数据的持久化是 必须仔细考虑的因素,而且也是大部分应用必须具备且较为复杂的职责。因此 4 态一 状一变一改一 态 能 铲挈程查程用态用变瓣糕 武汉理工大学硕士学位论文 目前针对表示层、业务层、数据持久层人们开发了很多应用框架,如s t r u t s 、s p i n g 、 h i b e r n a t e 等。 s t r u t s 是m v c 模式的实现框架p 】,它由一系列框架类、辅助类和定制的j s p 标记库构成,为m o d e l 2 w e b 应用开发提供一个强大的、通用的w 曲应用框架, 从整体上减轻构造企业w e b 应用的负担。s p r i n g 是一个服务于所有层面的应用 框架,允许开发者根据需要选择使用它的部分模块【6 】。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 ,控制反转) 和a o p ( a s p e c to r i e n t e dp r o g r a m m i n g ,面向 方面编程) ,很容易实现b e a n 的装配和t r a n s a c t i o nm a n a g e m e n t ( 事务管理1 等特 性;同时它对不同的数据访问技术提供了统一的接口。h i b e r n a t e 框架是一个面 向j a v a 环境的对象,关系数据库映射工具【7 l ,它不仅可以管理j a v a 类到数据库表 的映射,还提供数据查询和获取数据的方法,从而大幅度减少开发时人工使用 s q l 和j d b c 处理数据的时间。此外,它可以在应用e j b 的j 2 e e 架构中取代 c r o p ( c o n t a i n e r - m a n a g e dp e r s i s t e n c e ) ,完成数据持久化的重任。 随着系统规模的日益复杂,为了快速提高开发效率,将一些优秀的框架进 行整合以适应不同的应用需求己成为目前系统开发中流行的方向之一。 1 4 本文的主要研究内容 本文深入研究了m v c 设计模式和三大主流开源框架技术,通过具体分析各 个框架在w e b 应用的不同层次上所发挥的作用,提出一种集成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 t r u t s + s p r i n g + h i b e r n a t e 的整合框架实现基于j 2 e e 平台的多层体系结构,合三者的优势为一体,充分发挥b s 系统的优势,使一 般的w 曲应用系统得到最优化的实现。 1 5 论文结构 论文结构安排如下: 第1 章:绪论。介绍论文的研究背景、研究意义、技术应用现状、作者的 主要研究内容。 5 武汉理工大学硕士学位论文 第2 章:1 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 s h 框架模型。主要内容包括整合框架模型的提出、总体 设计及具体实现。 第4 章:s s h 框架应用设计与实现。介绍利用这一整合框架构建一个w e b 应用系统,验证框架整合策略的可行性。 第5 章:总结与展望。对本文工作的总结,对今后研究工作的展望。 6 武汉理工大学硕士学位论文 2 1j 2 e e 架构 2 1 1 概述 第2 章j 2 e e 框架技术研究 j 2 e e 是一个基于组件一容器模型的系统平台,其核心概念是容器。容器是指 为特定组件提供服务的一个标准化的运行环境,j a v a 虚拟机就是一个典型的容 器。组件是一个可以部署的程序单元,它以某种方式运行在容器中,容器封装 了j 2 e e 底层的a p i ,为组件提供事务处理、数据访问、安全性、持久性等服务。 在j 2 e e 中,组件和组件之间并不直接访问,而是通过容器提供的协议和方法来 相互调用。组件和容器间的关系通过“协议”来定义。容器的底层是j 2 e e 服务 器,它为容器提供j 2 e e 中定义的各种服务和a p i 。 j 2 e e 的设计目的是为了推动企业应用的开发和部署。它通过提供企业计算 环境所必需的各种服务使得部署在其平台上的多层应用可实现高可用性、安全 性、可扩展性和可靠性。计算平台支持j a v a 语言使得基于j 2 e e 标准开发的应用 可跨平台移植;且由于j a v a 语言的安全、严格等特性使开发者可以编写出十分可 靠的代码。j 2 e e 提供了在企业计算中需要的所有服务且简单易用,其中的多数 标准定义了接v i ,可与许多厂商的产品配合,容易得到广泛支持:通过提供统一 的开发平台,j 2 e e 降低了开发多层企业级应用的费用和复杂度,同时支持e j b 与现有系统集成,有良好的向导支持打包和部署应用。j 2 e e 平台提供的多层分 布式应用模型、组件重用、一致化的安全模型以及灵活的事务控制,加快了企 业应用的设计与开发,可以快速容易地建立融合了i n t e m g t 技术,尤其是w e b 技术的n 层结构的分布式企业应用,较好地解决了c s 结构所固有的可扩充性、 可维护性和安全性不足且部署麻烦等弊端。 2 1 2j 2 e e 的多层架构 典型的j 2 e e 是一种4 层架构引,包括客户层、w e b 层、业务层和e i s 层( 企 业信息系统层,e m e r p r i s ei n f o r m a t i o ns y s t e mt i e r ) ,如图2 - 1 所示。每层为应用 7 武汉理工大学硕士学位论文 程序提供一类特定的功能,用户发出请求并得到响应,通常是请求在多层之间 传递,最后得到回复的过程。许多时候,两层或者更多的层可以在物理上驻留 于同一个j a v a 虚拟机9 l 上。 客户层w e b 层 业务逻辑层企业信息系统层 浏览器w e b 容器e j b 容器 l 纯h t m l li j s pe j b 翰 亡 a p p l e t j s p啪 桌面s e r v l e t 嘲 e j b 锄 亡 j a v a 应用 恸 其他设备j j 2 e ej 2 e e 一r 阿嗣l 物劫 图2 - 1j 2 e e 多层架构 1 ,客户层 客户层包含与用户交互的程序。这些程序提示用户输入,然后把用户的响 应转换成请求,发往处理请求的组件,并把结果返回到客户端程序,客户端程 序再把服务器的响应转换成文本并呈现给用户的屏幕输出。通常使用h t m l 来 构建客户层,因为通用浏览器都能正确的理解h t m l ,而且它能很好的分离业 务逻辑和表示逻辑。 2 w e b 层 w e b 层用来生成w e b 页面和w e b 页面中的动态内容,同时可以把客户端传 来的w e b 请求进行打包。在w e b 层上运行的组件使用h t t p 协议接受客户端请 求,并将对请求的响应发送给客户端。使用j a v a 解决方案来构建w e b 层,可以 联合使用s e r v l e t 和j s p ,w e b 层通常在w e b 服务器中实现。 3 业务层 业务层包含企业w e b 应用的大部分业务逻辑。在j 2 e e 平台下,业务逻辑通 过e j b 组件进行实现,它们工作于应用服务器中。一个或者更多的e j b 驻留在 这一层,每个e j b 包含被客户端间接访问的业务规则代码。e j b 层在j 2 e e 多层 架构中是一个至关重要的因素,因为它提供了并发性、可伸缩性、生存周期管 r 武汉理工大学硕士学位论文 理和容错性。e j b 层自动处理并发性问题,确保多个客户可以同时并发的访问同 一个对象。e j b 层是某些供应商为应用程序提供可伸缩性的地方,因为这一层是 设计在集群环境下工作的。这是假定所用的供应商组件支持集群,如果它不支 持,那么通常会使用本地提示符来处理负载平衡。在关键任务中容错性是一个 要重点考虑的事项,通过使e j b 层有多个可用的e j b 服务器,一些供应商在这 一层实现了容错性操作特性,这意味着如果主e j b 服务器出了故障,备用的服 务器立即可以接替。 4 e i s 层 e i s 层是j 2 e e 应用程序与各种其他技术的直接或间接的接口,其中通常包 括e r p ( 企业资源规划,e n t e r p r i s er e s o u r c ep l a n n i n g ) 系统、数据库系统和其他 遗留信息系统,j 2 e e 组件可以通过访问e i s 来取得数据库连接,这也是e i s 层 应用最多的一种形式。 2 1 3j 2 e e 组件技术 软件组件【l o l 是用一组设计完好的接口来实现一定的事务逻辑的代码。j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据 它们所在的层分布在不同的机器上。j 2 e e 共有3 类组件,分别是客户端组件、 w e b 层组件和业务层组件【1 l 】。 i 客户端组件 在j 2 e e 规范中指出,客户层有两种组件,它们是a p p l e t 客户端和应用程序 客户端。a p p l e t 是一种w e b 客户端使用的软件,它在支持j a v a 浏览器的a p p l e t 容器内运行。a p p x e t 使用浏览器作为用户界面。应用程序客户端是一个j a v a 程 序,它在应用程序客户端容器内运行,应用程序客户端容器指的是j a v a2 运行 环境标准版,应用程序有它自己的用户界面,可以访问多层架构中的各层,通 常应用程序只访问w e b 层。 2 w e b 组件 j 2 e ew e b 组件主要包括j s p 页面和s e r v l e t 。它们都能与服务器端的业务逻 辑进行交互来管理w e b 层。w e b 组件在j 2 e ew e b 容器中运行,w e b 容器支持 多层结构的w e b 层,通过h t t p 协议对w e b 请求进行响应,并将处理结果回复 给客户。 9 武汉理工大学硕士学位论文 s e r v l e t 是用来扩展和加强w 曲服务器的网络组件,它基于请求响应 ( r e q u e s t r e s p o n s e ) 机制,具有服务器和平台无关性。s e r v l e t 可以访问所有j a v a a p i ,包括通过j d b ca p i 访问企业数据库,而且也可以访问具体的h t t p 调用 库。 j s p 技术提供了一个简单、快捷的方法来创建动态网页内容,使得能够快速 的进行与平台无关的基于w e b 的应用程序的开发。j s p 和s e r v i a 相似,其脚本 编译为s e r v e l t ,j s p 引擎将它和它所在的h t m l 文件一起合成s e r v l e t 的代码, 然后执行与s e r v l e t 相同的过程,先编译成c l a s s 文件,由支持j a v a 虚拟机的服 务器来进行处理,然后生成w e b 页面返回给浏览器。 3 业务组件 业务组件就是e j b 组件,它主要用来实现业务逻辑,解决特定业务领域中 的功能需求。e j b 是j a v a 服务器端组件开发规范,将j a v a 组件的概念从客户机 引入到服务器,目的是定义一个用于开发面向对象的分布式组件标准,实现复 用软件模型【1 2 】。e j b 体系结构内置了对典型企业级系统服务的支持,包括: 事务管理,当授权用户发出事务请求时,e j b 容器介入管理事务: 安全性,e j b 容器只允许授权用户激活e j b 方法,因此安全性好; 远程客户连接,即远程客户可作为虚拟机激活e j b 方法,从而达到方法 的共享,实现分布式计算; e j b 容器通过管理连接池来缓和数据库的连接; 生命周期管理,包括激活、执行、删除e j b 过程【1 3 】。 2 1 4j 2 e e 架构存在的不足 基于j 2 e e 平台的企业级应用软件的通常解决方案是:表示层由j s p + w 曲 服务器构成也就是面向客户端的一层;业务层由e j b 容器构成,通常是应用服 务器,这是中间的一层;持久层,主要通过写j d b c 代码来操作数据库的形式 实现。虽然这种开发模式满足了一般的开发需求,但仍存在以下不足: 1 成本高 由于e j b 容器不但需要组件供应商提供可以复用的商务组件和容器供应 商提供e j b 应用运行所需要的底层运行环境,而且还需要服务器供应商提供应 用服务器来管理、容纳和部署组件,同时还需要系统部署员将选定的组件部署 l o 武汉理工大学硕士学位论文 到一个或多个应用服务器上,支出成本将非常巨大。 2 e j b 的编程规范限制了开发思想 按照e j b 的机制,需要根据e j b 的编程规范来编写组件,然后部署到容 器中运行。e j b 的编程规范有很多,在一定程度上限定了解决问题的方式。 3 e j b 调用服务的机制的局限 e j b 在整个应用部署中用来定位一个对象的机制是j n d i ,这种获得服务和 定位对象的方式是显式的,这明显是在代码中体现组件的调用者要什么服务, 服务叫什么名字,而且代码需要实现j n d i 的特定接口和编码方式,这明显不 利于代码复用,也增加了耦合性,而且查找服务的方式是显式的,这也是e j b 重 量级的体现。 4 持久化处理的欠缺 在持久化方面,通常选择b e a n 管理持久化,这样虽然系统开发有了更多的 灵活性,但是需要写j d b c 代码,每次与数据库相关的操作都要写,这不仅要 多写很多代码,而且也增强了对业务逻辑代码的侵入性,同时对具体数据库也 有要求。这样导致系统对业务逻辑层的功能变化或是数据库的变化的应变能力 都是有限的。 2 2s t r u t s 框架 s t r u t s 是a p a c h e 软件基金会j a k a r t a 项目组的一个开源项目,于2 0 0 1 年2 月问世。它的名字来源于在建筑和旧式飞机中使用的支持金属架。s t r u t s 的目的 是使运用m v c 模式开发w e b 应用的时间减少。它继承了m v c 模式的各种特性, 并根据j 2 e e 的特性作了相应的变化和扩展。它通过把一组相互协作的类( 组件) 、 j a v as e r v l e t 以及j s pt a g j i b 结合在一个统一的f r a m e w o r k 中,将m v c 模式所具 有的“分离业务逻辑和显示逻辑”的能力发挥到了极点,并很好地帮助j a v a 开 发人员开发j 2 e ew e b 层。 2 2 1s t r u t s 的体系结构 s t r u t s 的创立者希望通过对该项目的研究,改进和提高j a v as e r v e r p a g e ( j s p ) 、s e r v l e t 、标签库以及面向对象的技术水准。它的目的是为了减少在运 用m v c 设计模型来开发w e b 应用时所花费的时间。s t r u t s 是一种具体实现m v c 武汉理工大学硕士学位论文 的程序框架嗍,图2 - 2 从m v c 的角度显示了s t n n s 架构中的各个组件。 图2 - 2s t r u t s 体系结构 ( 1 ) 从视图的角度。视图( v i e w ) 主要由j s p 建立。s t r u t s 自身包含了一组可 扩展的自定义标签库( t a g l i b ) ,可以简化创建用户界面的过程。这些标签库包括: b e a nt a g s 、h t m lt a g s 、l o g i ct a g s 以及t e m p l a t et a g s 。 ( 2 ) 从模型的角度。模型( m o d e l ) 主要是以一个或者多个表示系统状态的 j a v a b e a n 的形式存在( 有时,改变系统状态的业务逻辑操作也被划分到模型中1 。 这些b e a n 分为3 类: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 。 ( 3 ) 从控制器( c o n t r o l l e r ) 的角度。在s t r u t s 框架中,控制器主要由 a c t i o n s e r v l e t 类中的s e r v l e t 接收来自客户端的请求,并且决定这个请求发往何 处。 2 2 2s t r u t s 的工作流程 对于采用s t r u t s 框架的w e b 应用在w e b 应用启动时就会加载并初始化 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 文件中读取配置信息,把它们存 放到各种配置对象中,例如a c t i o n 的映射信息存放在a c t i o n m a p p i n g 对象中。 图2 - 3 显示了s t r u t s 响应用户的工作流程。 1 2 武汉理工大学硕士学位论文 德国客户响应 图2 - 3s t r u t s 工作流程 如上图所示,当a c t i o n s o w l e t 接受到一个客户请求时,首先检索和用户请 求匹配的a c t i o n _ m a p p i n g 实例,如果不存在,就返回用户请求路径无效的信息; 如果a c t i o n f o r m 实例不存在就创建一个a c t i o n f o r m 对象,把客户提交的表单数 据保存到a c t i o n f o r m 对象中;根据配置信息决定是否需要表单验证,如果需要 验证,就调用a c t i o n f o m 的v a l i d a t e ( ) 方法;如果a c t i o n f o l i n 的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 s e r v l e t 根据a c t i o n m a p p i n g 实例包含的映射信息决定将请求转发给哪 个a c t i o n 。如果相应的a c t i o n 不存在,就先创建这个实例,然后调用a c t i o n 的 e x e c u t e 0 方法;a c t i o n 的e x e c u t e ( ) 方法返回一个a m i o i l f o n ,a r d 对象,a c t i o n s e r v l e t 1 3 武汉理工大学硕士学位论文 再把用户请求转发给a c t i o n f o r w a r d 对象指定的j s p 组件。 在调用a c t i o n f o r m 的v a l i d a t e ( ) 方法时,如果它返回一个包含一个或多个 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 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 ( ) 方法。 2 2 3s t r u t s 的核心配置 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 ) j ,该配置文件的主要作用是建立控制器、模型及其视图之间 的联系。它描述了控制器将客户请求映射到对应a c t i o n 类处理的法则,同时还 定义了用户输入数据与a c t i o n f o r m 组件的对应映射关系。此外,该配置文件的 另一个作用是将逻辑名映射到物理路径,使得物理路径与程序路径无关,整个 系统导航使用逻辑名在s u m s c o n f i g x m l 中完成。 这种在配置文件中完成业务逻辑控制的方法主要有以下优点:首先,应用 的所有页面的导航定义都集中在一个分等级的x m l 文档中,通过此配置文件 即可迅速把握整个系统的脉络,第二,网页设计人员在修改网页时无需遍历j a v a 代码来理解应用的业务逻辑,而当业务逻辑发生改变时,业务逻辑开发者也只 需在s t r u t s - c o n f i g x m l 中做出相应的调整和修改。在大型的w e b 应用系统中, 这种管理页面逻辑的方式无论是在系统前期的开发过程,还是后期的维护与升 级阶段都显示出了方便性和和有效性。因此,把握该配置文件是掌握s t r u t s 的 关键所在,配置文件如下: 1 4 2 2 4s t r u t s 组件 以下将通过对s t r u t s 的四个核心组件【1 q 来具体说明s t r u t s 框架的工作 s t r u t s 框架中相互协作的类,主要包括:觚i o n 船r v l e t 类、a c t i o n 类、 a c t i o n m a p p i n g 类、a e t i o n f o r m 类。 ( 1 ) 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 继承于j a v a x s 臼 v l e t h t t p h t t p s e r v l e t 类,它在s t r u t s 框架的 角色是中心控制器。控制器a c t i o n s e r v l e t 主要负责将h t t p 的客户请求封装 1 5 武汉理工大学硕士学位论文 后,根据配置文件s t r u t s c o n f i g x m l 的指定描述,转发到适当的处理器。 当用户向服务器端提交请求的时候,实际上信息是首先发送到控制器 a c t i o n s e r v l e t ,一

温馨提示

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

评论

0/150

提交评论