




已阅读5页,还剩68页未读, 继续免费阅读
(计算机系统结构专业论文)通用查询组件的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
l l l j rl , , 1 。? ! a t h e s i si nc o d e s i g na n d b yz h o uz h e n m i n g s u p e r v i s o r :a s s o c i a t ep r o f e s s o rw a n gj i a n n o r t h e a s t e r nu n i v e r s i t y m a y2 0 0 8 膏 r业j 奠j 鍪i n o ; ,p!i 缸 独创性声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中取得的 研究成果除加以标注和致谢的地方外,不包含其他人已经发表或撰写过的 研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示诚挚 的谢意。 学位论文作者签名:4 + 压- 4 签字日期:汕g o7 ,星 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 作者和导师同意网上交流的时间为作者获得学位后: 半年d一年口一年半口两年口 学位论文作者签名:7 司寸久i 国司导师签名:夏扁1 签字日期:仉炒g 。7 仫 签字日期:1 卵? 。7 驴 , 、啦、 , ,牛h 。掣穗飞,争i:,移$!:lj,ji目自 、 ,j 东北大学硕士学位论文摘要 通用查询组件的设计与实现 摘要 随着信息产业的大规模发展,软件开发已经由原来的小作坊式生产逐步转化为大规 模专业化生产。软件产业离不开数据挖掘,而数据提取又是数据挖掘中重要的一环,在 数据挖掘中应用相当广泛。如何快速准确的进行数据提取成为了开发成功的系统的关键 之一。 为了开发稳定的应用系统,同时也为了在系统实现中简化代码,提高效率,抽象出 一个通用的查询服务组件是十分有必要的。通用查询组件采用m v c 设计模式和面向对 象的设计思想,利用j 2 e e 平台下的j a v a 与s t r u t s 技术,充分发挥j a v a 的可移植性和s t r u t s 的框架开发的优点。它封装了数据访问功能和查询功能。该组件主要实现:在数据库中 写入查询定义并通过更改数据库配置就能增加修改删除业务规则;根据基于预先配置好 的查询资源,自动获取h ”限上下文数据作为查询条件;屏蔽数据库差异;查询结果模 型能采用多种表现输出,从而能满足将来自动化生成用户界面的要求。最后应用此通用 查询组件设计并实现了税收分析系统部分查询功能。 在项目中对该组件的引用不但提高开发效率减少冗余代码,而且提高了查询功能的 执行速度,使系统各部分的相互依赖性、耦合性减弱,充分体现出通用查询组件在同类 信息管理系统中的通用性。 关键词:管理信息系统;通用查询组件;r a t i o n a lr o s e ;s t r u t s 框架 i i 、l叶 ,矗、t 东北大学硕士学位论文a b s t e a c t d e s i g n a n d i m p l e m e n t a t i o n o fg e n e r a lq u e r y c o m p o n e n t a b s t r a c t w i t ht h el a r g e - s c a l ed e v e l o p m e n to fi n f o r m a t i o ni n d u s t r y , s o f t w a r ed e v e l o p m e n th a s g r a d u a l l yt r a n s f o r m e df r o ms m a l l - s c a l ep r o d u c t i o ni n t ol a r g e - s c a l es p e c i a l i z e dp r o d u c t i o n s o f t w a r ei n d u s t r yc a l ln o tb es e p a r a t e df r o md a t am i n i n g d a t ae x t r a c t i o ni sa ni m p o r t a n t p a r t o fd a t am i n i n gi na 、) l ,i d er a n g e e x t r a c t i n gd a t af r o ma s y s t e mf a s ta n da c c u r a t e l yi so n eo f t h e k e y st od e v e l o ps o f t w a r er a p i d l y i no r d e rt od e v e l o pas t a b l es y s t e m ,s i m p l i f yt h ea p p l i c a t i o nc o d e ,i m p r o v ee f f i c i e n c y , t h e d e v e l o p m e n to fg e n e r a lq u e r yc o m p o n e n ti sv e r yn e c e s s a r y g e n e r a lq u e r yc o m p o n e n tu s e s m v c d e s i g np a r e r na n do b j e c t - o r i e n t e dd e s i g n , u s e st h ej a v aj 2 e ep l a t f o r mt e c h n o l o g ya n d s t r u t sf l a m e g e n e r a lq u e r yc o m p o n e n tt a k e sf u l l a d v a n t a g eo fj a v 如w h i c hm a k e st h e t r a n s p l a n to fs o t h t c a r ef r o mo n ep l a t f o r mt oa n o t h e re a s i e r g e n e r a lq u e r yc o m p o n e n ta l s o t a k e sa d v a n t a g eo fs t r u t sf r a m e ,w h i c hr e d u c ed e v e l o p m e n tt i m e i te n c a p s u l a t e st h ed a t a a c c e s sf u n c t i o n sa n dq u e r yf u n c t i o n s t h ef u n c t i o n so fg e n e r a lq u e r yc o m p o n e n ta r ea s f o l l o w s :a d d i n go rm o d i f y i n gq u e r yd e f i n i t i o ni nt h ed a t a b a s ew i l lb ea b l et oi n c r e a s e ,m o d i f y o rd e l e t eb u s i n e s sr u l e s a c c o r d i n gt ot h ep r e c o n f i g u r e dq u e r yd e f i n i t i o n ,a p p l i c a t i o n sc a n a u t o m a t i c a l l y o b t a i nh 1 瞪c o n t e x ta n du s et h e ma s q u e r yp a r a m e t e r s g e n e r a lq u e r y c o m p o n e n th i d e sd a t a b a s ed i f f e r e n c e s q u e r yr e s u l tm o d e lc a nu s ev a r i o u sw a y st od i s p l a y r e s u l t s ,s ot h a ti tc a nm e e tt h er e q u i r e m e n t so fg e n e r a t i n gu s e ri n t e r f a c ea u t o m a t i c a l l yi nt h e f u t u r e f i n a l l y , s o m eq u e r yf u n c t i o n so f t a xs y s t e ma l ed e s i g n e da n dr e a l i z e dw i mt h eg e n e r a l q u e r yc o m p o n e n t t h eu s a g eo fg e n e r a lq u e r yc o m p o n e n ti n t h ep r o j e c tw i l ln o to n l yi m p r o v ee f f i c i e n c yo f d e v e l o p m e n t ,r e d u c er e d u n d a n tc o d e ,b u ta l s or e d u c et h ee x e c u t i o nt i m eo fq u e r yf u n c t i o n g e n e r a lq u e r yc o m p o n e n tw e a k e n sd e p e n d e n c ya n dc o u p l i n go fd i f f e r e n tp a r t so ft h es y s t e m i ts h o w st h eu n i v e r s a lo fg e n e r a lq u e r yc o m p o n e n ti ns i m i l a rm a n a g e m e n ti n f o r m a t i o n s y s t e m 、k e yw o r d s :m a n a g e m e n ti n f o r m a t i o ns y s t e m ;g e n e r a lq u e r yc o m p o n e n t ;r a t i o n a lr o s e ; , s t r u t sf r a m e w o r k i i i 吩;。 、 r 和 1 1 2国内外研究现状l 1 1 3通用查询组件的研究目标3 1 1 4通用查询组件的研究意义3 1 2 论文组织结构”3 第二章关键技术5 2 1j 2 e e 技术关于w e b 应用系统开发理论研究与分析5 2 1 1j 2 e e 技术的优势“5 2 1 2j 2 e e 体系结构”6 2 1 3w | e b 应用中的关键技术6 2 2设计模式在w e b 应用中的研究8 2 2 1设计模式的概念8 2 2 2m v c 设计模式8 2 2 3w e b 应用中m v c 模型的优势l l 2 2 4 s t r u t s 框架1 2 2 3相关开发工具1 4 第三章通用查询组件的基本思想与概要设计1 7 3 1通用查询组件概述1 7 3 2需求分析18 3 2 1组件使用范围1 8 3 2 2组件设计目标“l8 3 3通用查询组件概要设计18 3 3 1系统层次模型“1 8 3 3 2通用查询组件的模块划分”2 0 3 3 3通用查询组件的各模块之间的关系”2 1 3 3 4对现有的通用查询组件的分析一2 2 3 3 5核心模块设计思想一2 3 i v 东北大学硕士学位论文目录 3 3 6通用查询组件活动图2 4 3 3 7 通用查询组件场景时序图2 6 第四章通用查询组件的详细设计与实现2 9 4 1通用查询组件详细设计2 9 4 1 1 d e s i g n 时序图2 9 4 1 2详细类图”3 l 4 1 3 数据库设计3 5 4 2通用查询组件实现4 0 4 2 1w e b 层的实现一4 0 4 2 2逻辑层的实现”4 7 4 2 3持久化层的实现4 9 第五章系统测试5 3 5 1数据库配置表配置方案及预期结果5 3 5 2实际测试结果验证5 3 第六章结论5 7 6 1工作总结”5 7 6 2需要解决的问题5 8 参考文献5 9 致谢6 l v 、 j f t ;:参 东北大学硕士学位论文 第一章绪论 第一章绪论 1 1 系统概述 1 1 1 课题背景 随着信息技术的高速发展,互联网对人类活动产生了深刻的影响,无论企业、政府 还是个人,都是如此。于此同时,1 1 r 工业正面临着一场变革一从传统的应用模式向 w e b 服务转变。传统的c s 模式需要专门的客户端软件,这在安装、升级、维护方面都 是代价高昂的。而b s 模式则实现了客户端零维护,只要有浏览器的地方就可以使用, 具有很大的灵活性与扩展性。i n t e r n e t 与生俱来的属性要求其具有开放性、分布性和平 台无关性,在这些方面,s u n 的j a v a 表现尤其突出,符合目前w e b 服务上对开放性、 分布性和平台无关性的要求,并且在安全性、健壮性、组件话方面也逐渐成熟,受到了 市场的广泛认可,成为w e b 开发的一个很好的选择。j 2 e e 是j a v a 2p l a t f o r m ,e n t e r p r i s e e d i t i o n 的缩写,它是由s u n 公司提出的一种分布式企业级应用开发的技术架构【1 1 。经过 实践检验,证明使用j 2 e e 技术,可以很大的提高开发效率,开发出的程序具有很高的 健壮性与扩展性。 m v c ( m o d e l v i e w - c o n t r o l l e r ) 模式是当前流行的设计模式,它是适用于设计交互 式应用的一种设计模式,具有三个层次:模型、视图和控制,每一个层面有其各自的功 能作用 2 1 。m v c 将“业务逻辑与显示逻辑分离 ,很大程度上实现了对程序的解藕,提 高了程序的软件的复用性,简化开发,提高了开发效率,增强了软件的性能和可维护性。 s t r u t s 是基于j a v a 的一种开发技术,是对m v c 的一种实现。s t r u t s 提供了一种w e b 开 发的框架,对应用程序的显示和数据的后端代码进行了抽象。 数据挖掘的一个方向是数据展现。随着各行各业不断成熟,行业内积累了大量的业 务数据,该数据用于业务分析,并根据分析结果采取相应决策。数据展现的作用日益展 现。行业内需要分析的方面很多,开发量也随之增加。通用查询组件的出现在一定程度 上解决了开发量大、维护量大的问题,提高了开发效率,并且使软件便于维护。 1 1 2 国内外研究现状 i n t e m e t 的迅猛发展给w e b 应用提供了前所未有的机遇和挑战。长期以来,大量的 w e b 应用是基于c s ( c l i e n t s e r v e r ) 结构。在2 0 世纪9 0 年代,“客户服务器”两层体 系结构曾经是一种成功的企业应用解决方案,它是基于资源不对等,实现资源共享而提 出的技术【3 1 。服务器进行资源存储和控制,客户端通过网络发出数据资源访问请求,服 务器处理请求,并将处理结果返回给客户端。这样的处理模式存在如下缺点:客户端的 东北大学硕士学位论文第一章绪论 最大连接数量收到服务器最大处理能力的限制,服务器要维护连接,性能相对降低;客 户机要安装客户端软件,一旦业务逻辑改变,需要同时更新服务器和客户端的程序。这 些缺点随着业务的增多而越发明显。于是出现了b s ( b r o w s e r s e r v e r ) 结构。它将资源 和应用程序部署在服务器端,客户端只要通过浏览器就可与服务器端进行交互。一旦业 务逻辑改变,只需要对服务器端进行升级,从而达到了客户端零维护的目的,具有很强 的扩展性。 1 9 9 7 年4 月1 2 日,s u nm i c r o s y s t e m s 公司宣布了一项为企业环境开发j a v a 平台的 创新成果。使用开放式的j a v ac o m m u n i t yp r o c e s s ,s u n 促进了一组标准的j a v a 扩展的 开发,成为e n t e r p r i s ej a v a a p i 。这些应用程序编程接口( a p i ) 为各种各样的中间件的 实现提供了不依赖供应商的编程接1 2 1 。e n t e r p r i s ej a v aa p i 的要点是e n t e r p r i s ej a v a b e a n a p i ,后者为j a v a 应用程序服务器定义了一个服务器端组件模型,以及一个不依赖供应 商的编程接口。j 2 e e 依靠其跨平台性、可伸缩性、可维护性受到了大量企业软件开发 者的青睐,经历了多年的实践证明,j 2 e e 作为企业化信息应用系统的开发平台,具有 越来越高的地位。 在j 2 e e 环境下,m v c ( m o d e l v i e w - c o n t r o l l e r ) 成为目前最常见的设计模式。s t r u t s 是对m v c 模式的一种实现。j a k a r t a - s t r u t s 项目是由a p a c h e 软件基金组织于2 0 0 0 年5 月启动的。经过多年的发展,s t r u t s 已逐步成为一个成熟、稳定的框架,成为m v c 模 式的一个很好的实现,s t r u t s 在j a v aw e b 开发中占有了不可动摇的地位。 目前对于查询,有诸多方案。其中使用最多的是开发者直接编写查询代码,针对每 一个具体业务,编写一套查询代码。这种做法最为直接,但在有大量查询业务的情况下, 需要编写相当多的查询代码,其中有很多重复代码。这样直接导致效率的降低。而且大 量的页面文件、类文件也会导致很多错误。在业务需要有变更的时候,大量的独立的查 询代码将导致维护的困难。而且该方法只能提供固定的业务查询,无法提供灵活的查询, 用户无法根据自己的需要选择查询的内容。 第二种方案,是采用第三方工具,例如b u s i n e s so b j e c t 。这类工具简化了程序编写 时的工作,开发者只需要提供用户可能需要查询的所有字段,具体的查询条件和显示的 查询结果,由用户自己拼装,从而实现灵活的查询,用户可根据需要组合查询。这类方 案的优点是易于维护,功能灵活。缺点是用户使用较复杂,而且需要相应的服务器,有 时还需要客户端,这些都需要资金支持。 第三种方案,是采用通用查询组件。目前的通用查询组件的常规做法,是让用户自 行选择需要的表和字段。这种做法,对于常用的业务查询,没有提供相对固定的查询模 版,而是给用户提供了所有的表,这样对于一般用户来说,实际上是增加了很大的操作 难度。如果让用户只看到自己关心的业务的相关信息,不需要用户负责表的选择,那么 东北大学硕士学位论文第一章绪论 将大大提高可操作性。另外,相当多的查询涉及到多表连接问题( 包括左连接、右连接、 全连接等) ,某些方案并没给出较好的多表连接解决方案,有些解决方案即使给出了解 气决方案,但对于更加复杂的嵌套查询,甚至是多层嵌套查询,并无解决方案。而这些都 ,一 是在实际工程中不可避免的。如果不能实现这些,那么所谓的通用查询组件将有很大的 帚 局限性。 1 1 3 通用查询组件的研究目标 在数据库中写入查询定义并通过更改数据库配置就能增加修改删除业务规则;根据 基于预先配置好的查询资源,自动获取h r r p 上下文数据作为查询条件:屏蔽数据库差 异;查询结果模型能采用多种表现输出,从而能满足将来自动化生成用户界面的要求。 1 1 4 通用查询组件的研究意义 任何一个信息管理系统的开发、设计,都有大量的对数据的查询要求。查询是管理 信息系统最常用、最重要的功能之一,其设计质量的好坏不仅直接影响着用户的使用, 而且影响着系统的可维护性和可扩展性。如何设计一个让用户尽可能方便、灵活地指定 查询条件,适应多种数据源,使查询更加有效和迅速,是查询功能必须要考虑的问题。 在传统的查询设计方法中,通常为每一种数据都设计一个查询界面,罗列出用户可能用 到的每一个查询条件,然后编写代码进行控制,最终得到查询结果。这种方式虽然在一 定程度上能够满足用户的查询要求,但需要编写大量的代码,不但繁杂,而且容易出错。 通用查询组件旨在简化应用程序中查询部分的程序编写。通用查询组件将查询的公 共部分提取出来,形成一个通用模块。对于具体的业务逻辑,通用查询组件通过读取数 据库中的数据配置,自动生成查询条件,显示查询结果。如此一来,查询部分成为了独 立于应用程序的子模块,实现了与应用程序的解藕,提高了查询模块的通用性,实现了 程序的可重用性。 1 2 论文组织结构 本文的主要任务是研究通用查询组件,并提出通用查询组件的一种实现。 全文的组织安排如下: 第一章,介绍了通用查询组件的课题背景、国内外研究现状,从而引出了本文的研 _究课题,并阐述了该课题的目的和意义。 第二章,首先分析了w e b 应用系统开发的现状和发展。在基于j 2 e e 构架开发w e b , 应用程序的技术的基础上,对设计模式的基本理论进行了探讨,分析了如何根据实际情 况选择合适的设计模式来提高开发效率,研究了m v c 模式的基本原理。对s t r u t s 进行 了分析研究,并使用s t r u t s 实现了m v c 模式。 东北大学硕士学位论文第一章绪论 第三章,研究目前现有的通用查询组件的典型实现,对各个实现中的优缺点进行分 析,提出一种新的通用查询组件的实现方式,并详细介绍了此种实现方式的基本思想, 并从活动图、场景时序图等方面进行了概要设计。 第四章,对提出的通用查询组件,从d e s i g n 时序图、详细类图、数据库模型方面 进行了详细设计,并对系统实现进行了描述。对具体应用中采用通用查询组件进行实现 查询功能进行了描述,并通过对比是否使用通用查询组件,在开发效率、可复用性、稳 定性等方面,对通用查询组件进行了评价。 第五章,对通用查询组件进行了测试,针对一个特定的业务查询,使用通用查询组 件进行实现,并将测试结果与预期目标进行了比较。 第六章,主要是对该课题研究的总结和展望,指出了该通用查询组件研究过程中的 难点,并提出了需要改进的地方和对未来的展望。 东北大学硕士学位论文 第二章关键技术 第二章关键技术 通用查询组件面向于目前广泛使用的管理信息系统。本章主要介绍了通用查询组件 使用到的关键技术,包括目前广泛使用的j 2 e e 体系结构,m v c 设计模式,s t r u t s 框架 技术等诸多w e b 应用的核心技术。 2 1j 2 e e 技术关于w e b 应用系统开发理论研究与分析 2 1 1j 2 e e 技术的优势 j 2 e e 全称j a v a 2p l a t f o r me n t e r p r i s ee d i t i o n ,是s u n 公司定义的开发分布式企业应 用系统的规范和平台,同时也是一种利用j a v a 2 平台简化企业解决方案的开发、部署和 管理相关复杂问题的体系结构。j a v a 语言从诞生之日起,被广泛接纳,经历重大的发展。 越来越多的技术都逐渐成为j a v a 平台的一部分,s u n 为了适应不同的需要也开发出了 很多全新的a p i 和标准。最终,s u n 公司联合多家业界巨头,在开放的j a v a 社区组织 名义下,把所有与企业开发相关的标准、a p i 整合起来,构成了j 2 e e 平台。 s u nj 2 e e 是一个规范和标准,它利用j a v a 2 平台简化诸多与企业解决方案的开发、 部署和管理相关的复杂问题的体系结构。任何一家公司都可以依据这些规范和标准来开 发自己的产品。s u n 公司的目的就是让多个厂家共同参与这个规范的制定,这样,只要 以这样的规范来开发自己的产品就能给用户带来更大的开放性和可移植性。由于j 2 e e 建立在j a v a 2 平台标准版( j 2 s e ) 的基础上,所以具备了j 2 s e 的所有优点和功能。包 括“编写一次,到处可用的可移植性、通过j d b c 访问数据库、同原有企业资源进行 交互的c o r b a 技术,以及一个经过验证的安全模型【4 1 。在这些基础上,j 2 髓又增加了 对e 腰( 企业级j a v a 组件) ,j a v as e r v l e t s ,j a v a 服务器页面( j s p s ) 和x m l 技术的支 持i s ,最大程度地分离状态和表示,让用户界面和业务逻辑分离开来1 6 1 。j 2 e e 体系结构 提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性 的应用的需求。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性, 同时提供对现有应用程序集成有力支持,完全支持e j b ,有良好的向导支持打包和部署 应用,添加目录支持,增强了安全机制,提高了系统性能。 j 2 e e 通过j a v a 虚拟机来消除平台差别,跨平台是j 2 e e 的一大卖点。实际上,如果 要搭建跨w i n d o w s ,u n i x 等多个操作系统的企业应用平台,j 2 e e 几乎是唯一的选择。 “选择n e t 平台就意味着选择w i n d o w s ”,这句话至少在可预见的将来仍然是一个基本 事实。n e t 的可移植性主要体现在支持多种开发语言上,v b n e t ,c 舟,c + + ,j s e r i p t 等都可以被编译成相同的中间代码,使用相同的运行库执行【3 】。 东北大学硕士学位论文第二章关键技术 2 1 2j 2 e e 体系结构 j 2 e e 提供了一种基于组件的设计、开发、集成以及部署企业应用系统的方法。j 2 e e 平台提供了多层分布式应用系统模型、重用组件能力、统一的安全模型以及灵活的事务 控制。基于组件的j 2 e e 应用系统具有平台独立性,不受任何软件产品和任何软件厂家 a p i 的约束。j 2 e e 应用逻辑按功能划分为组件,各个应用组件按其所在的层分布在不 同的机器上。j 2 e e 的设计初衷正是为了解决两层模型c s ( c l i e n t s e r v e r ) 的弊端,在 c s 模型中,客户端负责了过多的任务,过于臃肿。在这种模型中,第一次部署的时候 比较容易,但难于升级或维护,可扩展性差。该模型使得重用业务逻辑和表示逻辑非常 困难。而j 2 e e 的多层应用模型将应用切分为独立的许多层,每个层能提供一个独立的 服务瞵j 。图2 1 是j 2 e e 典型的四层结构。 客户层 西层 匿国 业务层 回嘲 客户端机器 j 2 e e 服务器 数据库服务器 图2 1j 2 e e 典型的四层结构图 f i g 2 1t h ed i a g r a mo fj 2 e ef o u rl a y e rs t r u c t u r e s ( 1 ) 运行在客户端机器上的客户层。 ( 2 ) 运行在j 2 e e 服务器上的w e b 层。 ( 3 ) 运行在j 2 e e 服务器上的业务逻辑层。 ( 4 ) 运行在e i s 服务器上的企业信息系统层。 2 1 3w e b 应用中的关键技术 w e b 应用建立在b s 结构基础上,使用到了大量的页面处理技术、w e b 容器相关技 术,页面与后台服务器交互技术。下面对于w e b 应用中的关键技术加以介绍。 ( 1 ) s e r v l e t s e r v l e t 是用j a v a 编写的s e r v e r 端程序,它与协议和平台无关。s e r v l e t 不是直接由 用户激活的应用程序。使用s e r v l e t 的通信过程是一个典型的请求一应答流程,具体流 东北大学硕士学位论文 第二章关键技术 程如下:首先浏览器连接到w e b 服务器,然后w e b 服务器将客户请求传递给w e b 容器, 最好w e b 容器与包含s e r v l e t 在内的w e b 应用程序进行交互;当w e b 容器调用s e r v l e t 时,w e b 容器把请求与s e r v l e t 进行交换,然后s e r v l e t 分析请求内容并产生应答,最后 w e b 容器把应答回传给服务器 9 1 。 ( 2 ) h r , t m s 测试管理系统采用b s 结构,客户端采用h t m l 、j s p 和j a v a s c r i p t 开发。h t m l ( h y p e rt e x tm a r k u pl a n g u a g e 超文本标记语言) 是一种用来制作超文本文档的简单标 记语言。用h t m l 编写的超文本文档称为h t m l 文档,它能独立于各种操作系统平台 ( 如u n i x ,w i n d o w s 等) o o i 。 ( 3 ) j s p j s p 是s u n 在1 9 9 9 年发布的企业版j a v a 2 平台( j 2 e e ) 的重要组成部分,是一 种基于j a v a 环境的全新的服务器端的动态网页技术,为企业级w e b 站点动态网页开发 人员提供了一种非常简单却相当有效的工具【u l 。 ; j s p 页面以扩展名为j s p 的纯文本文件的形式存于服务器上,当服务器接收到客户 端对某个j s p 页面的请求时,如果这是对该页面创建或修改后的第一次请求,那么j s p 引擎就把该j s p 页面内容转换成s e r v l e t 源码。然后将其编译成s e r v l e t 字节代码并执行。 最后将s e r v l e 的执行结果返回给浏览器。j s p 页面被编译成s e r v l e t 之后,其执行代码以 独立线程的方式一直存在于服务器的内存中。以后对该j s p 页面提出请求时,不需要重 新编译。直到该页面被修改或w e b 应用程序重新启动。j a v as e r v l e t 由于在服务器端运 行,且不包括会占用大量系统资源的g u i 因此运行的速度要比j a v a a p p l e t 和j a v a 独立 应用程序快。同时还可通过预编j s p 页面从而加快响应客户端请求的速度u 2 1 。 ( 4 ) e j b e j b 定义了一组可重用的组件:e n t e r p r i s eb e a n s 。开发人员可以利用这些组件,像 搭积木一样建立分布式应用。在装配组件时,所有的e n t e r p r i s eb e a n s 都需要配置到e j b 服务器( 一般的w e b l o g i e ,w e b s p h e r e 等j 2 e e 应用服务器都是e j b 服务器) 中。e j b 服务器作为容器和底层平台的桥梁管理着e j b 容器,并向该容器提供访问系统服务的能 力。所有的e j b 实例都运行在e j b 容器中。e j b 容器提供了系统级的服务,控制了e j b 的生命周期【1 3 】。e j b 容器为它的开发人员代管了诸如安全性、远程连接、生命周期管 理及事务管理等技术环节,简化了商业逻辑的开发【l 4 。 东北大学硕士学位论文 第二章关键技术 2 2 设计模式在w e b 应用中的研究 2 2 1 设计模式的概念 模式的概念最早由建筑大师c h r i s t o p h e r a l e x a n d e r 提出,他说:“每个模式都描述了 一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种 方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。一 模式的定义:模式是一种问题的解决思路,它己经适用于一个实践环境,并且可以 适用于其他环境【1 5 】。 在程序设计中,设计模式通常是对一类软件设计问题的可重用的解决方案,使得人 们可以以更加简单的方法利用成功的软件设计经验,从而达到优化软件设计的目的。 设计模式的四个要素: ( 1 ) p a t t e mn 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 ( 效果) 描述了模式使用后的的效果以及使用此模式所必须考虑到的利弊。因为复用是面向 对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响。 2 2 2m v c 设计模式 m v c ( m o d e l v i e w - c o n t r o l l e r ) 模式是一种目前广泛流行的适合w e b 应用的软件设 计模式【1 6 1 ,源于s m a l l t a l k 8 0 语言,早期它主要用于设计用户界面。由于使用该模式设 计的界面具有多窗口、交互式等特点,在2 0 世纪8 0 年代初期被许多系统采纳,如 m a c i n t o s h 和w i n d o w s 。随着软件设计模式的出现和完善,以及面向对象技术的成熟, m v c 设计模式逐渐成为一种较完善的面向对象设计模式,它所应用的范围也不在局限 于界面设计。 响应读取数据 图2 2j s p 作为自主独立的模块图 f i g 2 2j s pp e r f o r m sa sai n d e p e n d e n tm o d e ld i a g r a m j s p 文件是一个独立的、自主完成所有任务的模块,这给w e b 开发带来一系列问题 f 1 8 j : ( 1 ) h t m l 和j a v a 强耦合在一起:j s p 文件的编写者必须既是网页设计者,又是j a v a 开发者。其结果通常要么是很糟的j a v a 代码,要么是难看的网页,有时甚至j a v a 代码 和网页都很糟。 ( 2 ) j a v a 和j a v a s e r i p t 的不足:随着网页逐渐变大,很容易想到实现一些j a v a s e r i p t 。 当网页中出现j a v a s e r i p t 时,这种脚本就可能与j a v a 代码产生混淆。 ( 3 ) 内嵌的流程逻辑:要理解应用程序的整个流程,必须浏览所有网页。 ( 4 ) 调试困难:除了很糟的外观之外,h t m l 标记、j a v a 代码和j a v a s e r i p t 代码都 集中在一个网页中还使调试变得相当困难。 ( 5 ) 强耦合:更改业务逻辑或数据可能牵涉相关的每个网页。 随着j 2 e e 的成熟,m v c 设计模式正在成为在j 2 e e 平台上推荐的一种设计模型【1 9 1 。 m v c 设计模式将整个项目分解为模型( m o d e l ) 、视图( v i e w ) 和控制( c o n t r 0 1 ) 三部分。其中“模型”是完成任务的代码;“视图 即与用户交互的界面;“控制器则 控制着模型和视图之间的交互过程。 m v c 设计模式所使用的是j s pm o d e l 2 模型,三者之间的关系如图2 3 所示。 东北大学硕士学位论文第二章关键技术 w e b 服务器 应用服务器和数据库 图2 3j s p m o d e l 2 f i g 2 3j s pm o d e l 2 m v c 模式的关键是实现了表示、控制和数据的分离【2 0 】。图2 3 显示了m v c 设计模 式的三个组成部分:模型( m o d e l ) 、视图( v i e w ) 和控制器( c o n t r o l l e r ) 。模型( m o d e l ) 部分负责抽象系统应用的功能;封装系统的状态;提供使用系统功能的方法和途径;管 理数据的存储和一致性。模型负责业务流程和状态的处理,以及业务规则的制定。业务 规则对于其他层来说是透明的。模型接收其他层发出的请求,加以处理,并将结果返回。 模型层是数据中立的,这样一个模型可以为多个视图提供数据。正因如此,减少了代码 的重复,模型层的可复用性大大提高。模型层是m v c 的核心部分。 视图( v i e w ) 代表用户交互界面,对于w e b 应用来说,一般指h t m l 界面。随着 应用复杂性和规模性的扩大,界面的处理变得相当有挑战性。将用户交互界面提取出来 作为单独一层的意义也越来越大。m v c 的视图层只负责视图数据的采集和处理,而不 包括业务逻辑的处理。 控制器( c o n t r o l l e r ) 负责向业务处理模块转发用户的请求。它只是一个分发器,根 据不同的请求选择不同的模型和视图来处理。控制器并不进行任何的业务数据处理。因 此,一个模型可能对应多个视图,一个视图可能对应多个模型圈。 为了使开发的w e b 应用具有良好的可扩展性和易于分工,我们必须要做到将业 务逻辑与用户界面分离【2 3 1 。m v c 设计模式实现了应用的业务逻辑封装,规范了基于 j s p s e r v l e t 的w e b 应用开发。 在m v c 模式中,三个层各司其职,一旦哪一层的需求发生了变化,只需要更改相 应的层中的代码而不会影响到其它层中的代码1 2 4 】。在m v c 模式中,将系统按层分割, -_-_-_-_-_-一 东北大学硕士学位论文 第二章关键技术 这样能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的j s p ,熟悉业 务的开发人员可开发业务层,而其它开发人员则可开发控制层。分层后更有利于组件的 复用。如控制层可独立成一个通用的组件,视图层也可做成通用的操作界面 2 5 j 。通用查 询组件正是建立在m v c 的这种思想上的一种通用组件。 2 2 3w e b 应用中m v c 模型的优势 m v c 设计模式被证明是w e b 应用有效的解决方案之一,它分离了视图层、控制层 和模型层,为应用系统进行了功能上的解耦合,简化了程序的设计,降低了维护成本, 提高了程序的复用性,改善了程序的稳定性。m v c 设计模式尤其适用于可扩展、多用 户、可维护、高交互性的w e b 应用系统。它很好的表达了用户与系统之间的交互以及 系统的程序架构。m v c 的如下优点有助于快速高效的开发w e b 应用系统。 m v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚诉讼中夫妻共同债务承担及财产分割起诉协议
- 码头场地租赁合同附带集装箱装卸作业及仓储服务
- 线上线下教育合作合同补充协议及教学资源共享协议
- 码头经营场地租赁与船舶租赁及管理合同
- 离婚协议解除与财产分割法律咨询合同
- 房地产开发项目销售合同签订流程及购房者权益保障
- 园林现场施工课件
- 保密新标准培训
- 第05章 生物化学诊断试剂的研制
- 2025年中医外科拔罐和针灸操作技能考核卷答案及解析
- -HTML5移动前端开发基础与实战(第2版)(微课版)-PPT 模块1
- 尺寸链的计算表格
- 内河、玻璃钢、海洋木质及小型钢质渔业船舶法定检验技术规则
- 四川省2019年 (2017级)普通高中学业水平考试通用技术试卷
- (绿化)质量评估报告
- GB/T 2411-2008塑料和硬橡胶使用硬度计测定压痕硬度(邵氏硬度)
- GB/T 19227-2008煤中氮的测定方法
- GA/T 1217-2015光纤振动入侵探测器技术要求
- 企业员工出差登记表Excel模板
- 汽车认购合同
- 下肢深静脉血栓及肺栓塞
评论
0/150
提交评论