(计算机应用技术专业论文)集成wsh架构技术的web应用研究与实现.pdf_第1页
(计算机应用技术专业论文)集成wsh架构技术的web应用研究与实现.pdf_第2页
(计算机应用技术专业论文)集成wsh架构技术的web应用研究与实现.pdf_第3页
(计算机应用技术专业论文)集成wsh架构技术的web应用研究与实现.pdf_第4页
(计算机应用技术专业论文)集成wsh架构技术的web应用研究与实现.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

西南交通大学硕士研究生学位论文第l 页 摘要 随着互联网技术的飞速发展,基于b s 模式的w e b 应用系统受到越来越广 泛的关注。面对以往普遍存在的程序可重用度低、维护任务繁重、扩展性差等 问题,如何快速构建稳定、高效、可扩展性和维护性强的应用系统给众多开发 人员提出了挑战。 诚然,j 2 e e 平台为企业级应用定制了解决方案,而实现该方案的w e b 技术 和框架琳琅满目、各具特色,如何针对具体应用搭建各层框架以及选用最合理 的技术是设计开发的关键。在w e b 开发领域,m v c 模式无疑是最吸引人的, 它很好的将界面表示、业务逻辑和企业数据模型相隔离,使各应用层以松散耦 合的方式彼此作用。w e b w o r k 是一个致力于组件化和代码重用的拉出式m v c 模式实现框架,以其灵活、强大的功能为w e b 应用的构建减轻了负担。s p r i n g 是一种轻量级的容器,区别于e j b 的强侵入式,s p r i n g 的依赖注入动态的使系 统各组件间达到松散耦合并且能和其他框架良好的兼容。h i b e r n a t e 是一个开源 的持久层框架技术,全面减轻了维护数据的复杂度,使系统具有良好的性能和 移植性。 本文以作者参与的四川省乐由大佛电子商务平台开发项目为背景,在对系 统进行全面需求分析的基础上,分别对w e b 层、业务逻辑层、数据持久层进行 了详细设计。针对项目特点,在对比了多种框架技术的优势后,整合w e b w o r k 、 s 研n g 和h i b e r n a t e 三种框架技术,提出了一个具有通用模式的j 2 e e 架构: w e b w o r k 实现m v c 模式完成w e b 表示层功能,其业务逻辑交由s p r i n g 来管理; s p r i n g 负责管理表现层控制器与数据访问对象问关系,完成业务逻辑层功能; h i b e r n a t e 负责数据的持久化工作。实现过程中融合了大量兼容技术如a j a x 、 a c e g i 、f r e e m a r k e r ,并设计开发了一系列可重用模板,单元测试和集成测试表 明,系统满足设计需求。 综上所述,文章在对各种主流框架技术深入分析的基础上,提出了集成 w e b w o r k 、s p r i r i g 、h i b e r n a t e 三种框架技术的j 2 e e 架构,不但能够有效地解决 传统w e b 应用开发中存在的问题,而且采用分层及模块化设计使系统具有很高 的可维护性、扩展性、移植性和组件的复用性。 关键词:j 2 e e ;架构;框架;设计模式;软件重用 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n t e r n e t ,t h ew e ba p p l i c a t i o ns y s t e mb a s e do n b r o w s e r s e r v e ri sp a i dw i d e r l ya t t e n t i o n f a c e dt op r o b l e m sw h i c ha r eu b i q u i t o u s s u c ha sl o wr e u s a b i l i t y , e x p a n s i b i l i t ya n dh e a v ym a i n t e n a n c ew o r k , h o wt ob u i l da n a p p l i c a t i o ns y s t e mw h i c hi ss t a b l e ,e f f i c i e n t , h i g l le 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 y c h a l l e n g em a n yd e v e l o p e r s i n d a e d j 2 e ep l a t f o r me s t a b l i s h e ds o l u t i o nf o re n t e r p r i s ea p p l i c a t i o n ,b u tt h e r e a r ean u m b e ro fw e bt e c h n o l o g i e sa n df r a m e w o r k si m p l e m e n tt h a ts c h e m a t h ek e y l i e si nh o wt oa s s e m b l ee x i s t i n gf i - a r n e w o r ka n ds e l e c t st h em o s tr e a s o n a b l e t e e h n o l o g yf o rt h es p e c i a la p p l i c a t i o n i nw e bd o m a i n ,t h e r ei sn od o u b tt h a tm v c p a t t e r ni st h em o s ta t t r a c t i v e ,w h i c hs e p a r a t e t h ew h o l ea p p l i c a t i o ni n t ou s e r i n t e r f a c ep r e s e n t a t i o n ,b u s i n e s sl o g i ca n de n t e r p r i s ed a t am o d e la n dm a k ee a c hl a y e r i n t e r a c ti nl o o s ec o u p l i n gw a y w e b w o r ki sap u l l - o u tf r a m e w o r ko fi m p l e m e n t i n g m v cp a t t e ma n ds t r i v e sf o rr e u s i n gm o d u l ea n dc o d e ,i tr e l i e v e sb l l r d e nf o r c o n s t r u c t i n gw e ba p p l i c a t i o nb yi t sf l e x i b l ea n dp o w e r f u lf u n c t i o n d i f f e r e n t i a t i n g s t r o n gi n v a s i o no fe j b ,s p r i n gw h i c hi s al i g h t w e i g h tc o n t a i n e ri sd e s i g n e dw i t h d e p e n d e n c yi n j e c t i o na n dc a nm a k ec o m p o n e n tl o o s ec o u p l i n gd y n a m i c a l l ya n d c o m p a t i b l e w i t ho t h e rf r a m e w o r k h i b e r n a t ei sa n o p e n - s o u r c ep e r s i s t e n c e f r a m e w o r k , w h i c he n t i r e l yr e d u c e st h ec o m p l e x i t yo fm a i n t a i n i n gd a t aa n dm a k e s y s t e mh a v eh i g h e rp e r f o r m a n c ea n dp o r t a b l e t h i sp a p e rt a k e st h ep r o j e e to fs i c h a np r o v i n c el e s h a ng i a n tb u d d h ae b sa s a ne x a m p l e ,i nw h i c ht h ea u t h o rh a sb e e ni n v o l v e d t od e t a i l e dd e s i g nf o re a c hl a y e r s u c ha sw e bt i e r , b u s i n e s sl o g i ct i e ra n dd a t ap e r s i s t e n c et i e rb a s e do nr e q u i r e m e n t a n a l y s i sc o m p l e t e l y a sf o rt h ec h a r a c t e r i s t i co fp r o j e c t ,a f t e rc o m p a r e da d v a n t a g e s o fa l ls o r t so ff r a m e w o r kt e c h n o l o g i e s t h ea u t h o ri n t e g r a t e dw i t hw e b w o r k ,s p r i n g a n dh i b e r n a t ea n dp u tf o r w a r dag e n e r a lm o d e lo fj 2 e ea r c h i t e c t u r e ,w h a ti st h a t w e b w o r kw h i c hi m p l e m e n t e dm v c p a t t e r np l a yt h er o l eo fw e bp r e s e n t a t i o nt i e r a n dh a n do v e ri t sb u s i n e s sl o g i ct os p r i n g ,m a n a g eo b j e c t s r e l a t i o no fb e t w e e n c o n t r o l l e ra n dd a t aa c c e s so b j e c tt h r o u g hs p r i n ga n dm a k ed a t ap e r s i s t e n c eb y h i b e r n a t e i nt h ep r o c e s so fc a r r y i n go u t ,t h ea r c h i t e c t u r eu t i l i z e sm a n yc o m p a t i b l e t e c h n o l o g i e ss u c ha sa j a x ,a c e # a n df r e e m a r k e r , a n dd e v e l o p sa s e r i e so fr e u s a b l e t e m p l a t e s a f t e ru n i tt e s ta n di n t e g r a lt e s t ,t h es y s t e mi sb a s i c a l l ys a t i s f i e d a l l 西南交通大学硕士研究生学位论文第1 i i 页 r e q u i r e m e n t s i nc o n c l u s i o n ,t h i st h e s i sm a d ed i dd e e pa n a l y s i so fm a n yp o p u l a rf r a m e w o r k s a n do f f e raj 2 e ea r c h i t e c t u r eo fi n t e g r a t i n gw e b w o r k ,s p r i n ga n dh i b e r n a t e ,w h i c h n o to n l ym a k eu pf o rt r a d i t i o n a ls h o r t a g e si nw e bd e s i g nb u ta l s oe n h a n c et h e s y s t e m sm 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 , c o m p a t i b i l i t y a n dr e u s a b i l i t yt h r o u g h a d o p t i n gd e l a m i n a t i o na n dm o d u l a r i z a t i o n k e y w o r d :j 2 e e ,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 r n ,s o t t w a r er e u s a b i l i t y 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 1 课题研究背景及意义 互联网这个家喻户晓的名字己经完全融入我们的生活,随着网络技术 的不断发展,网络对人们的日常生活,社会的经济、政治等都产生了重大影响。 网络影响的广度表现为接触网络群体形形色色,以个体、家庭、企事业为单位。 从网络影响深度来看,网络对人们的语言、价值观、行为方式、文化等深层次 影响也在不断增强。同时互联网构造了无限的信息资源,网络信息管理、全球 信息共享,永久信息存储,信息数据挖掘等等,它的普遍使用已经从根本上改 变了人们的生活方式和工作方式,也改变了企业的经营方式和服务方式。 i n t e m e t 的发展惠及于社会生活的各个领域,网络安全技术的快速发展和成 熟,商业领域的销售、交易、网络等各个领域都正在发生着空前的革命性的变 化,越来越多的企业和商家都想借助于i n t e m e t 的无国界、无时间、无地域限制 的便利环境来经营拓展业务。电子商务这一新型商务模式已得到世界各国的普 遍关注,它不仅仅是i n t e m e t 在商务领域的应用,更是一种新型的商务模式,它 的推广彻底改变了传统的旧的商务模式,引发一场新经济革命。所谓电子商务 ( e l e c t r o n i cc o m m e r c e ) 是利用计算机技术、网络技术和远程通信技术,实现整个 商务过程中的电子化、数字化和网络化。它是9 0 年代初在欧美兴起的一种全新 商业交易模式,从售前服务至0 售后服务的相关各个环节全部或部分实现电子化、 网络化、自动化及高效化。从客户角度说,电子商务给人们的生活带来了极大 的便利,人们可以足不出户的浏览所有商品,选择、购买、支付完全在网上完 成。 电子商务在发达国家的发展空前繁荣,通过互联网进行交易已成为商业发 展的必然趋势。基于电子商务而推出的种种解决方案,如商品交易系统方案、 金融电子化方案等,己形成了多种新型相关产业,给信息技术带来了新的机遇。 在我国,电子商务始于1 9 9 7 年。中国商品订货系统( c g o s ) 、中国商品交易中 心( c c e c ) 、虚拟“广交会”等大型电子商务项目在1 9 9 7 年相继推出,拉开了 中国电子商务的序幕。在可以想象的未来,我国的电子商务的前景和市场需求 相当广阔。基于电子商务的重大意义,其应用开发也就显得尤为重要。因此, 如何进行电子商务的应用开发,如何方便、快捷地构造出企业级电子商务应用 西南交通大学硕士研究生学位论文第2 页 系统己成为一个目前急需解决的课题。 最近几年,随着网络技术的迅速发展和各种平台技术的广泛采用,基于w e b 技术、尤其是多层w e b 技术开发电子商务系统越来越成熟,并逐步为大众所接 受。基于j 2 e e 平台的应用由于其良好的跨平台性,受到众多开发人员的青睐。 与此同时,电子商务的发展对传统的w e b 技术提出了强有力的挑战。由于电子 商务信息处理的内部逻辑复杂,安全性要求苛刻,商务模式发展变化快,开发 周期越来越短,这就要求w e b 技术提供足够的复杂度和灵活性以适应电子商务 的需求。 要满足包括电子商务系统在内的w e b 应用系统的要求,现有的技术参差不 齐。w e b 技术从最初的发布静态信息,到如今可以实现动态的交互功能,的确 走了一段很长的路。在专业技术人员的共同努力下,w e b 应用开发先后出现了 c g i 、p h p 及j s p 技术等,这些技术的产生大大减轻了w e b 编程的难度。但是 它们有一个共同的弱点,显示结构和业务逻辑混杂。这就意味着,业务模型的 独立性和模型的重用很难得到体现,在各开发团队之间相互依赖,很难独立、 并行开发项目,经常是每修改一处,就要影响到其他团队的正常工作,牵一发 而动全身,大大限制了开发人员的灵活性和开发进度,并延长了开发周期。此 外代码的可读性、可维护性和可扩展性都非常差,不利于后续的开发和维护工 作,很难满足用户的变化性需求。 综上所述,在现有的w e b 开发技术中,普遍存在着程序可重用程度低、维 护工作繁琐、应变能力弱等不足。而且,目前w e b 应用的需求越来越复杂,开 发周期越来越紧迫,同时对系统的稳定性、扩展性和可维护性要求越来越高, 因此如何将混杂的模式进行合理的分层以及各层的框架搭建和技术选择就变得 尤为重要。 1 2 国内外文献综述 w e b 应用的广泛性推动了软件技术的发展,同样软件技术发展促进w e b 应 用更加广泛。今天的软件,规模不断扩大、复杂度日渐升级、开发人员面临的 问题越来越多、解决方案也百花齐放。即使是利用先进的j 2 e e 软件平台,在多 层w e b 体系结构的设计中,同样面临程序重用度低,维护性、兼容性和扩展性 差等不足。w e b 应用软件需要面对异构的网络环境、多样化的用户需求、灵活 的业务模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题。因 此,如何设计应用软件僮纷杂的应用需求和多样化的客观环境能够彼此尽量少 西南交通大学硕士研究生学位论文第3 页 的受到对方的干扰和牵制,以及我们曾经的成功案例能否再次使用? 分层结构 和组件复用给众多开发人员提供了选择。分层结构让系统的功能更加明确,减 少了各层次之间的关联和依赖,让开发人员可以同步工作而尽量少的受到其他 人的影响,甚至可以让不懂程序代码的人同样参与程序开发。组件复用是在分 层的基础上,由于层间的耦合性低,独立性强,对于以往成功的案例和功能重 复的组件直接使用,极大的提高了软件的开发效率、缩短了开发周期,而且在 成熟组件的基础上开发,使软件产品的稳定性、兼容性、扩展性都得到了提高。 因此,人们越来越意识到软件重用技术的重要性,设计模式和框架技术应运而 生。开源社区的发展壮大,开源软件、框架技术更是层出不穷。 设计模式和框架技术在整个系统开发中发挥了重要的作用,但从更广泛的 角度说,它们只是在更小的颗粒度上发挥功用。如何组织各个层次、如何合理 选择使用模式和框架技术又将开发人员的关注点提高到整个系统层面上来。架 构技术为这一问题提供了解决方案。架构是软件系统从整体到部分的最高层次 的划分,一般由多个不同领域的框架组成。一个成功的软件需要有一个成功的 架构,它将各个框架技术有机的组织起来,相互关联但又不失其独立性。软件 架构的建立是一个复杂而又持续改进的过程,开发人员不可能对每个项目做不 同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案。 如何在众多的框架中选择建立适合企业应用的架构,并且怎样让各个应用 层无缝连接? 如何整合框架以便让各个层以一种松散耦合的方式彼此作用而不 用管底层的技术细节? 这给软件人员提出了挑战。 1 3 课题的来源及主要研究内容 1 3 1 课题来源 北京迈普世纪科技有限公司成都分公司四川省乐山大佛电子商务平台项目 1 3 2 本论文主要内容和结构 本论文在分析了现有框架技术的基础上,对w e b w o r k 、s p r i n g 和h i b e r n a t e 框架进行整合,使其形成一个具有一定集成度和通用性的软件开发架构。通过 对乐山大佛电子商务平台项目的实施,验证w s h ( 本文中w s h 为w e b w o r k , s p r i n g ,h i b e r n a t e 三种框架技术的简称) 框架满足项目设计要求,并结合项目实 践中的具体问题,提出思路及解决方案。 西南交通大学硕士研究生学位论文 第4 页 第1 章绪论 本章主要介绍了课题的研究背景、意义和主要内容,并简要介绍了软件框 架技术和目前w e b 应用中所面临的主要问题。 第2 章j 2 e e 框架和m v c 模式 本章对j 2 e e 平台框架和m v c 模式进行研究。对目前较为流行的几种m v c 实现框架进行了分析对比,确定以w e b w o r k 作为优选方案。 第3 章w s h 应用框架 本章对w e b w o r k 、s p r i n g 和h i b e r n a t e 框架进行深入分析,提出了三种框 架技术整合的优越性。 第4 章基于w s t t 技术的w e b 架构设计 本章提出了集成w e b w o r k ,s p r i n g 和h i b e r n a t e 的架构设计方案,定性的分 析了三种框架技术在j 2 e e 框架中的位置。重点讨论三种框架技术的整合,对实 现技术做了一定的归纳分析,为w e b 应用实现提供选择性参考。 第5 章乐山大佛电子商务平台分析与设计 本章主要以四川省乐山大佛电子商务平台项目为例,通过对该项目详细的 需求分析,提炼出了系统的结构模型以及各模型之问的关系,确定整个系统采 用上述w s h 体系结构进行分层及模块化设计。 第6 章w s h 架构在电子商务系统中的实现 本章应用w s h 架构对乐山大佛电子商务平台的各层的典型功能进行实现, 提炼出可重用组件,对实现架构的安全性进行探讨。最后结合项目开发中遇到 的实际问题和解决方法,对w s h 集成架构的特点进行了分析和归纳,力求使其 形成一个具有一定集成度和通用性的软件开发架构。 最后概括总结了作者在应用该架构进行项目实施中的体会以及不足,并提 出今后需要进一步研究和发展的方向。 西南交通大学硕士研究生学位论文第5 页 第2 章j 2 e e 框架和m v c 模式 2 1j 2 e e 架构 j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 是建立在j a v a2 平台上的企业级应用的解 决方案。目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的m i c r o 版( j 2 m e ) 、适用于桌面系统的标准版( j 2 s e ) 、适用于创建服务器应用程序 和服务的企业版( j 2 e e ) 。j 2 e e 技术的基础是核心j a v a2 的标准版,j 2 e e 不 仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存 取数据库的j d b ca p i 、c o r b a 技术以及能够在i n t e r n e t 应用中保护数据的安 全模式等等,同时还提供了对e j b 、j a v as e r v l e t s a p i 、j s p 以及x m l 技术的全 面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的 体系结构。事实上,j 2 e e 已经成为企业级开发的工业标准和首选平台。 j 2 e e 并非一个产品,而是一系列的标准。符合这个标准的产品叫“实现”; 其中s u n 公司的j 2 e e 开发包中就有一个这样的“实现”,市场上也可以看到 很多实现了j 2 e e 的产品,如b e aw e b l o g i c ,i b mw e b s p h e r e 以及开源的j b o s s 等等。 2 1 2j 2 e e 体系结构 j 2 e e 体系结构提供中间层集成框架来满足无需太多费用而又需要高可用 性、高可靠性以及可扩展性的应用需求。通过提供统一开发平台,j 2 e e 降低了 开发多层应用的费用和复杂性,同时提供对现有应用程序的强有力支持,完全 支持e n t e r p r i s ej a v a b e a n s ,有良好的向导支持打包和部署应用,添加目录支持, 增强了安全机制,提高了性能,是传统的互联网应用程序模型无法比拟的。 j 2 e e 是多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组 件根据他们所在的层分布在不同的机器上( 也可以放在同一台机器上) 。解决 两层模式( c l i e n t s e r v e r ) 弊端,在传统模式中,客户端担当了过多的角色而显 得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可 伸展性也不理想,而且经常基于某种专有的协议( 通常是某种数据库协议) 。 它使得重用业务逻辑和界面组件非常困难。现在j 2 e e 的多层企业级应用模型 将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种 西南交通大学硕士研究生学位论文 第6 页 服务提供一个独立的层,以下是j 2 e e 典型的四层结构: 客户层c l i 删w 曲表示层业务逻辑层l 企业信息系统层 e i s e 】日容器 磬 w 曲容嚣 j s p 月 j e v e m a i l m c v j l j a c c 应鬻端p j a a x j 2 e e 纠a f f o r m 答尸机 o j 2 e e 撇务抬e i s 服务需 图2 - 1j 2 e e 架构应用程序 客户层组件:j 2 e e 应用程序可以是基于w e b 方式,也可以是基于传统桌面应 用方式。 w e b 表示层组件:w e b 表示层位于j 2 e e 服务器中,主要由w e b 容器进行 管理,可以是j s p 页面或s e r v l e t s 。按照j 2 e e 规范,静态的h t m l 页面和 a p p l c t s 不算是w e b 层组件。 业务层组件:业务层逻辑由e j b 容器来管理,主要由运行在业务层上的 e n t e r p r i s eb e a n 进行处理并发送到e i s 层进行储存,这个过程也可以逆向 进行。而往往经常由图3 所示的几个服务( 如j d b c 、j n d i 等) 协作完成。 企业信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设 系统例如企业资源计划( e r p ) ,大型机事务处理,数据库系统和其它的遗留 信息系统 2 1 3j 2 e e 架构的扩展一一五层架构实现 前以述及,j 2 e e 的四层体系结构很好满足了w e b 应用及桌面应用的需要, 客户层主要用于人机交互;表示层负责响应客户请求、调用业务层组件并将结 果返回到客户层;业务层主要负责应用逻辑实现,数据库访问和事务处理;数 据库层主要负责数据的存储和组织、分布管理等。 但是在实际应用中,四层的划分往往不能完全准确的指导开发,主要问题 出在业务逻辑层和数据库层之间。业务逻辑层与数据库的交互过程中往往需要 西南交通大学硕士研究生学位论文第7 页 对数据库调用接口做迸一步的封装,所以我们人为的在两层之间加上一个数据 持久层,其位于数据库之上,隐藏数据的读取和操纵中的所有数据访问代码细 节,完全抽象出使用数据的物理细节。同时在后续章节中,还要详细介绍数据 持久层框架技术即h i b e r n a t e 框架,有效的实现o r ( 对象关系) 映射机制,极 大的简化了对数据库的操作。五层结构如图2 - 2 所示: , 、 , 、,、 w e b 业 数 表 l 务据 一 逻 l j 持 不、r 叫r 叫 层 辑久 层 层 2 2 驸c 模式介绍 图2 2j 2 e e 五层结构图 2 2 1 什么是m v c 模式 模型一视图一控制器( m o d e l v i e w c o n t r o l l e r ) 是x e r o xp a r c 在八十年代为 编程语言s m a l l t a l k - - 8 0 发明的一种软件设计模式,至今已被广泛使用。最近几 年被推荐为s u n 公司j 2 e e 平台的设计模式,并且受到越来越多的青睐。m v c 模 式最初被s m a l l t a l k 社区开发出来主要用于解决桌面g u i 应用,。 m v c 模式并非传统意义上的设计模式,确切的说应该是一个架构模式,是 一个复杂的架构模式,其实现也较普通模式复杂。但是,我们已经总结出了很 多可靠的设计模式,多种设计模式结合在一起,使m v c 模式的实现变得相对简 单易行。v i e w s 可以看作一棵树,显然可以用c o m p o s i t ep a t t e r n ( 组合模式) 来 实现。v i e w s 和m o d e l s 之间的关系可以用o b s e r v e rp a t t e r n ( 观察者模式) 体现。 c o n t r o l l e r 控制v i e w s 的显示,可以用s t r a t e g yp a t t e r n ( 策略模式) 实现。m o d e l 通常是一个调停者,可采用m e d i a t o r p a t t e r n ( 中介者模式) 来实现。总之,如果 要完全从设计模式的概念出发来阐述m v c ,可能要使用g o f 的2 3 种设计模式中 的几种甚至十几种了。 在介绍m v c 模式之前,我们先看看m v c 的起源,这有助于我们对m v c 模 式更好的理解。 西南交通大学硕士研究生学位论文第8 页 图2 3 传统的m v c 模式 图2 3 显示了传统m v c 模式的事件流,用户与视图交互,填充数据并点击提 交按钮。控制器从视图上接收事件并在模型上执行动作,使用用户提供的数据 更新模型。当模型数据更改后,模型改变事件通知视图将动作后的结果显示给 用户。通过注册更多的监听器,可以使多个视图和控制器共享相同的模型数据。 虽然传统m v c 模式在桌面应用程序中取得了很大的成功,然而在w e b 世界 没那么得心应手了。图2 3 显示了非常清晰的设计方法,不幸的是它在由h t t p 和h t m l 组成的世界里,并不能很好的工作。那些使用h t t pr e q u e s t r e s p o n s e 模型的w e b 应用,需要另一种的模式。如图2 4 所示: 图2 - 4m v c 模式w e b 应用框架事件流 在m v c 的w c b 版本中,视图并不能象图2 3 中显示的那样直接调用控制器, 丽是映射成基于u r l ( 统一资源定位符) 的w e b 请求。当客户端有一个新的请 求时,视图并不是一个能被更新的对象,而仅仅是一个能被重绘的w e b 页面。 模型也不会因为发生了改变而通知视图,因为视图的渲染是在一个不同的客户 机的用户浏览器上,因此视图被强迫用最新的数据重新渲染。 应用于w e b 世界的m v c 模式使用f r o n tc o n t r o l l e r ( 前端控制器) 模式,它主 西南交通大学硕士研究生学位论文第9 页 要包含一个分配器将u r l 请求映射给将被执行的命令对象,这些命令对象就是 在w e b w o r k 或s t r u t s 中的a c t i o n s ,它们同后端的系统服务进行交互,这些系统服 务统称为模型。命令对象被处理完成后,返回一个值,该值被映射到一个视图, 该视图使用标签来获得所需要的数据。前端控制器的出现为处理安全关注、适 当的用户管理以及应用流程的集中管理提供了唯一的访问点。 下面详细说明各部分的作用: 视图:代表用户交互界面,对于w e b 应用来说,h t m l 依旧在视图中扮演着 重要的角色,但一些新的技术已层出不穷,它们包括f l a s h 和象x h t m l , x m l x s l ,w m l 等一些标识语言和w e bs e r v i c e s 。随着应用的复杂性和规模性, 界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,m v c 设计模 式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包 括在视图上的业务流程的处理。业务流程的处理交予模型( m o d e l ) 处理。 模型:就是业务流程,状态的处理以及业务规则的制定和企业数据。业务流 程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最 终的处理结果。业务模型的设计可以说是m v c 最主要的核心。目前流行的e j b 模型就是一个典型的应用例子。 控制:可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用 户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器, 选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层 并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处 理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求 的视图返回给用户。 总结m v c 的处理过程: 1 首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。 2 然后模型通过业务逻辑来处理用户的请求并返回数据。 3 最后控制器根据返回的结果,调用相应的视图格式化模型( 如j s p , f r e e m a r k e r 等) ,并通过表示层将处理后的结果呈现给用户。 2 2 2 为什么要用m v c 模式 在m v c 模式之前,w 曲应用程序都是用像a s p ,p h p 或者c f m l 这样 的过程化语言来创建的。它们将诸如数据库查询语句这样的数据层代码和 h t m l 代码混编在起。从开发速度上来说,有其便利的方面,但将数据与表 示混杂在起,很难体现出业务模型的独立性和模型的重用。产品设计弹性力 西南交通大学硕士研究生学位论文第1 0 页 度小,很难满足用户的变化性需求。从整体上看,开发的时间周期是一条水平 线,而扩展和维护的时间周期则是一条逐步增加的曲线。m v c 从根本上强制性 的将它们分开,尽管构造m v c 应用程序需要一些额外的工作,但是它给我们 带来的好处是无庸质疑的。 首先,最重要的一点是多个视图能共享一个模型,如果需要用更多的方式 来访问应用程序,其中一个解决之道是使用m v c ,无论用户想要f l a s h 界面或 是w a p 界面,用个模型就能处理它们。由于已经将数据和业务规则从表示 层分开,所以可以最大化的重用代码。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用 程序的数据层和业务规则。如果想把数据库从m y s q l 移植到o r a c l e ,或者改变 基于r d b m s 数据源到l d a p ,只需改变模型即可。一旦正确的实现了模型, 不管数据来自数据库或是l d a p 服务器,视图将会正确的显示它们。由于运用 m v c 的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所 以依据这种设计思想能构造良好的松耦合的构件。 2 2 3 几种w c 实现框架的比较 m v c 模式从概念上定义了基于w e b 应用的框架技术,同时支持m v c 模 式的框架技术也是种类繁多,目前比较主流的有s t r u t s ,w 曲w o r k ,s p a n g m v c , j s f ,t a p e s t r y 等,至于非主流的就不计其数了。那么面对琳琅满目的框架,究 竟该使用那种呢? 那种才是最好的昵? 笔者认为,对于各神框架技术,不存在 绝对的好与不好,而是各有所长,针对不同的应用需求选择合适的框架技术才 是上策。下面针对几个主流框架技术进行简单的比较: 1 s t r u t s 优点:业界“标准”( 很多成功案例) ,学习文档、书籍资源丰富,h t m l 标签非常优秀,具有广泛的群众基础。 缺点:a c t i o n f o r m s 使用不便、无法进行单元测试( s t r u t s t e s t c a s e 只能 用于集成) ,有些技术显得过时。 2 w e b w b r k 优点:结构简单易于扩展、标签库易于定制、拦截器非常出色,w e b w o r k 支持广泛的模板语言( v e l o e i y 和f r e e m a r k e r ) ,完整的t a g 支持, 模块写好后容易插入。一个i a r 包就可以包括所有的a c t i o n 和 v i c w ( 得益于f t l 的c l a s s p a t h 支持) ,和其他工具兼容性好。 缺点:文档示例较少、具有较多的配置 西南交通大学硕士研究生学位论文第11 页 3 s p r i n gm v c 优点:稳定可扩展,支持了i 1 8 n 、文件上传,异常处理,这些稳定的 支持给开发者坚实的基础。与s p r i n g 集成,对i o c 原生支持。 缺点:使用人数少、j s p 中要写很多代码、控制器过于灵活,缺少一个 公用控制器,不适合需要组件化开发的场景,配置较困难。 4 t a p e s t r y 优点:对于中等规模或者大规模的应用会带来很多好处,允许创建新 的组件,容易与i o c 集成,方便进行测试。 缺点:t a p e s t r y 的学习曲线非常陡峭。它只有漂亮的模板,实现文档太 概念化,不利于编程。 5 j s f 优点:浏览器程序像桌面程序一样工作,j 2 e e 标准、易于开发、丰富 的导航框架,并可获得大量第三方支持。 缺点:j s p 标签差、技术不成熟、不适合大规模的、以读为主的网站。 就s t r u t s 而言,s t r u t s a o r i o n1 x 确实具备以上的缺点,但s t r u t s 工作组的 成员已经意识到这些。在各方的共同努力下,s t r u t s ,w e b w o r k 和b e e h i v e 三方 宣布合并,共同发展下一代m v c 框架s t r u t s t i ( 即s t r u t s 2 ) 。它将主要以w e b w o r k 为核心,集成b e e h i v e 的a n n o t a t a i o n 和p a g e f l o w 功能,推向s t r u t s 用户群体, 并且加强和j s f 的集成能力。 在考虑系统设计时,综合以上各框架的特点,在开源领域,w e b w o r k 具 有得天独厚的优势,并且将来的s t r u t s a c t i o n2 0 即是以w e b w o r k 为核心,其内 部机制合理,故在选择开发框架时,以w e b w o r k 为优选。 2 2 4w c 与j 2 e e 架构之间的关系 理解m v c 三个部分在j 2 e e 架构中处于什么位置,有助于我们理解m v c 模式的实现。前面提到并提供了一个j 2 e e 体系层次结构图,m v c 与j 2 e e 架构 间对应关系是: v i e w 处于w 曲层和客户端层,通常是j s p s e r v l e t s 。 c o n t r o l l e r 也处于w e b 层,通常用s e r v l e t s 实现。 m o d e l 处于业务逻辑层,通常用服务器端j a v a b e a n 或者e j b 实现。 西南交通大学硕士研究生学位论文第1 2 页 第3 章w s h 应用框架 3 1w e b w o r k 框架 正如前文所提到的,在m v c 模式的实现技术中,s t r u t s 是一种流行的w e b 框架,拥有大量的用户群体,但在构建大规模w e b 应用的时候,它并不能提供 通常所需的创造力发挥空间。w 曲w 矾( 的创造者和j b o s s 的创始人之一的 r i c k a r d0 b e r g 曾经说:“框架的强大之处不是源自于它能让你做什么,而是它 不能让你做什么”w 。r i c k a r d 所说的话解释了什么是框架:框架使混乱的东西 变得结构化。然而,从另一个角度说,限制严格的架构束缚了开发人员的手脚, 开发人员的创造力空间收缩了,甚至有些任务无法完成。很明显,一种完美的 中间状态存在于无框架和严格框架之间,这种梦寐以求的中间状态就w 曲w b r k 的终极目标。 w e b w o r k 是由o p e n s y m p h o n y 组织开发的,致力于组件化和代码重用的拉 出式m v c 模式的j 2 e ew e b 框架。w e b w o r k 目前最新版本是2 2 ,其前身是 r i c k a r d0 b e r g 开发的w e b w o r k ,但现在w e b w o r k 已经被拆分成了x w o r k l 和 w 曲w o r k 2 两个项目m ,。如下图所示: x w o r k 简洁、灵活且功能强大,它是一个标准的c o m m a n d 模式实现,并且 完全从w e b 层脱离出来。x w o r k 提供了很多核心功能:前端拦截机、运行时表 单属性验证、类型转换、强大的表达式语言( o g n l t h eo b j e c tg r a p hn o t a t i o n l a n g u a g e ) 、i o c ( i n v e r s i o no f c o n t r o l 反转控制) 容器等。 w e b w o r k 2 建立在x w o r k 之上,处理h t t p 的响应和请求。w e b w o r k 2 使 西南交通大学硕士研究生学位论文 第1 3 页 用f i l t e r d i s p a t c h e r ( 过滤器) ,将m 1 p 请求的变成a c

温馨提示

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

评论

0/150

提交评论