(计算机软件与理论专业论文)j2ee三层结构中表现层框架集成的研究.pdf_第1页
(计算机软件与理论专业论文)j2ee三层结构中表现层框架集成的研究.pdf_第2页
(计算机软件与理论专业论文)j2ee三层结构中表现层框架集成的研究.pdf_第3页
(计算机软件与理论专业论文)j2ee三层结构中表现层框架集成的研究.pdf_第4页
(计算机软件与理论专业论文)j2ee三层结构中表现层框架集成的研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机软件与理论专业论文)j2ee三层结构中表现层框架集成的研究.pdf.pdf 免费下载

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

文档简介

j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) 摘要 软件重用是提高软件开发效率的最有效方法之一。但仅仅程序源代码级的重 用并不能给软件开发效率带来数量级的提高。以重用的思想指导整个开发过程更 为关键。框架是近几年出现的软件重用的方法,它与构件、设计模式在软件重用 的思想上一脉相承,提倡在设计和分析层面上的重用。f l e x 和s t r u t s 都是目前 w e b 应用表现层m v c 模式的流行实现框架,但它们大都将目光集中在莱一个特 定领域问题的处理上。考虑到它们的缺陷,本文提出一种金融系统的报表发布框 架,在w e b 表现层集成f l e x 和s t r u t s ,旨在增加代码的重用率,减少数据表达, 数据描述和应用操作的耦合度。 j 2 e e 体系结构是一个多层的、端到端的性能管理解决方案。e j b 给分布式 体系结构和r m i i i o p 远程化协议的应用提供了标准实现。传统的j s p + j a v a b e a n s 架构存在缺陷:j s p 嵌入大量j a v a 代码,难以调试;j a v a b e a n s 的大量增加使系 统纷乱复杂。而报表发布框架采用j 2 e e 的三层体系结构,在应用逻辑层由e j b 来处理复杂的业务逻辑和数据访问,旨在理顺j a v a b e a n s 体系,形成s e r v i c e 调 用体系。 本文提出的金融系统的报表发布框架,集成f l e x s t r u t s 框架结构实现j 2 e e 的用户表现层,同时集成e j b 处理复杂事务逻辑,是f l e x s t r u t s + e j b + d a t a b a s e 的三层结构。e j b 中运用了f a c a d e 模式,这样界面设计人员可以专心考虑如何 封装f l e x 控件,改善用户体验;j a v a 开发人员可以仔细考虑业务逻辑的封装, 降低了系统复杂度和团队内部的沟通代价。而应用实例r e p o r tc e n t e r 采用了这 几种集成技术。它是一个集中的在线信息发布平台为客户提供访问报表和数据的 解决方案,前台采用f l e x s l r u t s 集成的m x m l 和a s 文件,后台采用e j b ,同 时每个e j b 都有一个对应的p r o x y 类,进一步分离两个层次的开发工作。文章最 后对r e p o r tc e n t e r 系统改进前后进行了性能测试,验证了报表发布框架的优点 和可行性。 关键字:软件重用;框架;f l e x ;s t r u t s ;m v c ;e j b ;报表发布 保密材料 c o n f i d e n f i a l j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) a b s t r a c t s o f t w a r er e u s ei sc o n s i d e r e do n eo ft h em o s te f f e c t i v ew a y so f a c h i e v i n gh i g h e r p r o d u c t i v i t yi m p r o v e m e n t b u to n l yr e u s ei nc o d el e v e lw i l ln o tb r i n gm a r k e d i m p r o v e m e n tf o rs o f t w a r ed e v e l o p m e n t i t sc r i t i c a l t or e u s ei nw h o l ep r o c e s s f r a m e w o r ki sah o tt o p i ci ns o f t w a r ee n g i n e e r i n gf i e l d i t sd e v e l o p e db a s e do nt h e s a n l et h o u g h t so fs o f t w a r er e u s ea sc o m p o n e n t sa n dd e s i g np a t t e r n s f l e xa n ds t r u t s a r et h ep o p u l a rf r a m e w o r k sb a s e do nm o d e l v i e w c o n t r o l l e r ( m v c ) a r c h i t e c t u r et o i m p l e m e n tw e ba p p l i c a t i o n b u tt h e ya l lf o c u so nc e r t a i nf i e l d t h i sp a p e rp r o p o s e da f r a m e w o r kt oi m p l e m e n tr e p o r tp u b l i s h i n go ff i n a n c i a ls y s t e m i ti m p l e m e n t st h e p r e s e n t a t i o nt i e ro f j 2 e ea r c h i t e c t u r eu s i n gt h ef l e x s t r u t si n t e g r a t i o n j 2 e ea r c h i t e c t u r ei sam u l t i - - t i e r , p o i n t - t o - p o i n ts o l u t i o nf o rp e r f o r m a n c e m a n a g e m e n t e j bi s as t a n d a r di m p l e m e n t a t i o nf o rd i s t r i b u t e da r c h i t e c t u r ea n d r m u i i o pa p p l i c a t i o n t h et r a d i t i o n a la r c h i t e c t u r ew i t hj s p + j a v a b e a n sh a sm a n y d e f e c t s i t sh a r dt ot e s tt h ej a v ac o d ei m b e d d e di nj s ri tm a k e st h es y s t e mm o r e c o m p l e xt oa d dm a n yj a v a b e a n s s oo u rf r a m e w o r ku s e sj 2 e e 廿1 r c e t i e ra r c h i t e c t u r e i tu s e se j bt oh a n d l et h ec o m p l e xb u s i n e s sl o g i c s t h ef r a m e w o r kp r o p o s e db yt h i sp a p e r , i n t e g r a t e sf l e x s t r u t sa n de j b i ti s t h r e e t i e ra r c h i t e c t u r e f l e x s t r u t s + e j b + d a t a b a s e f a c a d ew a su s e db ye j b i nt h i s w a y , t h ed e s i g n e ro fu ic a nf o c u so nw r a p p i n gf l e xc o m p o n e n t sa n di m p r o v i n g u s e r e x p e r i e n c e ;t h ej a v ad e v e l o p e rc a nf o c u so nw r a p p i n gb u s i n e s sl o g i ca n dr e d u c i n g s y s t e mc o m p l e x i t y t h i sf r a m e w o r kw a sa p p l i e dt oar e a l - - w o r l dc a s e 。_ r e p o r tc e n t e r i t sa no n l i n ei n f o r m a t i o n p u b l i s h i n gp l a t f o r mf o rr e p o r ta n dd a t aa c c e s s t h e f r o n t - e n dw a si m p l e m e n t e db yi v i x i v i la n da sf i l eo ff l e x s t r u t si n t e g r a t i o n ,w h i l e t h eb a c k - e n dw a si m p l e m e n t e db ye j b e v e r ye j bh a sac o r r e s p o n d i n gp r o x yt o s e p a r a t ed e v e l o p m e n to fb o t hl e v e l s f i n a l l y , t h i sp a p e rv e r i f i e dt h ef e a s i b i l i t ya n d a d v a n t a g e st h r o u g hap e r f o r m a n c et e s t 保密材料 c o n f i d e n t i a l j 2 e e 三层结构中表现层框架集成的研究 浙江人学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) k e y w o r d s :s o f t w a r er e u s in g :f r a m e w o r k :f i e x :s tr u t s :m v c :e j b :r e p o r t p u b ii s h in g 保密材料 c o n f i d c n t l 8 1 4 j 2 e e 三层结构中表现层框架集成的研究 _ | i l i 江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 9 ) 第一章引论 1 1 - 金融行业报表发布系统现状 金融系统需要把基金等投资工具的实时信息传递给客户。在当今竞争日益激 烈的时代,谁能方便、快捷、经济有效地把信息传递给客户,谁就能在竞争中取 胜。因此金融行业如何利用其报表发布系统为客户提供可靠、及时的信息,成为 当务之急。 而本文研究的报表发布系统( r e p o r tc e n t e r :r c ) 是为一家跨国金融公司提供 信息发布的平台。这家金融服务公司拥有规模各异的共同基金报表信息发布系统 十余个,这些系统的主要任务是向不同的客户提供他们所关心的基金报表信息, 其中的某些管理系统还提供了管理界面用于帮助基金经理分析数据并生成原始 报表。各系统由于出发点、服务的对象、所解决的问题不同,开发的时间有先后, 采用的技术架构也不尽相同,有c s 和b s ;有p o r t a l 、j a d e 、s t r u t s 和f l e x 等不 同的技术。因而需要大量熟悉不同技术的技术人员负责对每个系统的维护和升级 工作,每年需要耗费大量的金钱和人力。但是,大部分系统都有着相似的基本工 作流程。随着公司业务的整合,这些系统之间的关系变得愈发紧密,并且将所有 系统整合到公司的门户网站上的需求也已经被提上日程。如何处理这些异构系统 之间的通信以及部分系统的合并成为了一个令人头痛不已的问题。 因而公司提出了希望能够基于部分现存应用,从中提取公有的业务逻辑,将 抽象出的业务逻辑封装到一个基于构件开发的应用程序框架中,然后通过最基本 的配置和对抽象构件的实现,基于此框架逐步实现全部应用程序。在这个设计方 案中,最为重要考虑因素是框架作为最高层的设计重用方案,可以封装尽可能多 的业务逻辑,简化具体应用的开发工作。业务逻辑的集中封装将整个应用领域中 最为复杂的部分集中在一起处理,降低了开发的风险和代价。r e p o r tc e n t e r 把这 些具有共同特性和一致功能的报表管理系统集成到统一的框架中,成为一个完整 的、有竞争力的在线发布产品。 保密材料 c o n f i d e a f i a l j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 1 2 框架集成的目的 目前流行的框架,如p o r t l a l 、j a d e 、s t r u t s 和f l e x 等,大都将目光集中在某 一个特定领域问题的处理上。s t r u t s 是一个广泛使用的开源的w e b 应用程序框架, 它帮助程序开发者更快更简单地创建w e b 应用程序。但s t r u t s 着重于m v c 中的 控制器部分,提供j s p 标签库帮助程序员在传统的j s p h t m l 环境中创建视图, 却没有提升最终用户体验:终端显示仍然是采用h t m l 、h t t p 请求响应机制。 f l e x 是m a c r o m e d i a 公司新提出的一种胖客户端( r i c hc l i e n t ) 的表现层技术,它 提倡尽可能多地把用户交互留在客户端处理,减少客户端和服务器端的数据通信 量,提供更好的客户体验。它也有类似于j s p 的页面,使用了与x m l 相近的语 法编写,通过m a c r o m e d i a 的f l e xb u i l d e r 编译成f l a s h 页面展示给用户。f l e x 着 重于m v c 的视图部分,提供一些控制逻辑协助远程系统交流和实现安全机制。 所以如果能够整合s t r u t s 和f l e x 框架,就能利用f l e x 满足用户界面友好的需求。 j 2 e e 有三层和多层体系结构,其三层体系结构为用户表现层、应用逻辑层 和数据库持久层。在应用逻辑层,e j b 给分布式体系结构和r m i i i o p 远程化协 议的应用提供了标准的实现。传统的j s p + j a v a b e a n s 架构存在大量缺陷,如j s p 嵌入大量j a v a 代码,难以调试;j a v a b e a n s 大量增加使系统纷乱复杂等。而使用 f l e x s t r u t s 框架就可将j a v a 代码从j s p 中分离,使用e j b 的无状态会话b e a n 可 以理顺j a v a b e a n s 体系,形成s e r v i c e 调用体系,旨在增加代码的重用率,减少 数据表达,数据描述和应用操作的耦合度。 本文第一章介绍了金融行业报表发布系统的现状,引出研究的问题及研究的 意义。 第二章详细阐述了框架的定义和重用机制,框架的分类,使用框架的好处, 框架存在的问题,辨析了框架和产品、项目,框架和构件、设计模式,框架和构 件、构架这些概念的异同。 第三章阐述了框架集成对报表发布框架的改进。通过j 2 e e 三层架构改进传 统的j s p + j a v a b e a n s 架构:使用f l e x s t r u t s 框架改进用户表现层,使用e j b 的无 状态s e s s i o nb e a n 处理复杂业务逻辑,使用f a c a d e 模式隐藏业务对象复杂性,集 8 保密材料 c o n 矗d e n t i a l j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 中化工作流处理。这样,传统的j s p + j a v a b e a n s 架构存在的缺陷在集成框架后不 复存在。 第四章介绍了报表发布框架的设计与实现,通过分析业务需求、用户需求、 功能需求得出项目需求,进而阐述各子系统工作流程了解业务逻辑,详细阐述了 r e p o r tc e n t e r 中的e j b 设计模式,以j 2 e e 三层架构为纲要介绍各层的具体实现。 第五章对系统在运用框架前后进行性能测试,选择显示i n b o x 的首页这个测 试点详细阿述测试步骤及三个测试用例,进而对测试结果分析,验证了报表发布 框架的优点和可行性。 第六章对全文进行了总结,并对今后的工作进行展望。 保密材料 c o n t l d e n t i a l j 2 e e 三层结构中表现层框架集成的研究 浙江大学汁算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 冀矗二章框架的定j u 扣特点 2 1 框架的定义 2 1 1 框架和产品、项日 框架和产品、项目都是软件产品一种形态,虽然它们针对的目标领域可能是 相同的,但是,由十形态的差异,导致了它们之间存在极大的不同。项目针对的 是特定的用户,例如某个企业。它不需要很大的灵活性,因为需求是相对固定的, 但足有很强的特殊性,必须能够满足用户的一些极具个性的需求。产品针对的是 某个领域的用户群,例如某种类型的企业。它需要满足这一类用户群中的通用需 求,并可以根据不同的用户做一定的定制。框架是针对那些开发应用( 项目或产 品) 的人而设计的,它的目标是使那些开发应用的人能够快速地制造出高质量的 软件。这一目标决定了框架具有高度的灵活性,允许将部分的实现留给应用丌发 人员完成。当然,在现实中,可能很难严格区分这三种形态。很多软件可能具有 产品特性,但又是以项目为单位开发的,甚至可能己经发展出一定的框架来了。 理解软件的这三种形态,可以帮助我们从感性上认识框架。 2 1 2 框架和构件、设计模式 框架的重用机制中很大一部分涉及到构件的重用,因此对于开发者来说认识 框架与构件之间的区别和联系也是很重要的。框架为构件提供了个可重用的环 境。每个构件都对它所处的环境做出假设。如果构件假设的环境不同,让它们在 起协作就很难。框架将提供给构件标准的出错处理,数据交换和互操作。框架 的存在使得开发新的构件变得容易。应用程序总处于不断的变化之中,小管一个 构件库有多好,它总会需要新的构件。框架让我们能从一个小构件( 如窗口小部 件) 生成新的构件( 如用户界面) ,也为新构件提供规格说明及构件实现的模板。 在面向对象领域,模式是重用设计信息的一种流行的方法。模式尝试描述有 待解决的问题,解决问题的方法及它所处的环境。它为技术命名,并描述它的代 待解决的问题,解决问题的方法欲它所处的环境。它为技术命名,并描述它的代 i o 保密材料 c o n f i d e n f i d j 2 e e 三层结构中表现层框架集成的研究 浙江大学汁算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) 第= l l l t 框架的定义和特点 2 1 框架的定义 2 1 1 框架和产品、项日 框架和产品、项目都是软件产品一种形态,虽然它们针对的目标领域可能是 相同的,但是,由于形态的差异,导致了它们之间存在极大的不同。项目针对的 是特定的用户,例如某个企业。它不需要很大的灵活性,因为需求是相对固定的, 但是有很强的特殊性,必须能够满足用户的一些极具个性的需求。产品针对的是 某个领域的用户群,例如某种类型的企业。它需要满足这一类用户群中的通用需 求,并可以根据不同的用户做一定的定制。框架是针对那些开发应用( 项目或产 品) 的人而设计的,它的目标是使那些开发应用的人能够快速地制造出高质量的 软件。这一目标决定了框架具有高度的灵活性,允许将部分的实现留给应用开发 人员完成。当然,在现实中,可能很难严格区分这三种形态。很多软件可能具有 产品特性,但又是以项目为单位开发的,甚至可能己经发展出一定的框架来了。 理解软件的这三种形态,可以帮助我们从感性上认识框架。 2 1 2 框架和构件、设计模式 框架的重用机制中很大一部分涉及到构件的重用,因此对于开发者来说认识 框架与构件之间的区别和联系也是很重要的。框架为构件提供了一个可重用的环 境。每个构件都对它所处的环境做出假设。如果构件假设的环境不同,让它们在 一起协作就很难。框架将提供给构件标准的出错处理,数据交换和互操作。框架 的存在使得开发新的构件变得容易。应用程序总处于不断的变化之中,不管一个 构件库有多好,它总会需要新的构件。框架让我们能从一个小构件( 如窗口小部 件) 生成新的构件( 如用户界面) ,也为新构件提供规格说明及构件实现的模板。 在面向对象领域,模式是重用设计信息的一种流行的方法。模式尝试描述有 待解决的问题,解决问题的方法及它所处的环境。它为技术命名,并描述它的代 l o 保密材料 c o n l i d e n f i 蛆 j 2 e e 三层结构中表现层框架集成的研艽 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) 价和益处。用同一模式的开发者也用同样的方式描述他们的设计,并使之清晰。 模式被用来描述解决方案并经受住了时间的考验。 在设计模式【2 】一书中,模式的概念与框架非常相似。这些模式是在检查 大量框架后发现的,并被选为可重用的、面向对象软件的代表。一般来说,一个 框架包含很多模式,所以模式比框架小。而且,设计模式不能被表达成c + + 或 s m a l l t a l k 类而仅被用来继承或组合。所以,模式比框架更抽象。 在设计模式一书中,框架与模式不在一个抽象层上。设计模式是框架的 构成元素。 框架通常定义了应用体系的整体结构、类和对象的关系等等设计参数,记录 了软件应用中共同的设计决策,以便于具体应用实现者能集中精力于应用本身的 特定细节。框架与设计模式虽然相似,但却有着根本的不同。e r i c h g a m m a 认为, 设计模式与框架有以下区别: 设计模式比框架更抽象。框架可以通过代码形式来具体实现或表达,但模式 则不然,只有模式的实例才可具体化为代码;框架的一个好处是它可采用编程语 言写出来,然后不仅可以运行而且可以直接复用,相反,设计模式在每次应用时 必须将其实现,而且设计模式还说明了意图,权衡和设计导致的后果。也就是说 设计模式只有在具体情况下才能变成代码,框架却已经可以用代码表示。 设计模式是比框架更小的结构型元素。 较之于框架,设计模式的应用更为广泛,而框架通常有一个特定的应用领域, 而设计模式则几乎可适用于任何应用类型。 2 1 3 框架和构件、构架 如果把软件的构建过程看成是传统的建筑过程;框架的作用相当于为我们的 房屋搭建的“架子”。框架从重用意义上说,是一个介于构件和构架之间的一个 概念。构件,框架和构架三者的主要区别在于对重用的支持程度的不同。 构件是基础,也是基于构件开发的最小单元。构件重用包括可重用构件的制 作和利用可重用构件构造新构件或系统。 一个框架和构架包含多个构件。这些构件使用统一的框架( 构架) 接口,使 保密材料 c o n f i d o n f i a l j 2 e e 三层结构中表现层框架集成的研冤 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) 得构造一个应用系统更为容易。 框架重用包括代码重用和分析设计重用,一个应用系统可能需要若干个框架 的支撑,从这个意义上来说,框架也是一个“构件”的同时,框架又是一类特定 领域的构架。 构架重用不仅包括代码重用和分析设计重用,更重要的是抽象层次更高的系 统级重用【9 】。 2 1 4 框架的概念 r o b e r t s 和j o h n s o n 在文献 3 】中,把框架定义成一个系统全部或者部分的可 复用设计,表现为一组抽象类及它们实例之间的相互作用方式。另一个比较通用 的定义是:“框架是一个可被程序开发者定制的应用程序的骨架”。这两个定义 并不矛盾,第一个描绘了框架的结构,第二个描绘了框架的用途。一个软件框架 捕获解决某一特定问题域所需的编程经验、设计经验、该领域专家经验。它隐藏 了该领域中的所有应用程序的共同部分( 也称为冰点f r o z e ns p o t ) ,暴露出需要针 对不同应用程序进行定制的部分( 也称为热点h o t s p o t 域扩展点、可变点) 。框架的 用户就是通过定制框架的热点来满足不同应用的需要,这一过程称为软件框架的 实例化,产生的应用程序称为框架的实例。 2 2 框架的重用机制 框架的作用是提供一般的控制流,框架的用户编写的代码等待框架的调用 ( 好莱坞原则,d o n tc a l lu s ,w e 1 1c a l ly o u ,在好莱坞工作的演艺界人士都了解, 在把简历递交给好莱坞的娱乐公司,所能做的就是等待。这些公司会告诉他们“不 要打电话给我,我们会打给你”。这就是所谓的“好莱坞原则”。好莱坞原则的 关键之处是娱乐公司对娱乐项目的完全控制。应聘的演艺人员只是被动地服从总 项目流程的安排,在需要的时候完成流程中的一个具体环节。当然,在框架里, 这个原则的意思是:不要调用我们,我们会调用你) 。所以开发者不需要关心如何 去控制流程,而只需提供实现相应的“责任”的“被调用块”即可,简化了开发 人员需要关心的东西。通过提供一个基础设施,框架减少了开发人员需要编写、 1 2 保密材料 c o n f i d c n f i m j 2 e e _ - - 层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 测试、调试的代码的数量。开发者只编写、测试、调试那些各个应用程序特有的 代码。用同一个框架创建的不同的应用程序或( 子) 系统共享相同的结构,这样它 们非常容易集成。用同一个框架开发的多个应用程序维护起来比用不同的设计方 案创建的多个应用程序更容易。 使用框架有三点优势:因为框架可以蕴涵特定问题领域的体系结构性设计 决策,系统设计者可以简单地复用这些设计并且集中于应用的特殊性即可;框 架内嵌了控制流、实现了公共的基本功能,使用框架可以降低开发成本、缩短开 发周期;如果框架文档清晰规范并且省去了具体的实现细节,使用框架开发的 应用就比较容易理解和维护【1 0 】。 框架提供的固定接口被定义成抽象类或组件,并可被用来创造新的应用程 序。这样就提高了可复用性。框架的可复用性利用了有经验的开发者在该特定领 域中的专业知识和开发能力,避免了后继开发人员针对该领域中的同一问题和需 求作重复的劳动。框架组件的复用能大副度的提高后继开发人员的产量,同时还 能够改善软件的质量、性能和可靠性。 框架有两种重用机制,黑箱重用被定义为不依赖除了它的接口和规范的任何 其它东西来重用实现;白箱重用被定义为通过它的接口,使用软件的片断,同时 依赖于从实际实现中学习并对获取的知识的理解。只能通过继承来使用的框架被 定义成为白箱框架,因为使用这些框架而不理解框架内部是如何工作的是不可能 的。当然,可以通过配置现存的组件来使用的框架称为黑箱框架,因为它们提供 了支持黑箱重用的组件。黑箱框架更容易使用,因为内部的机制被开发者隐藏了。 这种方法的缺点是缺少灵活性。白箱框架的性能被限制在提供的组件集中实现的 范围内。基于上面的原因,框架通常提供上述两种机制。它们有一个白箱层和一 个黑箱层,白箱层由接口和抽象类组成,抽象类构成为白箱重用使用的结构体系, 黑箱层由具体类和组件构成,它们从白箱层继承而来并且可以插入到体系中。通 过使用具体类,开发者可以方便访问框架的属性。如果需要在缺省的实现上增加 新功能,开发者将不得不创建一个定制类( 或者通过从抽象基类中的一个继承而 来或者通过从具体类中的一个继承而来) 。 黑箱框架和白箱框架的主要不同点是,为了使用一个白箱框架,开发者不得 不扩展类势且实现接口。另一方面,一个黑箱框架由可以被开发者实例化和配置 1 3 保密材料 c o n n d e n t i a l j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) 的组件和类组成。通常黑箱框架中的组件和类是白箱框架中元素的实例。组合和 配置黑箱框架中的组件可以被工具支持并且对于开发者来说使用它比使用框架 中的白箱部分更容易。 而r e p o r tc e n t e r 构建了一个基于继承的白箱框架。选择基于继承的白箱框架 而非黑箱框架的原因包括以下几条: 各个子系统的需求清晰,有原始系统作为对比,各个子系统的大部分的业务 逻辑是相同或者类似的。 报表发布框架应用的范围是报表信息发布系统,不牵涉到原始的数据搜集和 报表生成工作,分析和抽象难度不高。 框架应用范围有限,不需要抽象程度很高。 开发团队对于框架设计和开发的经验不足,从白箱框架起步可以较快的形成 可运行系统,便于测试和改进。 2 3 框架的分类 在实际运用框架时,就其用途可以将框架分成三类: 应用程序框架。应用程序框架旨在提供一个全范围的、功能性的创建一个应 用所需的基础设施。这个功能集通常涉及很多方面,例如用户界面g u i 、文档、 数据库等。一个应用程序框架的例子就是c + + 类库m f c ,m f c 被用来构建m s w i n d o w s 上的应用程序;另一个应用程序框架的例子就是j a v a 基础类j f c 。后 者关注于面向对象设计视点。 领域框架。这类框架有助于实现某一特定领域内的程序。领域框架这一术语 被用来指定某一特定领域的框架。一个领域框架的例子是银行或者会计系统。领 域特定软件通常必须针对一个公司进行剪裁。框架可以有助于减少需要用来实现 这样的应用程序的工作量。这样就允许公司在他们涉及的领域创造高质量的软件 同时减少开拓市场的时间。 支持框架。支持框架通常定位于非常专业的计算机相关的领域,例如存储管 理或者文件系统。对这类领域的支持对于简化程序开发是有必要的。典型的支持 框架被用在领域和应用程序框架之间的连接。 保密材料 c o n f i d 曲f i a l 4 j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 2 4 框架的缺陷 使用框架的最大障碍是框架的学习曲线。开发者必须理解框架提供了哪些功 能,如何扩展和定制它们自己的应用程序。所以对于小的项目是否采用框架是一 个值得考虑的问题。纯粹的白箱框架是比较难以使用的,因为它们需要应用程序 开发者编写大量的代码。这样的框架的主要问题是每个应用程序需要创建大量的 子类,虽然这些子类都非常简单,但一个应用程序中有太多的类不利于维护。相 对来说,黑箱框架通常比较容易使用,但它们有一定的限制。给框架建立文档是 件比较困难的事情,因为框架比一般的软件抽象。p a t t e m 是一个描述框架的好方 法,因为框架的初学者通常对一个框架是如何工作的不感兴趣,他只关心如何使 用框架去解决某个具体问题。通过p a r e r n 的学习,框架用户能够马上创建自己 的应用程序。 2 5 使用框架存在的问题 目前流行的框架,如p o r t a l 、j a d e 、s t r u t s 和f l e x 等,都对w e b 应用提出了 很好的思路。但是作为纯粹的框架设计来说,追求的是系统的简洁和清晰。这些 流行的比较经典的框架,大都将目光集中在某一个特定领域问题的处理上。 w e b s p h e r ep o r t a l 是在w e b s p h e r ea p p l i c a t i o ns e r v e r 之上开发的。它旨在帮助开 发人员构建企业门户网站应用程序。它为构建能够产生高性能的、安全的、可扩 展的、可伸缩的和健壮的应用程序的p o r t l e t 提供了一个已被验证的、完整的 a p i 。j a d e 是由i b m 提供的作为用于j a v a 的企业应用程序开发框架( e a d 4 j ) 的一部分的框架。它和其他几个框架( t o p a z 、r u b y 和其他框架) 一起提供了一 个健壮的、可伸缩的和得到支持的方式来迅速开发j 2 e e 应用程序。e a d 4 j 工 具包带有一整套体系结构文档和蓝图,还有最佳实践和示例。s t r u t s 是一个由 j a k a r t a 项目提供支持的开放源代码倡议,它为普通大众提供商业级质量的开放 源代码软件。它还提供了一个与j a d e 类似的w e b 应用程序框架并且基于 j 2 e e 标准。以上所述的框架旨在让项目迅速地实现应用程序的业务逻辑而不用 担心应用程序的底层内容。它们都提供了相似的功能,尽管在实现上有所不同。 保密材料 c o n f i d e n f i j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) j a d e 和s t r u t s 都是独立于应用程序服务器的,而w e b s p h e r ep o r t a l 则仅支持 w e b s p h e r ea p p l i c a t i o ns e r v e r 。s t r u t s 为开发人员提供了优秀的功能和益处,而 w e b s p h e r ep o r t a l 则提供了一个健壮的框架,它是为开发功能完备的应用程序而 提供的。所以我们的平台将s t r u t s 集成到w e b s p h e r ep o r t a l 框架中,即报表发 布平台的s t r u t s 工程作为i b mw e b s p h e r ep o r t a ls e r v e r5 0 的单个p o r t l e t 应用。 尽管如此,s t r u t s 却没有提升最终用户体验:终端显示仍然是采用h t m l 、h t t p 请求响应机制。而f l e x 就可以弥补s t r u t s 的这个缺陷。f l e x 是m a c r o m e d i a 公司 新提出的一种胖客户端( r i c hc l i e n t ) 的表现层技术,它提倡尽可能多地把用户交 互留在客户端处理,减少客户端和服务器端的数据通信量,提供更好的客户体验。 它也有类似于j s p 的页面,使用了与x m l 相近的语法编写,通过m a c r o m e d i a 的f l e xb u i l d e r 编译成f l a s h 页面展示给用户。s t r u t s 和f l e x 都是基于m v c 体系 结构的。但s t r u t s 着重于m v c 中的控制器部分,它提供j s p 标签库帮助程序员 在传统的j s p f i t t m l 环境中创建视图。而f l e x 着重于m v c 的视图部分,它提 供一些控制逻辑协助远程系统交流和实现安全机制。m v c 旨在增加代码的重用 率,减少数据表达,数据描述和应用操作的耦合度。f l e x 与s t r u t s 框架结构集成 就是基于此目的的。f l e x 为开发者提供其熟悉、基于标准的编程框架和功能强大 的组件,使企业级应用程序能创建功能更丰富、回应更迅速的表示层。而且s t r u t s 组件编程必须限定在a c t i o n a c t i o n f o r m j s p 这三个框框中做文章,难度相对比 较大,而f l e x 则没有太多这样的技术框框限制,它在组件编程方面更让编程者 自由一些,方便一些,这也是组件型框架的优势。当然,f l e x 的不足在于对x m l 和w e b 服务等标准的支持很有限。所以我们希望集成f l e x 和s t r u t s 框架,取长 补短。 保密材料 c o n l i d e n t i a l 1 6 j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研 吕小红( 2 0 3 2 1 0 5 8 ) 由于j 2 e e 是当前最成熟的企业级应用框架,所以我们希望建立一个基于 j 2 e e 三层体系架构的报表发布平台。j 2 e e 体系结构是一个多层的、端到端的解 决方案。它清晰地将一个企业应用程序分隔为用户表现层、应用逻辑层和数据库 持久层。用户表现层主要指用户晃面,负责同用户的交互,它要求尽可能的简单; 第二层就是应用逻辑层,也就是常说的中间件,所有的应用系统、应用逻辑、控 制都在这一层,系统的复杂性也主要体现在应用层;最后的数据库持久层,则存 储大量的数据信息和数据逻辑,所有与数据有关的安全、完整性控制、数据的一 致性、并发操作等都是在第三层完成。其中,e j b 是j 2 e e 的中心内容。 我们在用户表现层采用基于m v c 模式的f l e x s t r u t s 集成技术,在应用逻辑 层由e j b 来处理复杂的业务逻辑和数据访问。集成这几种技术具有以下优点: f l e x 与e j b 组件和s t r u t s 框架相集成,提供丰富的、可扩展的用户界面构建 库;提供高性能的运行时服务;可供完整调试:改善用户满意度;减少带宽占用 和服务器负载;增强应用程序效能;通过提升最终用户体验来增加r o i ;提高 应用程序转化率;增强应用程序的使用广度。 m v c 模式有助于分离表现层与业务逻辑;应用s t r u t s 标准标签库,进一步 减少j s p 页面中的j a v a 代码,页面条理清楚。在j 2 e e 平台上采用m v c 模式结 构进行开发,可使软件结构清晰,缩短软件开发周期,提高软件的可维护性和代 码复用率。 j 2 e e 的三层架构体系能有效降低建设和维护成本,简化管理;适应大规模 和复杂的应用需求;可适应不断变化的和新的业务需求:可访问异构数据库;能 有效提高系统并发处理能力;能有效提高系统安全性。 3 1 表现层框架集成 3 1 1 表现层开发的困难 表现层实际上包括了客户端的表现层和服务器端的表现层( 又称为w e b 层) 。 1 7 保密材料 c o n f i d e n t i a l j 2 e e 三层结构中表现层框架集成的研究 浙江大学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 客户端的表现层即运行于客户端上的,用于和客户交互的浏览器。服务器端的表 现层则是负责生成显示的内容。由于报表发布框架所面对的众多子系统都拥有不 同类型、外观的界面,抽象到统一的框架处理比较困难,因而报表发布框架在表 现层的设计工作更多的关注如何与下层的业务逻辑层进行交互。 作为与用户直接交互的窗口,w e b 层的设计是软件开发人员所必须面对的一 大难题。目前w e b 层的一些主要难点在于: w e b 界面经常变化:如经常需要变化一些页面布局、图片或样式表,但 不一定改变工作流程。成功的应用可以接受这些修改而不需修改业务对象设置 w e b 层的控制代码。 w e b 界面中涉及复杂的标签:典型的动态网页中嵌有大量的表格,冗长 的j a v a s c r i p t 以及用可视化工具生成的h t m l 代码( 往往难以阅读) 。一般只 有相当少部分的内容是动态的。优秀的j a v a 开发人员也没有必要掌握全面的页 面制作和美工技能,这些工作应该由专业的页面制作和美工人员完成。 w e b 开发与普通g u i 开发很不相同:w e b 开发所强调的是请求和响应, 请求中只能带有s t r i n g 型的参数,页面上用户的输入往往无法控制,无法限制 用户按一定顺序访问网页,而相反的是,传统的g u i 提供丰富的控制和自定义 控制的功能。 w e b 的测试比较困难。 由于表现层的表现形式的多样性,软件行业提出了为数众多的表现层框架以 简化系统的分析设计,比如s t r u t s 、s p r i n g 、j s f 等等。这些框架大多应用了m v c 的设计模式,良好的分离了视图、控制和数据。 3 1 2表现层中的m v c 模式 单用户的应用通常是以事件驱动的用户界面为组织结构的。开发人员用一个 界面工具画了一个用户接口界面,然后编写代码根据用户输入去执行相应的动 作,许多交互式的开发环境鼓励这么做,因为它强调先有界面然后再有功能,然 后经常将固定后的代码融入最后的系统当中。导致的结果就是,程序组织围绕用 户界面元素和用户在那些界面元素上的动作,数据的存储,应用的功能以及用来 保密材料 c o n f i d e n f i a l j 2 e e 三层结构中表现层框架集成的研芄 浙江大学计算机学院2 0 0 3 研吕小红( 2 0 3 2 1 0 5 8 ) 显示的代码都杂乱无章的缠绕在一起。在单用户的系统罩代码结构是可以这样 的,因为系统需求不会频繁变化。但是对一个大的系统如大型w e b 系统,电子 商务系统来说就不太适用了,这样的设计策略对系统的扩展性和灵活性都考虑不 够,当系统的规模扩大时,维护的代价将以几何级数上升。 m v c 模式很好的分离了业务逻辑和用户交互,为上面的问题提出了很好的 解决方案,因此一经提出就在表现层的应用得到了广泛应用。它最初是在 s m a l l t a l k 一8 0 中被用来构建用户界面的。它能有效的分离逻辑开发,使开发人员 能专注于各自的开发中,同时也能使整个开发结构流程更清晰。所谓m v c ,即: m o d e l ( 模型) 模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的 唯一功能就是状态。它对视图或控制器一无所知。 v i e w ( 视图) 视图提供模型的表示。它是应用程序的外观。视图可以访问模型的读方法, 但不能访问写方法。它对控制器一无所知。当更改模型时,视图应得到通知。 c o n t r o l l e r ( 控制器) 控制器对用户

温馨提示

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

评论

0/150

提交评论