(计算机系统结构专业论文)基于mvc模式的web应用框架设计和实现.pdf_第1页
(计算机系统结构专业论文)基于mvc模式的web应用框架设计和实现.pdf_第2页
(计算机系统结构专业论文)基于mvc模式的web应用框架设计和实现.pdf_第3页
(计算机系统结构专业论文)基于mvc模式的web应用框架设计和实现.pdf_第4页
(计算机系统结构专业论文)基于mvc模式的web应用框架设计和实现.pdf_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 中文摘要 不论从理论上还是从实践上看,w e b 开发技术的研究都变得日益重要。然而, 开发w e b 应用仍然面临诸多挑战,比如:如何使数量众多的开发人员在开发过程 中有效地合作,如何使开发的应用有良好的可扩展性、灵活性等等。由于w e b 应 用具有经常改进其内容和形式的特点,使上述挑战变得比一般应用更严峻。w e b 应用框架是解决这个问题的一种有效途径,但目前的w e b 框架具有不容易掌握、 页面_ 和应用逻辑不独立、体系结构不合理等问题。为此,本论文试图设计和实现 一个新的w e b 应用框架来解决上述问题。 本论文首先研究设计模式和框架开发技术。在总结现有理论基础上提出了基于 设计模式的自顶向下的框架开发方法,本方法有利于框架的重构和演化,使设计 出的框架具有良好的可复用性和可扩充性。接着,论文研究了w e b 应用开发技术, 以找出其开发的一般过程和共性。通过研究现有w e b 应用开发的体系结构模式, 包括j s pm o d e l1 、j s pm o d e l2 以及m v c ,在分析它们的优缺点的基础上提出一 种新的体系结构模式m v c 年+ 。相比现有模式,m v c + + 的可维护性、可扩展性、 可移植性和组件的可复用性等更加突出。最后,在研究现有的w e b 应用框架的优 缺点的前提下,提出和实现了一种基于m v c + + 模式的w e b 应用框架( 即v w e b ) , 它具有符合m v c + + 模式、容易掌握、支持敏捷开发、页面和应用逻辑完全分离等 诸多优点。 在实现v w e b 框架过程中,本论文采用基于设计模式的自顶向下的框架开发方 法,并对诸多问题提出合理的设计。比如,设计了具有良好扩展性的配置文件内 存结构、良好维护往的配置文件解析模块、视图层设计了动态自适应输出对象缓 冲区池、采用v e l o c i t y 作为视图层技术等。 最后,通过开发一个基于v w e b 框架的典型应用,并和现有框架作对比,说明 了v w e b 的合理性和优势。 关键词:m v c + + ,设计模式,应用框架,软件体系结构,w e b 应用 a b s t r a c t a b s t r a c t n om a t t e ri n t h e o r yo ri np r a c t i c e w e bd e v e l o p m e n tb e c o m e si n c r e a s i n g l y i m p o r t a n t h o w e v e r , w e bd e v e l o p m e n ts t i l lh a v et of a c em a n yc h a l l e n g e s f o ri n s t a n c e : h o ws o f t w a r ee n g i n e e r sc a nc o o p e r a t ee f f e c t i v e l y h o wt oe n a b l ew e b a p p l i c a t i o n st o p o s s e s se x p a n s i b i l i t y , f l e x i b i l i t ya n d s oo n u s i n gw e bf r a m e w o r k si sa g o o ds o l u t i o nt o t h i sp r o b l e m ,b u tp r e s e n tf r a m e w o r k sh a v em a n ys h o r t c o m i n g s ,s u c ha sd i f f i c u l t yt o l e a r n ,d e p e n d e n c yo f o n ec o m p o n e to na n o t h e r ,u n r e a s o n a b l ea r c h i t e c t u r e s ot h i sp a p e r d e s i g n sa n dr e a l i z e saw e bf r a m e w o r kt oo v e r c o m et h e s es h o r t c o m i n g s f i r s t ,t h i sp a p e rm a k e sr e s e a r c h e so nd e s i g np a t t e r na n df r a m e w o r kd e v e l o p m e n t t e c h n o l o g y ,a n dp u tf o r w a r dan e wf r a m e w o r kd e v e l o p m e n tm e t h o db a s e do nd e s i g n p a t t e r n ,w i t hw h i c ht h ed e s i g n e df r a m e w o r k sw i l lh a v eg o o de x p a n s i b i l i t ya n d r e u s a b i l i t y s e c o n d ,t h i sp a p e rs t u d i e sw e bd e v e l o p m e n tt e c h n o l o g i e s ,a n da f t e rt h e r e s e a r c ho fp r e s e n tw e ba r c h i t e c t u r ep a t t e r n s ,s u c ha sj s pm o d e l1 ,j s pm o d e l 2a n d m v c ,t h i sp a p e rp r o p o s em v “+ f o rg o o dm a i n t a i n a b i l i t y ,e x p a n s i b i l i t y ,a n d r e u s a b i l i t y t h i r d ,t h r o u g j l t h er e s e a r c ho f p r e s e n tw e bf r a m e w o r k s m e r i t sa n d s h o r t c o m i n g s ,t h i sp a p e rp r o p o s ea n dr e a l i z ean e ww e bf r a m e w o r kn a m e dv w e bb a s e d o nm v c + + ,w h i c hh a sm a n ya d v a n t a g e s ,s u c ha se a s i n e s so fu s e ,s u p p o r to fa g i l e d e v e l o p m e n t ,i n d e p e n d e n c yo fc o m p o n e n t e s d u r i n gt h ed e v e l o p m e n to fv w e b , t h i sp a p e rp u tf o r w a r de f f e c t i v es o l u t i o n st o e n c o u n t e r i n gp r o b l e m s f o re x a m p l e ,d e s i g no fd e p l o y m e n tf i l ep a r s i n gf u n c t i o nf o r g o o dm a i n t a i n a b i l i t y ,u s eo fv e l o c i t yi nv i e wl a y e r , e t c f i n a l l y ,t h i sp a p e rd e v e l o p s aw e ba p p l i c a t i o nb a s e do nv w e ba n dd o e s c o m p a r i s o nw i t hp r e s e n tf r a m e w o r k si no r d e rt oe x p l a i nv w e b sa d v a n t a g e s k e y w o r d s :m v c + + ,d e s i g np a t t e r n ,f r a m e w o r k ,s o f t w a r ea r c h i t e c t u r e ,w e ba p p l i c a t i o n l i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:璐 日期: 2 0 0 7年4 月 2 3 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文的 规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:周书 导师签龟名l 日期:2 0 0 7 年4月j2 3 日 第一章引言 1 1 研究背景 第一章引言 1 1 1 研究w e b 应用开发技术的重要性 如今,i n t e r n e t 己融入人们的生活,因此各种w e b 应用系统也应运而生,尤 其是电子商务、电子政务等应用已经成为热门领域。 所谓w e b 应用程序【1 1 ,是指用户界面驻留在w e b 浏览器中的任何应用程序, 它是一个连续的统一体,这个统一体的一端是呈现静态或动态内容的w e b 网站, 而在另一端,则是行为类似常规桌面应用程序的界面。 w e b 应用程序在现在的软件开发中所占的比重正变得越来越大,这可以归功于 理论和实践两方面的原因。 从理论上说,因为w e b 应用程序是最重要的b s 体系结构的技术,而不论从 理论上还是从实践中,人们都认识到b s 体系结构相比c s 体系结构有更大的优 势,特别是在企业级应用上。 所谓c s ( c l i e n t s e r v e r ) 结构1 2 1 ,即大家熟知的客户机和服务器结构。服务器 通常采用高性能的p c 、工作站或小型机,并采用大型数据库系统,如o r a c l e 、 s y b a s e 、l n f o r m i x 或s q l s e r v e r 。客户端需要安装专用的客户端软件。这种模式将 应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。 c s 体系结构的优点列2 】: 1 ) 应用服务器运行数据负荷较轻。最简单的c s 体系结构应用由两部分组成, 即客户应用程序和服务器程序。由于利用了客户端较多的计算能力,所以 相对来说,服务器的运行负荷较小。 2 ) 能够减少网络流量,提高事务处理速度。它可以充分利用两端硬件环境的 优势,将任务合理分配到c l i e n t 端和s e r v e r 端来实现,降低了系统的通讯 开销。 但c s 体系结构的缺点也很明显: 电子科技大学硕士学位论文 1 ) 开放性不够。传统的c s 体系结构虽然采用的是开放模式,但这只是系统 开发一级的开放性,在特定的应用中无论是c l i e n t 端还是s e r v e r 端都还 需要特定的软件支持。由于没能提供用户真正期望的开放环境,c s 结构 的软件需要针对不同的操作系统系统开发不同版本的软件。 2 ) 开发成本较高。比如需要针对不同的客户端操作系统开发不同版本的客户 端软件,极大增加开放成本。 3 )高昂的维护成本。比如网络管理工作人员既要对服务器维护管理,又要对 客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高。 而b s ( b r o w s e r s e r v e r ) 结构即浏览器朋匣务器结构4 1 。就是只安装维护一个 服务器( s e r v e r ) ,而客户端采用浏览器b r o w s e ) 运行软件。它是随着i n t e r n e t 技术的 兴起,对c s 结构的一种变化或者改进的结构。主要利用了不断成熟的w w w 浏 览器技术,并结合多种s c r i p t 语言( v b s c r i p t 、j a v a s c r i p t 1 和a c t i v e x 技术。在这 种结构下,用户工作界面是通过w w w 浏览器来实现,极少部分事务逻辑在前端 ( b r o w s e r ) 实现,但是主要事务逻辑在服务器端( s e r v e r ) 实现。 在b s 体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出 请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余 如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的 执行等工作全部由服务器完成。 相比c s 体系结构来说,b s 体系结构的优点主要有以下几点【l 】: 1 ) 简化工作。b s 结构下软件安装在服务器端即可解决问题,在做更改时, 只需调整服务器端即可。c s 结构下软件则需要安装在客户机端,调整的 时候需要涉及到局域网内的每一台机器。 2 ) 更好地保障数据安全。在c s 结构软件的解决方案里,对于异地经营的大 型集团企业,需要在各地分别安装区域级服务器。一旦某一个区域级服务 器出现问题,对数据的安全会造成一定影响,而且总部也不会得到准确的 最终数据。对b s 结构下软件来讲,其数据集中存在于企业的中央数据库, 可有效地保护数据的安全,而且企业可随时随地掌握自己的经营状况、市 场动态,以做出最快决策。 3 ) 不受网络的限制。c s 结构软件主要适用于局域网内部用户或宽带用户; 而b ,s 结构软件则适合于任何网络结构,尤其适合于宽带不能到达的地 方。 所以,b s 体系结构的本质特点决定了它相比c s 体系结构有更大的优势。因 2 第一章引言 此,从理论上来说,作为b s 体系结构的主要表现形式的w e b 应用系统有很好的 技术前景。 另一方面,从实践上说,w e b 应用系统也变得日益重要。以企业数据中心为例。 根据计世资讯( c c wr e s e a r c h ) 2 0 0 6 年企业级数据中心r r 应用与趋势研究报告 的研究,在企业数据中心的核一1 1 , 任务中,面向w e b 应用的服务功能正逐渐担当着 越来越重要的角色。 企业的数据中心作为运行企业关键业务,商务应用的核,1 1 , 计算平台,是企业r r 系统的核心,为整个企业网络提供应用服务,通常这些服务包括一些企业的关键 业务( 如e r p 、m r p 、h i s 等) 和网络功能服务( 如w e b 、f r p 、m a i l 、d h c p 、d n s 、 w i n s 等) 。 虽然根据计世资讯的研究,传统上的数据库目前仍然占整个数据中心的各类应 用的主要部分,因为企业级数据中心绝大多数是围绕着企业内部业务系统,其核 心任务仍是以存储业务系统的数据为主。但现在,面向w e b 的应用,即以w e b 为 中心,通过网络传输和处理数据的服务逐渐受到关注,在数据中心的核心任务中 扮演着越来越重要的角色。 比如在教育、制造业中,以w e b 为中心的数据中心所占i1 比例已经较高。另 外,在近期建设完成的和目前正在建设中的企业级数据中,i i , ,把面向w e b 的应用, 作为核心任务的比例也呈逐渐增加的趋势。 综上所述,w e b 应用系统不论是从理论上还是从实践上看都变得日益重要。所 以研究它的开发方法意义重大。 1 1 2w e b 应用系统开发面临的挑战 r r 行业素来以速度和互相追赶而著称。在这场以速度快为前提的比赛中,任 何一家软件企业要想在商业竞争中获胜,就必须使其产品和服务与众不同。在实 现这个目标的过程中,软件开发是其中重要的环节之一。在新的市场和竞争环境 中,所有的软件企业都面临以下挑战1 5 l 【6 】: 1 )如何能够快速组织大规模的应用开发,使数量众多的开发人员在开发过程 中有效地合作? 2 ) 如何能够缩短项目周期、降低项目的投入,并按时、保质、不超预算的将 项目交付给用户? 3 )如何能够让开发出来的系统能够同时拥有软件的可移植性、可扩展性、灵 3 电子科技大学硕士学位论文 活性和安全性? 4 )如何能够降低开发的技术门槛,从有限的人力资源市场上获取项目中所需 的人力? 当企业在开发w e b 应用时,上面的挑战变得更加严峻。原因是w e b 应用为了满 足用户不断变化的需求以及适应激烈的市场竞争,必须不断地改进其内容和形式。 根据软件工程的实践经验,人们深刻地认识到,随着软件系统规模和复杂性的 增长,系统总体结构设计和规格说明的重要性已远远超过特定算法和数据结构的 选择【”,良好的体系结构对保证系统的成功至关重要。 事实上,利用框架开发应用系统已经成为应用开发的一种新方式。应用框架 为解决应用系统面临的诸多问题提供了有效的解决方案,如下所述吼 1 )应用框架为应用系统提供了优良的软件体系结构。应用框架一般采用应用 领域己被实践检验、经过多数该领域专家认同的软件体系结构进行设计、 实现,因此,可以为多数应用提供可复用的软件体系结构。 2 )应用框架为应用系统的开发提供了技术和经验的积累。应用框架的设计和 实现一般都由在应用领域具有丰富经验的开发者完成。应用框架的开发考 虑到了多数具有通用性的问题,并给出了解决方案,同时,应用框架也为 应用的开发提供了多种组件支持,从而为应用的开发提供了技术和经验的 积累。 3 )应用框架为应用系统的开发提供了更强的项目管理。应用框架一般采用模 块化、层次化设计,并为各模块、各层的交互提供了统一的接口,可以支 持应用按角色进行并行开发,从而为应用项目的管理提供了更好的支持。 4 )应用框架为应用系统的开发提供了可复用的基础服务集合。应用框架特定 于应用领域,应用框架的设计和实现一般建立在对大量应用系统的共同行 为的分析之上,并在此基础上为应用提供了大量的基础服务。 所以,研究w e b 应用的体系结构、开发w e b 应用框架等成为了一个非常重要 的任务。 1 1 3 框架开发技术现状、问题和研究方向 框架研究者们已经提出了一些框架开发方法。这些方法在它们各自的应用范围 内是比较成熟的,为框架的开发方法的研究打下了坚实的基础。主要有以下几种 常用的开发方法川【8 】【9 】【1 0 1 。 4 第一章引言 1 )基于应用经验的框架开发方法 首先开发出几个问题领域的应用系统。识别出应用系统中的共性内容,将它们 抽象出来作为该领域框架的内容。为了评估所抽取的内容是否适当,使用该框架 重新开发这些应用系统。根据在开发中获得的经验改进最初开发的框架,达到新 的改进版本的框架。如此迭代下去,直到框架的设计趋于成熟。 这种开发过程能够区分框架的公共性和可变性,因而能够识别出框架的热点。 但是,由于这种开发过程依赖于具体的应用,因而不能保证框架的热点能够真正 满足用户的需要。 2 )基于逐步归纳的框架开发方法 这种开发过程包括两个步骤。第一阶段,叫做问题概括。它首先从框架应用领 域中的一个有代表性的应用系统开始,通过阶梯式的步骤不断地将这种功能说明 归纳为更为一般化的形式,直到达到对问题描述的最为一般化的形式。第二阶段, 叫做框架设计,使用第一步得到的对问题领域不同抽象层次的说明,通过逆向顺 序逐步实现这些层次。框架设计阶段的最后一步是将得到的框架应用于问题概括 阶段的最初的应用系统中,这可以看作框架的测试活动。 这种开发过程缺乏对问题概括阶段的指南;另外,开发出来的框架的可复用程 度依赖于最初选择的应用能在多大程度上代表领域。 3 ) 基于领域分析的框架开发方法 首先分析框架所应用的问题领域( 一般需要分析领域中存在的应用系统) ,理 解并标识出领域中的抽象概念和关键内容。当领域中的重要概念被确定之后,开 发框架并应用于某个测试系统中。如果发现问题,则修改框架。然后利用框架开 发下一个系统。修正新发现的问题并对第一个系统进行更新。 通过领域分析确定领域的共性,我们能够提取出定义良好的抽象概念,这对把 握框架的整体特征是大有好处的。但是,进行领域分析需要投入大量的时间和预 算。 从总体上讲,框架的开发过程可以分为自顶向下和自底向上两种。上述的三种 框架开发方法中,前面两种应归属到自底向上的类别中,而后一种则归属到自顶 向下的类别中。 目前存在的问题是,没有系统的针对w e b 应用框架的开发理论,现有的框架 开发理论有很大的通用性,但是,考虑到w e b 应用范围很广的特点,上述框架开 发技术都不能完全适合。 比如,自底向上方法容易失去对系统的整体把握,或者容易在细节中消耗大量 5 电子科技大学硕士学位论文 的时间,所以一般不适用于w e b 框架开发。而传统的自顶向下的开发方法强调抽 取概念,却没有合适的开发手段去适应概念的变化,由于人们在认识事物的过程 中不可能马上抓住本质,概念变化难免;而且,w e b 应用范围很广,不容易抽取出 统一概念;另一方面,自顶向下的开发周期很长,如果不能适应概念的变化,框 架的开发很难成功。 所以,本论文首先需要解决的问题是,设计出适合开发w e b 应用框架的方法。 1 1 4 基于j 2 e e 的w e b 应用体系结构模式、问题和研究设想 由于j 2 e e 1 1 】的广泛使用,本论文使用j 2 e e 作为w e b 框架的开发平台。所以, 首先必须研究基于j 2 e e 的w e b 应用开发的一般过程和特点。 由于人们已经总结出了一些w e b 应用的开发体系结构模式,所以,研究它们 对于设计w e b 框架的体系结构非常有必要。 目前主要有三种w e b 应用的体系结构模式1 1 2 1 【1 3 l 1 4 1 ,分别如下: 1 ) j s p m o d e l1 在此体系结构中,使用了两种组件:j s p 和j a v a b e a n 。j s p 页面中可以非常 容易地结合业务逻辑和h t m i _ , 所以,j s p 页面执行了所有的请求处理逻辑和会 话管理逻辑,它负责响应用户请求并将处理结果返回给用户。 2 ) j s p m o d e l2 此体系结构中,使用了三种组件:s e r v l e t 、j s p 和j a v a b e a n 。用s e r v l e t 作 为请求处理者。s e r v l e t 负责创建j s p 所需的j a v a b e a n 模型,并且根据用户 请求决定要转发的j s p 页面;而j s p 通过检索j a v a b e a n 模型中的数据并插 入到页面模板,为用户生成最终页面。 3 ) m v c 把一个应用分为模型( m o d e l ) 、视图( v i e w ) 和控制器( c o n t r o u e r ) 三个 部分。模型层表示数据和业务逻辑,视图层提供数据显示和用户输入,控制层 负责派遣用户请求和控制流程。 这些体系结构模式,即便是最好的m v c 还是有很多缺点,体现在以下几个方 面: 1 ) 增加了系统结构和实现的复杂性。 2 )视图与控制器间的过于紧密的连接妨碍了他们的独立重用。 3 ) 视图对模型数据的低效率访问。 第一章引言 4 )由于模型层是所有的商业逻辑代码所在。而实际上业务逻辑是有很多共性 部分的,采用笼统的模型层,将不利于业务数据对象的共享。 5 )控制器过于笼统。实际上,控制逻辑中有一部分是十分规范的;另一方面, 和具体业务相关的逻辑是不能规范化的。而采用一个控制器方式并不能体 现这种区别,也不利于开发结构良好的体系结构。 所以,本论文需要提出更合理的体系结构模式,以更好的适应w e b 应用框架的 开发。 1 1 5 典型w e b 应用框架、问题和研究设想 目前已经有不少w e b 应用框架,为了使本论文设计的框架有更好的优势,非 常有必要研究现有的w e b 应用框架的设计思想,分析它们的优点和缺点,以进一 步明确w e b 应用框架设计的关键和应该采用的技术路线。 本论文的目标是研究一些典型的w 曲应用框架,采用的研究方法是选择一些 技术上典型,使用者较多,而且类型不重复的w e b 应用框架。最后确定为以下三 种: c o c o o n :采用1 0 0 纯j a v a 编写的一个内容发布和开发应用框架【删。它的最大 特点是,使用而且充分利用了x m l 的强大功能。c o c o o n 让你能采用w 3 c 的最新 技术( d o m 、x m l 、x s l ) 来提供w e b 内容。采用x m l + x s l t p i p e l i n e 机制,j a v a 程序只需要输出x m l 数据,c o c o o n 框架调用x s l 文件把x m l 数据转换成h t m l 、 w m l 等文件。 s t r u t s :由一组相互协作的类、s e r l v e t 以及丰富的标记库o s pt a g l i b ) 和独立于该 框架工作的实用程序类( v a l i d a t o r 等) 组成。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 ) 1 6 】。在模型 层,s t r u t s 可以很容易的与数据访问技术相结合,包括h j b j d b c 和o b j e c tr e l a t i o n b r i d g e 。在视图层,s t r u t s 能够与j s p , v e l o c i t yt e m p l a t e s ,x s l 等等这些表示层组件 想结合。 t a p e s t r y :是一个用j a v a 编写的基于组件的w e b 应用开发框架【r 丌。它不仅仅是 一个模板系统,更是一个建立在j a v as e r v l e ta p i 基础上的动态交互式网站的开发 平台。 通过研究,发现至少可以从上述框架中学习到以下几点: 1 ) c o c o o n 的视图内容和风格分离的特性有利于视图层和业务的分离。 7 电子科技大学硕士学位论文 2 ) t a p e s t r y 的页面中不嵌入大量的脚本语言有利于页面的维护。 3 ) c o c o o n 和s t r u t s 都提供了大量的可复用的组件。 4 )c o c o o n 和s t r u t s 都使用配置文件的方式描述组件之问的关系等信息,使 框架灵活而且可扩展。 但是,c o c o o n 和t a p e s t r y 虽然创意很好,但不知不觉忽略使用者的思维习惯, 难以掌握,所以开发出的框架叫好不叫座。而s t r u t s 由于提出较早,有很多缺点, 比如:t a g l i b 虽然是s t r u t s 的一大优势,但它在一定程度上不太符合一般的网页编 写习惯;模型层和视图层的关系过于复杂,没有做到真正的分离;程序员可以把 应用逻辑放入j s p ,这样会导致程序结构很容易变得复杂和难于管理等等。 所以,本论文希望在吸收现有框架的优点以及避免它们缺点基础上,提出更合 理的w e b 应用框架的设计目标,并且在设计和实现过程中采用所研究的适合w e b 框架的开发方法,最后,希望在实践中验证本论文开发的框架有良好的特性。 1 2 研究内容和意义 本论文的主要目标是在研究软件复用技术、基于j 2 e e 的w e b 应用开发技术等 理论基础上,设计和开发一个w e b 应用框架v w e b 。 具体来说,本论文的研究内容主要包括以下几个方面: 1 ) 研究软件复用技术,包括软件体系结构、框架、设计模式和面向对象开发 方法等,重点研究设计模式和框架开发技术。在此基础上提出适合w e b 框 架开发的方法:基于设计模式的自顶向下的框架开发方法。 研究w e b 应用开发技术尤其是基于j 2 e e 的w e b 应用开发技术,以找出其 开发的一般过程和共性。 3 ) 研究现有w e b 应用开发的体系结构模式,包括j s pm o d e l1 、j s pm o d e l2 以及m v c ,在分析其优点和缺点的基础上提出一种结构上更适合w e b 应 用的体系结构模式m v c + + 。 4 1 研究现有的蹑葫耩蟊i - ;孺s t r u w e b s t r u t s 、t a p e s t r y 等,在分析它们的优缺点4 1 研究现有的应用框架,包括 、等,在分析它们的优缺点 的前提下,提出一种基于m v c + + 模式的、更加易用的w e b 应用框架v w e b 。 5 ) 将前面提出的系统的框架开发方法用于v w e b 应用框架的开发过程,并且 解决在开发过程中遇到的各种问题,包括配置文件设计,视图层输出缓冲 区设计等。 第一章引言 6 ) 开发一个典型的注册登录应用,以说明基于v w e b 框架的w e b 应用开发过 程,同时通过对比实验阐述了v w e b 框架的设计合理性。 总之,本论文旨在通过系统的研究,一方面完善和发展w e b 框架开发方法、 w e b 应用体系结构模式等理论,另一方面提出并且设计和实现更合理的w e b 应用 框架v w e b ,使所开发的v w e b 应用框架既符合软件复用理论,又具有良好的实用 性。 1 3 论文章节安排 全文共分七个章节。第二章介绍了软件复用技术,重点研究了设计模式和框架 开发技术,然后提出了基于设计模式的自顶向下的的框架开发方法。第三章研究 了w e b 应用开发技术尤其是基于j 2 e e 的w e b 应用开发技术,以找出其开发的一 般过程和共性。然后研究了现有w e b 应用开发的体系结构模式,包括j s pm o d e l1 、 j s pm o d e l2 以及m v c ,在分析其优点和缺点的基础上提出一种更合理的体系结构 模式m v c + + 。第四章分析比较了现有的w e b 应用框架,包括s t r u t s 、t a p e s t r y 等, 在分析它们的优缺点的前提下,提出一种基于m v c + + 的、更加易用的w e b 应用框 架v w e b 。第五章将前面提出的系统的框架开发方法用于v w e b 应用框架的设计和 实现过程,并且解决在开发过程中遇到的各种问题,包括配置文件设计,视图层 输出缓冲区设计等。第六章设计和实现了一个典型的注册登录应用,以说明基于 v w e b 框架的w e b 应用开发过程,同时阐述了v w e b 框架的设计合理性。最后一章 对全文进行了总结,并提出将来的改进意见和工作方向。 电子科技大学硕士学位论文 第二章设计模式和框架开发方法 2 1 软件复用技术概述 软件复用【1 8 】是在软件开发中避免重复劳动的解决方案,其出发点是开发应用系 统不再采用一切“从零开始”的模式,而是以已有的工作作为基础,充分利用过去 应用系统开发中积累的知识和经验,从而将开发的重点集中在应用的特有构成成 分上面。 软件复用强调复用的目的。它是一种系统化的方法,为了复用而进行设计,为 了复用而进行开发。并且要有效地组织和管理这些可复用资源,方便人们查找和 使用。可复用的现有软件资源是软件复用技术的核心【1 9 】。可复用软件( 构件) 的 获取、管理和利用是构成软件复用的三个基本要素【2 0 1 。 拷贝粘贴、函数,方法、模块、系统函数库、通用类库这几种复用方式被认为 是在软件复用发展初期的表现形式,因为这几种复用的着眼点仅局限于对代码的 复用,而编码工作仅仅是软件生产中的一个环节,局限于代码的复用充其量只能 改进编码工作,而不能改进整个软件生产过程1 2 1 1 。相形之下,设计复用1 2 2 】比代码 复用更具有优势。也更一般化,因而能被应用到更广泛的环境中;而且,它在开 发过程的初期就被引入,因此对项目的影响更大。众所周知,系统的编码仅仅占 系统开发工作量的2 0 左右,而系统的分析、设计及维护的工作量占总的开发工 作量的7 0 左右f 矧1 2 4 1 。其中系统的设计凝结了系统架构工程师与领域专家的智慧 与心血,是系统的灵魂所在,决定了一个系统的优劣程度及各种质量特性。 所以以下重点研究设计阶段的软件复用技术。一般来说,这类技术主要包括: 软件构件技术( s o f t w a r ec o m p o n e n tt e c h n o l o g y ) 、领域工程( d o m a i ne n g i n e e r i n g ) 、 软件构架( s o f t w a r ea r c h i t e c t u r e ) 、软件再工程( s o f t w a r er e e n g i n e e r i n g ) 、开放系统 ( o p e ns y s t e m ) 、设计模式等瞄】【2 6 】。这些技术因素是互相联系的,它们结合在一起, 共同影响软件复用的实现。 由于本论文主要使用了其中的设计模式和框架开发方法,所以下面重点研究它 们。 第二章设计模式和框架开发方法 2 2 设计模式 设计模式1 2 7 】指的是对一些某个领域中的公共设计问题行之有效的设计结构和 设计经验的系统地抽象、命名与定义。其目标是显式地复用那些成熟的设计技巧 与设计经验,提高软件整体设计的灵活性、可复用性。模式的思想源于2 0 世纪7 0 年代c h r i s t o p h e ra l e x a n d e r 的一系列著作,这些著作中记录了模式在建筑方面的 应用。而模式真正在软件界确立其地位的标志是1 9 9 5 年由e r i c hg a m m a 、 r i c h a r d h e l m 、r a l p hj o h n s o n 和j o l l nv l i s s i d e s 四人合著的“d e s i g np a t t e r n s : e l e m e n t so fr 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 ”一书的出版,该书又称为g o f ( g a n g o f f o u r :四人帮) 书,以赞赏四人对软件方法学所做出的贡献。该书将对 设计模式的研究和推广推向高潮,成为软件设计方法的经典书籍。 2 2 1 设计模式的描述 一般而言,要描述一个设计模式必须描述它的四个基本要素: 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 ) 描述了模式应用的效果及使用模式应权衡的问题。尽管描述设计决策时,并不 总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有 1 1 电子科技大学硕士学位论文 重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现 问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统灵活 性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很 有帮助。 2 2 2 设计模式的分类 在g o f 书【2 7 l 中,根据两条准则对设计模式进行分类:目的准则和范围准则。 目的准则,即设计模式是用来完成什么工作的。设计模式据此可分为; 1 ) 创建型( c r e a t i o n a l ) 设计模式:与类或对象的创建有关; 2 ) 结构型( s t r u c t u r a l ) 设计模式:处理类或对象的组合; 3 ) 行为型( b e h a v i o r a l ) 设计模式:对类或对象怎样交互和怎样分配责任进行描 述; 范围准则,即指定设计模式主要是用于类还是用于对象。设计模式据此可分为: 1 ) 类设计模式:处理类和子类之间的关系,这些关系通过继承建立,是静态 的,在编译时刻便确定下来了。 2 ) 对象设计模式:处理对象问的关系,这些关系在运行时刻可以改变,更具 有动态性。 从某种意义上讲,几乎所有设计模式都使用继承机制,所以“类设计模式”是 指那些集中于处理类之间关系的设计模式,而大部分设计模式都属于对象设计模 式的范畴。 各种设计模式的具体描述可以参考g o f 书,论文中将结合具体使用来说明。 2 2 3 设计模式的选择与使用 将设计模式进行提取、整理、编目的目的是为了能够更加有效地使用它们。因 此,如果能给出一些如何选择和使用设计模式的指针和方法将是非常有益的。本 文给出的一些指针和方法【2 7 j 2 s l : 选择设计模式是一个比较鉴别某个设计模式是否适合你所需解决的问题的过 程,需要考虑如下一些因素: 1 ) 设计模式是怎样解决设计问题的。设计模式是怎样找到合适的对象。决定 对象的粒度、指定对象的接口的? 第二章设计模式和框架开发方法 2 ) 某种设计模式的意图是否与你的问题相关。 3 ) 模式是怎样互相关联的。研究设计模式的关系能指导你获得合适的模式或 模式组。 4 ) 目的相似的模式之间有什么共同点和不同点。 5 ) 什么原因导致重新设计,哪些模式可以帮助你避免这些会导致重新设计的 因素。 6 ) 你的设计中哪些是可变的。考虑每一个设计模式允许哪些方面可以独立变 化,你可以改变它们而不导致重新设计。最重要的一点是封装变化的概念。 一旦选择了一个设计模式,如何使用它呢? g o f 给出了如下一个有效应用设 计模式的循序渐进的方法。 1 ) 大致浏览一遍模式,特别注意其适用性部分和效果部分,确定它适合所需 解决的问题。 2 ) 回头研究结构部分、参与者部分和协作部分。确保理解该模式的类和对象 以及它们是怎样关联的。 3 ) 看代码示例部分,看看该模式代码形式的具体例子。研究代码将有助于实 现模式。 4 ) 选择模式参与者的名字,使它们在应用上下文中有意义。模式参与者的名 字通常过于抽象而不会直接出现在应用中。然而,将参与者名字和应用中 出现的名字合并起来是很有用的。这会有助于在实现中更显式的体现出模 式来。 5 ) 定义类,声明它们的接口,建立它们的继承关系,定义代表数据和对象引 用的实例变量。识别模式会影响到的应用程序中存在的类,做出相应的修 改。 6 ) 定义模式中专用于应用的操作名称。应使用与每一个操作相关联的责任和 协作作为指导。 7 ) 实现执行模式中责任和协作的操作。模式的实现部分提供线索指导进行实 现。代码示例部分的例子也能提供帮助。 2 2 4 设计模式在框架开发中的应用 一种开发方法不仅需要有开发过程的指导,而且需要开发技巧的支持。大多数 开发方法主要描述开发过程,它可能用到了某些开发技巧,但只是在对过程的描 电子科技大学硕士学位论文 述中隐含地提到。本文所采用的开发方法以设计模式作为开发技巧,指导自顶向 下的框架设计,使其获得良好的软件结构。其优势在于设计模式是开发经验与技 巧的系统的总结,随着设计模式的丰富,框架设计的各个阶段都将得到设计模式 的支持【2 9 】。 2 3 框架开发方法 2 3 1 传统框架开发方法分析 面向对象技术方法主要针对一般应用的开发,缺乏对框架中某些特征的支持, 因此他们并不完全适合用于框架的开发。框架本身就具备不同于其它软件产品的 特征,这决定了框架同样需要适合自身特点的开发方法。框架研究者们已经提出 了一些框架开发方法。这些方法在它们各自的应用范围内是比较成熟的,为框架 的开发方法的研究打下了坚实的基础。主要有以下几种常用的开发方法【7 】f 8 】 g l 1 0 l 。 1 基于应用经验的框架开发方法 首先开发出n ( n = 2 ) 个问题领域的应用系统。这n 个应用系统应具有一 定的领域典型性,如每一个应用在该领域的某个方面的特征明显。识别出应用系 统中的共性内容,将它们抽象出来作为该领域框架的内容。为了评估所抽取的内 容是否适当,使用该框架重新开发这些应用系统。如果抽取适当,则这些工作应 该很容易。如果工作很难进行下去,根据在开发中获得的经验改进最初开发的框 架,达到新的改进版本的框架。然后再重新将框架投入到最初的n 个应用系统开 发中检验,从这些应用开发中获取的经验将作为进一步改进框架的输入,如此迭 代下去,直到框架的设计趋于成熟。 这种开发过程能够区分框架的公共性和可变性,因而能够识别出框架的热点。 但是,由于这种开发过程依赖于具体的应用,因而不能保证框架的热点能够真正 满足用户的需要。另外,这种开发过程需要多次的迭代,当框架的应用领域很复 杂时,框架依赖的应用系统会很庞大。该开发过程将耗费大量的时间。 2 基于逐步归纳的框架开发方法 这种开发过程包括两个步骤。第一阶段,叫做问题概括。它首先从框架应用领 域中的一个有代表性的应用系统开始,通过阶梯式的步骤不断地将这种功能说明 归纳为更为一般化的形式,直到达到对问题描述的最为一般化的形式。第二阶段, 1 4 第二章设计模式和

温馨提示

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

评论

0/150

提交评论