




已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)j2ee+web应用开发中struts框架的研究与扩展.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学硕士学位论文 j 2 e ew e b 应用开发中s t r u t s 框架的研究与扩展 专业:计算机应用 硕士生:叶娜 指导教师:赵文静教授 摘要 当前,s u n 公司提出的j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 已经日渐成为企业w e b 应用的开发标准。j 2 e e 以组件技术为基础,具有n 层体系结构,为非常广泛的领域构 建了一个完整的、面向对象的、易维护、可扩展的应用架构,为w e b 应用提供了一个 健壮的开发平台。 由于w e b 应用规模越来越大,处理越来越复杂,对系统的稳定性、扩展性和可维 护性的要求也越来越高,在基于j 2 e e 的多层软件项目开发中,为了缩短开发周期, 提高开发效率,人们不会切都从头做起,而是在积极地寻找能够复用的设计或代码。 于是越来越多的开发者开始开发和使用框架。其中,j a k a r t a - s t r u t s 就是目前非常流行 的一个企业级w e b 应用开发框架。 论文以作者参与研发的项目s u p p o r tp a c k 系统为背景,在对其架构进行详细 分析的基础上,引入s t r u t s 框架。然后从方法论的角度出发,对s t r u t s 框架源码进行 深入剖析,研究s t r u t s 框架的内部结构、运作流程及所使用的设计模式。在此基础上, 运用s t r u t s 框架对s u p p o r tp a c k 系统架构进行了改进。其次,通过源码剖析,论文总 结了s t r u t s 框架的扩展点,针对s t r u t s 框架的使用,提出了若干扩展与改进的措施。 最后,在对s t r u t s 框架分析与研究的基础上,提出了作者对开发和使用框架的个人见 解。 关键字:架构框架设计模式j 2 e es t r u t s 西安建筑科技大学硕士学位论文 r e s e a r c ha n de x t e n t l o no f s t r u t sf r a m e w o r k i nj 2 e ew e ba p p l l c a t i o nd e v e l o p m e n t s p e c i a l t y :c o m p u t e ra p p l i c a t i o n n a m e :y - en a i n s t r u c t o r :p r o f z h a ow e n j i n g a b s t r a c t n o w , t h ej 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 ) p r o v i d e db ys u nm i c r o s y s t e m s , i n c h a sg r a d u a l l yb e c o m eas t a n d a r do fe n t e r p r i s ew e ba p p l i c a t i o nd e v e l o p m e n t j 2 e ei s b a s e do nt h et e c h n o l o g yo fc o m p o n e n ta n dh a sa nn - t i e ra r c h i t e c t u r e i tp r o v i d e sa n i n t e g r a t e d ,o b j e c t o r i e n t e d ,m a i n t a i n a b l ea n de x p a n d a b l ea p p l i c a t i o na r c c t u r ei nw i d e f i e l d sa n dam i g h t yd e v e l o p m e n tp l a t f o r mf o rw e ba p p l i c a t i o n w h i l et h ew e ba p p l i c a t i o n sb e c o m el a r g e ra n dl a r g e r , a n dt h e i rp r o c e s s e sb e c o m em o r e c o m p l i c a t e d ,t h ed e m a n do fs 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 ya n dm a i n t a i n a b i l i t yi n c r e a s e s i n o r d e rt os h o r t e nt h ed e v e l o p i n gc y c l ea n de n h a n c et h ee f f i c i e n c y , d u r i n gt h ed e v e l o p m e n to f t h en t i e rp r o j e c t ,t h ed e v e l o p e r sw i l ln o td oe v e r y t h i n gf r o mt h ev e r yb e g i n n i n gt h e m s e n e s b u ta c t i v e l ys e a r c hf o rt h er e u s a b l ed e s i g na n dc o d e t h e r e f o r e ,m o r eo ft h e ms t a r tt ou s e f r a m e w o r k s a m o n gt h e s ef r a m e w o r k s ,j a k a r t a - s t r u t si sc u r r e n t l yam o r ep o p u l a ro n ef o r d e v e l o p i n ge n t e r p r i s ew e ba p p l i c a t i o n s t h i st h e s i st a k e sa p r o j e c tn a m e d s u p p o r tp a c ks y s t e m w h i c ht h ea u t h o rp a r t i c i p a t e d i na st h eb a c k g r o u n d t h e nf r o mt h em e t h o d o l o g i c a la n g l e ,ad e t a i la n a l y s i sa n dr e s e a r c hi s m a d eo nt h es o u r c eo ft h es t r u t sf r a m e w o r k ,a n a l y z i n gi t si n t e r n a ls t r u c t u r e ,p e r f o r m i n g p r o c e d u r ea n dt h ed e s i g np a t t e m si tu s e d b a s e do nt h a t ,a ni m p r o v e m e n ti sm a d eo nt h e a r c h i t e c t u r eo ft h es u p p o r tp a c ks y s t e m s e c o n d l y , t h r o u g ht h es o u r c ea n a l y s e s ,t h et h e s i s s u m m a r i z e st h ee x t e n s i o np o i n t si nt h es t r u t sf r a m e w o r k a i m e da tt h eu s eo fs t r u t s ,t h e t h e s i sp o i n t so u ts o m ee x t e n s i o na n di m p r o v e m e n to fi t f i n a l l y , o nt h eb a s i so ft h ea b o v e a n a l y s i s ,s o m ep e r s o n a lo p i n i o n so nd e v e l o p i n ga n dc h o o s i n gf r a m e w o r ka r ep r o v i d e d k e y w o r d s :a r c h i t e c t u r e f r a m e w o r k d e s i g np a t t e m j 2 e es t r u t s i i 声明 飞8 4 1 8 1 4 本人郑重声明我所呈交的论文是我个人在导师指导下进行的研究工作及取 得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含本人或其他人在其它单位 已申请学位或为其它用途使用过的成果。与我一同工作的同志对本研究所做的 所有贡献均已在论文中作了明确的说明并表示了致谢。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名: 叶蚧 1 日期:妒昱平珥2 s 日 关于论文使用授权的说明 本人完全了解西安建筑科技大学有关保留、使用学位论文的规定,即:学 校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的 全部或部分内容,可以采用影印、缩印或者其它复制手段保存论文。 ( 保密的论文在论文解密后应遵守此规定) 论文作者虢叶哪翩弥硝吼m f 厂 夕 注:请将此页附在论文首页。 西安建筑科技大学硕士学位冶文 1 1 s t r u t s 框架的发展及现状 1 绪论 j a k a r t a - s t r u t s 是曰前非常流行的一个企业级w e b 应用开发框架,是a 口a c h e 软件 组织负责开发的一个开源项目。它最早由c r a i gr m c c l a n a h a n 创建,并于2 0 0 0 年5 月被捐赠给a s f 作为j a k a r t a 项目的组成部分,在短短的几年叶1 ,s t r u t s 得到_ :r 飞速的 发展。2 0 0 1 年6 月,s t r u t s l 0 发布;2 0 0 2 年1 月,s t r u t s l 0 1 发布;2 0 0 2 年2 月s t r u t s l 0 2 发布;历经s t r u t s i 1b e t a l 、b e t a 2 、b e t a 3 ,直到2 0 0 3 年6 月s u u t s l 1f i n a l 版发布;2 0 0 4 年9 月s t r u t s l 2 4 发布,这是现在比较稳定的版本,不久还将推出s t r u t s l 2 6b e t a 版。 目前,很多组织及个人都参与s t r u t s 框架的开发,同时使用s t r u t s 框架进行w e b 开发 的人也越来越多,这使得s t r u t s 框架不断的发展与完善。 s t r u t s 是m v c 设计模式m o d e l 2 架构的一个实现,它将成用分为模型、视图和控 制器三部分。s l r u t s 提供了自己的控制器组件,在视图组件上主要使用j s p 技术,也可 以和其他表示层框架如v e l o c i t y 、x s l t 等结合;在模型组件上,不但可以使用一些标 准的数据访问方式,如j d b c 和e j b ,也可以和一些第三方软件包如h i b e r n a t e 、i b a t i s 、 o r b 等结合,是开发大规模w e b 应用程序的设计利器。 1 _ 2 课题的来源 在西安汉堂软件有限公司和西安丝路软件公司实习期间,作者参与了多个j 2 e e w e b 应用系统的开发,包括详细设计、编码、测试及文档化等工作。在企业标准化管 理系统开发中还参与了基本设计( b d ) 和功能设计( f d ) 。其中,大多数系统都使用了 一些当今流行的框架,包括s t r u t s 、h i b e r n a t e 等,引起作者极大的兴趣,框架到底 能为系统开发带来什么好处,它是如何构建以实现这些好处的,这些都是作者关注的 焦点。s t r u t s 框架是其中使用最频繁的框架之一,而且是开源的,于是成为作者的研 究对象。 s u p p o r tp a c k 系统是课题研究的出发点。该系统并未使用类似s t r u t s 这样的框 架,而是仅仅遵循y o d e l 2 架构实现。作者通过对该系统以及s t r u t s 框架的深入研究, 发现该系统存在若干不足,欲结合s t r u t s 框架对其架构进行改进,这成为了课题的重 发现该系统存在若干不足,欲结合s t r u t s 框架对其架构进行改进,这成为了课题的重 西安建筑科技大学硕士学位论文 要来源之一。 1 3 课题的研究目的及意义 如今,在进行w e b 应用开发时,人们不是一切从头开始,而是积极地使用一些现 有的框架,以达到如下目的: 1 重用设计,以简化开发的复杂性; 2 重用代码,减少编码和测试时间,提高工作效率; 3 提高系统的可扩展性和可维护性; 框架是在特定领域基于架构的、解决某类应用问题的半成品,是大粒度的软件复 用,它为w e b 应用开发提供了一个能够使用的架构模板和软件包,让开发者从编码中 解脱出来,不必一切都从头做起,自己来完成,只需将注意力集中在业务逻辑上,从 而减轻了开发者处理复杂问题的负担,提高了工作效率;其次,在应用与分析框架的 基础上,可以对其进行改进与扩展,以适应实际的需求。因此框架也为扩展和维护系 统奠定了基础。 另外,对已有优秀框架进行深入地学习与研究,领悟其中的设计理念,不仅可以 更灵活地将其付诸于实践,而且可以提高自身的设计水平,设计出高效的系统乃至框 架。 s t r u t s 框架是目前最流行的w e b 应用开发框架之一,对其进行分析与研究,可以 带来上述好处。 1 4 论文结构 本文的结构安排如下: 1 绪论 简要介绍了s t r u t s 框架的发展及现状、课题来源、课题研究的目的及意义以及作 者的主要工作; 2 架构、框架与设计模式 主要介绍了架构、框架、设计模式、组件、类库等一些基本概念,以及它们之间 的区别与联系。 3j 2 e e 架构、框架及设计模式 西安建筑科技大学硕士学位论文 对应于第二章,本章主要介绍j 2 e e 多层体系结构、j 2 e e 平台上现有的一些框架 以及j 2 e e 设计模式。 4s t r u t s 框架分析 本章首先简介s u p p o r tp a c k 系统及其体系结构,针对其存在的不足,引入s t r u t s 框架,然后对s t r u t s 框架的源码进行详细的剖析与研究,最后利用s t r u t s 框架来改进 s u p p o r tp a c k 系统架构。 5s t r u t s 框架的扩展与改进 本章总结了s t r u t s 框架中的扩展点,并针对s t r u t s 框架的使用,提出了若干扩展 与改进的方法。 6 对建立和选择框架时的一些个人见解 本章将提取出框架开发时的一些基本原则,针对开发和选择框架,提出一些个人 见解。 7 总结 概括总结本文所做的工作,并对s t r u t s 框架的应用前景及作者未来的工作做一展 望。 1 5 主要工作 本文中,作者完成的主要工作如下: ( 1 ) 对s t r u t s 框架的源码进行了详细剖析与研究; ( 2 ) 使用s t r u t s 框架,对作者参与研发的应用项目( 见附录) s u p p o r tp a c k 系统的 结构进行了改进; ( 3 ) 总结了s t r u t s 框架中的扩展点,针对s t r u t s 框架的使用,提出了若干扩展与改 进的方法; ( 4 ) 总结提取出框架开发的一些基本原则,对框架的开发与选择提出了自己的见 解。 西安建筑科技大学硕士学位论文 2 架构、框架与设计模式 随着企业应用向分布式和大规模的快速发展,同时对系统的稳定性、扩展性和可 维护性要求的提高,一个良好的架构( a r c h i t e c t u r e ) ( 也称为体系结构) 越来越成为 系统开发的核心。在软件开发时只要用户需求和系统架构确定之后,这个软件就基本 上可以定型了。在实现架构时,框架的设计和应用是项目开发的一个重要环节。设计 模式则是架构和框架得以实现的方法论。本章将介绍架构、框架、模式及设计模式、 组件、类库的基本概念,并阐述它们之间的区别与联系。 2 1 架构 2 1 1 架构的概念m 架构也称为体系结构。所谓软件架构,根据p e r r y 和w o l f e 之定义:s o t t w a r e a r c h i t e c t u r e = e l e m e n t s ,f o r m s ,r a t i o n a l e ,c o n s t r a i n t ,也就是软件主架构= 组件元 素,元素互助合作之模式,基础要求与限制) 。p h i l i p p ek r u c h t e n 采用上面的定义,并 说明架构设计就是:将各组件元素以某些理想的合作模式组织起来,以达成系统的基 本功能和限制。 架构是一个系统中的核心元素,是该系统中最本质的部分。系统的各个组成部分 正是通过架构所描绘的方式协同工作共同完成系统的功能,从而表现出一个完整的系 统。架构决定了系统设计的静态和动态两方面特征:静态的,系统如何划分:动态的, 各部分如何交互。 2 1 2 架构的评判标准“1 架构设计是一种权衡。一个软件系统可以有多种不同的架构实现,只能根据需求 的轻重缓急来选择一个适当的架构。例如对系统稳定性的要求就可能影响到系统的可 扩展性。那么在架构定型时就必须权衡各方面因素。虽然评价架构的优劣要考虑具体 需求,但一般来说,可以根据以下几个方面来评判: 系统的内聚和耦合:这是保证一个系统的架构是否符合软件工程原则的首要标 准。 4 西安建筑科技大学硕士学位论文 复用性:复用是软件行业一直追求的目标之一。为避免重复劳动,有效利用已 有的软件资源,提高软件开发效率,降低开发成本,希望能够重用以前的设计或代码。 层次的清晰和简洁性:系统每个部分完成的功能和目标必须是明确的,同样的 功能,应该只在一个地方实现。设计模式的使用将会为架构的简洁与清晰带来很大的 帮助。 易于实现性:如果设计出来的架构,实现起来很困难,甚至超出了团队开发人 员的能力,那么对于整个项目开发来说,使用这个架构将得不偿失。 可扩展性:在进行架构设计时,对于需求的预测往往不是全面的,系统必须为 将来可能的变化做好准备,能够在需求变化时,在以前的基础上进行改进或扩充,但 不会影响已有的部分。 是否有利于团队合作开发:一个大规模的复杂的系统往往是通过一个或多个项 目组协作完成的,因此一个好的系统架构,应该适用于团队开发模型。这样有利于项 目组中各人员的角色分工,使得项目组成员能很好地定位自己的任务。 性能:任何时候都希望架构是高效的。 2 - 2 - 框架 2 2 1 框架的概念嘲。1 框架是面向对象系统可以获得的最大复用方式,较大的系统将会由多层彼此合作 的框架组成,框架具有如下特点: 1 框架是一组协作的类,它不仅仅由一组静态的类组成,更重要的是类之间的相 互合作,即它封装了控制流程。更进一步,框架建立了组件的集成机制,提供了组件 间协同工作的环境。 2 框架是某类应用的半成品,相当于一个大的功能模板,其中包括某一特定领域 中所有应用的共同的固有的方面( 可称为“固点”) ,也包括对于一个具体应用需要 修改和扩充的地方( 可称为“热点”) 。因此,框架既具有一定的标准性,又具有一 定的灵活性。 3 框架具有较高层次的可复用性,它提供了对设计和代码的复用。在开发中,一 类相似的应用共享了框架的固点,这相当于对代码的复用;同时,在开发这些应用时, 5 两安建筑科技大学硕士学位论文 为了有效的使用和扩展框架,使用者必须了解框架的控制结构和设计决策,而这则是 对设计平u 分析的复用。 22 2 框架、类库和组件” 在基于框架的软件开发中,有一些其它的技术与框架密切相关,它们是类库和组 什。 首先要给类库个明确的定义,对类库的广义描述为:类库以库文件的形式存在, 库文件中包含了事先定义好的类。在传统意义上,框架是不同于类库的,框架包含更 多的内容。框架是对出作完成一系列相关责任的类集合的抽象设计。框架和类库的一 些主要区别与联系如表2 一l 所示。 囊冀鬟鬻。霖g 鋈篓黧蒸粪激8 簇麓。溅爨一,囊蕤黧蘩溯囊藜羹霪鬻露臻;戮i i 结构是静态的既体现了静态结构,也包含了动态的控制逻辑 调用的方向是从应用到类库调用的方向是从框架到不同的畋入构件 使用类库只需要了解类的外部接口,但要使用者要了解框架的抽象设计和内部结构,以 定义应用系统的整体结构便对框架进行修改与扩展 未定义缺省行为提供缺省行为 表21 类库与框架的比较 在基于框架的开发过程中,类库扮演着重要的角色。框架将类库集成到其内部来 简化开发工作,并通过类库来完成一些基本的任务如字符串处理、文件管理等。 组件是一种复杂的软件实体,具有抽象的概念和具体的实现。基于组件的软件开 发是可复用软件丌发的一种有效形式。它使复杂系统简化为一些简单的对象模块,体 现了匝i 川对象的思想,但是它主要是针对发生频率高的、比较具体的、相对独立的问题 解决方案。组件是松耦合的,并支持二进制级别的复用。 框架是可复用软件开发的最普遍的、可修改弹性最大的一种形式。相对丁组件来 说,框架能提供一系列问题的解决方案,因而它更有灵活性和可扩展性。组件能提供 的仅仅是可绑定的一个模块,框架提供的是一个模板,能被许多应用程序所采用的一 个程序的框架轮廓。 223 使用框架的优点。1 6 西安建筑科技大学硕士学位论文 框架提供了建立复杂系统的强有力的工具,它具有如下优点: 可以复用框架的体系结构和代码,减少了编码、调试和测试的工作量。 使用户能够专注于业务逻辑,不需要花大量时间去做大量基础开发工作。 为组合软件开发奠定了基础。设计良好的框架将允许第三方软件公司提供部分 或者完整组件供用户或系统集成商装配。 2 3 模式与设计模式 2 3 1 形成历史n 町m 1 模式最初开始于建筑和民用工程,由一位建筑工程师c h r i s t o p h e r a l e x a n d e r 在模 式语言( a p a t t e r n l a n g u a g e ) ) ) 中首次提出,它们标识有效结构之间的相似性,确定 共同原则,作为常见设计问题的解决方案,使得不需要太多专门知识与经验的人也可 以使用建筑学。这对许多其它学科产生了巨大的影响。软件工程也不例外。 1 9 9 4 年e r i c hg a m m a ,r i c h a r dh e l m ,r a l p hj o h n s o n 与j o h nv l i s s i d e s ( 简称g a n g o f f o u r ) 合著的d e s i g np a t t e r n s :e l e m e n t so f r e u s a b l eo b j e c t - o r i e n t e ds o f t w a r e ) ) ( 设 计模式:可复用面向对象软件的元素) 一书,成为模式在软件工程领域的奠基之作。 模式的概念越来越普及,模式与设计模式成为软件开发设计人员的共同话题和必备知 识。 1 9 9 6 年由f r a n kb u s c h n a a n n 等人合著的p a t t e r n s o r i e n t e ds o f t w a r e a r c l l i t e c t u r e ) ) ( 面向模式的软件体系结构,简称“p o s a ”) 是模式发展史上的又一个里程碑。 这本书从体系结构的角度总结出了1 6 种以模式为基础的软件体系结构。 2 3 2 模式与设计模式的概念。m “”“” 模式是从实践中总结出来的、经过验证的特定问题的解决方案,也可以说是经验。 通过模式,人们可以记录、交流学习与使用这些经验,防止了重复劳动,促进了复用。 c h r i s t o p h e r a l e x a n d e r 对模式的概念作了如下描述: “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方 案的核心。这样,你就能一次又一次的使用该解决方案而不必做重复劳动。每个模式 是由三部分组成的一个规则,这个规则描述特定环境、问题和解决方案之问的关系。 西安建筑科技大学硕士学位论文 简单的说,没有一个模式是独立的实体,每个模式都存在着相互支持,但支持的程度 不同:大的模式可以内嵌小的模式,同等层次的模式并列存在,而小的模式被嵌入到 大的模式之中。”。” “g a n go ff o u r ”定义模式为:“模式是三段值,表示特定环境、问题与方案之间 的关系。” 近年来,出现了很多不同的软件模式。主要包括: 设计模式:涉及软件设计方面,通常是面向对象的,包括体系结构( 系统设计) 、 设计( 组件交互) 和编程( 使用特定语言) 。 分析模式:描述可复用分析模型,在域分析中非常有用。 过程模式:描述软件过程设计。 组织模式:描述组织与项目的结构和实践。 实现模式:描述实现概念。 其它域特定模式。 设计模式是一系列在实践中总结出来的可复用的面向对象的软件设计方法,是经 过多次验证的成功解的记录与提炼,是在特定上下文情形中解决一般设计问题的类和 相互通信对象的描述。 设计模式一般有以下四个基本要素: 模式名称:模式的标识符或别名。 问题:描述应该在何时使用模式,它解决的是什么设计问题。 解决方案:描述了解决问题的方法,设计的组成部分、相互关系及各自的职责 与协作方式。 效果:描述模式应用的效果及使用模式应权衡的问题。 “g a n go ff o u r ”把他们总结的2 3 种设计模式( 通常称其为设计模式目录) 按模 式的目的分为创建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 和行为型( b e h a v i o r a l ) 。如表 2 - 2 所示。创建型模式处理的是对象的创建过程;结构型模式处理类或对象的组合;行 为型模式描述类或对象间如何交互及任务分布。 西安建筑科技大学硕士学位论文 :| | 薅毯嫒i t 童 。 量蜀舞 一:e kp i l 无毒 、 创建型 a b s t r a c tf a c t o r y ,b u i l d e r ,f a c t o r ym e t h o d ,p r o t o t y p e ,s i n g l e t o n 结构型 a d a p t e r ,b r i d g e ,c o m p o s i t e ,d e c o r a t o r ,f a g a d e ,f l y w e i g h t ,p r o x y c h a i no fr e s p o n s i b i l i t y ,c o m m a n d ,i t e r a t o r ,m e d i a t o r ,m e m e n t o , 行为型 o b s e r v e r ,s t a t e ,s t r a t e g y ,v i s i t o r ,i n t e r p r e t e r ,t e m p l a t em e t h o d $ 用斜体字标注的是关于类的。 表2 - 2 设计模式目录的分类 233 研究和使用设计模式的意义。“”1 设计模式是前人经验与智慧的结晶,研究与使用设计模式可以带来如下好处: 1 设计模式可以帮助人们更快更好的设计软件。包括: 标识组件、组件内部结构及组件之间的关系 确定组件的粒度及交互 定义组件接口 2 设计模式更好的促进了复用: 可以帮助设计者思考,允许设计者在更高抽象层次上讨论系统的设计。 设计模式是书写文档和学习的辅助手段。学习设计模式有助于开发者理解已 有系统,提高自己的设计水平。按照系统所用的设计模式来描述系统,有助 于提高系统的可理解性。 使系统更健壮,更灵活,便于日后修改。 设计模式使设计者可以复用优秀的解决方案。通过复用已有的设计,设计者 可以从中汲取他人的经验,不必从头寻求重复问题的解决方案。 2 3 4 设计模式与框架的区别“ 设计模式和框架是不同的概念。框架是一个特定领域内的可复用的体系结构,为 一组应用提供了一般性的结构和行为。设计模式表达的是关于软件的知识和经验,在 进行框架设计和文档化时可以使用。两者的具体区别如下: 设计模式比框架更抽象。框架可以以代码的形式表示,而设计模式是关于设计 的抽象描述,使用时需要具体实现。 设计模式是比框架更小的结构元素。设计框架时可以应用多种设计模式。 西安建筑科技大学硕士学位论文 设计模式的适用领域比框架更广泛。框架是针对一个特定领域的应用结构,而 设计模式可用于多个应用领域中。 2 4 小结 以上对架构、框架、设计模式及相关概念进行了简要介绍,可以看到它们之间有着 紧密联系,可以用面向对象的观点来描述它们的相互关系,如图2 1 所示: 嘿_ 一鼻 囝2 一l 关系图 架构就如同一个抽象类,它仅对系统结构作了一个抽象的描述,而没有具体去实 现。框架则是基于架构的可执行的代码,可以将它看成是对架构的具体实现。架构是 框架的泛化,框架是架构的特化。 框架可以通过集成若干个组件来建立,框架与组件之间是共享聚集的关系。 框架和组件的实现中,都可以调用类库中的类的方法,因此,框架和组件都依赖 于类库。 设计模式可应用于软件开发的各个环节,如设计系统结构、组件交互及编程实现。 因此,架构、框架、组件、类库都依赖于设计模式。 1 0 、目 、 一 , 、,、, 一 、 一 , ,卜 、 、 _ 一_ 、 _ 】c 一_ _ 自7 一日 _ 、 _i_、薛一 ,、|、|苜 西安建筑科技大学硕士学位论文 3 j 2 e e 架构、框架及设计模式 本章将在第二章的基础上,介绍目前流行的w e b 应用开发架构之一j 2 e e 多 层架构,并简要列举该架构上现有的框架,最后简单介绍j 2 e e 的设计模式,这为后 面分析s t r u t s 框架打下了理论基础。 3 1 j 2 e e 多层架构简介”1 目前,基于j 2 e e 平台的企业应用使用了一个多层分布式应用模型,它根据功能, 将应用逻辑分成不同的组件,各应用组件根据它们所属的不同的j 2 e e 层而被安装在 不同机器上,如图3 - l 所示。 固3 - 1j 2 e e 多层架构 一个j 2 e e 应用包含客户层、w e b 层、业务层和企业信息系统层共四层,各层组 件分布在不同机器上,客户层组件位于客户机上,w e b 层组件和业务层组件位于j 2 e e 服务器上,企业信息系统层位于数据库服务器上。这四层使用不同的组件技术,完成 不同的系统功能: 客户层:j 2 e e 客户可以分为两种:w e b 客户和应用客户。w e b 客户由w e b 浏 览器和动态w e b 页两部分组成,动态w e b 页由w e b 组件生成,w e b 浏览器 则负责处理这些页面。应用客户通常需要具有更为丰富的图形用户界面( 通 西安建筑科技大学硕士学位论文 常使用s w i n g 或a w t 来创建) ,当然也可以是命令行形式。w e b 客户通常是 瘦客户,它一般不进行数据库查询或业务逻辑处理等一些复杂的操作;应用 客户则可以直接访问运行在业务层的企业b e a n 组件。客户层组件包括应用客 户和a p p l e t s 。 w e b 层:w e b 层用来接收客户层请求并返回相应的系统应答。w e b 层组件包 括j a v as e r v l e t 和j a v as e r v e rp a g e s 。 业务层:业务层负责处理某一特定领域的业务逻辑。它可以从客户程序接收 数据,作适当处理后存到数据存储设各中,也可以从数据存储设备中读取数 据,处理后发送给客户程序。业务层组件由企业b e a n s 组成,分为三类:会 话b e a n 、实体b e a n 和消息驱动b e a n 。 企业信息系统层:企业信息系统层包括一些企业基础设施系统,比如企业资 源计划e r p 、事务处理系统、数据库系统及其他遗留信息系统等。 3 2 j 2 e e 多层架构上现有框架介绍“”儿埘。州”1 目前,j 2 e e 多层架构上已经开发出了很多框架,这大大减轻了开发人员的负担, 开发者可以将不同层上的框架整合到一起,从而能够从烦杂的底层编码中解脱出来。 在构建w e b 应用时,用户请求的处理、业务逻辑处理以及数据的持久化是必须仔 细考虑的因素,而且也是大部分应用必须具备且较为复杂的职责。因此针对这三方面, 人们开发了很多框架,如图3 - 2 所示。 m a - 2 t 2 e e 架梅上的框架 应用于j 2 e ew e b 层的框架主要有以下几种: ( 1 ) s t r u t s 框架:这是本论文讨论的核心,将在后面章节作具体分析。 西安建筑科技大学硕士学位论文 ( 2 ) 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 ( p l n g g a b l ei m p l e m e n t a t i o n 可插拔的执行组件) 的方式提供各种 服务。 ( 3 ) c o c o o n 框架:这是a p a c h e 的开源项目。基于x m l ,基于x s p ( 通俗地说, x s p 是在x m l 静态文档中加入j a v a 程序段后形成的动态x m l 文档。) 。特 点是可以与多种数据源交互,包括文件系统,数据库,l d a p ,x m l 资源 库,网络数据源等。 ( 4 ) j a t o 框架:这是s u n 推出的一个商业性框架,主要应用技术是j s p ,t a g l i b , j a v a b e a n 等。j a t o 应用程序框架是i p l a n e t 应用程序框架的旧名。它是一 个成熟的、强大的,基于j 2 e e 标准的面向于开发w e b 应用程序的应用框 架。结合了显示字段、应用程序事件、组件层次和以页面为中心的开发方 法、以及m v c 和服务到工作者s e r v i c e - t o - w o r k e r s 的设计模式等概念。j a t o 可适用于中、大、超大规模的w e b 应用。但是它也不是一个企业层的应用 框架,也就是说它不会直接提供创建e j b ,w e bs e r v i c e s 等企业层组件的方 法,但用它可以构造出访问企业层组件的客户应用。 ( 5 ) j s f 框架:是一个包括s u n 在内的专家组正在定义的开发w e b 应用用户 界面的框架,它提供了丰富的g u i 组件模型。 应用于业务层的框架主要有: ( 1 ) s p r i n g 框架:s p r i n g 是一个服务于所有层面的应用框架,它的功能很多, 包括a o p 、o r m 、d a o 、c o n t e x t 、w e b 、m v c 等几个部分组成。s p r i n g 带来的好处有:自然的面向接口的编程,业务对象的依赖注入,一致的数 据存取框架和声明式的事务处理,统一的配置文件等等,更重要的是s p r i n g 既是全面的又是模块化的,s p r i n g 有分层的体系结构,这意味着能选择仅 仅使用它任何一个独立的部分,就像本文,而它的架构又是内部一致的。 ( 2 ) w a f 框架:w a f 是w e ba p p l i c a t i o nf r a m e w o r k 的简称,是s u n 蓝皮书例子程序中提出的应用框架。它实现了m v c 和其他良好的设计模 式。 应用于数据持久化的框架主要有: ( 1 ) h i b e r n a t e 框架:h i b e r n a t e 是一个面向j a v a 环境的对象,关系数据库映射工 西安建筑科技大学硕士学位论文 具。它不仅仅管理j a v a 类到数据库表的映射,还提供数据查询和获取数据 的方法,可以大幅度减少开发时人工使用s q l 和j d b c 处理数据的时间。 h i b e r n a t e 的目标是对于开发者通常的数据持久化相关的编程任务,解放其 中的9 5 。 ( 2 ) i b a t i s 是一个功能强大实用的s q lm a p 工具,不同于其他o r m 工具( 如 h i b e r n a t e ) ,它是将s q l 语句映射成j a v a 对象,而对于o r m 工具,它的 s q l 语句是根据映射定义生成的。i b a t i s 以s q l 开发的工作量和数据库移 植性上的让步,为系统设计提供了更大的自由空间。有i b a t i s 代码生成的工 具,可以根据d d l 自动生成i b a t i s 代码,能减少很多工作量。 3 3 j 2 e e 设计模式分类伽1 刀 j 2 e e 提供了大量的技术用来开发企业应用,例如e j b 、j s p 、s e r v l e t 、j m s 、j t a 、 j a a s 、j n d i 、j a x p 、j a v a m a i l 等,设计开发人员在解决一个具体问题时,正确选择 与使用适当的技术不是一件容易的事情,j 2 e e 设计模式帮助总结了常见问题的实用解 决方案。j 2 e e 设计模式有两个来源,一个是在t h e s e r v e r s i d e c o m 模式仓库中,另一 个是s u nj a v ac e n t e r ,定义了1 5 个j 2 e e 模式。 s u nj a v ac e n t e r 将模式按照j 2 e e 多层架构的层分类,其中j 2 e e 的企业信息系统 层被分为集成层( 包括j m s 、j d b c 和连接器) 和资源层( 包括数据库系统、外部系 统和遗留系统) ,j 2 e e 模式主要针对w e b 层、业务层和集成层,因此分为w e b 层模 式、业务层模式和集成层模式。各层模式简述如表3 1 。 t h e s e r v e r s i d e c o r n 模式分为四类,共1 7 个模式,如表3 ,2 所示。 鬻蓉鍪黧灞嚣鏊纛戮黧麓戮纛溺谶懑糕醚蒸瀵蒙獭戮麓麟浚囊鬻麓鬻l i n t e r c e p t i n gf i l t e r 提供请求的预处理和后处理方案 ( 截取过滤器) f r o n tc o n t r o l l e r 通过中央控制器管理和处理请求 ( 前端控制器) v i e wh e l p e r 将表示格式放在视图组件中,业务逻辑放在帮助器组件中 ( 视图帮助器) c o m p o s i t ev i e w 从原子子组件创建一个聚集视图 1 4 西安建筑科技大学硕士学位论文 ( 复合视图) s e r v i c e - t o - w o r k e r 由d i s p a t c h e r 组件、f r o n tc o n t r o l l e r 和v i e wh e l p e r 模式组合 ( 服务2 1 2 人)而成,先进行请求处理,再进行视图处理。 d i s p a t c h e rv i e w由d i s p a t c h e r 组件、f r o n tc o n t r o l l e r 和v i e wh e l p e r 模式组合 ( 分发者视图)而成,与s e r v i c e - t o w o r k e r 不同的是,在进行视图处理期间 进行请求处理 鼍i 薯蠢 | | 、誊。簟熏蓦麓;薹霎潮毖笺凄i l 邕绻i 薯麓;薯誊jj 蔷墓j 。:i 薯船。糍糖i 蠹薰 b u s i n e s sd e l e g a t e 减少表示层与业务层之间的耦合,提供门户代理 ( 业务代理) v a l u eo b j e c t 通过减少网络对话,以加速层之间的数据交换 ( 值对象) s e s s i o nf a g a d e 隐藏业务组件的细节和集中工作流程,提供客户机的粗粒接 ( 会话外观)口,减少远程方法调用开销 c o m p o s i t ee n t i t y 解决f a b l 1 实体b e a n 的远程接口开销,提供设计粗粒实体 ( 复合实体)b e a n 的方法,将相互依赖的对象合并为一个实体b e a n v a l u eo b j e c t a s s e m b l e r把来自多个不同来源的值对象组装成一个复合值对象,这个 ( 值对象组装器)模式创建要传递给客户机的数据 v a l u el i s th a n d l e r 管理查询执行、结果缓冲及结果处理 ( 值列表处理器) s e r v i c el o e a t o r 可以查找、创建于定位服务工厂,包装其细节 ( 服务定位器) d a t a a c c e s so b j e c t 可以灵活而透明的访问数据,抽象数据源 ( 数据访问对象) s e r v i c ea c t i v a t o r 加速e j b 组件的异步处理,适用于e j b l 1 ( 服务激活器) 表3 - 1s u nj a v ac e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国广电宜春市2025秋招网申填写模板含开放题范文
- 神农架林区中储粮2025秋招购销统计岗高频笔试题库含答案
- 国家能源张家口市2025秋招交通运输类面试追问及参考回答
- 中国移动昆明市2025秋招笔试行测题库及答案技能类
- 公路定额类考试题及答案
- 甘南藏族自治州中石油2025秋招笔试综合知识专练题库及答案
- 大唐电力临汾市2025秋招面试专业追问及参考计算机与信息岗位
- 中国移动广安市2025秋招笔试行测题库及答案综合管理类
- 中国广电济源市2025秋招网络优化与维护类专业追问清单及参考回答
- 中国联通儋州市2025秋招笔试行测经典题及答案
- 《ESPEN重症病人营养指南(2023版)》解读课件
- 初三学习策略模板
- 外销合同协议书英文翻译
- 灌区续建配套与节水改造规划报告
- 财务咨询外包协议
- 2023-2024学年上海市杨浦区六年级上学期期中考试语文试卷含详解
- 农行超级柜台业务知识考试题库(含答案)
- 新标准大学英语(第三版)综合教程3(智慧版)课件 Unit6 Path to prosperity
- 3认识你自己-大学生自我意识发展课件
- 中药学全套(完整版)课件
- GB 1886.232-2016食品安全国家标准食品添加剂羧甲基纤维素钠
评论
0/150
提交评论