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

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

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

文档简介

中文摘要 摘要 w e b 应用框架是支持w e b 应用开发的重要软件复用技术,旨在提高开发效率, 增强系统的可重用性、健壮性和可伸缩性。目前的w e b 应用框架大都侧重封装底 层的技术细节,复用粒度较小,在可操作性方面存在不足。针对上述问题,本文 设计并实现了一种w e b 应用框架( 本文中简称为j f s s h 框架) ,它基于当前较为成 熟和稳定的框架s t r u t s 、s p r i n g 以及h i b e r n a t e ,提供高层复用。 j f s s h 框架较好地实现了对表现层、业务逻辑层和数据持久层的分离和封装, 提供对事务处理、身份认证、权限控制等关键服务的支持。j f s s h 框架大粒度特 性,使得利用工具进行w e b 应用系统的开发成为可能,w e b 应用开发平台利用应 用框架和组件等技术,为软件复用提供便利的可视化平台。 本文在j f s s h 框架基础上,总结了表现层和数据持久层的抽象模型和描述方 法,提供了相应的用户定制界面和代码生成引擎,最终形成了j f s s h 框架应用开 发平台原型,使w e b 应用的开发者从繁重的底层代码编写中摆脱出来。将精力投 入到业务逻辑的描述和用户界面的定义上,这对于保证w e b 应用系统的易用性、 高效性和高可靠性都具有重要意义。 j f s s h 框架已被应用于“中小企业生产管理系统计划管理子系统”项目的开 发中。工程实践表明,j f s s h 框架能够较好地支持企业级w e b 应用系统开发,有 效提高了复杂w e b 应用的开发效率。 关键词:软件复用;w e b 应用框架;w e b 应用开发平台 英文摘要 r e s e a r c ho fw 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 do nj 2 e e a b s t r a c t w e b a p p l i c a t i o nf r a m e w o ai s a l li m p o r t a n ts o f t w a r er e u s et e c h n o l o g y 1 tp l a y sa l l i m p o r t a n tr o l ew h e nd e v e l o p i n gw e ba p p l i c a t i o nb yi m p r o v i n gt h er e u s a b i l i t y , s t a b i l i t y a n ds c a l a b i l i t yo ft h es y s t e m h o w e v e r , t h ep r e s e n te x i s t i n gf r a m e w o r k sc a nn o t c o m m e n d a b l ys u p p o r tc o a r s eg r a n u l a rr e u s a b i l i t ya n ds o u n dm a n e u v e r a b i l i t y f o r l a c k i n gc o r r e s p o n d i n gm e c h a n i s m t h i st h e s i sd e s c r i b e sa n e wk i n do ff r a m e w o r k ( w h i c h i sn a m e dj f s s hi nt h i st h e s i s ) a sas o l u t i o nt ot h ea b o v e - m e n t i o n e dp r o b l e m t h i s f r a m e w o r ki sb a s e do ns t r u t s 、s p r i n ga n dh i b e r n a t e i tp r o v i d e sh i g hl e v e l 坞u s a b i l i t y j f s s hs e p a r a t e sa n de n c a p s u l a t e st h ep r e s e n t a t i o nl a y e r , h n s i n e s sl a y e ra n dd a t a p e r s i s t e n c el a y e r , a sw e l l a sp r o v i d i n gp r e f e r a b l es u p p o r tf o rt r a n s a c t i o np r o c e s s i n g , a u t h e n t i c a t i o na n da u t h o r i z a t i o n t h eb e n e f i tj f s s hc a nb r i n gi st h a ti t sc o a r s eg r a n u l a r c h a r a c t e r i s t i cm a k e si tp o s s i b l et ou s et o o l st od e v e l o pw e ba p p l i c a t i o n i s u c ha sw e b a p p l i c a t i o nd e v e l o p m e mp l a t f o r m i tp r o v i d e sac o n v e n i e n ta n dv i s u a lp l a t f o r mf o r s o f t w a r e 聆u s eb yu s i n gt h ef r a m e w o r ka n dc o m p o n e n tt e c h n o l o g y b a s eo nt h ed e s i g no fj f s s h ,t h et h e s i ss u m m a r i z e st h ep r e s e n t a t i o nl a y e ra n dd a t a p e r s i s t e n c el a y e r s a b s t r a c tm o d e l sa n dd e s c r i p t i o nm e t h o d s ,a n d p r o v i d e s t h e c o r r e s p o n d i n gu s e rc u s t o mi n t e r f a c e sa n dc o d eg e n e r a t o r s ,w h i c hc a u s e st h er e a l i z a t i o n o fj f s s h a p p l i c a t i o nd e v e l o p m e n tp l a t f o r m t h i sd e v e l o p m e n tp l a t f o r mm a k e st h ew e b a p p l i c a t i o nd e v e l o p e rf r e ef r o mh e a v yl o wl e v e lc o d ep r o g r a m m i n gw o r k sa n d b ea b l e t op a ym o r ca t t e n t i o nt ot h ed e s c r i p t i o no fb u s i n e s sl o 百ca n dd e f i n i t i o no fu s f ri n t e r f a c e , w h i c hi so fg r e a ti m p o r t a n c et og u a r a n t t h eg o o du s a b l i l i t y , h i g he f f i c i e n c ya n dh i g h r e l i a b i l i t yo fw e ba p p l i c a t i o ns y s t e m j f s s hh a sb e e nu s e di nt h ep r o j e c t ”p l a nm a n a g e m e n ts u b s y s t e mo fp r o d u c t i o n m a n a g e m e n ti n f o r m a t i o ns y s t e mo ft h es m a l lm e d i u me n t e r p r i s e ”1 1 i cp r a c t i c eh a s p r o v e dt h a tj f s s hi sa p p l i c a b l e f o rd e v e l o p i n g l a r g e - s c a l e w e ba p p l i c a t i o n b y e n h a n c i n gt h ee f f i c i e n c yo f t h o s ec o m p l e xs y s t c l n s 英文摘要 k e yw o r d m ms o f t w a r er e u s e ;w e b a p p l i c a t i o nf r a m e w o r k ;w e b a p p l i c a t i o n d e v e l o p m e n tp l a t f o r m 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文:基王2 星垦的受也廛且框架研究:。除论文中已经注明引 用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本论文中不包含任何未加明确注明的其他个入或集体己经公开发表或未公 开发表的成果 本声明的法律责任由本人承担。、 论文作者签名:擗办矿年? 月2 乒日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印,缩印或扫 描等复制手段保存和汇编学位论文。 榉僦娟最纂“一内打, 不保密匹y ( 请在以上方框内打v ) 论文作者签名: 搬导师签名: 弓他 日期:一2 哼年弓月2 4 日 基于j 2 e e 的w e b 应用框架研究 第1 章绪论 1 1 研究背景 w e b 应用系统作为w e b 环境下的软件系统变得越来越普遍和重要,与此同时, w e b 应用的复杂度也显著增长。从信息分发到在线事务、企业级计划、系统调度、 电子事务应用、基于w e b 的协同环境等,不仅w e b 应用的规模急剧增长,w e b 应 用的体系结构也发生了巨大变化。w e b 应用框架是支持w e b 应用开发的重要软件 复用技术,旨在提高开发效率,增强系统的可重用性、健壮性和可伸缩性。目前 的w e b 应用框架大都侧重封装底层的技术细节,复用粒度较小,在可操作性方面 存在不足。针对上述问题,本文设计并实现了一种w e b 应用框架。 1 1 1w e b 应用开发的技术发展 早期w e b 上的应用主要是静态网页,页面由简单的文本、图片和超链接构成。 由于这样的静态网页并不能满足电子商务提供动态内容和与客户交互的需求,一所 以很快被动态的w e b 应用系统所取代。最早用来构建w e b 应用系统的技术是 c g i ( c o m m o ng a t e w a yi n t e r f a c e ) ,它为w e b 服务器和已有的应用程序提供一个简 单的标准接口,使得w e b 服务器可以接受请求并调用应用程序进行处理,再将处 理结果发送回发出请求的浏览器上。c g i 缺点是移植性差,效率不高。 随着j a v a 编程语言的出现,涌现出很多w e b 应用开发的新技术。最初关注的 是a p p l e t ,但是它只提供了w e b 应用的客户端技术。服务器端技术的重大变革是 在1 9 9 7 年引入的s e r v l e t 技术,它弥补了c g i 技术的不足。j s p ( j a v as e r v e rp a g e l 是s e r v l e t 技术的扩展,它采用与s e r v l e t 反向的方法,通过在h t m l 页面中添加 j a v a 代码来构建w e b 应用。在w e b 应用开发中引入j s p 技术的好处在于【1 】: 1 j s p 是一个标准,而不是一个产品。这样各供应商就可依据标准开发最有 竞争力的j s p 容器,提出最好的解决方案。 2 j s p 页面是编译执行的,而不是解释执行,这样给w e b 应用带来更好的性 能和效率。 3 j s p 页面支持嵌入和访问j a v a 代码两种方式,并可通过自定义标签来进行 第1 章绪论 扩展 4 j s p 是j 2 e e 标准a p i 的组成部分,可以被j 2 e e 其他标准或技术兼容和使 用 5 j s p 继承了j a v a 技术“一处编写,处处运行”的优点。 在j a v a 及相关技术在w e b 应用开发中得到广泛应用的同时,微软也提出了自 己的w e b 应用开发技术和开发框架:n e t 。本文只讨论j a v a 及相关技术在w e b 开发中的应用 1 1 2 当前w e b 应用开发的主要问题 随着w e b 应用系统更多的应用于企业级的关键业务,其复杂度和规模不断增 加,仅仅简单的使用s e r v l e t 和j s p 技术已经不能满足复杂的w e b 应用开发需求, 主要表现为以下几个问题: 1 复杂的w e b 应用系统通常都有复杂的用户交互界面,大量h t m l 代码和 j a v a 代码混杂在一起,使得程序可读性很差,难于维护。这样的w e b 应 用系统可复用性低,不能应用于其它的w e b 应用系统中。 2 复杂的w e b 应用系统通常由大量页面组成,具有复杂的链接跳转关系, 仅仅在j s p 页面中控制这种跳转显得笨拙,可维护性差。 3 复杂的w e b 应用系统包含复杂的业务逻辑,仅仅简单地使用s e r v l e t 和j s p 必然会将业务逻辑和表现逻辑、用户界面以及数据交互模块混杂在一起, 代码庞杂,开发和维护都非常困难;这样的w e b 应用系统不能集成已有 的企业业务逻辑模块,可扩展性差。 4 企业级w e b 应用系统是具有大规模并发访问需求的分布式系统,必须有 良好的并发、同步、事务、容错等处理机制,而s e r v l e t 和j s p 都不能提 供这种机制。 5 企业级w e b 应用系统通常包含大规模的数据量和并发访问需求,需要有 高效健壮的数据访问机制和数据持久化机制,仅仅使用j d b c 不能够满足 需求。 基于j 2 e e 的w e b 应用框架研究 1 2 论文的主要工作 根据上述当前w e b 应用的特点和所存在的问题,文章主要围绕以下几方面展 开研究: 1 w e b 应用体系结构、框架和模式的研究 软件复用技术是提高软件质量的重要手段。文章主要根据软件复用理论,针 对w e b 应用系统的特点,研究各个粒度的软件复用技术,包括软件体系结构框架、 应用框架、组件和模式等;文章还分析了当前已有的几种典型的w e b 应用框架和 模式以及它们的优缺点。 2 面向框架复用的j f s s h 框架的设计和实现 通过对己有的几种w e b 应用框架的研究,我们发现它们仅侧重于封装底层的 技术细节,复用粒度较小,在可操作性方面存在不足。当面向企业级w e b 应用进 行开发时,它们或者在功能上不完备,或者在性能上不能满足要求,所以文章设 计并实现了一种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 应用框 架。 3 基于j f s s h 框架的w e b 应用开发平台原型设计与实现 w e b 应用开发平台是w e b 应用系统的开发工具,使用平台可以大大减少开发 的工作量,提高开发效率。对于j f s s h 框架应用开发平台的设想来源于开发过程 中,由于开发的应用整体框架一致,只是具体的业务和用户界面稍有不同,所以 需要一个支持开发w e b 应用开发的工具,辅助开发人员根据不同的需求快速定制 应用,尽量复用具有通用性的模块,减少重复劳动。j f s s h 框架应用开发平台完 成了原型设计与实现,可以用来开发基于j f s s h 框架的w e b 应用系统。 4 j f s s h 框架在计划管理予系统中的实践应用 j f s s h 框架被应用于“中小企业生产管理系统计划管理子系统”项目的开发 中。中小企业生产管理系统主要用于中小型企业的信息化建设,其目标是以系统 化的管理思想,为企业决策层及员工提供决策运行手段的管理平台计划管理子 系统是整个生产管理系统的核心部分,分为主生产计划、粗能力计划、独立需求 第1 章绪论 计划和物料需求计划四部分。工程实践表明,j f s s h 框架能够较好地支持大型的 w e b 应用系统开发,有效提高了复杂w e b 应用的开发效率。 1 3 论文的组织 论文的后续章节组织方式如下: 第二章介绍软件复用技术和w e b 应用的体系结构、框架和模式针对w e b 应 用的具体特点研究和探讨适用于w e b 应用开发的软件体系结构、应用框架和模式。 对比分析了当前典型的w e b 应用框架和模式的优缺点,旨在寻找最有效的w e b 应 用开发方法 第三章介绍了j f s s h 框架主体的设计和实现。它基于当前较为成熟和稳定的 s t r u t s 、s p r i n g 和h i b e r n a t e 应用框架,使其更加适用于企业级w e b 应用系统的开 发。 第四章介绍了j f s s h 框架应用开发平台原型设计与实现,描述了它的模块组 成和实现方案我们最终的目标是设计开发一个功能强大的用于开发面向企业级 复杂w e b 应用的开发工具。 第五章介绍了一个j f s s h 框架的应用实例中小企业计划管理子系统,以 及j f s s h 框架各模块在此系统实际开发中的应用情况,目的是对j f s s h 框架的性 能进行验证 第六章对全文工作进行总结。列举了论文中所作的主要工作,并对进一步研 究提出展望 基于j 2 e e 的w e b 应用框架研究 第2 章软件复用技术与w e b 应用体系结构、框架及模式 2 1 软件复用和软件可重用性 软件复用( s o f t w a r er e u s e ) 是指在开发新的软件系统时,对已有软件的重新使 用,该软件可能是已存在的软件,也可能是专门设计的可复用组件【2 】。软件复用在 软件工程中是一个开发过程,它依据一组规则说明、生产、分类、检索和适配软 件【3 l ;软件可重用性( r e u s a b i l i t y ) 是软件元素可以用来服务构建不同的应用系统的 能力,它描述软件元素符合软件重用规则的程度。软件可重用性越高,进行软件 重用的代价就越小。 软件重用带来的收益包括1 4 】: 1 生产率收益:这是软件重用最主要的动力,通过重用可以减少冗余工作。 2 质量收益,表现为两点: ( 1 ) 当组件用来重用时,在保证质量上的大量投入会在多次使用中得到补 偿。 ( 2 ) 当可重用组件被很多人使用时,可以更彻底地发现、排除错误。 3 开发进度收益:使用可重用资产,可以加快开发进度,提高开发效率。 2 ,2 软件复用技术 软件复用技术主要有:体系结构复用技术、应用框架技术、组件技术、软件 模式方法等,分别从知识和实现层次上提高了软件可重用性( 如表2 1 ) 。其中,软 件模式是知识层次的软件复用方法,而其他几种技术都是技术层次的可重用技术。 在实现级别上的可重用技术,又可以分为源代码级别、目标代码级别、服务级别 的可重用。源代码级别的可重用性体现在使用源代码级别的类、继承可重用的超 类等具体策略,每次使用后需要重新编译、链接代码,然后重用代码。目标代码 级别的可重用体现在使用编译好的、可插入模块等具体策略,这种技术允许在运 行时重用目标代码,例如c + + 的动态链接库等;服务级别的可重用性是通过向用 户屏蔽底层服务细节的策略实现的,这是一种高度黑盒可重用技术,例如,在e j b 第2 章软件复用技术和w e b 应用体系结构,框架及模式 容器提供的事务服务。在这些级别上,形成了不同粒度的软件复用技术( 如表2 2 ) 。 表2 1 软件可重用层次和级别归类表 t a b 2 1s o f t w a r er e u s a b i l i t yl a y e ra n dl e v e lc l a s s i f i c a t i o nt a b l e 软件可重用层次和级别说明特点 需要深入理解知识内涵,灵活度和 高度白盒可重 可扩展性高,属于白盒可重用也 知识层次就是说,对于使用者而吉,可见度 用 最大,使用者必须了解重用对象的 内部细节 源代码级别白盒可重用不需要深入理解知识内涵,灵活度 技术层次目标代码级别 黑盒可重用低,可重用性高跨越白盒和黑盒可 服务级别黑盒可重用 重用。 表2 2 软件可重用方法和技术归类表 t a b 2 2s o f t w a r er e u s a b i l i t ym e t h o da n dt e c h n o l o g yc l a s s i f i c a t i o nt a b l e 可重用方 可重用级别体现方式粒度可复用性 法和技术 软件模式 知识层次知识归纳 利用中间件技术。 高度屏蔽底层细 服务级别 节,集成的可重用 体系结构 平台技术 最大 差 技 目标代码级别重用二进制模块 术 层 继承超类、a p i 复 次 源代码级别 用 利用组件技术,高 应用框架度屏蔽底层细节,大好 服务级别 集成的可重用平 6 基于j 2 e e 的w e b 应用框架研究 台技术 目标代码级别重用二进制模块 继承超类、a p i 复 源代码级别 用 目标代码级别动态链接技术 组件小好 源代码级别参数化组件技术 这些软件可重用性的方法和技术之间的关系是相互协作、相辅相成的。其中 软件模式可以被看作是对于体系结构、应用框架、组件可重用部分更加抽象的描 述符号,从而可以引导框架和组件的设计,例如c o r b a 框架和a c e 框架的设计 就利用r e a c t o r ,p r o a c t o r ,a c c e p t o r 等模式。框架技术和组件技术为更好的使用软 件模式奠定基础,例如有了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 应用开发过程中一方面可以不必考虑底层细节,设计者和 开发者可以更好地专注于利用软件模式进行业务系统的设计和开发;另一方面, 由于这些框架己经将软件模式的思想融入在框架中,这就使得使用框架就自然地 使用了模式。下面将对这几种重用技术分别进行讨论。 2 2 1 体系结构复用技术 2 2 1 1 软件体系结构 关于软件体系结构,b a s s 、c l e m e n t s 和k a z m a n 给出如下定义【5 】:一个程序或 计算系统的体系结构是系统的一个或多个结构,包含软件组件、这些组件的对外 可见属性以及它们之间的关系。在这个定义中有两个关键要素: 软件组件:在体系结构设计的语境内,一个软件组件可以是简单的程序模块, 也可以扩展到包括数据库和中间件。组件性质对理解组件间如何相互交互是必须 的,在体系结构层次,内部性质( 如算法的细节) 并不被刻画。软件组件也是重要的 软件复用技术之一,将在下面进行详细论述。 组件间的关系:表示组件间的连接。关系可以是静态的,也可以是动态的。 静态关系可以直接用源代码表示,它们负责在体系结构内放置组件,如聚合、继 第2 章软件复用技术和w e b 应用体系结构、框架及模式 承等;动态关系处理l 临时的连接和在组件间的动态交互,如对象的创建、对象间 的通信和数据传输等。 软件体系结构是可重用的,这是选择或设计w e b 应用系统体系结构时所着重考 虑的因素,对于体系结构的复用,分为体系结构风格和体系结构框架两个层次。 2 2 1 2 体系结构风格( a r c h i t e c t u r es t y l e ) 1 9 9 2 年d w a y n e e p e r r y 和a l e x a n d e r l w o l f 引进体系结构风格这个概念。体系 结构风格以软件系统的结构组织为特性定义了软件系统族,表达了部件和它们之 间的关系体系结构风格在应用的约束下,表达了组件和组件之间的关系,以及 相关的合成和设计规则。由此可见,体系结构风格是具有类似模式的软件体系结 构类,广泛提及的体系结构风格包括:管道和过滤器、数据抽象或对象、隐式调 用消息,层次、仓库、解释器、过程控制、分布式系统、客户服务器、主程序 子程序、状态转换、专用领域等,这些概念大多都在设计模式或模式的研究中作 为“模式”出现。但是体系结构风格和模式并不是同一层面的东西,它是一些对 软件构成带有整体性、普遍性、一般性的结构和结构关系方法1 6 - s l 。 2 2 1 3 体系结构框架( a r c h i t e c t u r ef r a m e w o r k ) 随着领域应用的发展和完善,体系结构风格中带有整体应用性的结构逐步“固 定”下来,形成特定的系统架构,也就是体系结构框架的概念。 框架是指为了解决某类问题( 系统或子系统领域) 的一组抽象类集合及其实例 对象间交互协调行为的可重用的设计与实现方案【9 】。从组成上看,框架是一个等待 实例化的完整的系统,它定义了一个软件系统的族和关系,并提供了创建它们的 基本构建模块框架的实例化包括了现有类的组合和子类化。 体系结构框架是体系结构层次上的一种框架,它面向具体应用领域,对体系结 构风格进行实现。从设计模式的角度看,体系结构框架是一个给定应用领域中的 完全的软件系统模式,是最大粒度的可复用部件;从体系结构的角度看,框架是 一个领域的体系结构。在分布式对象系统中,常见的体系结构框架有c o r b a 、 j 2 e e 框架、c o m 组件框架等,它们都是针对于分布式对象系统领域。实现了层 基于j 2 e e 的w e b 应用框架研究 次、分布式、客户月艮务器等体系结构风格。而在不同体系结构框架中,组件、接 口甚至所使用的语言都是完全不同的。 2 2 2 应用框架技术 应用框架( a p p l i c a t i o nf r a m e w o r k ) 相比于体系结构框架更为具体,它不仅面向 于具体领域,还面向于具体应用,是为特定一类应用设计的框架。它除了规定应 用的体系结构之外,还定义了它的部件构成、类和对象的分割、各部件的职能、 类和对象的协作关系以及控制流程。应用框架预定义了这些设计参数,以便应用 实施者能集中精力解决自身应用的业务逻辑。 把应用框架分成冷点z s p o t s ) 枞( h o ts p o t ) n o l 。冷点定义了软件系统 的完整结构,包括它的基本部件和部件间的关系,在应用框架的任何实例中它们 保持不变;热点描述了应用框架中的那些随具体应用需求不同的部分,热点的设 计应考虑到一般化和通用,对应用需要的变化应该具有适应性。当使用一个应用 框架创建一个具体的软件系统时,要根据用户的特别需求,对框架热点进行实例 化。热点实例化通常使用模板挂钩模型或元模式。 应用框架一般是在体系结构框架基础上,对此体系结构的某一模块或某一层 的具体实现模式。例如在j 2 e e 体系结构框架下,w e b 层应用框架有s t r u t s 、s p r i n g 、 j a f f a 等;e j b 层有e j b 框架;数据持久层的应用框架有j d o 、h i b e r n a t e 等。它 们都是针对于j 2 e e 框架某一层的实现方案和模式。 应用框架的粒度比组件大,可复用性和灵活性比体系结构复用好,所以较之 于其它两种复用技术有着独特的优势。我们在开发w e b 应用时,更多的考虑是面 向应用框架的复用。 2 2 3 组件技术 组件( c o m p o n e n t ) 是经过封装、有定义完备接口的可发布软件包。它是软件实 现的一种内聚包,有以下特点:( 1 ) 能够独立地开发、分发;( 2 ) 所提供的服务被 明确、完备地定义;( 3 ) 明确、完备地定义期望从外部得到服务接口;( 4 ) 能够与 其它组件合成,可定制部分属性而不修改组件本身。由此可见,组件的核心在于 第2 章软件复用技术和w e b 应用体系结构、框架及模式 接口无关的内部处理逻辑定义和标准化的外部接口,在组件模型中,内部处理逻 辑定义针对于特定应用系统或领域,例如c o r b a 要求分布式的业务功能必须采 用c o r b a i d l 表达,e j b 组件模型要求为e j b 定义基本的内部接口l 外部接口定 义针对与计算基础设施交互的功能,例如e j b 体系结构要求提供与容器接口的某 些特定方法的实现,c o m 组件模型要求c o m 组件实现q u e r y i n t e r f a c e 函数。 在编程语言层次,组件可表示为模块、类、对象或是一组相关函数作为一 种复用技术,不同的组件之间粒度会有很大差别,最小粒度的组件是类和接口, 虽然具有很好的灵活性和可复用性,但是由于其粒度太小,对软件复用的贡献不 大,不具有实际应用价值。 2 2 4 模式和软件模式 作为知识层次的软件复用方法,模式和软件模式指导或辅助其他软件复用方法 的使用和实现针对于不同粒度的软件复用方法,我们可将模式分类为软件体系 结构模式、软件设计模式和惯用法。 1 软件体系结构模式( a r c h i t e c t u r ep a t e r n ) 描述了软件系统基本的结构化组织方案,它们提供了一套预先定义好的子系 统来制定它们的职责,包括用于它们之间的规则和指南。体系结构模式代表了模 式系统中的最高等级模式,有助于明确一个应用的基本结构。体系结构模式分为 四类: 1 1 从混沌到结构。包括层模式、管道和过滤器模式以及黑板模式 分布式系统。包括代理者模式。 3 ) 交互式系统。包括模型视图控制器( m v c ) 模式和表示抽象一 控制( p a c ) 模式。 适应性系统。包括映像模式和微核模式。 软件体系结构模式对软件体系结构的构建和重用进行指导。然而,绝大多数 软件体系结构不能仅依据一个体系结构模式来构建,它们必须支持几种不同的体 系结构模式来说明系统需求。例如我们要构建w e b 应用系统,就要用到软件体系 结构的层模式、代理模式和m v c 模式。 基于j 2 e e 的w e b 应用框架研究 2 软件设计模式( d e s i g np a t t e r n ) 描述通信组件的一种通用重现结构,该结构能在特殊语境中解决一般的设计 问题。设计模式是中等规模的模式,在规模上比体系结构模式小,但在级别上比 特定编程语言的惯用法高。设计模式不会影响软件系统的基本结构,但对予系统 的体系结构会产生很大影响。设计模式可以指导应用框架的重用和构建以及组件 的重用和构建。引文 1 1 1 将设计模式分为创建、结构、行为三大类共2 3 种,在每 一个应用框架或组件中也不仅仅使用一种设计模式,例如在m v c 框架中就用到了 o b s e r v e r 、c o m p o s i t e 、s t r a t e g y 等多种模式。设计模式的一个重要特征是它们独 立于特殊的应用领域,它们涉及应用程序功能的构造,而不涉及这些应用程序功 能本身的实现。 3 惯用法( i d i o m ) 描述如何用给定语言的特征来实现组件的特定方面和组件之间的关系。惯用 法是特定程序设计语言中的低层模式,描述如何在一种程序设计语言中解决具体 实现问题,如c + + 中的内存管理问题。 2 3 当前典型的w e b 应用体系结构和w e b 应用框架 2 3 1 w e b 应用体系结构 基于w e b 应用的系统模型,在体系结构风格上一般都是分布式的对象系统, 使用层模式、代理模式和m v c 模式。在具体的系统结构和模式的使用上,要根据 实际系统需求的特点进行合理的选择。 在体系结构框架上,根据1 1 1 所论述的原因,我们选择基于j a v a 技术的j 2 e e 框架和平台。j 2 e e 平台提供了分层的分布式应用模型、m v c 的交互模式、组件重 用、一致化的安全模型以及灵活的事务控制,同时提供了一组基于组件的方法, 用以设计、开发、装配及部署企业应用程序。 2 3 1 1 层次结构:分层 层( l a y e r ) 既是一种软件体系结构风格,也是一种软件体系结构模式。它有助 于将应用系统分成子任务组,其中每个子任务组处于一个特定的抽象层次中。这 第2 章软件复用技术和w e b 应用体系结构、框架及模式 样既有利于将复杂问题分而治之,也有利于每一层更加灵活的进行重用, 同时便 于标准化的支持和独立层的替换。 在分布式的w e b 应用系统中,最早分为客户端服务器( c s ) 两层结构,它将系 统的业务逻辑和表现逻辑都由客户端处理,服务器一般只是数据库服务器,提供 数据服务它的优势在于: 1 负载均衡,可以将任务合理的安排在客户端或服务器处理,服务器的压力 不大,对硬件要求不高; 2 由数据库服务器完成数据控制和事务处理,保证数据的安全性和完整性; 3 表现逻辑和用户界面由客户端处理,降低了用户界面的开发复杂度,可以 提供较为丰富和灵活的界面; 4 ( 格系统已有很多成熟的组件和开发工具,便于开发,开发周期短。 但是c 幅结构的局限性也是显而易见的,最突出的在于:系统难以部署和维 护。每一次升级和改动都要涉及到每一个客户端,在客户端数量庞大的时候,安 装升级成本急剧上升;系统兼容性差,不同开发工具及运行平台之间很难兼容。 所以虽然a s 系统性能优越、界面友好、开发简便,但是随着i n t e r a c t 的臼益普及, 难以对多用户进行部署和维护成为c s 结构致命的缺陷。 而浏览器,服务器( b ,s ) 结构则能满足这种需求。b s 结构将w e b 应用分为三层: 1 客户端( c l i e n tt i e r ) ,简化为w 曲浏览器或w e b 服务客户端,只提供用户 界面,不进行任何业务逻辑和表现逻辑的处理,通过h t m l ,x m l 、h 兀l p 等调用应用接口; 2 中间层( m i d d l et i e r ) ,也叫应用层( a p p l i c a t i o nt i e 0 ,部署应用服务器或w e b 服务器,处理业务逻辑和表现逻辑,与数据服务器交互; 3 企业信息系统, 层( 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 啊c r ,e i s ) ,提供数据服务, 除了包括数据库服务器外,还包括e r p 、遗留系统和客户关系管理( c r m ) 等 这样,由于采用瘦客户端,具有良好的开放性,可以容纳更多的客户端,从 根本上解决了c s 结构中应用部署和维护困题的问题;系统也具有更好的可扩展 基于j 2 f e 的w e b 应用框架研究 性,业务逻辑或表现逻辑的增加和修改,只需在中间层上进行。 b s 结构的中间层,通常可以划分为表现层( p r e s e n t a t i o n 啊e n 、业务层( b u s i n e s s m 砷和数据持久层o ) a t ap e r s i s t e n c e1 e r ) : 1 表现层为客户端提供与应用业务逻辑通信和交互的功能、处理表现逻辑、 将客户端应用和核心业务系统连接起来,并且基于应用和用户状态对页面 流转进行控制。表现层主要由w e b 容器( w e bc o n t a i n e r ) 组成,w e b 容器完 成j s p 、s e r v l e t 和其他j a v a 类在容器内部署、调度和执行,提供j n d i 、 连接池和事务控制等服务。 2 业务层用来处理业务逻辑,它由一组j a v a 类组成,可由s p r i n g 框架管理, 这些类所完成的功能与表现层和数据持久层都无关,实现松散耦合。 3 数据持久层完成数据访问和持久化工作,它包括数据持久化对象p o 和数 据访问接口d a o 。 c l i e n tt i e rm i d d l et i e r s e i st i e r 、 尹融n 谢咖t 衙b u s i n e s s t i e r d a t a 、 w e b ( b r o w s ( t i e r p r l v 协e m l d a t a b a s e w e b b u s i n e s s , 、n = 、- 一, c o n t a i n e r l o g i c l 微c 1 j 譬 【e r p m 7 w e b 1 f s e r v l e t s 。 s e r v l c ej s pp a g e s p e e r 。, 、 ”。 夕 图2 1w e b 应用系统b s 体系结构 f i g 2 1w e b a p p l i c a t i o ns y s t e mb s a r c h i t e c t u r e 表现层将h t m l 中的f o r m 数据存储到p o 中,在业务层进行处理后,通过 d a o 存储在e i s ;或d a o 从e i s 读取数据到p o 返回给表现层,表现层再将这些 数据显示在浏览器上。这样,就构成了一个层次完整的w e b 应用系统b s 体系结 第2 章软件复用技术和w e b 应用体系结构、框架及模式 构,如图2 1 所示。 然而,中间层的引入增加了系统复杂度,也一定程度上影响了系统性能,相 比较于a s 结构,b s 结构的劣势和问题在于: 1 所有的业务逻辑和表现逻辑都由应用服务器与w e b 服务器处理,大大增加 了服务器的压力,对硬件要求高,在没有强大服务器支持下系统性能和效 率较低; 2 数据交互和事务处理需在数据库服务器和应用w e b 服务器两个层次上共 同进行,如何在这两层保证数据的一致性、完整性、安全性以及数据访问 效率成为一个难题; 3 开发基于浏览器的用户界面困难,缺乏成熟的可使用的界面组件。如需提 供与c ,s 结构灵活性和丰富程度相当的界面组件,开发工作量很大,开发 过程异常繁琐,正确性和可靠性难以保证; 4 需要对部署在应用w e b 服务器上的业务逻辑和表现逻辑进行有效的组织, 保证整个系统的可维护性和可扩展性; 5 b s 系统的开发复杂度大大提高,可使用的组件远没有c i s 系统丰富,缺 乏高效易用的开发工具。 2 3 1 2 用户交互模式:j s p 模型2 ( m v c ) 图2 2j s p 模型2 ( m v c ) r i g 2 2j s pm o d e l2 ( m v c ) w e b 应用系统是一个交互式的应用系统,包括用户与应用系统的交互以及应 基于j 2 e e 的w e b 应用框架研究 用系统与数据库服务器的交互,交互构成了w e b 应用系统的功能核心。在j s p 技 术刚刚出现的时候,w e b 应用系统主要通过j s p 模型1 完成交互但是其可维护性、 可扩展性和安全性都很差,所以就进一步演变成j s p 模型2 【1 2 1 。 如图2 2 所示,j s p 模型2 将一个交互式应用程序分为三个功能独立的组件。 模型实现系统与数据库服务器的交互,由j a v a b e a n 实现:视图实现系统与用户的 交互,由j s p 实现;控制器对这两个交互进行管理和控制,由s e r v l e t 实现。这种 模型后来就被总结为模型视图控制器( m v c ) 模式。 m v c 模式是j 2 e e 框架的核心,能够支持三层甚至多层的松散耦合,使用m v c 模式的好处在于可以使w e b 应用具有: 1 可维护性:表现层和业务层分离,可以方便的更改表现层代码而不用重新 编译模型和控制器代码,使得w e b 应用更易于维护和修改。 2 高重用和可适应性:m v c 模式允许使用各种不同样式的视图( 任意w e b 浏 览器或无线浏览器) 来访问同一个服务器端的代码。 3 较低的生命周期成本:m v c 降低了开发和维护用户接口技术难度,从而 降低了w e b 应用的生命周期成本。 4 快速高效的开发:m v c 可明确w e b 应用开发的分工,j a v a 程序员负责业 务逻辑的开发,界面程序员( m m l 和j s p 开发人员) 负责表现逻辑的开发, 提高了开发效率,缩减了开发时间。 m v c 是w e b 应用开发的核心模式,然而它只是系统骨架,无论是在视图、控 制还是模型上都太为单薄,需要应用框架和组件的扩充,丰富w e b 应用中的可重 用资源。 2 3 2w e b 应用框架和组件 2 3 2 1w e b 应用框架 w e b 应用框架( w e b a p p l i c a t i o n f r a m e w o r k ) 是构建在w e b 应用体系结构应用层 (

温馨提示

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

评论

0/150

提交评论