(计算机应用技术专业论文)基于j2ee和组件化可拔插的共享支撑平台的研究.pdf_第1页
(计算机应用技术专业论文)基于j2ee和组件化可拔插的共享支撑平台的研究.pdf_第2页
(计算机应用技术专业论文)基于j2ee和组件化可拔插的共享支撑平台的研究.pdf_第3页
(计算机应用技术专业论文)基于j2ee和组件化可拔插的共享支撑平台的研究.pdf_第4页
(计算机应用技术专业论文)基于j2ee和组件化可拔插的共享支撑平台的研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee和组件化可拔插的共享支撑平台的研究.pdf.pdf 免费下载

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

文档简介

摘要 随着互联网的日益渗透,电子政务建设在世界范围内得到广泛的重视和推 进,深刻改变着政府传统的组织结构和管理服务模式,从而加快国民经济和社 会信息化的进程,推动经济社会全面协调可持续发展。这些都对电子政务的建 设提出了新的挑战。但是目前,电子政务现状是:电子政务各自为政,无法互 通,出现信息孤岛,多个电子政务无法集成在一起提供服务,而实现扩展性强、 集成能力好、松散耦合的平台就成为一条解决上述问题的途径。 本文首先分析了c s 和b s 的分布式体系结构,比较了b s 超越c s 的优 势,进而又详解w e b 应用的三层( 或多层) 体系结构,接着,简要的介绍和分 析了m v c 设计模式以及实现框架( s t r u t s ) ,对当下最流行的j 2 e e 平台进行多 方位的解析,随后,介绍了软件复用中的组件技术和x m l 技术,最后,采用 了组件技术和j 2 e e 多层体系结构,在e e l i p s e + t o m c a t + w e b l o g i c + o r a c l e 的整合 开发环境下,结合s t r u t s 开发设计出了共享支撑平台。 共享支撑平台是信息共享平台的子系统,提供对其他系统的支持,在整个 信息共享平台设计时考虑到分层次的应用集成,有数据层面、应用层面和业务 层面。不同层面采用的方法和技术会有不同。数据层的集成需要支持数据库、 文件、e m a i l 和x m l 的集成能力,支持双向访问、实时同步的能力,支持数 据之间映射、关联和汇集的能力,以便适应数据整合、数据共享等需求;应用 层的集成需要支持不同应用系统,支持底层的中间件平台,包括j 2 e e 、c o m 、 c o r b a 等,还需要适应不同的开发语言,例如c c + + 、j a v a 、b a c i s 等: 业务层的集成需要在支持数据和应用层集成的基础之上实现业务流程的实时管 理,支持行业标准,适应集中、扁平、透明的管理机制。 该平台在多方面都有提高,是一个安全可靠,易维护,灵活且可扩展的信 息共享平台。我相信,随着电子政务建设的不断深入,对于上述实现的共享支 撑平台在解决系统集成方面得到很大的进步,可以在保留原有的资源的基础上, 快速高效的开发出新的系统,从而避免了信息孤岛和实现了软件复用。 关键词:j 2 e e ;m v c ;s t r u t sx m l ;组件;多层结构 a b s t r a e t w i t ht h ei n t e m e t sg r a d u a l l yp e n e t r a t i o n ,t h ec o n s t r u c t i o no fe - g o v e r n m e n t o b t a i l l st h ew i d e s p r e a dv a l u ea n da d v a n c e m e n ta r o u n dt h ew o r l d ,a n dc h a n g e s p r o f o u n d l yi nt h eg o v e r n m e n tt r a d i t i o no r g a n i z a t i o n a ls t r u c t u r ea n d t h em a n a g e m e n t s e r v i c e p a t t e r n ,t h u s s p e e d su p t h en a t i o n a le c o n o m y a n dt h es o c i a l i n f 0 n n a t i o i l i z a t i o na d v a n c e m e n t ,i m p e l st h ee c o n o m i cs o c i e t yt o c o o r d i n a t et h e s u s t a i na _ b l ed e v e l o p m e n tc o m p r e h e n s i v e l y a l lt h e s ea r et h en e wc h a l l e n g et ot h e c o n s t r u c t i o no f e g o v e r n m e n t h o w e v e r ,a tp r e s e n t , t h es t a t u s o fe - g o v e r n m e n t : e g o v e r n m e n tc o o r d i n a t i o n ,u n a b l et ol i n k ,i n f o r m a t i o ni s o l a t i o na p p e a r e d ,a n u m b e r o fe g o v e r n m e n tc a nn o tb ei n t e g r a t e dw i t ht h ep r o v i s i o no fs e r v i c e s ,s ot oa c h i e v e s c a l a b i l i t y , i n t e g r a t i o nc a p a b i l i t i e s ,a n dl o o s e l yc o u p l e dp l a t f o r mi n t o as o l u t i o no n t h ea b o v e - m e n t i o n e dp r o b l e m t h ed i s s e r t a t i o nf i r s ta n a l y s e sd i s t r i b u t e ds y s t e mo fc sa n db s ,c o m p a r et h e b sw i 也c s t h ef o r m e rp o s s e s sm o r ea d v a n t a g e s ,t h e n ,e x p l a i nt h et h r e e - t i e r ( o r m u l t i t i e r ) w e ba p p l i c a t i o na r c h i t e c t u r e ,s e c o n d ,b r i e f l yd e s c r i b ea n da n a l y s e st h e m v cd e s i g np a t t e r n ,a sw e l la st h er e a l i z a b l ef r a m e w o r k ( s t r u t s ) , t h e n ,p r e s e n tt h e m o s tp o p u l a rp l a t f o r mo fj 2 e et h r o u g hm u l t i f a c e t e da n a l y s i s , f o l l o w e db y i n t r o ( 1 u c t i o no ft h ec o m p o n e n tt e c h n o l o g y i nr e u s a b l es o f t w a r ea n dx m l t e c h n o l o g y , f m a l l y , a d o p t i n gc o m p o n e n t t e c h n o l o g y a n dj 2 e e sm u l t i - t i e r a r c h i t e c t u r e , a n dt h e i n t e g r a t e d d e v e l o p m e n t e n v i r o n m e n t o t e c l i p s e + t o m c a t + w e b l o g i c + o r a c l e ,c o m b i n i n g s t r u t sf r a m e w o r k ,d e s i g n sa n d c o m p l e t et h es h a r i n gs u p p o r t sp l a t f o r m t h es h a t i n gs u p p o r t sp l a t f o r mi st h es u b s y s t e mo ft h es h a r i n gp l a t f o r m o f i n f o n n a t i o n w h i c hp r o v i d es u p p o r t st oo t h e rs y s t e m s ,t h r o u g h o u tt h ed e s i g n o f s h a t i n gp l a t f o r mo fi n f o r m a t i o n ,d i f f e r e n tl e v e l so fa p p l i c a t i o ni n t e g r a t i o nh a sb e e n t a k e ni m oa c c o u n t ,w h i c hc o n t a i nd a t al a y e r , a p p l i c a t i o nl a y e ra n db u s i n e s sl a y e r d i f f e r e n tl a y e r sh a v ed i f f e r e n tm e t h o d sa n dt e c h n i q u e s t h ei n t e g r a t i o ni nd a t al a y e r n e e dt os u p p o r tt h ei n t e g r a t i n gc a p a b i l i t i e so fd a t a b a s e s ,f i l e s ,e m a i l ,a n dx m l , t h e a c c e s si nt w ow a y , t h er e a l t i m es y n c h r o n i z a t i o n ,t h ed a t am a p p i n g , t h ec o r r e l a t i o na n d t h ea b i l i t yt ob r i n gt o g e t h e r , i no r d e rt om e e tt h en e e d so fd a t ai n t e g r a t i o na n dd a t a i i s h a r i n g ,a p p l i c a t i o nl a y e rn e e dt os u p p o r tt h ed i f f e r e n ta p p l i c a t i o ns y s t e m s ,t h e u n d e r l y i n gm i d d l e w a r ep l a t f o r m s ,i n c l u d i n gj 2 e e ,c o m ,c o r b ae t c ,a l s on e e dt o a d a p tt ot h ed i f f e r e n tl a n g u a g e so fd e v e l o p m e n t ,s u c ha sc c + + ,j a v a ,b a c i se t c , t h ei n t e g r a t i o ni nb u s i n e s sl a y e rn e e dt ob a s eo nt h es u p p o r to fi n t e g r a t i o ni nd a t a a n da p p l i c a t i o nl a y e r , r e a l i z et h er e a l - t i m em a n a g e m e n to fb u s i n e s sp r o c e s s ,a n d i n d u s t r y s t a n d a r d s ,i n o r d e rt om e e tt h e r e g u l a t o r ym e c h a n i s m ,w h i c h i s c o n c e n t r a t e d ,f l a t , t r a n s p a r e n t t h i sp l a t f o r mh a si m p r o v e m e n t si nm a n ya s p e c t s ,i ti sas e c u r e ,m a i n t a i n a b l e f l e x i b l ea n de x p a n d a b l e p l a t f o r m ib e l i e v e , 谢t l lt h e d e v e l o p m e n t o ft h e e g o v e r n m e n tc o n s t r u c t ,t h es h a r i n gs u p p o r t sp l a t f o r m ,c o m p l e t e dt h r o u g h t h ea b o v e m e t h o d ,h a sg r e a ti m p r o v e m e n t si nt h ea s p e c to fs y s t e mi n t e g r a t i o n ,w h i c hn o to n l y r e t a i nt h e e x i s t i n gr e s o u r c e s ,b u t a l s o d e v e l o pt h en e ws y s t e mq u i c k l ya n d e f f e c t i v e l y t h ep u r p o s ei st oa v o i dt h ei n f o r m a t i o ni s o l a t e di s l a n da n d t or e a l i z et h e s o f t w a r em u l t i p l y k e y w o r d :j 2 e e ,m v c ,s t r u t s ,x m l ,c o m p o n e n t ,m u l t i - t i e ra r c h i t e c t u r e i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:扬夔 e t 期:鱼凹:苎:! 兰 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权武汉理工大学可以将本学位论文的全部内容编入有关数据库 进行检索,可以采用影印、缩印或其他复制手段保存或汇编本学位论文。同时 授权经武汉理工大学认可的国家有关机构或论文数据库使用或收录本学位论 文,并向社会公众提供信息服务。 ( 保密的论文在解密后应遵守此规定) 武汉理工大学硕士学位论文 第1 章绪论 本章介绍了论文的研究背景和意义,阐述了传统电子政务系统的问题与未 来的发展方向,并说明了论文的组织结构。 1 1 课题的研究背景 随着全球化和信息化的快速发展,互联网日益渗透到社会生活的各个领域, 电子政务在世界范围内得了广泛的重视和推进,深刻改变着政府传统的组织结 构和管理服务模式。在新一轮的国家竞争中,政府形象与政务水平已经成为决 定国家或地区综合竞争力的重要因素。作为提高政府办事效率、改进便民服务 水平和促进政府职能转变的重要手段,电子政务的实施推广必将加速国民经济 和社会信息化进程,最终实现以信息化带动工业化,以工业化促进信息化的目 标,推动经济社会全面协调可持续发展【l j 。 金宏工程是我国电子政务建设重点内容之一。国家信息化领导小组第二次 会议召开后,中办和国办联合下发了我国电子政务建设的指导意见l ,而金 宏工程就是在此基础上提出的。现阶段,主要任务是建设宏观经济管理信息共 享平台,它是金宏工程建设的重要组成部分,为党中央、国务院以及各政府部 门提供各类共享信息。其中,共享支撑平台是信息共享平台中的一些共用的基 础功能的实现部分,涵盖了系统实现的基础组件,通过这些功能以及服务可以 为其他子系统提供支撑,最终达到维护和扩展系统的机制。 1 2 问题的提出及研究方向 通过研究背景,我们知道目前电子政务的发展方向是提供统一的电子政务 交互平台,这样做给政府部门办公带来很大的方便,但是传统的电子政务系统 不具备集成能力,况且电子政务系统的平台、语言、实现技术都不同,很难集 成在一起,从而形成“信息孤岛”和互操作的问题,而且系统的扩展性很差, 1 中办发 2 0 0 2 11 7 号文件 武汉理工大学硕士学位论文 开发周期长,维护困难。现在我们实现的是扩展性强、集成能力好、松散耦合 的平台。 传统电子政务系统缺点如下: 1 “信息孤岛 问题政府部门各个系统之间,都是单独的应用系统,对 应着自己的数据库。信息间有一定的重复和冗余,而且系统间数据不 一致,无法进行交互。 2 可扩展性差系统功能或者模块间的耦合性高,系统升级时会设计到大 量代码的修改。 3 可重用性差目前主要集中在系统内部的可重用性,企业内系统间或者 企业间,或者政府部门的系统间,难以达到真正的可重用性。 4 互操作性差电子政务系统没有考虑到互操作性问题,要通过开发一个 新系统达到两个系统的交互,这样代价大而且难维护。 5 平台、语言多样性基于不同标准生成的组件很难结合使用,也很难集 成。 遵循“现状分析发现问题分析问题解决问题”的路线【2 1 ,通过介绍电子 政务建设的现状,对现存的电子政务系统的情况进行分析,发现存在的问题, 由此我们对信息共享平台一些共用的基础功能的实现提出了一种机制,即共享 支撑平台的设计体系,这对以后电子政务系统的建设具有一定的指导意义。 1 3 论文结构 本课题重点研究了在j 2 e e 平台下使用相关的技术实现共享支撑平台,通过 这一平台可以形成对其他子系统的支撑。论文的组织编排如下: 第1 章绪论。介绍了课题的研究背景,问题的提出及研究方向以及论文的 组织结构。 第2 章分布式体系结构。介绍了c s 和b s 两种分布式体系结构,比较了 b s 相对于c s 的优势,并且介绍了基于b s 的w e b 应用的多层体系结构。 第3 章m v c 设计模式和j 2 e e 模式。介绍了m v c 设计模式以及实现该模 式的s t r u t s 框架,并且分析了j 2 e e 的模式。 第4 章组件技术和x m l 相关标准。主要介绍了各种组件技术,并分析比 较了这些主流组件技术以及采用的j a v a b e a n s e j b 技术,还介绍了x m l 的相关 2 武汉理工大学硕士学位论文 标准。 第5 章共享支撑平台的分析与设计实现。通过对共享支撑平台的分析,通 过采用上述相关技术,在设计上实现共享支撑平台。 第6 章总结与展望。本章对全文的研究工作做了一个总结,并对还需要继 续研究的工作做展望。 3 武汉理工大学硕士学位论文 第2 章分布式体系结构 2 1c s 结构与b s 结构 2 1 1c l i e n t s e r v e r 结构 8 0 年代,数据库应用主要采用c s 两层结构,它把系统分为客户、服务器 两部分,服务器端存储数据库、表、数据,客户端安装程序代码和相关软件支 持。但是随着信息系统结构的规模和复杂度的日益扩大,不能适应不断增长的 多方面需求,主要体现为【3 j : 1 客户端和服务器端直接相连,这样当存在大量的客户端数据请求时, 服务器的系统资源就成为瓶颈,不能很好的响应客户的请求,造成堆 积后果可能是系统整体效率降低甚至崩溃。 2 主从式结构使系统的可靠性存在很大的隐患,一旦数据库服务器停止 工作,整个系统陷入瘫痪。 3 客户端应用程序的分发工作烦琐程度令人难以接受。系统开发完,每 台客户机要安装客户端程序的一些必要文件,还要做相关的配置,一 旦系统升级,这样的过程要重复。 4 存储过程的调用中,所有的处理过程在数据库层进行,结果再返回客 户端。这样业务逻辑要用专用语言开发,很难移植到其他数据库上。 5 对操作系统的依赖程度大,用户的界面风格也不统一。 2 1 2b r o w s e r s e r v e r 结构 随着i n t e m e t 技术的兴起和w w w 浏览器的兴起,产生了b s 结构,是对 应用系统体系结构的一次深刻变革 4 1 。客户机不负责复杂的事务处理逻辑和数 据访问等关键事务,只负责显示部分,服务器来担负更多的工作,用户通过浏 览器发出请求,服务器处理用户的请求,并返回给用户【5 】。 采用基于b s 结构的多层结构,不仅简单,而且降低了系统的维护工作量, 提高了系统的开放性,尤其是以中间件为基础的b s 多层结构,核心概念是利 4 武汉理工大学硕士学位论文 用中间件技术将应用的业务逻辑、表示逻辑和数据分为多个不同的处理层,不 但具备了系统稳定安全和处理能力高等特性,同时拥有开放式系统成本低、可 扩展性强、开发周期短等优点。 另外,浏览器软件有着统一的用户界面、统一的语言格式、统一的传输协 议,用户界面简单易学,终端用户几乎无需任何培训,系统管理简单,可以支 持异构数据库,有很高的可用性。 2 1 3b s 相对于c i s 的优势 1 开发维护成本:c s 结构开发维护成本高。不同的客户端要开发不同的 程序,而且应用程序要在所有的客户机进行安装、修改和升级,复杂又 麻烦。对于b s 结构,客户端只要安装通用的浏览器,其他的工作都是 在服务器上进行,这样大大降低了开发维护成本。 2 客户端负载:c i s 结构的客户端具有显示和处理数据的功能,负载过重。 系统功能越来越复杂,客户端的应用程序也越来越大,即客户端越来越 “胖 ,就要求不断的提高客户机配置,加重了投资成本。b i s 结构的 客户机只要负责显示,变的很“瘦 。 3 采用的标准:c i s 结构采用的标准只在内部统一,其应用通常是专用的。 b i s 结构采用的标准是开放的、非专用的,是标准化组织所确定的,保 证了其应用的通用性和跨平台性。 4 灵活性:c s 结构的系统模块耦合度大,使得系统很难升级,灵活性差。 b i s 多层结构中,层之间相互独立,系统的改进相对容易,而且可以用 不同厂家的产品来组成性能更佳的系统。 5 移植性:c s 结构移植困难,一般是互不兼容的,而b s 结构不存在移 植性的问题。 6 用户界面的风格:c s 结构的用户截面是由客户端所装软件决定,用户 界面各不相同。而b s 结构,浏览器的界面统一友好,易于使用。 综上所述,采用b s 结构优越性显而易见的。系统有良好的扩展性和伸缩 性,开发模块好、维护方便、网络负载轻,浏览器和服务器之间传送的仅仅是 计算的条件和结果,大大降低了网络通信量,减轻了网络负载。服务器提供的 动态页面生成的能力、多层客户访问、安全性、处理逻辑以及数据库访问等功 能,也使b s 结构成为当前w e b 应用开发的主流体系结构【6 1 。 5 武汉理工大学硕士学位论文 2 2 基于b s 的w e b 应用体系结构 2 2 1 两层和三层结构 w 曲发展的初期,主要是通过静态页面在i n t e m e t 上发布信息,其体系结 构如图2 - 1 所示。用户通过浏览器向服务器发送请求,服务器接受请求后,向 客户端浏览器发送所请求地页面。在这种结构下,网站上的页面是静止的,无 法根据用户实际情况做动态的变化。网站的信息提供者通过更新服务器上的页 面向用户提供最新的消息。用户和浏览器之间只是有限的交互,而网站和用户 间几乎没有交互。 l _ j 响应l 一 图2 1 两层体系结构 c g i 、a s p 、j s p 、p h p 等技术的出现,使得开发动态交互式的w e b 应用得 以实现,其体系结构如图2 2 所示。用户通过浏览器向服务器发送请求,w e b 服务器接受请求后,对请求进行分析,如果请求的是静态页面,那么就将请求 的页面发送到客户端;如果请求的是动态页面,那么就执行此动态页面,并将 执行结果发送到客户端。动态页面中的脚本程序可以与数据库服务器进行交互。 图2 2 三层体系结构 w e b 服务器可以根据用户的请求动态更新页面上的信息,w e b 信息提供者 可以通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面, 用户可以通过这些动态页面向数据库中输入信息,从而增强了用户和服务器的 交互性。 2 2 2 四层体系结构 当前许多w e b 应用都需要更复杂的表示和逻辑处理,三层体系结构把数据 的生成和数据的表示两部分都集中在了动态页面中,使得动态页面非常庞大, 6 武汉理工大学硕士学位论文 而且应用的表示和逻辑处理混合在一起,给w e b 系统的开发和维护带来了许多 困难。 于是出现了四层体系结构,如图2 3 ,将应用的逻辑处理和应用的表示相分 离。其中w e b 服务器即动态页面所在层主要负责应用的表示,应用基层主要负 责应用的逻辑处理。用户通过浏览器向服务器发送请求,w e b 服务器接受用户 发送的请求,对请求分析转换,调用相应的应用服务中的逻辑处理程序,逻辑 处理程序可和数据库交互,将处理结构返回给w e b 服务器,w e b 服务器再将结 果发送给客户浏览器【7 1 。 2 2 3 多层体系结构 图2 3 四层体系结构 对于应用的层次划分还没有终止,我们常常需要创建的是n 层体系结构的 应用。实际上,一个n 层结构能够支持多种不同的配置,在这种结构中,应用 逻辑的划分是根据功能不同而不是根据物理方面来进行的。 n 层结构的划分如下嘲: 1 用户接口层:可以是一个通过防火墙运行的w e b 浏览器,也可以是一 般的桌面程序,甚至可以是无限设备。 2 表示逻辑层:定义了用户界面要显示的内容和如何处理用户的请求。 3 业务逻辑层:通过与应用数据打交道,对应用的业务规则实施建模。 4 基础框架服务层:提供了应用系统需要的其他功能,如传输消息、事 务支持等。 5 数据层:存放应用数据。 基于这种结构的应用程序采用了模型视图控制器( m v c ) 模式,他们之 间是由应用业务逻辑( 控制器) 来控制信息流向。通过这种模式,我们能够设 计出基于三种相互交互的功能组件的应用程序。 在项目中,采用的是s t r u t s 来开发w e b 应用程序。s t r u t s 是一种基于j a v a 的技术,提供了一种创建w e b 应用程序的框架,它是对m v c 设计模式的一种 7 武汉理工大学硕士学位论文 实现,在后面会详细介绍。 2 2 4 多层体系结构的优势 四层( 多层) 体系结构具有的优势如下: 1 优化了系统结构这样分层的系统,业务逻辑放在了应用服务层,软 件的维护集中在应用服务层,客户端的维护相对简单多了,有利于软 件的维护和系统管理。 2 提高了应用系统的安全性将客户端与数据库隔离起来,客户端无权 直接访问数据库,有利于安全管理,可以有效防止恶意攻击,还可以 利用中间件的安全管理特性进一步加强权限控制管理。 3 便于业务( 事务) 级权限管理四层( 多层) 应用中可划分出业务( 事 务) 级权限,一种业务一个服务程序,利用中间件的安全管理对其进 行访问控制。数据库的权限属于数据库表级权限,而实际应用中往往 以业务( 事务) 为主线,也就要求对业务( 事务) 实现权限控制,业 务( 事务) 权限控制的引入也丰富和方便了权限控制和管理。 4 卓越的扩展能力若要提高系统性能、处理速度,可增加应用服务器, 分担一部分应用服务工作即可,而原来的应用服务器几乎可以不动。 5 减少网络数据流量和提高数据库响应速度四层( 多层) 应用体系结 构中,应用服务层的引入有效地解决了网络瓶颈和数据库连接数过多 造成的数据库性能下降的问题,应用服务器有多台有效地解决客户机 访问应用服务层的瓶颈。应用服务器与数据库服务器可方便地采用宽 带网连接,不会产生与数据库服务层的网络瓶颈。 6 提高系统性能四层( 多层) 应用体系结构更好地调整应用体系,还 可以利用中间件的特点来选择路由、平衡负载,提高整个系统的性能。 7 保护现有投资原有性能较差的设备均可发挥作用,在整个系统性能 有很大提高的同时,不会造成原有系统资源浪费。 总之,多层应用体系结构使应用系统的性能、安全性、扩展有了很大的提 高,也方便了系统的维护和管理【5 j 。 8 武汉理工大学硕士学位论文 第3 章m v c 设计模式和j 2 e e 模式 3 1 设计模式 设计模式是软件开发期间对重复问题的可复用解决方案,可以帮助进行软 件设计和更好地设计软件。一般来说,设计模式可以帮助我们解决应用程序设 计阶段遇到的大多数常见问题,包括【9 】:标识构件、构件内部结构及构件之间 的关系;确定构件粒度及适当交互;定义构件接口。 设计模式的思想认为在系统设计这一层次上,软件开发可以抽象成一种模 式,模式描述了系统面临的问题及其解决方案,并可以重用。每一个模式描述 了一个在我们做设计时不断重复遇到的问题,以及该问题的解决方案的核心。 这样,我们就能一次又一次地使用该方案而不必做重复劳动。其核心在于提供 了相关问题的解决方案。设计模式有利于帮助做出有利于系统复用的选择,避 免设计破坏系统复用性。总之,设计模式可以帮助设计者更好地完成系统设计 和开发。 在面向对象的编程中,软件开发人员更加注重以前代码的可重用性和可维 护性。设计模式使人们可以更加简单方便地复用成功的设计和架构,同时对将 来的问题和需求也有足够的通用性。将已证实的技术表述成设计模式,可使新 系统开发者更加容易理解其设计思路。设计模式在很大程度上改善我们的软件 程序结构,使开发具有更好的弹性和通用性。 设计模式总的原则是针对接口编程,而不是关心具体实现,这样搭起来是 一个构架,还需要作许多具体的编程才能真正的完成系统。使用合适的设计模 式,不但使代码可重用性、可扩展性增强,最重要是能提高了开发速度和效率。 3 2 构架、框架和设计模式的关系 软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。 软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系 结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取 9 了特定领域软件的共性部分,一次在此领域内新项目的开发过程中代码不需要 从头编写,只需要在框架的基础上进行一些开发和调整便可满足要求;对于开 发工程而言,这样做会提高软件的质量,降低成本,缩短开发时间,使开发越 做越轻松,效益越做越好,形成一种良性循环【1 0 1 。 3 2 1 框架和架构之间的关系 框架不是构架( 即软件体系机构) 。构架确定了系统整体结构、层次划分和 不同部分之间的协作等。框架比架构更具体,更偏重于技术。确定框架后,软 件体系结构也随之确定,而对于同一软件体系结构( 比如w e b 开发中的m v c ) , 可以通过多种框架来实现【1 0 1 。 3 2 2 框架和设计模式之间的关系 设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是 一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实 现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体。 虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在 着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。 框架和设计模式存在着显著的区别,主要表现在二者提供的内容和致力应 用的领域【i o 】: 1 从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给 出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或 者框架中进行应用。 2 从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言 以不同方式来实现;而框架则是设计和代码的一个混合体,编程者可以 用各种方式对框架进行扩展,进而形成完整的不同的应用。 3 以第二条为基础,可以得出设计模式比框架更容易移植。框架一旦设 计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用 的开发显然要受制于框架的实现环境;而设计模式是与语言无关的, 所以可以在更广泛的异构环境中进行应用。 总之,框架是软件,而设计模式是软件的知识体,提升框架的设计水平。 1 0 武汉理工大学硕士学位论文 3 3m v c 设计模式 3 3 1m v c 设计模式 m v c 设计模式是“m o d e l v i e w - c o n t r o l l e r ”的缩写,中文翻译为“模式 视图控制器 。m v c 应用程序总是由三个部分组成,事件导致控制器改变模型 或视图,或者同时改变两者。只要控制器改变了模型的数据或属性,所有依赖 的视图都会自动更新。类似的,只要控制器改变了视图,视图会从潜在的模型 中获取数据来刷新自己。m v c 模式最早是s m a l l t a l k 语言研究团提出的,应用 于用户交互应用程序中。s m a l l t a l k 语言和j a v a 语言有很多相似性,都是面向对 象语言,j a v a 语言的创始公司美国s u n 公司就推荐广大程序员使用m v c 设计 模式作为开发w e b 应用的架构模式【l l 】。 m v c 模式是一种架构模式,其实需要其他模式协作完成。在j 2 e e 模式目 录中,通常采用s e r v i c et ow o r k e r 模式实现,而s e r v i c et ow o o e r 模式可由集 中控制器模式,派遣器模式和p a g eh e l p e r 模式组成。而s t r u t s 只是实现了m v c 的视图和控制器两个部分,模型部分需要开发者自己来实现,s t r u t s 提供了抽象 类a c t i o n 使开发者能将模型应用于s t r u t s 框架中【1 2 】。 m v c 模式是一个复杂的架构模式,其实现也显得非常复杂但是,我们已经 总结出了许多可靠的设计模式,多种设计模式结合在一起,使m v c 模式的实现变 得相对简单易行。视图可以看作一棵树,显然可以用c o m p o s i t ep a t t e m 来实现。 视图和模型之间的关系可以用o b s e r v e r p a t t e r n 体现。控制器控制视图的显示, 可以用s t r a t e g yp a t t e r n 实现。模型通常是一个调停者,可以采用m e d i a t o rp a t t e m 来实现。 3 3 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 ,即把一个应用的输入、处理、输出流 程按照m o d e l 、v i e w 、c o n t r o l l e r 的方式进行分离,这样一个应用被分成三个层 模型层、视图层、控制层【1 3 1 。 视图( v i e w ) :代表用户交互界面,对于w e b 应用来说,可以概括为h t m l 界面,但有可能为x h t m l 、x m l 和a p p l e t 。随着应用的复杂性和规模性,界 面的处理也变得具有挑战性。一个应用可能有很多不同的视图,m v c 设计模式 武汉理工大学硕士学位论文 对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括 在视图上的业务流程的处理。业务流程的处理交予模型( m o d e l ) 处理。比如一 个订单的视图只接受来自模型的数据并显示给客户,以及将用户,以及将用户 界面的输入数据和请求传递给控制和模型。 。 模型( m o d e l ) :就是业务流程状态的处理以及业务规则的制定。业务流程 的处理对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处 理结果。业务模型的设计可以说是m v c 最主要的核心。目前流行的e j b 模型 就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分, 以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你 按这种模型设计就可以利用某些技术组件。从而减少技术上的困难。对于一个 开发者来说,就可以专注于业务模型的设计。m v c 设计模式告诉我们,把应用 的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否 优秀的设计依据。抽取与具体不能隔得太远,也不能太近。m v c 并没有提供模 型的设计方法,而只告诉你应该要组织管理这些模型,以便于模型的重构和提 高重用性。我们用对象编程来做比喻,m v c 定义了一个顶级类,告诉它的子类 你只要能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对 象的数据保存( 持续化) 。比如将一张订单保存到数据库,从数据库获取订单。 我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 控制器( c o n t r o l l e r ) 可以理解为从用户接受请求,将模型与视图匹配在一 起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它 就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的 用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层 接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做 什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图, 一个视图可能对应多个模型。 模型、视图、控制器的分离,使得一个模型可以具有多个显示视图。如果 用户通过某个视图的控制器改变可模型的数据,所有其它依赖于这些数据的视 图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将 变化通知所有的视图,导致显示更新。这实际上是一种模型的变化传播机制。 模型、视图、控制器三者之间的关系和各自的主要功能,如图3 1 【1 4 j 所示: 1 2 武汉理工大学硕士学位论文 选择视图l 控帝i 嚣1 i 业务处理 :瑟瑟:茎n i 调用拔删响应用户请采ll l 逸挣祝圈显示响应结果ll e 祝圈 是示梭型惦吉 接受数据更橱许采 把用户输入数据幡辅愉控 栅三i ( 拔型1 代震应用程序佚吉 响应扶右鸯嘲 蛙崔业务m 程 迥如砚圉业务扶古的更帮 图3 1m v c 设计模式 3 3 2 1m v c 的优点 在最初的j s p 网页中,像数据库查询语句这样的数据层代码和像h t m l 这 样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来, 但这通常不是很容易做到的,她需要精心地计划和不断地尝试。m v c 从根本上 强制性地将它们分开。尽管构造m v c 应用程序需要一些额外的工作,但是它 给我们带来的好处是毋庸置疑的。 首先,多个视图能共享一个模型。如今,同一个w e b 应用程序会提供多种 用户界面,例如用户既希望能够通过浏览器来收发电子邮件,还希望通过手机 来访问电子邮箱,这就要求w e b 网站同时提供i n t e m e t 界面和w a p 界面。在 m v c 设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并 把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重 用,所以大大提高了代码的可重用性。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可以直接 应用于接口的使用。再次,模型是自包含的,与控制器和视图保持相对独立, 所以可以方便地改变应用程序的数据层和业务规则。如果把数据库从m y s q l 移植到q r a c l e ,或者把r d b m s 数据源改变成l d a p 数据源,只需改变模型即 可。一旦正确地实现了模型,不管数据来自数据库还是l d a p 服务器,视图都 会正确地显示它们。由于m v c 的三个模块相互独立,改变其中一个不会影响 其他两个,所以依据这种设计思想能构造良好的松耦合的构件。 渺;!藿酌一 一一 ;一垄 赢i 一丽 武汉理工大学硕士学位论文 此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接 不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手 段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模 型进行处理,然后选择合适的视图将处理结果显示给用户。 最后,它有利于软件工程化管理。由于不同的层各司其职,每一层不同的 应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。 3 3 2 2m v c 的适用范围 使用m v c 需要精心的计划,由于它的内部原理比较复杂,所以需要花费 一些时间去理解它。将m v c 运用到应用程序中,会带来额外的工作量,增加 应用的复杂性,所以m v c 不适合小型应用程序。 但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,m v c 将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建 m v c 框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软 件开发的效率。 3 3 3s t r u t s 框架 当建筑师开始一个建筑项目时,首先要设计该建筑的框架结构,有了这份 蓝图,接下来的实际建筑过程才会有条不紊,井然有序。同样,软件开发者开 始一个软件项目时,首先也应该构思该软件应用的框架,规划软件模块,并

温馨提示

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

最新文档

评论

0/150

提交评论