已阅读5页,还剩62页未读, 继续免费阅读
(计算机应用技术专业论文)基于ssh整合架构的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着i n t e m e t 技术和企业信息化建设的发展,构建基于w e b 的应用系统 的需求越来越复杂,还具有高度的不确定性,开发周期也越来越紧迫,对系 统的性能、可扩展性和可维护性的要求也越来越高。因此,一种好的设计模 式,一个好的可复用的系统架构设计成为提高软件开发效率和开发质量的关 键。 本文深入研究了m v c 设计模式和三种流行的轻量级开源框架技术 ( s t r u t s 、s p r i n g 和h i b e r n a t e ) 。通过具体分析各个框架在w 曲应用的不同层 次上所发挥的作用,引入了s t r u t s + s p r i n g + h i b e r n a t e ( s s h ) 多层w e b 应用整 合架构,表示层使用s t r u t s ,业务逻辑层使用s p n 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 配置完成,h i b e r n a t e 负责数据的持久化。整个架构利用s p r i n g 的核 心思想- 1 0 c 和a o p 整合s t r u t s 和h i b e r n a t e ,达到层次和组件之间的松散耦 合,提高系统的可重用性和可维护性。 文章结合一个电子政务系统的具体设计,详细论述了基于s s h 整合架构 的w e b 应用系统的层次结构和各层的实现策略。最后,文章给出了系统的具 体实现,着重阐述了如何运用l o c 思想和a o p 思想整合s t r u t s 和h i b e r n a t e , 以实现各组件、各框架之间的松散耦合。开发结果表明,s s h 架构对于中小 型企业w e b 应用系统具有一定的通用性,可以大大提高软件开发效率,同时 基于整合架构的w e b 应用具有良好的可扩展性、可维护性和可移植性。 关键词: 整合架构,m v c ,s t r u t s ,s p d 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 gd e v e l o p m e n to 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 o n c o n s t r u c t i o n ,t h er e q u i r e m e n t so fa p p l i c a t i o ns y s t e mb a s e do nw e b a r em o r ea n d m o r ec o m p l i c a t ea n dh i g h l yu n c e r t a i n a n dt h ed e v e l o p m e n tc y c l ei sm o r ea n d m o r es h o r t s t h ed e m a n d si nf u n c t i o n ,e x p a n s i b i l i t ya n dm a i n t a i n a b i l i t ya r eh i g h e r a n dh i g h e r s oaw e l ld e s i g np a t t e r na n dr e u s a b l es y s t e ma r c h i t e c t u r ed e s i g nh a v e b e c o m et h ek e yi s s u eo fi m p r o v i n gt h ee f f i c i e n c ya n dq u a l i t yo fs o f t w a r e d e v e l o p m e n t t h i st h e s i sm a k e sd e e p l yr e s e a r c h e so nm v cd e s i g np a t t e r na n dt h r e ek i n d s o fp o p u l a rl i g h t w e i g h to p e n s o u r c ef r a m e w o r kt e c h n o l o g i e s ( s t r u t s 、s p r i n ga n d h i b e r n a t e ) b ya n a l y z i n gt h ef u n c t i o no fe a c hf r a m e w o r ki nd i f f e r e n tl a y e r s ,t h e s s h ( s t r u t s + s p r i n g + h i b e r n a t e ) m u l t i - l a y e r s w e b a p p l i c a t i o n i n t e g r a t i o n f r a m e w o r ki si n t r o d u c e d s t r u t si su s e di nt h ep r e s e n t a t i o nl a y e r , s p r i n gi su s e di n t h eb u s i n e s sl a y e r ,a n dh i b e r n a t ei su s e di nt h ep e r s i s t e n tl a y e r t h eb u s i n e s sl o g i c i ns t r u t sa p p l i c a t i o ni sc h a r g e db ys p r i n g ,a n dt h er e l a t e d c l a s s e sa r ec o n f i g u r e db y t h eb e a n so fs p r i n g ,a n dt h ed a t ap e r s i s t e n ti sc h a r g e db yh i b e r n a t e t oa c h i e v et h e l o o s ec o u p l e so fl a y e r sa n dc o m p o n e n t sa n di m p r o v et h er e u s a b i l i t ya n dm a i n t a i n s o ft h es y s t e m ,t h ea r c h i t e c t u r eu s e st h ec o r ei d e ao fs p r i n g ,l o ca n da o pt o i n t e g r a t es t r u t sa n dh i b e r n a t e w i t ht h ec o m b i n a t i o no fas p e c i f i ce - g o v e r n m e n tp r o j e c td e s i g n ,t h et h e s i s i n d i c a t e st h ei n t e g r a t e ds t r u c t u r eo ft h ew e ba p p l i c a t i o ns y s t e mb a s e do ns s ha n d t h eh i e r a r c h i c a ls t r u c t u r eo fa ul a y e r so ft h ei m p l e m e n t a t i o ns t r a t e g y f i n a l l y , i n o r d e rt oa c h i e v et h el o o s ec o u p l e sb e t w e e nt h ec o m p o n e n t sa n df r a m e w o r k s ,t h e t h e s i sg i v e sac o n c r e t er e a l i z a t i o no ft h es y s t e m ,a n df o c u s e so nt h eu s eo fl o ca n d a o pt oi n t e g r a t es t r u t sa n dh i b e r n a t e a st h ed e v e l o p m e n tr e s u l t ss h o w n ,t h es s h a r c h i t e c t u r eh a sc e r t a i nc o m m o n a l i t yi nt h ew e ba p p l i c a t i o ns y s t e mo fs m a l la n d m e d i u me n t e r p r i s e s t h ea r c h i t e c t u r ei sa b l et oh i g h l yi m p r o v et h es o f t w a r e d e v e l o p i n ge f f i c i e n c y a n dt h ew e ba p p l i c a t i o n sb a s e do ns s ha r c h i t e c t u r e a r e w e l ls c a l a b l e ,m a i n t a i n a b l ea n dp o r t a b l e k e yw o r d s :i n t e g r a t i o nf r a m e w o r k ,m v c ,s t r u t s ,s p r i n g ,h i b e r n a t e 玎 此页若属实,请研究生及导师签名,并装订在掌位论文的摘要前。 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 研究生( 签名) :燃日期趔:夕 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即:学校有权保留送 交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部内容,可以采用影 印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名,:裤导师( 签名) : 武汉理丁大学硕士学位论文 第1 章绪论 随着软件系统的复杂程度的增加,软件系统的架构( a r c h i t e c t u r e ) 设计显得越 来越重要。软件系统的架构是其从整体到部分的最高层次划分,它确定了系统 整体结构、层次划分以及不同部分之间的协作。工业化的软件复用已经从通用 的类库进化到了面向领域的应用框架【1 j 。框架是软件系统的设计、开发过程中 的一个概念,它是可重用的、半完成的应用程序,可以用来产生专门的定制程 序,强调对已完成的设计、代码的重复使用,并且一个框架主要适用于实现某 一特定类型的软件系统1 2 j 。框架复用可大大提高软件的开发效率,保证软件质 量。 1 1 研究背景 在当前i n t r a n e t 迅速发展的今天,传统的c s 模式已经无法满足企业级应用 的需求,基于b s 模式的多层w e b 应用开发就应运而生并迅速的发展起来,但 是,即使采用最先进的软件开发平台j 2 e e ,开发这样的应用仍然是个难题。在 多层w e b 体系结构设计中,普遍存在着开发产品性能差、维护工作量大、应变 能力不足等缺点。因此,如何利用企业级分布式平台进行大规模、快速、方便 的组装开发w e b 应用,使得多层w e b 应用软件在面对复杂的网络环境、多样化 的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次、角 色分工等问题时能简单高效的完成任务,成为我们首先需要解决的问题。然而 解决这些问题的关键是选择具有优良体系结构的w e b 应用框架,一个优秀的w e b 应用框架不仅可以为w e b 应用系统提供优良的体系结构,提高w r e b 应用系统开 发的效率,而且可以节省项目的开发成本、缩短项目的开发周期、降低项目管 理的难度和风险、提升项目和产品的交付质量,使得w e b 应用开发项目更容易 获得成功。 伴随着软件开发技术的发展,在组织的软件开发项目中,可复用、易扩展 的,且经过良好测试的软件组件,越来越为开发者所青睐。这意味着开发人员 可以将充裕的时间用来分析、构建业务逻辑的应用,而不是繁杂的代码工程。 武汉理 大学硕士学位论文 于是开发人员将相同类型问题的解决途径进行抽象,抽取成一个个应用框架。 框架可以帮助开发人员完成一些基础工作,使得开发人员可以集中精力完 成系统的业务逻辑设计,提高开发效率;而且框架一般是成熟,稳健的,它可 以处理系统很多细节问题,比如事物处理、安全性、数据流控制等问题。此外, 框架一般都经过很多人使用,其结构性、扩展性也都很好;它是不断升级的, 开发人员可以直接享受别人升级代码带来的好处。目前流行的基于j 2 e e 应用系 统框架种类繁多,同时还出现了很多基于这些框架的衍生框架。面对如此众多 的框架,开发人员选择适合自己的架构,如何将他们以一种松散耦合的方式整 合在一起,相互协作而不用考虑底层的技术细节,这给软件开发人员提出了挑 战。 1 2 国内外研究现状 j 2 e e 为中间件领域思想的统一发挥了具大的作用。例如,j 2 e e 为分布式事 务管理、目录服务和消息服务提供了一套标准的编程接口,但是,j 2 e e 这个平 台没有能够提供一个令人满意的应用程序编程模型( a p p l i c a t i o np r o g r a m m i n g m o d e l ) 。s u n 公司和一些大的应用服务器供应商都想用开发工具来降低j 2 e e 开 发的复杂性,但是这些工具没有其他的j 趟狻开发工具优秀,后者有先进的重 构工具,和n e t 平台相比,j 2 e e 的工具支持显得很逊色,很多j 2 e e 开发工具 自动产生的代码像这些工具本身同样复杂。 很多大型的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 。 在过去几年中,基于j 2 e e 的轻量级框架作为传统e j b 架构的替代品,发展 非常迅速。轻量级框架所采用的依赖注入( 1 0 c ) 、面向接口编程( a o p ) 逐渐 发展为面向对象的主流开发方法,对软件开发产生了重大影响。 2 武汉理l :大学硕士学位论文 目前,基于w e b 应用的轻量级框架主要朝着3 个层面发展:表示层,典型 代表是s t r u t s 、w e b w o r k s 、j s f ;业务层,典型代表是s p d n g 、h i v e m i n d 、 p i c o c o n t a i n e r ;数据持久层,典型代表是h i b e r n a t e 、i b a t i s 。它们完全涵盖了应 用程序的所有方面,在当今很多j 2 e e 项目种扮演着重要角色。 轻量级框架作为下一代构架的基础有着无法比拟的优势: ( 1 ) 通过使用控制反转技术( i o c ) ,对象依赖解析不需要开发者编写复杂的 代码来实现查找、异常处理和消息链接功能,代码更简单,业务逻辑也从基础 结构独立出来,易于维护。 ( 2 ) 轻量级j 2 e e 框架不强迫业务对象受控于平台特殊的接口,这是因为开 发者将应用服务和域对象模型设计成简单对象,让简单对象实现业务逻辑,可 以重用良好的应用组件,在提高效益的同时使得组件更加易于测试。 ( 3 ) 目前,主流的j 2 e e 轻量级容器框架,绝大部分来自开源社区,具有丰 富的开发文档和实例,降低了掌握这项技术的门槛。 现在,轻量级j 2 e e 框架己经广泛地应用在各个场合,基于轻量级j 2 e e 框 架技术的研究也成为了国内外研究的热点之一。 1 3 研究目的和意义 本文期望通过对几种流行的j 2 e e 开源框架技术( s t r u t s 、s p d n g 和h i b e r n a t e ) 的研究,充分理解各框架的功能,进一步挖掘三种框架在各自领域的优势所在。 结合一个基于s s h ( s t r u t s + s p r i n g + h i b e r n a t e ) 整合架构的电子政务系统的设计 和实现,加深对s s h 整合架构的理解。在尽可能发挥各个框架优势的基础上, 充分运用i o c ( i n v e r s i o no fc o n t r o l ,控制反转) 和a o p ( a s p e c to r i e n t e d p r o g r a m m i n g ,面向过程编程) 思想,进一步降低各组件、各层次之间的耦合度, 实现架构的松散耦合,提高系统可扩展性、可维护性和可移植性。本文研究的 意义在于:通过对j 2 e e 相关开发技术深入的研究,希望能为中小型企业w e b 应用开发提供个通用的架构模型和实现策略,进一步提高软件的开发效率、 缩短开发周期,提高软件开发质量。 3 武汉理 人学硕士学位论文 1 4 本文的章节安排 第1 章,阐述本课题的研究背景、目的及意义,明确本文研究意义。 第2 章,研究了j 2 e e 体系结构,引入设计模式的概念,详细分析业界流行 的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 。 研究探讨了i o c 和a o p 思想,并引入s s h 整合架构。 第4 章,结合“民声通道”系统业务流程和需求分析,研究了基于s s h 整合 架构的w e b 应用系统的层次结构。研究了“民声通道”系统各层具体功能,并对 其进行了详细设计。 第5 章,结合前一章的设计,研究了系统各层的具体实现方法。针对如何 构建基于s s h 整合架构的w e b 应用系统问题,研究了运用i o c 组装组件和运用 a o p 对事务进行管理的方法。最后对系统的性能进行了详细分析。 第6 章,对全文进行总结,并对以后的研究工作进行展望。 4 武汉理j r 大学硕士学位论文 第2 章j 2 e e 体系结构与m v c 设计模式 2 1j 2 e e 分布式体系结构 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 ) 是由s u n 公司开发的一套企业级 应用规范,该规范定义了一个多层企业信息系统的标准平台,旨在简化和规范 企业级应用系统的开发和部署。j 2 e e 提供了一个多层结构的分布式的应用程序 模型,该模型具有重用组件的能力、基于扩展标记语言( x m l ) 的数据交换、统一 的安全模式和灵活的事务控制机制。在此体系结构中,开发者的注意力可以集 中在封装业务逻辑上,应用程序容器或者服务器去处理与基础结构服务相关的 问题以及底层分配问题。j 2 e e 提供了事务处理、对象生存控制、状态维持,、并 发控制、资源共享等系统服务,而这些服务只要通过简单的配置就可以实现, 这使开发者可以从复杂且困难的系统设计中解脱出来,将精力主要放在业务逻 辑上,提高开发的质量,缩短项目开发的周则引。 j 2 e e 是一个基于组件一容器模型的系统平台,其核心概念是容器。所谓容 器就是指为特定组件提供服务的一个标准化的运行环境,j a v a 虚拟机就是个典 型的容器。一般地,容器提供的基础功能包括内存管理、线程同步机制、垃圾 收集、可用性、可伸缩性、负载平衡和故障转移等。容器必须实现的基本接口 和功能由j 2 e e 规范定义,但具体如何实现完全由容器厂商自己决定。因此,j 2 e e 既确保了不同应用服务器之间的兼容性,又为各个厂商的专有代码留下了自由 空间。j 2 e e 规范定义了四种不同类型的容器: a p p l e t 容器:运行和管理a p p l e t : 应用客户端容器:运行和管理标准j a v a 应用客户端程序; w e b 容器:运行和管理表现逻辑层的s e r v l e t 组件和j s p 组件; e j b 容器:运行和管理业务逻辑层的e j b 组件。 j 2 e e 标准定义了一个完善的应用组件框架,作为企业应用系统基本构造模 块的组件就建立在这个框架之上。几乎所有的业务应用,都可以在此基础上构 造。j 2 e e 组件框架只是一个以库、类和接口形式提供的基础架构,最终构成应 用的业务逻辑和表现控制逻辑要由建立在这个框架上的应用组件实现。 5 武汉理1 2 人学硕士学位论文 应用组件是模块化程序设计方法发展到一定阶段的产物,从软件工程的角 度来考虑,开发者总是希望把一个庞大的应用程序划分成多个模块。其中,每 个模块都保持一定的功能独立性,协同工作良好的应用系统往往被切分成一些 组件;这些组件可以单独开发单独编译,甚至单独调试和甥4 试,当所有的组 件开发完成后,把他们组合在一起就得到了完整的应用系统,它们通过相互之 间的接口来完成实际的任务。 在j 2 e e 平台中,w e b 客户和e j b ( e n t e q d f i s ej a v a b e a b ) 客户都通过各自的 容器访问应用程序组件。w e b 客户通过w e b 容器访问j s p 网页和j a v as e r v l e t , 而f a b 客户则是通过e j b 容器访问e j b 组件。 j 2 e e 平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑根据 其实现的不同功能被封装到组件中,组成j 2 e e 应用程序的大量应用程序组件根 据其在多层的j 2 e e 环境中所处的层被安装到不同的机器中【“。 j 2 e e 的体系结构如图2 - 1 : 刮判兰h p = 1 ”2 l| 】黼黼】l :粼| | 扣刮! ! 隰 图2 - 13 2 e e 体系结构图 j 2 e e 平台由客户层( c l i e n t t i e r ) 表现逻辑层( p r e s e n t a t i o n l o g i c t i e r ) 、业 务逻辑层( b u s i n e s sl o g i ct i e r ) 和企业信息系统层( e i s ,e n t e r p r i s ei n f o r m a t i o n s y s t c i n st i e r ) 构成: 武汉理。i :人学硕士学位论文 ( 1 ) 客户层:应用客户端,它可以是基于w e b 应用,也可以是基于j 2 e e 应 用的非w e b 应用中,浏览器负责显示由运行在w e b 层的w e b 组件生成的包含各 种标记语言( h t m l x m l , x s l 等) 的w e b 页面,它可以通过运行在w r e b 层中的 j s p 页面和s e r v l e t 与j 2 e e 服务器中的业务层进行通信。在一个不基于w e b 的 j 2 e e 应用系统中,一个独立的客户端j a v a 程序可以通过r m i i i o p 直接访问运 行在e j b 容器中的e j b 组件。 ( 2 ) 表现逻辑层:j 2 e e 的w e b 组件既可以是j s p 页面也可以s e r v l e t 。s e r v l e t 是一种服务器端程序,允许应用程序逻辑嵌入到h t i p 请求响应过程中,j s p 提 供了一种在网页中嵌入组件的方式。w e b 层也可以包括一个j a v a b e a n s 类来管理 用户输入,并将输入发送到业务逻辑层中运行的e j b 对象来处理( 5 j 。 ( 3 ) 业务逻辑层:构成了应用的业务逻辑规则,是整个应用的核心部分。它 按业务划分成一个个独的逻辑单立元e j b 。e j b 从客户程序端接收数据,对数据 进行处理,再将数据发送到企业信息系统层进行存储,还可以从存储中检索数 据,并将数据返回给客户端。业务逻辑层位于应用服务器中,应用服务器中的 e j b 容器提供了分布式计算中组件所需要的组件生命周期的管理、数据库连接的 管理、分布式事务管理、自动容错以及负载的自动均衡能力等服务。实现业务 逻辑的e j b 组件可以更加高效地运行在应用程序服务器中。 ( 4 ) 企业信息系统层:它主要是运行企业信息系统软件,如企业资源计划 ( e r p ) 、客户关系管理( c r m ) 、数据库系统等系统软件。 表现逻辑层和业务逻辑层属于应用服务器领域。所谓应用服务器,也就是 j 2 e e 平台的具体实现。这四层中的每一层都可以在物理上分布到多个机器,即 使同属于应用服务器领域的表现逻辑层和业务逻辑层,也可以驻留在不同的应 用服务器上。 2 2m v c 设计模式 c h r i s t o p h e r 给出了一个广泛意义上的设计模式概念:“每一个模式描述了一 个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你 就能一次又一次的使用该方案而不必做重复劳动”。具体到设计面向对象软件这 一领域,可以这样认为:设计模式就是对被用来在特定场景下解决一般设计问 题的类和相互通信的对象的描述。每一个设计模式都有系统命名、解释和评价 武汉理: 人学硕十学位论文 了的面向对象系统中一个重要的和重复出现的设计1 6 1 。 使用设计模式,使得我们可以复用其解决方案。复用已经公认的设计,使 得我们在开发系统时可以直接借鉴他人的经验,无需为重复出现的问题再次设 计解决方案,同时避免重蹈前人覆辙。另外,一个良好的设计模式提供的必定 是久经考验的解决方案,他们的结构都是长期发展形成的,比新构思的解决方 案更善于应对变化。而且,这些设计模式所用的代码往往更易于理解,从而使 代码更容易维护。 通常一个设计模式由四个基本要素组成【7 】: ( 1 ) 模式名称( p a t t e r nn a m e ) :用来描述模式的问题、解决方案和效果。设计 模式允许我们在较高的抽象层次上进行设计,模式名可以帮助我们思考,便于 我们与其他人交流设计思想及设计结果。 ( 2 ) 问题( p r o b l e m ) :描述了应该在何时使用模式。它解释了设计问题和问题 存在的前因后果,它可能描述了特定的设计问题,也可能描述了导致不灵活设 计的类和对象结构。 ( 3 ) 解决方案( s o l u t i o n ) :描述了设计的组成成分,它们之间的相互关系及各 自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以 解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描 述和怎样用一个具有一般意义的元素组合( 类或对象组合) 来解决这个问题。 ( 4 ) 效果( c o n s e q u e n c e s ) :描述模式的应用效果及使用该模式应权衡的问题。 尽管在描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理 解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡 量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所 以模式效果包括它对系统的灵活性、扩充性和可移植性的影响,显式地列出这 些效果对理解和评价这些模式很有帮助。 模型视图控制器设计模式( m o d e l v i e w c o n t r o l l e r , m v c ) 是x e r o xp a r c 在 2 0 世纪8 0 年代为编程语言s m a l l t a l k 8 0 发明的一种软件设计模式,至今已被广 泛使用。它是第一个将表示逻辑和业务逻辑分开的设计模式。m v c 设计模式【8 】 的出现使得模型层、视图层和控制层各层层次分明,功能明确,各个模块之间 相互独立,大大提高了系统的灵活性和可重用性。 m v c 的核心是实现三层甚至多层的松散耦合,它将应用程序抽象为三个部 分,三者既分工又合作地完成用户提交的任务。 8 武汉理- i :人学硕士学位论文 m v c 结构如图3 - 2 所示: i ( 控制器) l 选择视图 l 接受用户请求 l 业务处理 i 调用模型响应用户请求 i 1选择视图显示响应结果广 ( 视图) 显示模型状态 接受数据更新请求 把用户输入数据传给控制器 用户请求 状态查询 通知数据更新 图2 - 2m v c 结构图 ( 模型) 代表应用程序状态 响应状态查询 处理业务流程 通知视图业务状态更新 ( 1 ) 模型( m o d e l ) 模型是应用程序的主体部分,业务模型的设计可以说是m v c 最主要的核 心。模型实现对业务流程状态的处理和业务规则的制定。业务流程的处理过程 对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。 一个模型能为多个视图提供业务数据。同一个模型可以被多个视图重用。 ( 2 ) 视图m e w ) 视图是用户看到并与之交互的界面。视图向用户展示用户感兴趣的业务数 据,并能接收用户的输入数据,但是视图并不进行任何业务流程的处理。视图 可以向模型查询业务数据,但不能直接改变模型中的业务数据。视图还能接收 模型发出的业务数据更新事件,从而对用户界面进行同步更新。 ( 3 ) 控制器( c o n t r o l l e r ) 控制器负责从用户接收请求,将模型与视图匹配在一起,共同完成用户的请 求。控制器本质上就是一个分发器,它根据用户的请求判断要执行的业务逻辑, 把用户数据传给相应的业务逻辑模块,并调用相应的业务逻辑模块进行处理, 最后根据用户所需要的响应调用相应的视图模块生成结果页面,返回给客户端。 也就是说:控制器本身不做任何处理也不输出任何东西。它只是接收请求并决 定调用哪个业务模型去处理请求,并确定使用哪个视图来显示模型处理之后返 回的数据。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果 9 武汉理工大学硕士学位论文 用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视 图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将 变化通知所有的视图,导致显示的更新。 通过以上分析,我们可以看到m v c 设计模式具有以下优点: ( 1 ) 实现了显示逻辑与业务逻辑的分离,多个视图可以共享一个模型。在 m v c 设计模式中,同一个模型可以被不同的视图重用,从而大大提高了模型层 的程序代码的可重用性。 ( 2 ) 现实了业务模型与控制逻辑的分离。m v c 设计模式将数据( 模型) 从 对其操作的动作( 控制器) 中分离出来,使得我们可以设计一个与后台存储数 据无关的系统。 ( 3 ) 控制器的设计提高了应用程序的灵活性和可配置性。控制器可以用来连 接不同的模型和视图去完成用户的需求,控制器为构造应用程序提供了强有力 的重组手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择 适当的模型进行业务逻辑处理,然后选择适当的视图将处理结果显示给用户。 ( 4 ) 有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具 有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。 总之,m v c 模式不仅实现了显示逻辑和业务逻辑的分离,同时它还提高了 应用系统的可维护性、可扩展性、可移植性和组件的可复用性。 2 3 本章小结 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用 组件根据他们所在的层分布在不同的机器上。j 2 e e 的出现解决了c s 模式的弊 端,在传统模式中,客户端担当了过多的角色而显得臃肿,使用j 2 e e 的多层企 业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够 为不同的各种服务提供一个独立的层,每一个独立的层都只需要关注于自身的 功能实现,大大简化了企业级w e b 应用的开发。 m v c 模式为开发人员开发w e b 应用提供了一个完美的设计模式,m v c 模 式通过将应用分为模型层、视图层和控制层,彻底实现了业务逻辑与显示逻辑 的分离,同时也为设计提供了灵活性和可重用性。 武汉理工大学硕十学位论文 第3 章轻量级j 2 e e 框架技术研究 3 1 框架的引入 伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的, 而且是经过良好测试的软件组件,越来越为人们所青睐。这意味着开发人员可 以将充裕的时间用来分析、构建业务逻辑的应用上,而非繁杂的代码工程。于 是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架。这也就是 我们所说的框架( f r a m e w o r k ) 。 一个框架【9 】就是一个可复用的设计构件,它规定了应用的体系结构,阐明了 整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象 类以及其实例之间协作的方法u 们。 简单的说,框架就是软件开发者在实践中总结出的一些开发标准。这些标 准可以帮助开发人员以成功的经验模式来开发同类型的系统。 使用框架可以给开发人员带来以下好处: ( 1 ) 在好的框架下,开发人员只需要编写一些必须的代码,他们不需要直接 接触底层的a p i 。 ( 2 ) 经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚 性。 ( 3 ) 一个容易使用的框架可以通过一些例子和文档为用户提供最佳实践。 ( 4 ) 成熟框架的代码更精炼,更健壮,比自己的代码容易测试和维护。 j 2 e e 本身也提供了一些框架。比如e j b 容器。e j b 为用户提供了一系列“重 量级 企业级服务,给了我们看起来完整的服务策略,但是,它也给开发带来 了许多负面效果。由于e j b 提供的企业级服务是强制性的,从而使系统变得很 庞大,难以部署,性能也大大降低,给开发和应用带来了很多不便,增加了系 统的开销,同时也使得测试变得困难。 与传统的基于e j b 的j 2 e e 框架相对应的,目前j 2 e e 业界出现了很多优秀 的轻量级框架,它们不仅可以实现传统框架所能做到的事情,而且可以通过轻 量级的方式去实现。总体上说,它们具有以下优点: 武汉理工人学硕士学位论文 ( 1 ) 轻量级j 2 e e 框架的服务是可配置的,从而为系统省去很多不必要的开 销。 ( 2 ) 轻量级j 2 e e 框架的良好扩展性可以保证引擎在将来可以不断地被扩展 以适应新的需求。 ( 3 ) 轻量级j 2 e e 框架采用纯p o j o ( p l a i no l dj a v ao b j e c t ) 来实现,因此可以在 不同的应用服务器上运行。 ( 4 ) 轻量级容器相比较e j b 容器而言更加强大且具备更少的侵入性。 3 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 项目组的一个o p e ns o u r c e 项目,它采用 m v c 模式,能够很好地帮助j a v a 开发者利用j 2 e e 开发w e b 应用系统。和其他 的j 2 e e 架构一样,s t r u t s 也是面向对象设计,实现了m v c 模式“分离显示逻 辑和业务逻辑”的功能。基于s t r u t s 构架的w e b 应用程序基本上符合j s pm o d e l 2 的设计标准,可以说是一个传统m v c 设计模式的一种变化类型。 s t r u t s 框架提供了自己的w e b 控制器并集成了其他技术来提供模式( m o d e l ) 和视图( v i e w ) 。对于m o d e l ,s t r u t s 框架可以与标准的数据获取技术( 如j d b c 和f i b ) 进行交互,同样可以和任何第三那方提供的包( 如h i b e r n a t e 或o b j e c t r e l a t i o n a lb r i d g e 等) 进行合作。对于v i e w ,s t r u t s 框架可以和j a v as e r v e rp a g e s , 包括j s t l , j s f ,v e l o c i t yt e m p l a t e s ,x s l t 及其他持久化系统很好的协助。 s t r u t s 框架的控制器( c o n t r o l l e r ) 在应用的m o d e l 和v i e w 之间充当桥梁的 作用。当得到一个请求时,控制器调用一个a c t i o n 类。此a c t i o n 类与m o d e l ( 或 更恰当的说,作为m o d e l 的一个直接表示) 协商来检测或更新应用的状态。框 架提供了一种a c t i o n f o r m 类来帮助在m o d e l 和v i e w 之间进行数据传谢1 1 l 。 s t r u t s 改进和提高j a v as e r v e rp a g e o s p ) ,s e r v l e t 、标签库以及面向对象的技 术水准,它的目的是为了减少在运用m v c 设计模型来开发w e b 应用时所花费 的时间。s t r u t s 1 2 】是一种具体实现m v c 的程序框架,s t r u t s 的体系结构与工作原 理如图3 1 : 1 2 武汉理,【大学硕士学位论文 图3 - 1s t r u t s 的体系结构与工作原理 下面还是从m v c 角度来看看s t r u t s 的体系结构与工作原理: ( 1 ) 模型( m o d e l ) 在s t r u t s 的体系结构中,模型分为两个部分:系统的内部状态和可以改变状 态的操作( 事务逻辑) 。内部状态通常由一组a c t i o n f o r mb e a n 表示。根据设计 或应用程序复杂度的不同,这些b e a n 可以是自包含的并具有持续的状态,或只 在需要时才获得数据( 从某个数据库) 。大型应用程序通常在方法内部封装事务 逻辑( 操作) ,这些方法可以被拥有状态信息的b e a n 调用。在小型程序中,操 作可能会被嵌入在a c t i o n 类中,它是s t r u t s 框架中控制器角色的一部分。当逻 辑简单时这个方法非常适合。 ( 2 ) 视图( 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 l t a g s 、l o g i c t a g s 、n e s t e dt a g s 以及t e m p l a t et a g s 等。 ( 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 ,实际使 用的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 m a p p i n g 、a c t i o n f o r w a r d 这几 个组件协调完成的,其中a c t i o n 扮演了真正的业务逻辑的实现者,a c t i o n m a p p i n g 与a c t i o n f o r w a r d 贝i j 指定了不同业务逻辑或流程的运行方向。s t r u t s c o n f i g x m l 文 件配置控制器。s t r u t s 框架中控制器组件所承担的主要功能如下: ( 1 ) 接受浏览器客户端处理请求; 武汉理工大学硕十学位论文 ( 2 ) 根据用户的不同请求,调用对应模型组件来执行相应的业务逻辑; ( 3 ) 获取模型组件业务逻辑的处理结果; ( 4 ) 根据当前的状态数据及业务逻辑的处理结果,选择合适的视图组件呈现 给客户端。 在s t r u t s 框架中所包含的组件构成了s t r u t s 的主要组成部分,同时也是s t r u t s 应用框架实现的关键,这些组件具体如下: ( 1 ) s t r u t sa 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 框架的核心组件继承自j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,像所有的s e r v l e t 一样,它生存在容器中,比如t o m c a t 或者w e b l o g i c 等。 当容器启动时,读入部署描述符( w e b x m l ) ,告诉容器要装入哪些一个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 中扮演控制器的角色,主要负责将h t i p 的客户请求信息 组装后,根据配置文件的指定描述,转发到适当的处理器。 ( 2 ) s t r u t sa c t i o nc l a s s e s 一个a c t i o n 类的角色,就像是客户请求动作和业务逻辑处理之间的一个适 配器( a d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IT流程专员岗位说明书
- 公司内部培训体系构建计划及实施安排
- 2024年中华中学招聘编制内教师考试真题
- 上市公司投资分析与价值评估方法
- 家禽饲养员岗前生产安全意识考核试卷含答案
- 内部审计副部长内部控制评价方案
- 供应链管理师面试重点与供应链优化方案
- 2026-2031中国硅橡胶产业市场运行及产业发展趋势研究报告
- 2026-2031中国谷子市场研究与投资前景报告
- 2026-2031中国广东省建筑行业市场发展模式调研报告
- 2025年全国专利代理人考试《专利法》试题及答案
- 2025年青少年航天知识竞赛真题卷及答案
- 2025年大学《传播学-传播研究方法》考试备考题库及答案解析
- 2025年压疮护理指南
- 按摩行业服务礼仪培训
- 预应力管桩施工培训
- DB62T 3130-2017 公路沥青路面碎石封层设计与施工技术规范
- 饲料安全生产培训课件下载
- 2025年高中信息技术学业水平考试真题及答案
- 旅行应急预案范文
- 人教版(2024新版)七年级上册数学第三次月考模拟试卷(含答案)
评论
0/150
提交评论