




已阅读5页,还剩53页未读, 继续免费阅读
(计算机软件与理论专业论文)基于mvc的web应用开发平台的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 近年来,随着网络技术和i n t e r n e t 的迅速发展,基于 b r o w s e r s e r v e r 结构的w 曲应用,因其具有易用性、通用性、良好的 可扩展性等优点而发展迅速,正逐渐成为实现企业应用信息系统的主 流技术。 随着w e b 技术的广泛应用,许多企业都迫切要求构建自己的w e b 业务系统。虽然这些业务系统因具体业务不同而有所不同,但从软件 开发的角度看,这些系统的开发过程大致是相同的。针对相似的w e b 业务系统,如何减少其中的技术性重复劳动,提高软件生产率对软件 企业来说至关重要。一个可行性的解决方法就是开发一个通用的w e b 应用二次开发平台来屏蔽技术上的实现细节,形成一个标准的软件开 发过程,使开发人员集中于业务的分析和实现。 针对上述思想本论文研究了一种基于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 应用开发平台。论文在介绍w e b 应用系 统发展研究现状的基础上,分析了当前基于w e b 的应用系统中存在 的主要问题,从而确定了w e b 应用开发平台的设计目标,并且讨论 了开发平台的相关技术理论。论文接下来设计了基于m v c 的w e b 应 用开发平台的框架体系结构,并对框架体系结构中主要部分进行了详 细阐述,其中包括开发平台中m v c 设计模式、业务视图组件设计、 业务组件设计、数据对象设计以及开发平台中所实现的关键技术如对 象关系映射等。论文最后论述了在此平台上的一个实际应用一深圳 市食品药品监督局委托深圳新界面科技有限公司开发的g s p ( g o o d s u p p l yp r a c t i c e ) 认证管理信息平台从而从应用角度说明本文提出的开 发平台在w e b 应用系统开发中的可行性及优势。 关键词m v c ,持久层,对象关系映射,业务逻辑,数据对象 a b s t r a c t w i t ht h ed e v e l o p m e n to ft h et e c h n o l o g i e so fc o m p u t e rn e t w o r ka n d i n t e r n e t ,w e b b a s e da p p l i c a t i o n sw i t ht h eb r o w s e r s e r v e rm o d em a k e g r e a tp r o g r e s s e s - f o r t h e i r g e n e r a la v a i l a b i l i t y , e a s y u s e a n dg o o d e x p a n s i b i l i t y m a n ye n t e r p r i s e su r g e n t l yh o p et ob u i l dt h e i ro w nw e bb u s i n e s s s y s t e m sw i t ht h ew i d e s p r e a du s e o fw e bt e c h n o l o g y a l t h o u g ht h e s ew e b b u s i n e s ss y s t e m ss e e md i f f e r e n to w i n gt ot h es p e c i a lb u s i n e s s ,t h e ya r e a p p r o x i m a t e l ys i m i l a ra c c o r d i n gt ot h ev i e wo fs o f t w a r ed e v e l o p e r s i t b e c o m e sv e r yi m p o r t a n tf o rs o f t w a r ee n t e r p r i s e st or e d u c et e c h n i c a l r e d u n d a n c yw o r ka n di m p r o v et h es o f t w a r ep r o d u c t i v i t y af u n d a m e n t a l s o l u t i o ni st od e v e l o pag e n e r a ls e c o n dd e v e l o p m e n tp l a t f o r mf o rw e b a p p l i c a t i o n sw h i c h c a nh i d et h e t e c h n i c a ld e t a i la n df o r mas t a n d a r d p r o c e s so fs o f t w a r ed e v e l o p m e n t b a s e do nt h e s et h o u g h t s ,ad e v e l o p m e n tp l a t f o r mb a s e do nm v cf o r w e b a p p l i c a t i o nw a sr e s e a r c h e di nt h i st h e s i s f i r s t ,t h ec u r r e n tr e s e a r c h e s a b o u tt h ew e ba p p l i c a t i o ns y s t e m sw e r ei n t r o d u c e d a n db a s e do nt h e d i s c u s s i o n ,t h ed e s i g ng o a l o ft h ed e v e l o p m e n tp l a t f o r mh a sb e e n d e s i g n e d ,a n ds o m er e l a t i o n a lt h e o r e sa n dt e c h o n o l o g i e sw e r ed i s c u s s e d i nt h ef o l l o w i n g ,t h ea r c h i t e c t u r ef o rt h ew e ba p p l i c a t i o nd e v e l o p m e n t p l a t f o r mh a sb e e np r e s e n t e d m o r e o v e r ,t h em a i nc o m p o n e n t so ft h e d e v e l o p m e n tp l a t f o r mi n c l u d i n gm v c ,b u s i n e s s v i e w c o m p o n e n t s , b u s i n e s sc o m p o n e n t ,d a t ao b j e c t sd e s i g na n dt h ei m p l e m e n t a t i o no fk e y t e c h o n o l o g i e ss u c h a so b j e c t r a t i o n a lm a p p i n gh a v eb e e nd i s c u s s e d f i n a l l y , o u rw o r kd u r i n gt h ed e s i g na n dd e v e l o p m e n tp r o c e d u r ew a s s u m m e du pi nt h i st h e s i s a n dt h ei m p l e m e n t a t i o na p p r o a c hb a s e do nt h e p l a t f o r mw a sr e a l i z e do nt h ep l a t f o r mo fg s p ( g o o ds u p p l yp r a c t i c e ) d e v e l o p e db yt h en e wi n t e r f a c ec o m p a n ye n t r u s t e db ys h e n z h e n f 0 0 da n dd r u ga d m i n i s t a t l 0 n t h ee f f e c ti n d i c a t e st h a t t h i s p l a t f o r mi sf e a s i b l ea n de f f e c t i v e n e s s k e yw o r d sm v c ,r o b u s tp e r s i s t e n c el a y e r ,o b j e c tr a l a t i o n m a p p i n g ,b u s i n e s so b j e c t ,d a t ao b j e c t i i 原创性声明 本人声明,所呈交的学位沦文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其它单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名蜱日期:碰年月丛日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位 论文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论 文;学校可根据国家或湖南省有关部门规定送交学位论文。 作者签名:蹲导师签名邋日期:碰年勘丛日 硕士学位论文第一章绪论 1 1 课题的研究背景 第一章绪论 随着网络技术和i n t e r n e t 的迅速发展,w e b 应用在实际开发中得到更多的应 用以及在更多的场合被提及,越来越多的人把兴趣投放到了基于w e b 的应用系 统开发。同时,w e b 应用开发技术也不断地得到发展。w e b 应用已经从过去的 消息发布等相对静态的内容显示发展到应用逻辑处理和电子商务等动态信息的 处理“。 基于w e b 的应用软件开发经历了以下的几个发展阶段: 1 以页面为中心的w e b 应用系统。此类应用系统的服务器端主要由静态的 页面和它们之间的超链接构成。用户通过浏览器向w e b 服务器发出一个u r l 请 求,w e b 服务器接收浏览器的请求,向浏览器发送h t m l 页面文件。 2 以数据库为中心的w e b 应用系统。此类系统的服务器主要是由嵌入了程 序的页面和相关的数据库构成,用户通过浏览器向w e b 服务器提交服务请求( 如 数据查询) ,w e b 服务器分析用户输入的数据,执行相应的程序( 通常要访问数据 库) ,根据不同的数据内容将相应的执行结果( 通常是数据库查询的结果集) 以 h t m l 的格式传送给浏览器。 3 以应用逻辑为中心的w e b 应用系统。此类系统的服务端由页面、单独的 应用服务器软件和数据库构成。由于此类系统的应用逻辑比较复杂,所以其通 常由单独的服务器程序来完成。用户通过浏览器提交一些复杂的服务请求( 如网 上交易) ,w e b 服务器进行请求格式转换后将其转发给应用服务器,应用服务器 通过执行其上的应用程序来处理请求,并将结果返回给w e b 服务器,w e b 服务 器根据结果生成页面,并将页面传回给浏览器。 1 2 课题研究现状 结合当前w e b 应用的实际状况,以页面为中心的w e b 应用系统主要是一些 个人主页和一些小公司的网站;以数据库为中心的w 曲应用系统主要是一些大、 中型的网站系统;以应用逻辑为中心的w e b 应用系统主要是一些基于i n t e r n e t 的应用软件系统”1 。 伴随着应用市场要求程度的不断提高和完善,w e b 应用的开发技术也一直在 硕士学位论文第一章绪论 不断的发展。w e b 应用已经从过去的发布相对静态的内容发展到如电子商务等 动态交互信息的处理。电子商务的发展对传统的w 曲技术提出了强有力的挑战。 由于电子商务信息处理的内部逻辑复杂,安全性要求苛刻,商务形式发展变化 快,这就要求w e b 技术提供足够的复杂度和灵活性以适应电子商务的需求。w e b 应用先后出现了c g i ,p h p ,a s p 技术等,这些技术的产生缓解了w e b 编程的 难度。但是它们有一个共同点,就是未能将业务逻辑和界面显示分离开来,也 就是说,w e b 编程往往很难由一个或少量的开发人员来完成且开发难度大,在 应用开发上依然存在着较大的困难。与此同时给软件开发人员带来新的挑战“1 : 1 w e b 技术的先天”缺陷”一基于h t m l 的w 曲页面交互性不强,造成在开发 交互性稍微复杂的用户界面时困难重重。而用户在使用w e b 应用程序时,尤其是 之前使用过c s 软件的用户总会拿过去的体验与之对比,就感到很难满足使用体 验,甚至造成挫折感,进而使得用户满意度下降; 2 由于w e b 技术这种先天”缺陷”,同时带来了开发效率低下的顽症。开发者 在实现交互性复杂的用户界面时,往往付出了极其繁重的、低效而重复的劳动, 进而造成开发周期长、开发成本过高。 于是,长期以来,软件技术研发人员都在如何满足w e b 应用程序的用户体验、 如何提高w e b 表现层开发效率的道路上艰难地探索着。 因此,采用合适的技术架构来实现具有大量复杂逻辑,要求运行稳定,有 完善安全机制,同时具有良好的可扩展性、可重用性和可维护性的w e b 应用二 次开发平台,这样的工作就显得有着十分重要的意义。 1 3 基于m v c 的w e b 应用开发平台的设计 采用传统的手工模式开发,软件的质量、成本、开发周期等都难以控制, 软件开发充满着“风险”。并且随着互联网的普及,越来越多的客户准备把自己 的应用部署在i n t e r n e t 上,但是无论对软件供应商来讲还是对客户来讲,这将是 一个漫长的过程,同样也充满着风险。大多数软件供应商及客户的软件工程师 都是基于传统的开发技术,若想采用先进的技术手段往往是得不偿失,造成软 件的开发周期、质量、成本等都难以控制,致使许多项目不得以失败而告终。 由此看来,软件开发必须脱离传统手工业的单件生产模式,转向构筑在标准化 零部件基础上的高效率、高质量的新型生产方式“,“。 那么,如何既能提高软件的生产效率,又能保障软件产品的质量? 如何减 少重复劳动? 针对这种情况,随着软件复用研究的深入,面向框架( f r a m e w o r k ) 技术日益得到了人们的重视。利用这种技术,应用软件开发人员就可以利用现 硕士学位论文第一章绪论 成的软件组件装配成适用于不同领域、功能各异的应用系统,从而彻底地改变 软件的生产方式,从根本上提高软件生产的效率和质量,提高开发大型应用软 件系统的成功率。 基于上述分析本文设计了基于m v c 的w 曲应用二次开发平台。m v c 开发 模式可以有效的分离数据访问和数据表现,让开发人员可以开发一个可伸缩性 强、便于扩展的控制器,来维护整个流程。并且它是一个优秀的分离表示逻辑 和业务逻辑的设计模式。该平台涵盖了一个应用系统业务开发的全过程,包括 数据访问层、业务组件、业务视图组件、数据安全机制等。该平台采用的基于 组件重用技术,从一定程度上改变了软件的开发方法,减少了重复劳动,使开 发者不必花费重复劳动来重新拓展新的功能,使他们能够像搭积木那样构造自 己的产品。不但为客户提供了一个完整的开发工具,同时还为客户提供了许多 通用组件,使得客户在其基础之上可以快速、高效、高质量地搭建自己的应用 系统。 1 4 论文组织 论文全文共分六章: 第一章绪论。本章主要介绍基于w e b 的应用系统开发的背景和研究现状, 从而提出了基于m v c 的w e b 应用二次开发平台的必要性。 第二章开发平台的相关技术。本章首先对开发平台的设计目标与需求分析 进行详细阐述,然后对平发平台的设计模型进行比较分析,接下来对开发工具 以及开发平台采用的软硬件环境进行说明。 第三章开发平台的设计与实现。本章详细阐述了基于m v c 的w e b 应用二 次开发平台的主要组成部分。首先阐述了开发平台的面向对象思想,以及m v c 设计模式在该平台的应用包括表示控制器部分的应用逻辑组件,表示视图部分 的w e b 用户界面组件,表示模型部分业务逻辑( b u s s i n e s so b j e c t ) 、数据逻辑( d a t a 0 b j e c t ) 。最后对平台中的业务视图组件、业务组件以及数据对象的设计与实现 进行详细论述。 第四章开发平台的关键技术。本章主要介绍了设计与实现开发平台的一些 关键技术及其特点。包括对象一关系映射的基本组件设计与实现、平台中安全机 制设计和分页显示技术。 第五章g s p 认证管理信息系统的应用实现。本章主要介绍了基于m v c 的 w e b 应用二次开发平台的一个w e b 实际应用系统,同时也对应用系统中各相关 模块进行了详细阐述。 硕士学位论文第一章绪论 第六章结束语。本章主要是对所做的设计与开发工作进行了总结,并阐述 了将来进一步的扩展与完善此开发平台需要做的设计与开发工作。 1 5 小结 本章首先介绍了w e b 应用系统的发展阶段以及当前发展现状,针对目前 w e b 应用系统的广泛应用,并分析了目前所存在的问题如开发周期长、生产效 率低、维护代价高且难以扩展。针对上述问题本文设计了基于组件重用技术, m v c 模式相结合的w e b 应用二次开发平台。 硕士学位论文 第二章开发平台的相关技术 第二章开发平台的设计目标与相关技术理论 2 1 开发平台的设计目标与需求分析 在今天构建企业信息系统是向以b s 架构为主流的多层w 曲方向发展【8 川。 一般来说基于b s 架构的应用分为四层:客户层、w e b 层、业务逻辑层和数据 库层。在设计这种多层应用时的一个难点就是在于w e b 层的设计:如何创建结 构合理整洁瘦客户机层。在组合正确的外观和行为、包装表示逻辑的同时,不 能和任何业务逻辑混杂,将用户界面、流程控制和业务逻辑进行分离,要在各 层创建易于阅读、易于维护、易于扩展的代码。这就需要在w e b 层有一个表现 逻辑、业务逻辑和控制逻辑彼此分离的框架设计,使得能够在这个框架之上快 速地开发一个稳定的有良好扩展性、可重用性和可维护性的易于管理的w e b 多 层应用”1 。 传统的可视化应用程序常常围绕着事件驱动的用户界面来组织,数据处理、 程序功能、显示代码等所有的部分完全纠结在一起。在小型的,且用户数量较 少的系统中,功能需求变化小也比较慢,因此这样的代码结构可以获得成功。 但是,在大型的、长期的、分布式的项目中,这样的结构就是很难接受的。因 为有以下几点”1 : ( 1 ) 在较复杂的应用程序中,通常需要多种方式浏览和处理同一份数据; ( 2 ) 如果应用程序需要长期的维护,就需要有一个使维护者容易学习和理解 的结构; ( 3 ) 新的用户界面必须从头开发,因为应用逻辑被淹没在现有用户界面的代 码之中,根本无法复用; ( 4 ) 当出现新的功能需求时,很难找出需要修改或扩展的代码; ( 5 ) 应用程序的移植将非常困难; ( 6 ) 应用程序开发完成之后的维护性较差,因为对任何一个地方的代码进行 修改都会对其它地方造成影响; ( 7 ) 模块化开发的难度大大提高,因为模块之间的依赖过多; ( 8 ) 代码可复用程度大大下降,因为组件之间依赖过多、藕合过强,使得组 件无法在其它环境下应用。 因此,通过将数据模型和访问、操作数据的部分,以及用户界面进行分离, 将使w e b 应用系统的设计结构得到很大的改善。针对应用系统的程序中出现的 硕士学位论文 第二章开发平台的相关技术 上述问题,基于本文设计的基于m v c 模式的w e b 应用的二次开发平台能够达 到如下的设计目标: ( 1 ) 将数据建模、数据显示与用户交互三者分开,使得程序设计的过程更清 晰; ( 2 ) 可以通过多种方式浏览同一份数据: ( 3 ) 允许多个用户浏览同一份数据; ( 4 ) 简化程序扩展时的副作用分析,从而提高系统的可扩展性; ( 5 ) 将应用程序的功能封装在众所周知的a p i 后面,提高系统的可维护性, 减少重复代码; ( 6 ) 将应用程序的功能和数据表现分开,提高可复用程度; ( 7 ) 可以用于部分发布,支持渐近式升级; ( 8 ) 提高系统的灵活性,把数据模型、用户交互和数据显示等部分设计为“可 接插”组件。 基于以上讨论,基于m v c 模式的w e b 应用的二次开发平台的主要组成内容 将包括以下的几个部分: ( 1 ) 控制程序流程的类,这是保证开发平台运行的核心框架; ( 2 ) 实现和执行应用业务逻辑的类,主要作用是操作和更新业务对象; ( 3 ) 代表业务对象的状态类,主要作用是代表系统状态细节的属性,可以是 自包含的并具有持续的状态,或是只在需要的时候刁从数据库获得的数据; ( 4 ) 自定义的通用化组件集合,主要是更好地支持w e b 应用系统的一些通用 化组件。 2 2 开发平台的设计模型选择 通过对w e b 应用开发过程中可选择的设计模型进行分析和比较,本文确定 实现该开发平台的模型是基于m v c 模式,并且在基于该模型的基础上与面向对 象思想相结合去进行设计与实现。 2 2 1 基于组件驱动的w e b 应用模型 实现一个w e b 应用的发布要经历很多个过程,包括原始内容、设计、建立 模型、编程、测试以及最终的发布。设计良好的w e b 应用将是强健的、可靠的 和易于管理的。对w e b 应用的需求是经常改变的,成功的设计可以使开发人员 轻松地、迅速地实现这些改变。 有三种常见的设计方法:结构化、面向对象和基于组件的方法。 硕士学位论文 第二章开发平台的相关技术 1 结构化开发方法 结构化的开发过程包括对软件目标的功能分解,以及使用正确的参数和返 回值来创建函数。首先要分析w e b 应用的需求,确定它的功能,然后以函数的 形式进行建模。在一个w e b 应用中就可能有上千个函数,这些函数能够不受限 制地互相调用,因此在访问某个变量时,很难保证它不是正在被其他函数访问 或修改,所以从一定程度上增加了系统的复杂性。 2 面向对象的开发方法 面向对象方法的目标是要简化复杂软件的开发与维护工作,它提供了一种 更加严格的、同时对于一般应用又足够灵活的结构,从而解决结构化编程时会 出现的大多数问题。对象是提供一组相关功能的实体,通过对象之间相互作用 从而完成一定的任务。面向对象开发方法包括对目标的模块化,以及用类的形 式对数据和函数进行封装。另外,在较大或复杂的系统中,对象的作用域需要 跨越整个系统,这也是十分繁琐的,因此它需要得到额外的补充。在使用面向 对象的开发方法时,用a s p 进行程序的开发还存在着一些没有解决的问题,因 此还需要使用基于组件的开发方法。1 。 3 基于组件的开发方法 组件技术进一步深化了抽象的层次。通过使用组件技术,复杂的系统可以 由任意多的具有结合性的小系统组成。每个组件都十分简单,从而可以设计得 十分完善,如果需要进行较大的改动,甚至可以重写某个组件。组件可以被认 为是实现了一组接口的软件单元。组件的主要特性如下: ( 1 ) 组件具有对象的所有特性:数据是封装的,有定义好的响应,有定义好的 接口; ( 2 ) 组件独立于其他的组件,这样就可以在系统中减少关联的紧密程度: ( 3 ) 基于组件的开发提高了重用性; ( 4 ) 复杂性得到了很好的控制,因此也提高了系统的性能; ( 5 ) 设计、实现和测试过程是独立的,因此可以实现高度开发的并行过程; ( 6 ) 由于组件之间的关联很少,当系统需求发生改变或增强功能时,整个系 统并不会受到太大的影响。 总之,基于组件的开发具有以下优点:易于解决开发方案中的问题;提高 产品的质量;缩短开发的时间;能够轻松地适应变化;降低开发成本;实现代 码的高度重用。 2 2 2m v c 设计模式 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 ( 模型一视图一控制器) ,控制器作为协调模型和视图的控 制器。m v c 设计模式是一种划分系统功能的方法,是为了那些需要同样的数据 提供多个视图的应用程序而设计的。在出现m v c 设计模式以前,这些层通常是 混和在一起的,m v c 设计模式的出现使得层次分明,各个模块相对独立,提高 了灵活性和重用性。 一 m v c 设计模式将应用系统分为三个组成部分“1 : 1 m o d e l 事务逻辑模块,这是整个模型中的核心部分。它表示的是解决方案空间的 真正的逻辑。它采用面向对象的方法,将问题领域的对象抽象为应用程序对象。 在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。 2 v i e w 用户视图模块,这是用户界面部分。与其他w e b 应用程序一样,此模块承 担连接用户和应用程序之间的接口角色。一方面,v i e w 模块将用户的请求传递 给应用程序,触发应用程序对用户请求的处理逻辑;另一方面,v i e w 模块将应 用程序对用户请求的处理结果返回给用户。 3 c o n t r o l l e r 流程控制模块,这是前面两者的接口。控制器根据用户的操作判断所要执 行的业务逻辑,关联模型和视图。 m v c 通过建立一个“订购通知”协议来分离视图和模型。视图必须保证它 的显示正确地反映了模型的状态。一旦模型的数据发生变化,模型将通知相关 的视图,每个视图相应地刷新视图本身。运用这种方法可以为一个模型提供不 同的多个视图表现形式,也能够为一个模型创建新的视图而无需重写模型。 m o d e l ,v i e w 和c o n t r o l l e r 三者之间的关系如图2 1 所示。 图2 - l m v c 模式图 首先客户端的h t t p 请求将会传递给控制器,控制器根据业务逻辑实例化 ( s e t ) 模型,模型将会“通知”视图,告诉视图模型的内容己更新,视图这时候 会准备接收模型传递过来的新内容,并且显示给客户端。 硕士学位论文第二章开发平台的相关技术 m v c 确立了开发人员和网页设计者的角色分工,使得开发人员不必从事繁 琐的网页设计,专心于商业逻辑的开发;同时网页设计者也只需要关注网页设 计,并不关心后台的业务逻辑如何工作。 图2 1 所示的是典型的m v c 模式,在具体的运用中,会根据项目特点而做 适当的改变。同时传统的m v c 模式只是从概念上将视图从流程控制、业务逻辑 独立开来,并定义了相互间作用的机制,使得各个模块的开发相对独立,但是 它没有针对不同视图类型,解决流程控制等对象的统一问题。因此,针对具体 的研究对象,在使用m v c 模式时需要做到相应的适应研究对象。 2 2 3m v c 设计模式的优点 使用m v c 设计模式开发应用可以带来下面这些优点“2 ”1 : 1 设计清晰:在m v c 设计模式下,应用清晰的分为模型、视图、控制器 三部分,三部分分别对应业务逻辑、用户界面、用户请求处理和数据同步。这 种对应功能模块的划分有利于选择重点进行修改,并且不同功能的代码不会混 杂在一起,不会引起代码混乱; 2 模块、设计和代码的可重用性:m v c 作为一个模块化的体系,其中任 何组件或者模块都可以“卸载”和“装载”,只要接口适合而不会影响其他模块。 可重用的组件保护了项目组的技术经验,降低新项目的开发成本,使得项目组 成员更易于沟通; 3 有利于软件工程化管理:选用m v c 设计模式开发项目的项目组根据m v c 设计模式,小组成员分别负责各自部分,譬如上面提到的开发人员与网页设计 者之间的角色分工,这样有利于项目的管理和代码的维护; 2 2 4m v c 模式与三层架构 计算机应用系统的开发,经历了从最早的单机模式,到多终端模式,再到 后来的客户服务模式,发展到今天流行的三层架构模式。所谓三层架构,指的 是针对w e b 应用的特点,将w e b 应用系统分为表现层、业务层和数据层。三层 架构的划分,目的是为了系统的层次划分清晰,易于设计、维护、伸缩和重用, 也易于在一个项目的实施过程中对人员有效地分工。 m v c 设计模式从早期的客户服务应用发展而来,因此,它采用的是两层架 构设计。但由于三层架构是对两层架构的延伸,所以还是可以将m v c 应用于三 层架构的w e b 应用当中。m v c 模式提出的方法论是在设计层面的,它本身并没 有定义具体的实现方法。对于一个具体的软件企业,它需要的是一个可重用的、 能提高开发效率、增强代码质量的软件框架。所以m v c 和三层架构相互结合 9 硕士学位论文 第二章开发平台的相关技术 补充,已经成为w e b 应用开发的重要模式。本文的设计与研究也是基于此模式。 图2 2 给出了m v c 设计模式和三层架构设计之间的关系1 。 用户 c o n t r 0 1 1 e r m o d e l v i e w l - - 一 表现层业务层 数据层 图2 2m v c 设计模式和三层架构之问的关系 2 2 开发工具简介 2 2 1 n e tf r a m e w o r k 概述 n e tf r a m e w o r k 是一种新的计算平台。n e tf r a m e w o r k 具有两个主要组件: 公共语言运行时( c o m m o nl a n g u a g er u n t i m e ,c l r ) 和n e tf r a m e w o r k 类 库。n e tf r a m e w o r k 整体结构如图2 3 所示。公共语言运行时是n e tf r a m e w o r k 的基础,可以将其看作一个在执行时管理代码的代理,它提供核心服务( 如内存、 管理、线程管理和远程处理) ,而且还强制实旋严格的类型安全以及可确保安全 性和可靠性的其他形式的代码准确性。n e tf r a m e w o r k 的另一个主要组件是类 库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用 程序,这些应用程序包括传统的命令行或图形用户界面( g u i ) 应用程序,也包括 基于a s p n e t 所提供的最新应用程序( 如w e b 窗体和x m l ,w e bs e r v i c e s ) “4 1 ”1 。 图2 - 3 n e tf r a m e w o r k 结构图 1 0 硕士学位论文第二章开发平台的相关技术 公共语言运行时( c o m m o nl a n g u a g er u n t i m e ,c l r ) 为n e t 应用程序提供运 行时执行环境,为简化应用程序开发及代码重用提供了高层次的支持,同时, c l r 又提供了大量的运行时服务,包括编译、无用单元回收及内存管理。另外, c l r 围绕通用类型系统构建,而通用类型系统定义了贯穿所有n e t 编程语言的 标准的、面向对象的数据类型,从而使得n e t 能够支持统一的编程模型及多种 编程语言。在c l r 控制下运行的代码称为托管代码。托管代码能够为c l r 提供 运行该代码所需信息,而且在无用时可被垃圾回收器( g a r b a g ec o l l e c t o r ) 自动清 理。非托管代码( 如c o m 组件) 也能够在c l r 下借助能够为非托管组件生成n e t 包装的c o m 服务运行。托管代码也可以调用非托管代码的资源,但是需要程序 开发人员手上添加清理代码,非托管代码使用的资源才能被正确回收。 n e tf r a m e w o r k 类库为开发人员提供了面向对象的、可扩充的类和接口, 以及可用于访问操作系统功能的类型。n e tf r a m e w o r k 通过命名空间组织n e t f r a m e w o r k 类库中的类,这些类可以在任何与n e t 兼容的编程语言中使用。针 对早先w i n d o w s 和c o m + a p i 中类库组织不好、不容易扩充以及类库不统一等 限制,n e tf r a m e w o r k 类库采用了以下方法进行改进“6 ”1 : ( 1 ) 命名空间:把类、接口和类型组织起来,形成具有继承性的命名空间, 这样相关的类被组织在一起,同时又保持了各组类的相对独立性。命名空间中 的名称能直观地反映出其中包含的类的功能。通过用“”连接起来的名称,可 以看出类之间的继承关系,也可以看出类库的组织结构: ( 2 ) 统一的编程框架:n e tf r a m e w o r k 提供了通用类型系统,从而使所有 n e t 编程语言都使用标准的数据类型。这样尽管不同的编程语言之间可能存在 这样或那样的差别,但一般情况下它们都访问相同的类: ( 3 ) 面向对象:n e tf r a m e w o r k 类库提供了可扩充的类,可以使用标准的、 面向对象的方法对这些类进行扩展,比如继承、重载及多态化等。 在n e tf r a m e w o r k 支持多种编程语言在其上进行开发,包括v i s u a l b a s i c n e t 、v i s u a lc + + 、v i s u a lc # n e t 等。其中,c # 是m i c r o s o f t 为n e t f r a m e w o r k 开发的一种新的编程语言,它是为生成运行在n e tf r a m e w o r k 上的、 广泛的企业级应用程序而设计。c # 从m i c r o s o f tc 和m i c r o s o f tc + + 演变而来,它 是一种简单、现代、类型安全和面向对象的语言。c # 为程序员提供了一些非常 重要的特性,比如面向对象编程、图形用户界面组件、异常处理、多线程、多 媒体、文件处理、数据库处理、w e b 服务和分布式计算等。c 撑代码被作为托管 代码编译,这就是说它能够从公共语言运行时的服务中受益。这些服务包括: 语言互操作性、垃圾回收、增强的安全性以及改进的版本支持等。 远程处理是n e tf r a m e w o r k 提供的一项强大的技术,利用它可以使位于任 何位置的应用程序互相通信,这些应用程序可能在同一台计算机上运行,也可 硕士学位论文 第二章开发平台的相关技术 以位于同一局域网中的不同计算机上,或者位于相隔万里的相差巨大的网络 中。n e t 的远程处理服务提供了进程间通信的抽象方法,它大大简化了分布式 对象的访问。在绝大部分的情况下,服务程序通过简单的设置就可以把本地对 象变成可以为远程提供服务的远程对象,而客户端则可以以类似访问本地对象 的方法透明地访问远程对象。远程处理更大的优点在于它能够使位于不同应用 程序域或者进程( 它们使用不同的传输协议、序列化格式、对象生存期方案和对 象创建模式) 中的对象互相通信。 2 2 2a s p n e t 简介 a s p n e t 是新的、功能强大的服务器端技术,用于创建动态w e b 页,是n e t 开发平台核心服务之一。a s e n e t 体系结构能使跨平台、可缩放的应用程序快 速成型。a s r n e t 它提供了用于建立w e bf o r m s 和w e bs e r v i c e s 的高级编程模 式。它通过各种丰富的服务器控件,使w e bf o r m s 被赋予通常与基于w i n d o w s 的窗体更为相关的功能;能更方便部署应用程序,出色地完成w e b 开发的工作。 同时,这种处理服务器端脚本的新方法在i n t e r n e t 上可用来增强作为w e b s e r v i c e s 的应用程序的功能“”1 。 a s e n e t 具有的新特性使w e b 开发的思路发生了根本的改变。在a s e n e t 中,真正加强了i n t e r n e t 的功能是w e bs e r v i c e s 。它和x m l 密切相连,将软件 转化成一种服务。w e bs e r v i c e s 不向客户端应用程序公开服务器端类型,运行操 作被完全隐藏在w e bs e r v i c e s 内部,是一个无态的程序模型,每个输入请求都 能被很好处理。 2 2 3a s p n e t 框架的特点 a s p n e t 作为m i c r o s o f tv i s u a ls t u d i o n e t 的组成部分之一,成为i n t e r n e t 和i n t r a n e t 开发w e b 应用程序的新一代开发工具,逐渐为广大w i n d o w s 程序员 普遍使用。a s p n e t 是建立在公共语言运行库上的编程框架,可用于在服务器 上生成功能强大的w e b 应用程序。它与被解释的传统a s p 不同,先前的几年中, a s p ( a c t i v es e r v e rp a g e ) 技术是用于w e b 应用程序开发的一种主流技术。 i i s ( i n t e r n e ti n f o r m a t i o ns e r v e r ) 和a s p 相继续升级改版,但a s p 在功能上并没有 显著的改变。由于a s p 自身的一些特点,使它并不适于开发规模大、要求复杂 的w e b 应用程序。首先,由于用脚本语言编写的控制逻辑要嵌入到用于显示的 h t m l 标记中,因此a s p 页面的开发效率低,后期维护困难。其次,由于程序 员要自己维护页面之间数据的传递工作,所以开发过程繁琐,对于规模较大的 应用程序开发非常困难。再次,a s p 很难采用面向对象的思路和方法来开发应 硕士学位论文第二章开发平台的相关技术 用程序。因此,出现了a s p n e t 这种新的w e b 应用开发服务“2 ”。 a s p n e t 结构是一个三层系统:u i 层、业务逻辑层和数据层,如图2 - 4 所 示。 业务逻辑层 x 。m l n 务 u i 层 w 。b i x m l b 书 客户端 表单 | | 、h r w e b 浏览器 吣u 釜e b 服务 图2 4a s p n e t 的系统结构模型 u i 层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客 户。业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求 处理结果发给浏览器。它由w e b 表单、x m l 服务、w e b 服务组成。其中w e b 表单是a s p n e t 应用程序的核心所在,它是向客户呈现数据和信息的基础,也 是响应和处理客户与显示的w e b 表单交互生成的信息和数据的基础。数据层是 通过a d o n e t 操纵数据为事务逻辑层提供数据服务,如存储数据操作结果、返 回数据检索结果等。 2 3 开发平台的运行环境 2 3 1 硬件环境 最低配置:6 0 0 m h z p e n t i u m i i i 处理器,1 6 0 m b 需要c d r o m 或d v d r o m 驱动器。开发环境:一台服务器作为数据服务器。5 g b 可用硬盘空间一台高性 能p c 作为w e b 服务器和开发用机。 2 3 2 软件环境 目前a s p 企业的服务器多用的操作系统有l i n u x ,w i n d o w s ,u n i x 等。本 系统采用的平台是w i n d o w s2 0 0 0s e r v e r 。作为i n t e r n e t 强大柱石的l i n u x 是伴随 i n t e r n e t 一同成长壮大的,其各方面性能都是勿庸置疑的,但是由于l i n u x 是自 由软件,没有专门的组织进行售后技术维护,因此其技术维护性比较差;u n i x 硕士学位论文 第二章开发平台的相关技术 以其并发性著称,主要用于后台服务器,一般企业很少采用,而且它的管理界 面也不太友好,可管理性不如w i n d o w s ;w i n d o w s 作为a s p 行业的相对后来者, 己经迅速成为许多a s p 企业和开发商的操作系统选择目标。选择w i n d o w s2 0 0 0 s e r v e r 作为开发平台有以下原因”2 。2 ”: ( 1 ) w i n d o w s2 0 0 0s e r v e r 的可管理性好。可管理性是p c 服务器的标准性能, 也是p c 服务器优于u n i x 服务器之处。w i n d o w s2 0 0 0s e r v e r 不但工作界面与 w i n d o w s 其它操作系统保持一致,而且还与各类基于w i n d o w s 系统的应用软件 兼容。这些都为p c 服务器在可管理性方面提供了极大方便。同时p c 服务器还 为系统提供了大量的管理工具软件,特别是安装软件为管理员安装服务器或扩 容( 增加硬盘、内存等) 服务器所提供的方便就像安装p c 机一样简单; ( 2 ) w i n d o w s2 0 0 0s e r v e r 具有灵活友好的用户界面w i n d o w s2 0 0 0s e r v e r 工作 界面与w i n d o w s 其他操作系统保持一致,为人们提供了灵活和友好的用户界面; ( 3 ) w i n d o w s2 0 0 0s e r v e r 已经获得了相当的市场分额。它是一个商用系统, 其开放性显然不如l i n u x 。但就目前国内计算机用户的使用情况看,微软产品居 于统治地位,而且d o s ,w i n d o w s 又一脉相承,普及率极高; ( 4 ) w i n d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》考前冲刺测试卷及答案详解【各地真题】
- 教师招聘之《幼儿教师招聘》模拟考试高能及1套完整答案详解
- 2025年学历类自考国际企业管理-中国古代文学作品选(二)参考题库含答案解析(5卷)
- 2025年学历类自考医学心理学-当代中国政治制度参考题库含答案解析(5卷)
- 2025年学历类自考医学心理学-外国文学作品选参考题库含答案解析(5卷)
- 高频话题05 中华文化(同步写作)(解析版)
- 2025年学历类自考公共关系学-西方政治制度参考题库含答案解析(5卷)
- 2025年学历类自考儿科护理学(二)-学前儿童科学教育参考题库含答案解析(5卷)
- 教师招聘之《小学教师招聘》测试卷一套附答案详解
- 教师招聘之《幼儿教师招聘》综合提升测试卷及答案详解【新】
- 2025年山西建设工程专业高级职称考试(建筑电气工程)综合试题及答案
- GB/T 19437-2025印刷技术印刷图像的光谱测量和色度计算
- 广东省湛江市《综合能力测试》公务员考试真题含答案
- GB/T 26562-2011自行式坐驾工业车辆踏板的结构与布置踏板的结构与布置原则
- 一年级上学期体育教学工作计划
- 选矿厂安全风险分级管控表
- 我国公共卫生架构与功能课件
- 工作票和操作票样本
- 《舞蹈艺术赏析》课件
- PLC项目实操练习题
- 《国有企业经营者薪酬激励研究(论文)9500字》
评论
0/150
提交评论