(计算机软件与理论专业论文)基于strutsspringhibernate的企业级web应用框架的研究.pdf_第1页
(计算机软件与理论专业论文)基于strutsspringhibernate的企业级web应用框架的研究.pdf_第2页
(计算机软件与理论专业论文)基于strutsspringhibernate的企业级web应用框架的研究.pdf_第3页
(计算机软件与理论专业论文)基于strutsspringhibernate的企业级web应用框架的研究.pdf_第4页
(计算机软件与理论专业论文)基于strutsspringhibernate的企业级web应用框架的研究.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机软件与理论专业论文)基于strutsspringhibernate的企业级web应用框架的研究.pdf.pdf 免费下载

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

文档简介

基于s t r u t s + s p r i n g + h i b e r n a t e 的企业级 w e b 应用框架的研究 摘要 随着i n t e r n e t 的日益普及,w e b 应用在信息系统中越来越重要,未来的 发展方向是大量的p c 应用迅速的向w e b 迁移,m i s 也由c s 模式向b s 模 式迁移。基于b s 结构的w e b 应用程序也成为i n t e r n e t 上使用最为广泛的应 用开发技术。而j 2 e e 平台的成熟,为w e b 应用程序更进一步的发展提供了 更广阔的空间。 根据j 2 e e 的n 层体系结构,w e b 系统大致被分为三层:表现层、业务 层、数据持久层。传统的j a v a 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 是m v c 设计模式的一个实现,使得应用逻辑,处理过程和显示 逻辑分成不同的组件实现。s p r i n g 的两大核心机制:i o c ( 控制反转) 降低了 业务组件的耦合性;a o p ( 面向方面编程) 使得业务无关的模块被分离。 h i b e r n a t e 是一个对象关系数据库映射工具( o rm a p p i n g ) ,它协调了对象模 型和基于s q l 的关系模型之间的阻抗不匹配。 本文的主要工作和解决的问题包括: 1 运用s t r u t s 搭建企业级w e b 应用的表现层框架,并对s t r u t s 框架控 制层的a c t i o n 做租粒度的改进,实现一个c o m b i n e a c t i o n 代替一个实 体类的多个a c t i o n 。 2 运用s p r i n g 的i o c 和a o p 机制来实现企业级w e b 应用的业务层。 3 运用h i b e r n a t e 来搭建企业级w e b 应用的数据持久层,并针对开发过 程中h i b e r n a t e 的s e s s i o n 关闭而出现的延迟加载问题,给出系统的 分析和合理的解决方案。 本课题研究背景项目是为农业部开发的农业项目建设信息系统,在该系统中已 经成功的应用了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 2 e e ,s t r u t s ,s p r i n g ,h i b e r n a t e ,w e b 应用框架 r e s e a r c ho ne n t e r p r i s ew e b a p p l i c a t i o nf r a m e w o r k b a s e d 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 w i t ht h ei n c r e a s i n gp o p u l a r i t yo ft h ei n t e r n e t 。w e ba p p l i c a t i o ni sm o r ea n d m o r ei m p o r t a n ti nm i s t h et r e n df o rt h ef u t u r ei st h eq u i c km i g r a t i o nf r o mt h e a p p l i c a t i o no fal o to fp c st ow e ba n dt h a tf r o mc sp a t t e r nt ob sp a t t e r ni n m i s b sp a t t e r nn o wh a sb e c o m et h em o s tw i d e l yu s e dt h e c h n o l o g yi ni n t e r n e t a p p l i c a t i o nd e v e l o p m e n t t h em a t u r i t yo fj 2 e e o f f e r st h eb r o a d e rs p a c ef o rw e b a p p l i c a t i o nd e v e l o p m e n t a c c o r d i n gt ot h en - t i e rj 2 e ea r c h i t e c t u r e w j ba p p l i c a t i o ni sg e n e r a l l y d i v i d e di n t ot h r e el a y e r s :v i e wl a y e r , b u s i n e s sl o g i cl a y e r ,p e r s i s t e n c el a y e r t r a d i t i o n a lj a v a w e bd e v e l o p m e n tr e q u i r e st h ed e v e l o p e r st os p e n dal o to ft i m e a n de f f o r td e s i g n i n g ,t od e v e l o pt h e i ro w nf r a m e w o r k t h e r e f o r e ,w eu s et h r e e f r a m e w o r k s :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 s l o g i cl 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 ra n da l lo ft h e s ec o m e f r o mo p e n s o u r c e s t r u t sp r o v i d e sf o rt h ed e v e l o p m e n to fag e n e r i cm v cad e s i g nm o d e l ,a n d r e a l i z e sm o d e l c o n t r o l l e r , v i e ww i t hd i f & r e n tm o d u l e s t w oc o r em e c h a n i s m so f s p r i n g :i o c ( i n v e r s i o no fc o n t r 0 1 ) ,l o w e r sc o u p l i n go fb u s i n e s sm o d u l e s ;a o p , s e p a r a t eu n r e l a t e dm o d u l e sf r o mb u s i n e s sm o d u l e s h i b e r n a t ei sa0 rm a p p i n g , a n dc o o r d i n a t eo b j e c t r e l a t i o n a lp a r a d i g mm i s m a t c h m a i nw o r kt od oa n dp r o b l e m st os o l v eo f l h i sd i s s e r t a t i o n : 1 u s es t r u t st os t r u c t u r ev i e wl a y e ro fw e ba p p l i c a t i o n ,a n di m p r o v e d s t r u t sf r a m e w o r kc o a r s e - g r a i n e d ,c o n s t r u c tc o m b i n e a c t i o nc l a s st o s u b s t i t u t es e v e r a la c t i o n so fo n ee n t i t yo b j e c t 2 u s ei o c a n da o po fs p r i n gt os t r u c t u r eb u s i n e s sl a y e ro fw e b a p p l i c a t i o n 3 u s eh i b e r n a t et os t r u c t u r ep e r s i s t e n c el a y e ro fw e ba p p l i c a t i o n ,a n d m a k es y s t e m a t i ca n a l y s i so nt h el a z yl o a dp r o b l e mb e c a u s eo fs e s s i o n c l o s ei nd e v e l o p m e n t ,g i v er e a s o n a b l es o l u t i o nf i n a l l y t h ed i s s e r t a t i o ni sb a s e do na g r i c u l t u r ep r o j e c tc o n s t r u c t i o nm i so f a g r i c u l t u r em i n i s t r y , s t r u t s + s p r i n g + h i b e r n a t ec o m b i n a t i o nf r a m e w o r kh a sb e e n s u c c e s s f u l l yu s e di nt h es y s t e m t h ed e s i g na n dr e a l i z a t i o no f t h es y s t e mb a s e d o ns s hc o m b i n a t i o nf r a m e w o r kw i l lb ei n t r o d u c e di nt h ef o r t 血,s i x t h 硼a p t e 擀- k e y w o r d s :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 ,w e ba p p l i c a t i o nf r a m e w o r k 图2 - 1 图2 2 图2 3 图3 i 图3 - 2 图3 3 图4 1 图5 1 图5 2 图5 - 3 图6 1 图6 - 2 图6 3 图6 - 4 图6 5 图6 6 图7 1 图7 - 2 图7 3 插图清单 w e b 应用程序的体系结构1 1 j 2 e e 多层应用结构1 2 基于s t r u t s 、s p r i n g 、h i b e r n a t e 的w e b 框架结构图1 5 m v c 设计模式1 6 s t r u t s 实现的m v c 框架1 9 s t r u m 框架的体系结构2 0 s p r i n g 框架的工作原理2 1 h i b e r n a t e 体系结构概览2 8 h i b e r n a t e 简单体系结构2 8 h i b e r n a t e 复杂体系结构2 9 农业项目建设信息系统概览3 2 项目申报审批子系统的各业务模块的构成关系图3 3 项目实施管理的流程图3 4 系统的总体结构图3 8 i g e n f l o w 的结构框图3 9 i g e n r e p o r t 的结构框架3 9 基于s s h 框架的工作流程图4 2 a o p 运行的顺序图5 1 系统的层次结构图5 5 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我 所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他入已经发表或撰写过的研究 成果,也不包含为获得合肥工业大学 或其他教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者繇- 羽 签翱期。沁7f 谚 学位论文版权使用授权书 本学位论文作者完全了解金胆王些太堂有关保留,使用学位论文的规定,有权保留并 向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权金目g 王 些太堂可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用影印、缩 印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者毕业后去向: 三竺兰:吁拓卸口f 刁 通讯地址: f 导师签名: 签字日期: 电话: 邮编: 翱锄讳 岬- 致谢 感谢我的导师吴国风副教授,本论文的选题、写作和修改的过程中,自始至终 得到了导师的关心、指导和帮助。导师的悉心培育和谆谆教诲伴随我走过了三年的 时光,没有导师的培养和指导,也就没有本文的开始。在我的研究生学习,实践和 生活期间,得到了导师的极大帮助和关心。导师渊博的学识、敏锐的思维、严谨的 治学态度、高尚的道德情操、平易近人的人格魅力,所有这些都将使我终身受益。 感谢邵蕉副教授和上海艾坚软件有限公司的全勇工程师! 在本文的背景项目一 农业部的农业项目建设信息系统的开发过程中,得到了他们悉心的指导和无私的帮 助。 感谢计算机与信息学院的老师们,感谢他们给我提供的学习条件和机会。 感谢软件工程实验室的师兄弟姐妹们在生活和学习上给予的无私帮助和支持。 感谢父母和家人,你们的爱是我求学道路上最大的支持! 作者:王君 2 0 0 7 年5 月 第一章绪论 随着全球信息化的爆炸性增长,以及i t 技术的不断发展,管理信息系统 ( m i s ) 、电子商务、电子政务等信息系统都由传统的单机模式、c s 模式发展 成为今天以b i s 模式为主流的格局。 1 1 论文的背景 i i 1 传统c s 模式及其局限性 传统的模式是基于典型的客户服务器c i s ( c l i e n t s e r v e r ) 结构1 1 3 。即大家 熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两 端硬件环境的优势。将任务合理分配到c l i e n t 端和s e r v e r 端来实现,降低了系统 的通讯开销。目前大多数应用软件系统都是c l i e n t s e r v e r 形式的两层结构【1 4 j 。 c s 体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在 特定的应用中无论是c l i e n t 端还是s e r v e r 端都需要特定的软件支持。由于没能提 供用户真正期望的开放环境。c s 结构的软件需要针对不同的操作系统系统开发 不同版本的软件。加之产品的更新换代十分快,已经很难适应百台电脑以上局 域网用户同时使用。而且代价高效率低。其主要缺点体现以下几点【6 - 8 j : ( 1 ) “胖客户机”现象。不仅应用程序的性能受限于p c 机资源,网络流量 也增加了。每一个客户端都要安装客户端软件,所以客户端的机器性能就必须 满足软件的最低要求,如果不能满足,程序也将不能运行;当每次业务逻辑设计 到操作数据库的时候,数据需要在两层结构的客户端和服务器端来回往返传递, 如果有多个客户端同时对数据库操作,那么将会造成巨大的网络开销,甚至会 影响其他网络应用的程序的执行。 ( 2 ) 服务器负担过重。大数据量和多个用户并发使用将造成数据库的瓶颈, 使数据库性能急剧下降。每个客户端都要和数据库建立自己的连接,而服务器 端对于连接有一定的限制,为了提供更多的连接就需要增加更多的投入。这种 连接还存在着一个弊端,就是当某个客户端不再使用该连接的时候,只要客户 端程序一直运行,那么这个连接将不会被释放,即不能为其他的客户端所使用。 ( 3 ) 可维护性差。对应用程序的一个小改动都会涉及到把整个应用重新分 发给用户,如果用户数量庞大,那么应用程序的更新所带来的开销将是非常巨 大的;其次如果一些用户来不及更新整个程序,而一些用户已经及时作了更新, 就会造成不同的客户使用的应用程序版本不一致,这种应用程序版本的不一致 在某些时候也会造成整个系统的闯题。 ( 4 ) 高昂的维护成本且投资大。首先,采用c s 架构,要选择适当的数据 库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数 据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实 现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立 实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要 对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技 术支持,维护成本很高,维护任务量大。其次,传统的c s 结构的软件需要针对 不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价 高和低效率已经不适应工作需要。 1 1 2b s 模式及其优越性 b s ( b r o w e r s e r v e r ) 结构即浏览器和服务器结构。就是我们所说的w e b 应 用。它是随着i n t e r n e t 技术的兴起,对c s 结构的一种变化或者改进的结构。在 这种结构下,用户工作界面是通过w w w 浏览器来实现,极少部分事务逻辑在 前端( b r o w e r ) 实现,但是主要事务逻辑在服务器端实现,形成所谓三层结构。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量, 降低了用户的总体成本。以目前的技术看,局域网建立b s 结构的网络应用,并 通过i n t e r n e t i n t r a n e t 模式下数据库应用,相对易于把握、成本也是较低的。它 是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式 ( 比如l a n ,w a n ,i n t e r n e t i n t r a n e t 等) 访问和操作共同的数据库;它能有 效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在j a v a 这 样的跨平台语言出现之后,b s 架构的企业级软件更是方便、快捷、高效。它的 优越性体现在以下几个方面: ( 1 ) 维护和升级方式简单 目前,软件系统的改进和升级越来越频繁,b s 架构的产品明显体现着更 为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚 至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但b s 架构的软件只 需要管理服务器就行了,所有的客户端只是浏览器,根本不需要傲任何的维护。 无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量, 所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即 可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖” 是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用 起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的, 惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。 ( 2 ) 成本降低,选择更多 大家都知道w i n d o w s 在桌面电脑上几乎一统天下,浏览器成为了标准配置, 但在服务器操作系统上w i n d o w s 并不是处于绝对的统治地位。现在的趋势是凡 2 使用b s 架构的应用软件,只需安装在l i n u x 服务器上即可,而且安全性高。所 以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人 使用w i n d o w s 作为桌面操作系统电脑不受影响,这就使的最流行免费的l i n u x 操 作系统快速发展起来,l i n u x 除了操作系统是免费的以外,连数据库也是免费的, 这种选择非常盛行。比如说很多人每天上“新浪”网,只要安装了浏览器就可以 了,并不需要了解“新浪”的服务器用的是什么操作系统。 随着i n t e r n e t i n t e n e t 和w e b 技术的发展,w e b 应用系统在i n t e r n e t 上的使用也 越来越广泛。w e b 应用不再是仅仅具有静态发布信息的简单功能,而且被要求 具有实时动态处理交互信息的能力,这样的要求还在不断的变化和提高。正因 为如此,如何才能方便、快捷地开发出具有高效性、灵活性和易扩展性的w e b 应用系统也就越来越成为一个倍受人们关注的课题,具有重要的现实意义和广 泛的实际应用价值。 1 2 研究现状 当前,在国内外存在多种实现w e b 应用系统的技术途径,其中最具有代表 性、使用最广泛的两大类分别是m i c r o s o f t 公司提出的n e t 平台和s u n 、i b m 等公司提出的j 2 e e 平台。下面将对这两种主流技术进行简单的介绍和比较。 ( 1 ) n e t 平台 n e t 平台是一组用于建立w 曲服务应用程序和w i n d o w s 桌面应用程序的软 件组件,包括构建n e t f l 艮务与n e t 设备软件的工具和基础框架。它借鉴了j a v a 语言在安装了j a v a 虚拟机( j v m ) j a v av i r t u a lm a c h i n e 可跨平台运行的特性,通 过一个“通用语言的运行时环境”( c l r c o m m o nl a n g u a g er u n t i m e ) 来执行中 间格式的程序代码。c l r 为n e t 应用程序提供了一个托管的代码执行环境。托 管意味着将原先需由程序员或操作系统所做的工作剥离出来,交由c l r 来完成, 从而使程序在运行时获得更高的安全性和稳定性。这些工作包括内存管理、即 时编译、组件自描述、安全管理和代码验证,以及其他一些系统服务。c l r 提 供一个技术规范,无论程序使用于什么语言编写,只要可以被编译成中间语言, 就可以在它的支持下运行,这样n e t 应用程序就可以独立于语言。换句话说, c l r 就是n e t 的虚拟机。 此外,n e t 平台还提供了一个n e tf r a m e w o r k 类库,它是一组广泛的、面 向对象的、可重用类的集合,可以被用于任何编程语言。它提供了几乎所有应 用程序都需要的公共代码,在此之上是许多应用程序模板,这些模板为开发网 络站点和网络服务提供特定的高级组件和服务,不管是传统的命令行程序还是 w i n d o w s 图形界面程序,或是面向下一代互联网分布式计算平台的a s e n e t 或 w e b 服务应用。 从多层的角度看,n e t 平台定义了三个不同的层: 3 表示层:a s p n e t 组件。a s p n e t 组件包括w e b 表单和w i n d o w s 表单, a s p n e t 可以用v b ,c 掣等语言编写,一次编译成为中间语言格式,而不必每次 解释执行。 中间业务层:c o m + 服务。c o m + 主要面向中间层业务应用程序的开 发,为大型分布式应用程序提供可靠性和易扩展性保障。这些服务是对n e t f r a m e w o r k 所提供服务的补充,通过n e tf r a m e w o r k 可以对这些服务直接进行 访问。 数据层:a d o n e t 组件。a d o n e t 为基于网络的、可扩展的应用程序 和服务提供数据访问服务。它不仅支持传统的基于链接指针风格的数据访问, 而且对于更适合于把数据返回到客户端应用程序的无链接数据模板,它也提供 高性能的访问支持。 ( 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 r 务器,它为容器提供j 2 e e 中定义的各种服务和a p i 。 一个j 2 e ej 务器( 也叫j 2 e e 应用服务器) 可以支持一种或多种容器,常见 的容器有两个: 夺w e b 容器:包含j a v as e n ,l e t 币口j s p ; e j b 容器:包含企业级j a v a b e a a ; ( 3 ) n e t 平台与j 2 e e 平台的比较 从相近点来看,j 2 e e 和n e t 两个平台的基础构造较为相似:在底层的执行 引擎都源于托管的虚拟机概念,程序的编译都经过两个类似的过程,面向对象 程序设计在两个平台中都获得了直接的支持,两个平台都拥有一组能够为编程 提供广泛服务的、可复用的a p t 类库,都支持本地调用。 此外,两个平台都具有三层多层体系结构:在客户端,n e t 和j 2 e e 都提 出了基于桌面的应用程序和基于浏览器的w e b 应用的开发组件:w i n d o w sf o r m 与j a v a 应用、a s p n e t 与j a v as e r v l e t j s p ;在中间层,n e t 组件建立在新型的 c o m + 服务之上,而j 2 e e 的e j b 贝i 是一个成熟的、得到业界广泛支持的大型企 业级组件框架,两者在组件与操作系统的交互、客户端资源共享等方面都具有 很好的支持;在后端数据层,两个平台都为数据库连接量身定做了一套数据存 取模型:n e t 的a d o n e t 与j 2 e e 的j d b c ,它们在支持传统s q l 数据源的同时, 也都支持新型的x m l 数据源。 4 从不同点来看,j 2 e e 和n e t 两个平台的差异点主要体现在可移植性和开放 性两方面。 在移植性方面,微软通过n e t 通用语言运行时( c l r ) 来消除编程语 言的差别,而j 2 e e 贝i j 通过j a v a 虚拟机( j v m ) 来消除平台差别。跨平台 是j 2 e e 的个主要特性,也是在选择企业应用开发平台时的一个重要 参考因素,几乎所有的主流操作系统都提供了对j 2 e e 的支持。实际上, 如果要搭建跨u n i x ,w i n d o w s 等多个操作系统平台,j 2 e e 平台几乎是唯 一的选择。 在开放性方面,j 2 e e 本身是系列公开的规范,而不是产品,任何符 合这一规范的产品都是j 2 e e 兼容的,许多厂商如b e a ,i b m ,o r a c l e 等 都相继开发了符合j 2 e e 规范的产品。 本文主要是针对基于j 2 e e 平台w e b 应用研究。 1 3 论文的研究内容及意义 在项目开发中,开发者对框架的体会很深。在实际应用中使用成熟的框架, 会减少重复开发工作量、缩短开发时间、降低开发成本,增强程序的可维护型 和可扩展性。若将w e b 应用分层,然后按层来选择框架,让框架技术的优点发 挥在每一层中,即用s t r u t s 来架构表示层,用s p r i n g 来架构业务层,而用 h i b e r n a t e 架构持久层,然后把这些框架无缝地整合起来,应用到项目开发中 来。 论文工作在于阐述和分析现有的流行框架( h i b e r n a t e ,s p r i n g ,s t r u t s ) , 在此基础上对论文的背景项目农业项目建设信息系统为实例讲解框架的运用和 相关的技术问题的解决方案,使其形成一个具有一定集成度的软件开发架构; 并在相关方面作一些创新,延伸出一些新的特性。这样将减少开发过程中各个 领域闯的整合所需工作量,降低开发的风险。 1 4 论文的组织结构 本文主要分为三大部分。 第一部分包括第一、二章,主要是综合介绍论文的背景、研究内容以及相 关的基础知识,并且对基础知识进行分析以便为后面的章节做铺垫。 第二部分( 第三,四,五章) 主要阐述了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 s h 组合框架在w e b 系统中的实 现,以及在实际项目开发过程中遇到的问题及其改进和解决方案。 第二章软件体系结构及w e b 应用程序的系统结构 本章将重点介绍软件体系结构与模式概念定义,并由此引出w e b 应用程序 的系统结构并对其做出三个层次的划分。由于本文的背景项目是基于j 2 e e 平 台,所以紧接着介绍j 2 e e 技术和与之相关的四层模型,在实际项目的开发中 一般按照上述的层次模型对应用程序进行层次划分,谓之分层开发。从工程化, 软件复用化的角度来说,并不是每个系统开发时都要再从头去做,这就要求在 每一层上有一个抽象程度高的可复用框架。 2 1 软件体系结构与模式 2 1 1 软件体系结构 软件体系结构 s o f t w a r e a r c h i t e c t u r e ) 1 1 3 为软件系统提供了一个结构、行 为和属性的高级抽象,由系统元素描述、元素问的相互作用、指导元素集成的 模式以及模式的约束组成。软件体系结构指定了系统的组织结构和拓扑结构, 显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计的基本原 理。软件体系结构是设计抽象的进一步发展,满足了更好地理解软件系统,更 方便地开发更大、更复杂软件系统的需要。 2 1 2 模式 模式【9 l ( p a t t e r n ) 描述了一个不断重复发生的问题和解决方案的核心。不 同模式处于不同的抽象层次。在软件工程领域,模式进一步细化为三类 1 2 1 体系 结构模式、设计模式、惯用法。模式源于实践,有助于利用软件工程师的集体 经验构建软件,是构造高质量软件体系结构的重要方法。使用模式构造的软件 系统,支持使用已定义的软件元素构造软件,有助于建立一个复杂、异构的软 件体系结构以及管理软件的复杂度。 2 1 3 软件体系结构模式 体系结构模式( a r c h i t e c t u r ep a t t e r n ) 是最高等级的模式,表示软件系统的 基本结构化组织形式和组织方案。每个体系结构模式处理一个软件系统的设计 或实现中一种特殊的重复出现的问题,适用于粗粒度设计的开始阶段。体系结 构模式提供了一套预定义的子系统,规定子系统的职责和予系统之间的规则。 设计模式( d e s i g np a t e m ) 【3 6 】供一个用于细化软件系统的子系统或组件。设计 模式是中等规模的模式,比体系结构模式小,独立于特定编程语言,适用于粗 6 粒度设计的结束阶段以及需要细化或扩展软件系统的基本体系结构时。惯用法 ( i d i o m ) 是底层模式,具体针对一种编程语言的模式,描述如何使用给定语言 的特征来实现组件的特殊方面或它们之间的关系,适用于实现阶段。 软件体系结构设计的核心问题在于能否使用重复的体系结构模式,达到体 系结构级的软件重用。体系结构模式主要有7 种i l l l 层( 1 a y e r s ) :管道和过滤器 ( p i p e sa n df i l t e r s ) ,黑板( b l a c k b o a r d ) ,代理者( b r o k e r ) 、模型一视图一控制 器( m o d e l v i e w c o n t r o l l e r ,简称m v c ) 、表示一抽象一控制 ( p r e s e n t a t i o n a b s t r a c t i o n c o n t r o l ,简称p a c ) 、微核( m i e r o k e r n e l ) 、 映像 ( r e f l e c t i o n ) 。面向模式的软件体系结构把软件系统看成是各种模式的结合。 分层次处理是软件系统问题分析和设计实施的基本方法【i 叭。在层次方法 中,每层由一组相关的类或组件构成,完成特定的功能;层与层之间存在自上 而下的依赖关系,即上层组件访问下层组件的a p i ,而下层组件不依赖上层组 件。每层对上层公开a p i ,实现细节对外透明。恰当地使用层体系结构模式对 应用系统分层,可以提高系统的伸缩性、可维护性、可扩展性、可重用性和可 管理性。 2 2w e b 应用程序的体系结构及框架 w e b 应用程序使用h t t p 作为核心的通信协议,也被称为基于w e b 的应用程 序。随着w e b 系统复杂度的提高,应用服务器程序采用多层结构 ( n t i e r a r c h i t e c t u r e ) ,进一步对原有三层结构的中间层进行细分。从上而下依 次为用户界面层、表示逻辑层、业务层、数据访问层和数据层,如图2 1 所示1 2 1 1 。 图2 1w e b 应用程序的体系结构 7 2 2 1 j 2 e e 系统结构 2 2 1 1j 2 e e 技术简介 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 ,简称j 2 e e ) 是j a v a2 平台的企业 版,适用于企业级体系结构的开发、部署和管理等,为开发多层次分布式、针 对服务器的应用系统提供了统一的技术平台f 2 0 j 。j 2 e e 平台已经成为使用最广泛 的w e b 应用程序设计技术,主要支持两类软件的开发和应用 2 1 1 : 做高级信息系统的w e b 应用服务器; w e b 应用服务器上运行的w e b 应用程序。 j 2 e e 体系结构扩展了标准的两层结构,提供中间层来满足经济、高可用性、 高可靠性、可扩展性的需求。这种结构简化了客户端,主要程序都运行在能保 证正常运行的服务器端,系统更加安全可靠,也更容易扩充和移植。在j 2 e e 的 应用中,软件体系架构模式【l ”( 如层模式、m v c 模式、多层分布模式等) 和设 计模式( 如截取过滤器、视图帮助器、前端控制器、值对象等) 得到广泛使用。 2 2 1 2j 2 e e 的四层模型 j 2 e e 中一个重要的设计原则是在组装或者部署应用程序时可以低耦合地 使用组件组装,而不是组件开发时定义或者改变这些组件的相互连接。一个典 型的多层j 2 e e 应用结构包括以下四个层次【1 9 】;客户层、w e b 应用层、业务层和 企业信息系统层( 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 - 2 所示。 图2 - 2j 2 e e 多层应用结构 ( 1 ) 客户层组件:客户层是用户的使用界面。j 2 e e 客户端既可以是w e b 客户端,也可以是应用程序客户端。 ( 2 ) w e b 应用层组件:可以是j s p 页面或者s e r v | e 。w e b 层处理用户输入, 并把输入发送到运行在业务层上的e j b 处理。 8 ( 3 ) 业务层组件;业务层满足业务需求,由运行在业务层上的e j b 处理。 ( 4 ) 企业信息系统层:企业信息系统层处理企业信息系统软件,包括企 业基础建设系统,企业资源计划( e n t e r p r i s er e s o u r c e sp l a n n i n g ,简称e r p ) 、 大型机事务处理、数据库系统和其它的遗留信息系统。 “容器”指应用服务器提供的特定功能的软件模块是能提供基本功能的底 层平台。j 2 e e 为多层w e b 应用系统提供了容器平台。开发者开发的程序组件在 相应的容器内部署运行。 表2 - 1j 2 e e i 4 的容器 容器名称描述 应用客户端容器负责w e b 应用程序在客户端组件的执行。 特殊的应用客户端容器,负责在w e b 浏览器和j a v a 插件上运行 a p p l e t 容器 j a v a a p p l c t 程序。应用客户端容器和a p p l e t 容器基本对应w e b 应用 程序多层结构中的用户接口层。 管理j s p j s t l 和s e r v l e t 等w e b 组件的执行,这些组件主要负责 w e b 容器 程序和w e b 层通信。对应w e b 应用程序多层结构的表示层。 负责e j b 的运行。主要负责数据处理以及和数据库或其他j a v a 程序 e j b 容器 的通信,对应w e b 应用程序多层结构的业务层和数据访问层。 2 2 2 1 企业级的w e b 应用层次的划分 2 2 2 1 j s pm o d e ll 在b s 模式流行之初,在j 2 e e 平台上,j s pm o d e l1 1 3 2 1 以其非常容易地结合业 务逻辑( i s p :u s e b e a n ) 、服务端处理过程( j s p :s e r i p l e t ) 和h t m l ( ) , 在j s p 页面中同时实现显示,业务逻辑和流程控制的优点,达到快速地完成应用 开发。当然这种开发模式在进行快速和小规模的应用开发时,是有非常大的优 势,但是从工程化,企业级的应用角度考虑,它也有一些不足之处:应用的实 现一般是基于过程的,一组j s p 页面实现一个业务流程,如果要进行改动,必须 在多个地方进行修改。这样非常不利于应用扩展和更新。由于应用不是建立在 模块上的,业务逻辑和表示逻辑混合在j s p 页面中没有进行抽象和分离。所以非 常不利于应用系统业务的重用和改动。考虑到这些问题在开发大型的w e b 应用 时必须采用不同的设计模式一这就是j s pm o d e l2 。 2 2 2 2 j s pm o d e l2 j s pm o d e l2 表示的是基于m v c 模式的框架。m v c 是m o d e l - v i e w - c o n t r o l l e r 9 的简写。“m o d e l ”代表的是应用的业务逻辑( 通过j a v a b e a n 、e j b 组件实现) , “v i e w ”是应用的表示面( 由j s p 页面产生) ,”c o n t r o l l e r ”是提供应用的处理过程 控制( 一般是一个s e r v l e t ) ,通过这种设计模型把应用逻辑,处理过程和显示逻 辑分成不同的组件实现( m v c 设计模式将会在第三章重点介绍) 。 这些组件可以进行交互和重用。从而弥补了m o d e l1 的不足。m o d e l 2 具有 组件化的优点从而更易于实现对大规模系统的开发和管理,但是开发m v c 系统 比简单的j s p 开发要复杂许多,它需要将w e b 应用开发做层次的划分。 2 2 2 3 分层开发 分层开发带来的直接好处就是关注点分离,每个开发只要专注于自己一层 的开发,是开发专业质量软件的起点。在j 2 e e 的四层模型中,针对w e b 应用 可以大致划分为三层,表现层( u il a y e r ) ,业务逻辑层( b u s i n e s sl a y e r ) ,数 据持久层( p e r s i s t e n c el a y e r ) 。 为了减轻开发者处理复杂问题的负担,使他们专注于业务逻辑,而不是花 很多时间在与业务无关的组织结构上。所以开源组织已经分别推出了以上三层 的各自框架。 2 2 3框架 框架( f r a m e w o r k ) 是可重用的,半完成的应用程序,可以用来产生专门 的定制程序。我们开发的程序大致上由两类性质不同的组件组成,一类与程序 要处理的具体事务密切相关的业务组件;另一类是只与程序相关的应用服务组 件,比如说:一个社保管理系统和一个图书管理系统会在处理它们的业务方面 存在很大的差异,这些直接处理业务的组件由于业务性质的不同不大可能在不 同的系统中重用,而另一些组件如决定程序流向的控制、输入的校验、错误处 理及标签库等这些只与程序相关的组件在不同的系统中可以很好地得到重用。 于是,把这些在不同应用程序中有共性的一些东西抽取出来,做成一个半成品 程序,这样的半成品就是所谓的程序框架,再做新项目时就不必白手起家,而 是可以在这个框架的基础仁开始搭建新的应用程序。 框架具有以下特征: ( 1 ) 框架包括大量类或组件,每一种类或组件都提供了某种概念的抽象。 ( 2 ) 框架定义了这些抽象如何协作解决问题。 ( 3 ) 框架组件可以重用。 ( 4 ) 框架在更高层次上组织模型。 本文论述的s t r u t s ,

温馨提示

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

评论

0/150

提交评论