(计算机应用技术专业论文)基于net的web应用框架的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于net的web应用框架的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于net的web应用框架的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于net的web应用框架的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于net的web应用框架的设计与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于net的web应用框架的设计与实现.pdf.pdf 免费下载

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

文档简介

信息t 程大学侦 二学位论文 摘要 互联网的普及推动了w 曲应用的迅速发展,w 曲应用框架为构建高性能、可扩展的 w 曲应用提供了强大的支持。n e t 方便快捷等特点使其成为w 曲应用系统开发广泛采用 的工具。但是,在w 曲应用框架方面,n e t 还存在明显不足,主要表现在: 1 ) 表示层与业务层的耦合度高,不能满足复杂多变的用户需求。 2 ) 将访问流程硬编码到页面中,无法定制灵活的页面跳转。 3 ) 将用户状态绑定在表示层,不便于状态的管理和维护。 4 ) 数据访问与业务逻辑混在一起,使数据访问固化于设计时,不便扩展。 针对上述不足,本文设计并实现了基于n e t 的w 曲应用框架w 曲f 删m e w o f l ( 。该框 架降低了w 曲应用系统开发成本,减少了重复工作,缩短了开发周期。 本文所做主要工作如下: n 基于经典w 曲应用三层架构,采用m v c 模式,建立了w 曲应用架构:在表示 层引入视图和控制器;在应用层中增加实体和业务逻辑,以分离数据实体和数据 操作,同时增加数据访问接口,实现数据访问接口一致。 2 ) 根据w 曲应用架构,设计和实现了一个w 曲应用框架,将w 曲应用系统开发过 程中公用的操作抽取出来,提高应用系统的可移植性和可扩展性。 3 ) 运用m v c 模式,在框架中引入视图管理和流程控制模块,嵌入到视图和控制器 之问,用以管理页面流转和用户与系统交互的状态,实现表示与业务逻辑的分离。 4 ) 在框架中实现与数据无关的实体对象生成方式,降低了业务逻辑和数据访问的耦 合度。 5 ) 将w 曲应用框架应用到汽车4 s 店信息管理系统中,实现了系统的灵活定制,提 高了系统的可扩展性。 本文从架构和框架理论出发,设计和实现了基于n e t 的w 曲应用框架。该框架保留 了n e t 平台快速开发等优点,改善了对页面流转和运行状态的管理控制,达到简化w 曲 应用系统开发的目的,并在实际系统应用中的验证了框架的可行性和实用性,为w 曲应 用系统开发提供了新的解决办法。 关键字:框架,模型一视图一控制器模式,对象持久化,软件复用,设计模式 第1 页 信息t 程人学顾i 学位论文 a b s t i a c t 1 1 1 ep o p u l 撕z a t i o no fi n t c 丌l e tp m p d st h e 叩j c kd e v e l o p 哪e n to fw e ba p p l i c a t i o n s f o rt 1 1 e c h 撇c t 甜s t i cf e a t l l r 髂o fc v e l l i c e 锄da 百l i t y ,n e ti sw i d e l yl l s c da sat o o lt od e v e l o pt l l e s y s t 锄so fw e ba p p l i c a t i o n h o w “勰w d l 器t h ea b i l i t yi i l t 1 1 ed e v e l o p m to fw 曲 a p p l i c a t i o n 疗a m c w o r ki sc 0 i l c 锄e d ,n e th a ss o m ed i s a d v a l l t a g e sw h i c hm a yb ec o n c i u d e d 勰 f o l l o w s : 1 ) t h et i 曲t l yc o u p l i n gs t n l c n b e t 、) i ,嘲r e p f e s 锄t a t i o nl a y e ra i l db u s i n e s sl a y e r 啪n o t m e c tt 1 1 ec o m p l 瓿柚dc h 孤g e a b l er c q u i r 啪e 1 1 t so f u s 粥 2 ) t h eb u s i n e s sf l o w sa r ch 盯d c o d c di nw e bp a g e s ,i ti sd i m c u l tt oa c h i c v et h e j 啪p i n gb c t w e e np a g e s 3 ) t 1 l es t a t e so fu s e 幅a r eb o u n dt or e p i e s e n t a t i o nl a y e r 柚di ti s i n c o n v 朗i e n tt ot l l e m a i n t e l l 卸c e 锄dm 柚a g 锄蚰to f u s 盯s t a t 髓 4 ) 伯ed e s i 印一t i m ed a 协a c c 部si sl a c ko f e x t e n s i b i l i 够 t os o l v et h ep r o b l 咖sm e i l t i o n e da b o v e ,t h i sp 印e rp m v i d e saw c ba p p l i c a t i 彻舶m e w o d 【 b 勰e d n e tp l a t f o 舢,w h i c hc 粕b eu s e dt oc l l td o w ns 吣eu s e l 鼯sr c p d i t i s ,r e d u c et h e c 0 s to f w e bs o f t w a r ed e v e l o p 恤锄t 卸ds h o n e l ld e v e l o p i n gt i m e t h em a i nw o r ko f t h i sp a p e ri sl i s t e da sf a l l o w : 1 ) b a s e do nt h ec l 船s i c3 - t i e ra r c l l i t e c t l l r e 锄dm v c p a t t 锄,、v 西a p p l i c a t i 伽a r c l l i t e c t u 陀 i sb u i l t 1 1 1t h i sa r c h i t e c t u r e ,a “e w 卸dao o n t r d l e ri nr 印r 鹤e n t a t i o nl a y e ra r ea d d e d ; s i m i l a r l y a ne n t i t y 孤dab u s i n e s sl o 百ca r ea d d e di nt l l eb u s i n e s sl a y e r ,t l l e ya r eu s e d t od e o o u p l ed a t ae i l “t y 缸胁d a t a 叩e r a t i o n ,;b e s i d e st h a t ,ad a t aa c c 髓si n t c r f h c ei s b u i l to nt 1 1 et o po f d a t aa c c 铝s ,a i l di tc a nb eu s e dt oa c l l i e v el l i l i v e 陪a ld a t aa c c e 鹞w i t h i 孕l o 瑚to f d a t af b n n a t 2 ) a 舶m e w o r ki sd 岱i 印e d 锄d 删i z e db 船e do na 南r e i n 锄t i o n c dw 曲印p l i c a t i 觚洳t e c 佃r e卸di t d r o p so no p e 托t i 伽so u t o ft l l e d e v e l o p m 锄t o fw e b a p p l i c a t i 彻s y s t 锄,百v e sg o o dp o n a b i l i t y 柚d 懿t 锄s i b i l 埘f o rw e ba p p l i c a t i o n 3 )u s i n gm v cp a n 锄,av i e wm a i l a g e r 锄dan o wc o n h d l l 盯a i n 仃o d u c e dt on 蝣 劬m e 伽咄,锄dt l l e ) ,a r c 朋i b e d d c db e t 、v e c l lv i e w s 觚dc o n 缸d l l e 埽,a r eu s e dt om 觚a g e t h en o w so fp a g 鼯a n dt l l es t a t e so fi l l t 盯a c t i o n sb c t w e e n 璐e 墙a n dt h es y s t 锄,t o a c h j c v et h es 印a m t i 曲o f r 印r e s 锄t a t i o na l l db u s i n 髓sl o 百c 4 ) i m p l e m e mt h ew a y t oc r e a c ee n t i t yo b j e c tw h i c hi si n d 唧唰1 d e mo fd a t a a n dd e c o l 巾l e b u s i n 铬sl o g i c 锄dd a t aa c c e s s 5 )d e v e l 叩t l l em l t o i n o b i l e4 ss h o pi n f o 姗a t i m a i l a g e m e n ts y s t 锄i ti se 雒yt ob u i l d 第1 l 页 信息t 程人学硕j 学位论文 c i l s t 咖e 卜n e e d e ds y s t 伽,l e a v eg o o de x t e i l s i b i l i t yt ow e ba p p l i c a t i o n t h i sp a p 盯b e 舀n sw i t ht h eb a s i cc o n c e p t so fs o r w a r ea r c h “e c t l l r e 锄d 厅姗e w o r l ( ,d e s i g n s 卸da c h i c v 髂w 曲a p p l i c a t i o i ib a s e do n n e tp l a t f - o 肋f r o mp r a c t j la p p l i c a t i o n ,i t 啪b e c o n d u d e dt h a t ,t h ef h m e w o r kk e 印st 1 1 em 鲥to fr 印i dd e v e l o p m e i l to f n e t e 1 1 l l 锄c 鹤m e a b i l i t yt oc o n 仇) l 柚dm a i l a g c rt h ep a g en o w s 粕du s e rs t a t e s ,s h o n e l l st h ed e v e l o p m e n tt i m eo f w e ba p p l i c a t i o n t h ec x 砌p l ei n d i c a t 鼯t l l ef e 觞i b i l i t y 柏dp m “c a b i “t yo ft h e 觑m e w o f k h p r o v i d 鹤an e wm e t h o df l o rt 1 1 ed e v d o p m e n to f w e ba p p l i c a t i s y s t 锄 k e yw o r 出:f r 锄e w o r k ,m o d e l v i e w - c o n n r 0 1 l e rp a t t 锄,o b j e c tp e r s i s t 锄c e ,s o n w a r e r e u s e ,d c s i g np a t t e n l 第页 原创性声明 本人声明所提交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表和撰写 过的研究成果,也不包含为获得信息工程大学或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文题目:基王:盟星! 的巡煎廛旦榧袈数遮让皇塞现 学位论文作者签名: 作者指导教师签名: - 日期: 一年年月1 弓日 日期:沙7 年缸月矽日 学位论文版权使用授权书 本人完全了解信息工程大学有关保留、使用学位论文的规定。本人授权信息工程大学 可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允许论文被查阅和借 阅;可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印,缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目: 学位论文作者签 作者指导教师签 信息t 程人学颀 一学位论文 1 1 论文研究的背景及意义 第一章绪论 互联网的广泛应用,日益改变着人们的生活、工作与思维方式,各种基于w 曲的应用 系统应运而生。电子商务、电子政务的应用也越来越广泛。越来越多的应用采用b s 或b s 与c s 共存作为应用程序模式,与传统的c s 结构相比,基于b s 模式的w 曲应用系统具 有以下优点: 1 ) 客户端环境更加开放:前端无需任何配置,仅使用浏览器,就可以让用户透明地 访问各种异构环境中的计算机资源。 2 ) 软件维护和升级更加方便:通常,基于c s 模式的软件维护和升级需要客户端重 新,而基于b ,s 模式的软件系统维护主要是在服务器端完成,客户端无需作任何 修改。 3 ) 用户界面风格统一,使用更加简单,便于用户接受,从而减少对用户培训的人力 及费用支出。 即便如此,基于b ,s 模式的应用软件的开发在当前仍受诸多因素制约,主要表现在: 1 ) 网络协议h r r p 限制b s 程序开发。 基于b s 的应用程序,在网络间采用h 下r p 协议传输数据,由于h t t p 是一个无状态 协议,使应用程序的状态管理变得非常复杂,而且客户端与服务器的交互只能采用“请求 响应”模式使得界面交互变得复杂。 2 ) h 刑l 语言支持功能简单,无法满足企业级应用。 在b s 模式下,无论是多么复杂的应用,最终都只能以h 1 m l 文本的格式部署,而 h t m l 是w 3 c 组织在2 0 世纪9 0 年代制定的标准,其支持功能相对简单,无法满足复杂 多样的w 曲应用需要,难以进行大型企业级的应用开发。 3 ) m o d dl 开发模式已不能满足用户多变的需求 所谓m o d e l1 开发模式,主要是指在b s 开始盛行的时候,软件开发商大多所采用的 开发模型,它采用j s p 、a s p 等技术,并内嵌了业务逻辑或者调用其他组件来完成页面显 示和业务逻辑的处理功能。如图1 1 所示。 第1 页 信息工程大学硕j 学位论文 客户端 服务器 广一一一一一一一一一一一一一一一一一一一 图l 一1m o d e l l 开发模型 但是,随着计算机软件技术的不断发展,用户对于操作界面的友好性、实用性等要求 越来越高。在实际开发过程中,由于用户的需求不断改变,页面的不断更新和完善是难免 的,甚至有些时候需要对原有页面全盘否定,进而开发全新的操作界面。在这种情况下, 原来基于m o d dl 模型的b s 开发方法显然已经不能适应开发要求。因为在这种模式下, 显示页面文件里包含了大量涉及业务逻辑的代码。这样的系统,一方面页面的复用率很低, 相同的页面由于业务逻辑不同最多只能实现代码级的复用:另一方面,当用户对页面的需 求有所变化时,往往需要对核心业务代码进行修改。对于一些大型系统,核心业务代码的 修改有时会影响到整个业务逻辑,导致开发成本的升高、开发效率的降低、系统延迟交付。 更严重的是,需求的多次变更容易造成对核心代码不断修改,容易导致系统瘫痪,使开发 工作无法继续进行。 4 ) 基于a sp n e t 的w 曲应用开发结构不清晰,复用性低。 a s p n e t 是一项具有划时代意义的w 曲开发技术,它独创的w 曲f o n l l 、c o d e - b e h i n d ( 代码隐藏) 技术和大量的服务器端控件使得w 曲开发可以像桌面程序那样通过拖拽组件 实现快速开发。这种快速开发方式对于很多程序员来说,降低了学习的门槛,可以很快地 上手。对于小型的应用来说,a sp n e t 确实提高了开发效率。但是,它毕竟是对a s p 的 升级,仍然是以页面为中心的w 曲编程模型,虽然可以实现快速应用的开发,但是对于设 计和维护复杂的业务逻辑就捉襟见肘了l l 】。比如,对于一些大型企业应用来说,c o d e b e h i n d 技术反而造成了页面与业务逻辑的紧耦合,无法轻松实现流程控制和页面显示的分离,页 面与业务逻辑的复用率低。 为了克服上述问题,人们开始将桌面应用系统中的图形用户界面设计的框架技术( 如 e t - h 、m f c 等) 应用到w 曲应用系统的开发中。 这项工作始于j a v a 开源社区,早期的j 2 e ew 曲开发采用m o d d1 模型,它源自a s p 和p h p 编程模型,以页面为中心,并将表示层和业务逻辑层混合在一起,不利于代码的维 第2 页 信息工程人学硕l 学位论文 护和升级。于是j a v a 丌源社区丌始寻求一种新的设计,以便使w 曲层结构能够像中问层 组件样可维护、可测试和可重用。应用于s m a l l t a l k 的m v c ( m o d e l v i e w c o n t m l l e r ) 设计模式很好地解决了这个问题,实现了表示层与业务逻辑层的分离。于是一些j a v a 开源 社区将m v c 设计模式运用到j a v a w 曲开发中,用以实现了一些请求驱动的w 曲m v c 框 架,比较有名的有:s t n l t s 、w 曲w b r k s 和s p i n g w 曲m v c 等。w 曲m v c 框架简化了j 2 e e w 曲层开发,这样使得大量w 曲应用程序开始采用j 2 e e 平台。为了扭转这种局面,微软 在2 0 0 0 年推出a s p n e t ,由于它采用了桌面程序中著名的事件响应模式,比较利于快速 开发,因此,a s p n e t 迅速得到了w 曲程序员的青睐。 从w 曲应用框架的发展可以看出:w 曲应用框架的主要设计目标是实现页面显示与业 务逻辑的解耦,使w 曲应用程序具有较好的可维护性、扩展性和可重用性,它主要采用 m v c 设计模式,只是在实现方式上略显不同,如,有些采用基于请求的模式,有些采用 基于事件响应的模式,这些方法主要来自成熟的桌面图形程序。 w 曲应用框架解决了w 曲应用系统开发中面临的诸多问题,基于w 曲应用框架的w 曲 应用系统具有如下优点: 1 ) 良好的软件体系结构。 软件体系结构是软件的成功关键,w 曲应用框架一般采用w 曲应用领域己被实践检 验、经过多数该领域专家认同的软件体系结构进行设计、实现,因此,它可以为多数w 曲 应用提供相对安全可靠、可复用的软件体系结构。 2 ) 丰富的技术和经验积累。 通常,w 曲应用框架的设计和实现一般都由具有丰富w 曲应用经验的开发者完成。这 些开发者考虑到了多数具有通用性的问题,并提出了相应的解决方案。同时,w 曲应用框 架也为多种组件支持,从而为w 曲应用开发提供了丰富的技术和经验积累。 3 1 更强的接口管理。 w 曲应用框架一般采用模块化、层次化设计,并为各模块、各层之间的的交互提供统 一的接口,以支持w 曲应用按角色进行并行开发,从而为w 曲应用接口的管理提供了更 好的支持。 复用的基础服务。 w 曲应用框架设计和实现一般建立在对w 曲应用系统共同行为的广泛分析之上,并提 供了大量可供w 曲应用的基础服务,如:请求分派、业务逻辑调用和视图组装等。 从以上分析不难看出:传统w 曲应用开发中存在诸多问题,而w 曲应用框架提供了 种新的思路,它利于w 曲应用易于维护和扩展,从而实现真正的软件复用。 本文的研究目标是:针对n e t 平台下w 曲开发中基于事件响应的m v c 框架不足, 提出了在a sp n e t 的基础上开发新的w 曲应用框架,在保留其支持事件驱动、包含组件 丰富、可供快速开发等特点基础上,实现w 曲页面、页面流转与业务逻辑的分离,从而达 第3 页 信息- t 程大学颂1 :学位论文 到对流程和状态的控制。它弥补了n e t 下w 曲歼发的不足,w e b 应用程序具有可维护性、 可扩展性、可重用性,在丌发中各模块更有利于测试。 1 2 国内外发展现状 自互联网出现以后,围绕着w 曲应用框架的研究就一直没有停止过,特别是在j a v a 平台下,各种各样的w 曲应用框架更是层出不穷。 a p a c h es 虮l t s l 2 1 是】a v a 平台下最流行的w e b 应用框架,它采用的主要技术是s e r v l 吐、 j s p 和c l l s t o m e rt a gl i b r a r y 。s 饥l t s 是由a p a c h e 软件基金开发的一个开源框架。s 仇l t s 框架包含的有:前台控制器、a c t i o n 类与a c t i o n 映射x m l 类、流行于服务器端的j a v a b 啪s 、 表单的校验并支持语言的国际化和用户标识集( 获取服务器状态、创建h 1 m l 、实现业务 逻辑与模板) 。在s 仉l t s 中,通过控制s e n ,l e t 发送请求,a c t i o n 对象控制请求处理,并且 通过使用组件( 如j a v a b e 柚s ) 来实现业务逻辑。s t m t s 通过外部配置实现了完美的分离机 制,避免了链接与在线活动的人为因素。当同时请求同一个s e r v l e t 时,客户端想要获取请 求( 如l o g i n ,a d dt oc a n ,c b e c k o u t ) ,然后s t n l t s 控制器将r e q u e s t 分别发送给a c t i 彻 去处理。尽管a p a d l e 、,e l o c i t y 和一些其他技术也可以实现,但表示层一般用j s p 来实现。 j s f 【3 1 ( j a v as e r v e rf a c c s ) 框架技术是由j a v ac 删n i t yp r o c e 豁( j c p ) 制定的一个 w 曲应用框架标准,具有良好定义的请求处理生命周期和丰富的组件层次结构,旨在推动 基于j a v a 的w 曲用户界面开发的简易性。j s f 就像是a s p n e t 在j a v a 世界的对照物l l j 。 利用j s f 提供的可重用、可扩展、基于组件的用户界面框架,在快速开发工具l 认d 的支 持下,可通过拖放组件的方式对w 曲用户界面进行可视化编辑,将用户界面上的组件与一 个数据源绑定,并将客户端用户界面产生的事件交给服务器端处理,从而大大降低基于j a v a 的w 曲用户界面的开发难度,提高开发效率。 s 嘶n gf m m e w 0 耐4 堤一个服务于所有层面的a p p l i c a t i o nf t a m 州o r k :提供了b 啪的 配置基础,a o p 的支持,j d b c 的提取框架,抽象事务支持等等。它有一个非常显著的特 点是在某个层面上如果你不需要s p r i n g 的支持,你就可以不使用s p r i n g 的a a 踞,只使用 它的某一部分的功能。s 皿n g m v c 的特点就是结构清晰。它的结构为:用户提出请求,由 分发器将输入元素封装成请求对象转给处理单元;处理单元完成运算后,返回结果对象; 结果对象与预先设定的表现层相结合展现给用户。 在n e t 平台下,a sp n e t 本身就是一个基于事件响应的w 曲框架1 5 j ,但是a s p n e t 结构过于单一,层次不够分明,对于一些经验不够丰富的程序员来说,极容易写出比较混 乱、重用性不高、可维护性差、基本不能扩展的应用程序。还有一些w 曲框架是一些开源 组织将自己开发的j a v a w 曲框架移植到n e t 平台下,如n s t n l t s ,s p 血辱n e t ,m a v 撕c k n e t 等,这些框架将原有的j a v a 平台下w 曲应用框架照搬到n e t 平台下,采用页面请求机制, 抛弃了a s b n e t 提供的丰富的w 曲组件和良好的快速开发机制,不能充分地利用微软提 第4 员 信息t 程大学硕l 学位论义 供良好的i d e ( 集成开发环境) 蛐a ls t l l d i o n e t ,可以说对于程序员是一个很大的损失。 目前,国内w e b 应用框架发展主要集中在对国外知名j a v aw 曲应用框架的修改,例 如:国内知名的开源项目j d o nf 舢e w o r k 【6 】,就是对s t n l t s 的修改形成自己的框架。在n e t 平台下,国内还鲜有自己的w e b 应用框架。 s t n l t s 、s 埘n g 都是请求驱动的m v c 框架,较好地分离了显示、控制器和业务逻辑, 控制器能够处理页面的控制逻辑、调用业务对象和管理会话状态,但是在s t n l t s ,s 研n g 下页面和业务逻辑都需要专业的人员编写,页面的编写需要程序员具备h t m l 知识,不能 像a sp n e t 一样可以借助i d e ( i n t e 掣a t i o nd e v e l o p m e n te n v i r o 舳e m 集成开发环境,特指 v i 如a ls t i l d i o n e t ) 拖过拖拽的方式开发w 曲页面。 a s p n e t ,j s f 则属于事件驱动的m v c 框架,服务器组件丰富,可以借助i d e 快速 开发应用程序,但是对于页面的控制逻辑的处理、业务对象的调用和会话状态的管理表现 得就不是很出色了。 1 3 论文的主要内容及组织安排 本文基于软件开发的分层理论,描述了w 曲应用程序的分层架构;通过对m v c 设计 模式、页面流转、关系对象映射等方法的研究,实现了一个在n e t 平台下,刀:发w 曲应 用程序的应用框架,既保持了a sp n e t 快速开发的优点,又能够实现页面流转、状态管理 和。瓜m a p p i n g 等功能。详细说明了框架的功能及实现原理,给出了框架的设计和实现细 节,并且在最后介绍了一个基于框架丌发的w 曲应用系统。 本文的组织结构安排如下: 第一章介绍课题相关背景、国内外研究现状和主要研究内容以及对论文的组织安排。 第二章对相关理论及技术进行了介绍,包括软件复用、设计模式、架构与框架等基本 理论和相关技术。 第三章是本文的核心部分之一,根据软件开发的分层理论,对目前流行的三层架构进 行细化,建立w 曲应用系统的架构模型,并将架构中公用的操作抽象出来设计成框架 w 鄱r 锄e w o 呔,详细描述了框架的设计。 第四章是本文的另一核心章节,本章描述了w 曲应用框架w 曲f r 甜n e w o r k 的具体实现。 详细阐述了可配置的页面流转、状态管理、0 恨m 印p i n g 等功能的实现方式,并且介绍了 如何使用框架快速开发w 曲应用系统。 第五章结合实例描述了基于框架的w 曲应用程序开发过程。 第六章对本文的研究进行了总结,并对所实现的w 曲应用框架进行了展望,针对存在 的问题提出了下一步工作。 第5 页 信息t 程大学硕上学位论文 1 4 论文的创新点 本文针对在n e t 平台下a sp n e t 开发w 曲应用系统的不足,结合一些j a v a 丌源w 曲 应用框架的优点,设计并实现了一个基于n e t 平台的w 曲应用框架。该框架在保留 a s p n e t 以页面为中心、基于事件响应、便于快速开发等优点基础之上,进一步借鉴了 s 仇1 t s 等请求驱动的w 曲应用框架的优点,实现页面流转的控制、业务对象的自动调用和 会话状态的管理。 。 本文的创新点主要有: 1 ) 改进了a s p n e t 对于m v c 模式传统的应用方式。 在传统的m v c 模式实现中加入j 2 e e 核心模式中的p a g cc o n t i | o l l e r ( 页面控制器) 、f r o m c 伽仃o l l e r ( 前端控制器) 等模式,能够集中控制逻辑,减少直接置入视图的代码量。 2 ) 在基于事件响应的基础上实现可配置的页面流转。 a sp n e t 是以页面为中心,依赖v i 蛐a ls t l l d i o n e t ,虽然可以进行可视化页面构造, 实现快速开发,但是造成页面代码和控制逻辑代码都集中在w 曲页面中。a sp n e l 冲没有 提供与具体页面无关的控制器和模型对象。本文在w e b 应用框架中实现对页面的管理,通 过配置文件实现页面的流转。 3 ) 采用关系数据库管理状态。 一 本文在w 曲应用框架中采用将状态持久化到关系数据库中的方式,实现了对每个用户 访问状态的保存和控制。 4 ) 实现与数据无关的实体对象生成方式。 传统的数据实体通过类的属性和数据一一映射生成,虽然在一定程度上解决了面向对 象技术与关系数据库技术的阻抗失配l ”,但是并不能完全解决问题。数据库结构发生变化 必将引起实体类的更改,甚至是业务逻辑的更改。本文在w 西应用框架中采用a d 0 n e t 的 核心组件d a t a s e t 加l 文件的方式实现数据无关的实体对象生成方式。 第6 页 信息工程人学硕士学位论文 2 1 软件复用 第二章相关技术 软件复用是指重复使用“为了复用目的而设计的软件”的过型耵。软件复用是一个涉 及到技术、方法学、管理和文化等多个方面的复杂问题。除了同常隐含发生的对专业知识 和经验的复用外,最典型的复用活动表现为借鉴、理解、修改和集装各种不同抽象层次( 从 产品的概念、系统模型和规约到程序源码甚至目标码) 、不同粒度( 从系统架构、框架、 类到代码片段) 、不同形式( 黑盒构造块、生成器、模版、设计模式等) 的可复用软件构 件来构造新系统和实现系统演化的过程。 根据复用对象的不同,可以将复用划分为产品复用和过程复用两大类。产品复用是指 复用已有的软件构件,通过集成、组装得到新系统;过程复用是指复用已有的软件开发过 程,使用可复用的应用生成器来自动或半自动地生成所需系统。 软件复用有三个基本问题:一是必须有可以复用的对象:二是所复用的对象必须是有 用的;三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关过程:可复 用软件( 构件) 的开发( d e 、,e l o p m 锄t6 wr 即) 和基于可复用软件( 构件) 的应用系统 ( 继承和组装) ( d e v e i o p l l l e n t w i t l l r s e ) 。解决好这几方面的问题才能实现真正成功的软 件复用。 依据信息的复用方式,可以将软件复用分为两种:黑盒( b l a c k b o x ) 复用和白盒 ( w h i t e b o x ) 复用。黑盒复用指对已有的构件不需作任何修改,直接进行复用,这是最理 想的复用方式;白盒复用指已有构件并不能完全符合用户需求,需要根据用户需求进行适 应性修改后才可使用。目前,在大多数应用的组装过程中,构件的适应性修改是必需的。 2 1 1 软件复用的形式 软件复用的形式( 或者手段) 有很多,主要有以下几种【9 】: 1 ) 源代码级复用。包括模块、类、甚至某一段源代码的复用,这是最基本的软件复 用形式。 2 ) 二进制形式的复用。即在软件系统中复用己经编译好的功能模块,例如组件复用。 3 ) 组装式复用。即将好几个可执行的应用程序集成在一起的复用,每一个可执行应 用程序既可以集成到这个系统中,又可以集成到另一个系统中,例如工作流管理系统中管 理的业务程序可以组装到不同的工作流程中。 4 ) 分析级别的复用。对于相似的系统,一个系统的分析可以借鉴、复用另一个系统 的分析结果,例如不同公司所采用的e r p 系统( e n t e i p r i s er e s o u r c ep l a 彻i n g 企业资源计 第7 页 信息t 程大学硕l 学位论文 划系统) 就可以在分析级别上进行复用。 5 ) 设计级别的复用。对于框架相似的系统,可以在设计级别上进行复用,例如不同 的数据库访问系统,可以采用相似的设计策略。 6 ) 软件文档的复用。即为一个系统所编写的文档,经过修改后也可以作为相似的系 统的文档。 2 1 2 流行的软件复用技术 当前,研究较多的复用技术包括:库函数、模板、面向对象、设计模式、构件、框架 和架构,这些技术有些己经相当成熟,有些还在继续发展。 1 ) 库函数。库函数是很早的软件复用技术。很多的编程语言为了增强自身的功能, 都提供了大量的库函数。对于库函数的使用者,只要知道库函数的名称,返回值的类型, 函数参数和函数功能就可以对其进行调用。 2 ) 面向对象技术。面向对象技术通过方法、消息、类、继承、封装、和实例等机制 构造软件系统,并为软件复用提供强有力的支持。面向对象技术已经成为当今最有效的、 最先进的软件开发方法。与库函数相对应,很多面向对象语言提供易于使用的类库,如 m f c ,j f c 。 3 ) 设计模式。设计模式作为复用设计信息中的一种技术,在面向对象技术中越来越 流行。设计模式描述不断重复发生的问题,为开发者所共享,并可以用共同的语言来描述。 4 ) 模板。模板相当于工业生产中的“模具”,各种各样的模板( 如文档模板、网页模 板等) ,利用这些模板可以比较快速的建立对应的软件产品。模板把不变的封装在内部, 对可能变化的部分提供了通用接口,由使用者来对这些接口进行设定或者实现。 5 ) 构件。软件复用的核心技术就是软件构件技术,目前对于软件复用技术的研究热 点和重点就是基于构件的软件复用技术的研究。 6 ) 架构。架构与体系结构同义理解,是系统的原型或者早期的实现,属于高层次的 系统整体组织,是关于特定技术如何合作组成一个特定系统的解释。 7 ) 框架。介于构件和构架之问的概念,三者的区别在于:构件是基础,是基于构件 开发的最小单元;框架和构架包含多个构件;一个系统可以由多个框架支撑,但只对应一 个架构;框架和构架复用都包括代码复用和分析设计复用,但构件复用的抽象层次更高。 本文首先抽象出w 曲应用程序的多层架构,并采用设计模式将多层架构中通用的操作 设计为一个框架,使得基于此框架开发的w 曲应用程序结构清晰、层次分明。这样,既降 低了各层之问的耦合度,又便于应用程序的维护、扩展和复用。 第8 页 信息t 程人学硕十学位论文 2 2 模式与设计模式 随着面向对象技术的只趋成熟,低层次复用( 如类库、函数库等) 己经明显不适合大 型软件生产的需求。为了最大限度的提高软件的复用性,不仅要重用代码,而且要重用相 似的分析和体系结构设计,模式和面向对象框架的研究与开发也就应运而生了。模式最早 提出于上世纪7 0 年代,c “s t o p h e r a l e x a i l d e r 记录了土木工程和建筑学中的一些模式1 1 0 】【”】。 随后,软件开发社区从他的作品中汲取了“模式”的观念,e r i c hg 猢a 等人对软件开发 设计中的模式进行了全面总结,提出2 3 种设计模式,对软件开发产生了深远影响。 2 2 1 模式与设计模式的定义 模式是人们用来讨论问题和解决方案的【1 3 】。有了模式,就能记录那些己知的、反复出 现的问题,以及在特定上下文中对它的解决方案。关于模式和设计模式,很多专家都给出 了自己的定义,从不同侧面进行阐述。 c s t o p h e r a l e x a i l d e r 将模式定义为一个法则,它由三个部分组成:一种特定的上下文, 一个问题和一个解决方案之间的关系】。尽管a l e x 粕d e r 所指的是城市和建筑模式,但他 的思想也同样适用于面向对象设计。 模式领域的著名专家r i c h a r dg a b r i e l 将a l c x 锄d e r 的定义改写为一个适用于软件业的 版本:每个模式都是一个法则,由三部分组成。它表现的是一种特定的上下文,一个特定 的、在该上下文中反复出现的约束系统,以及一种能够引导这些约束自身解决的软件构造 这三者之间的关系【1 4 】。 e r i c hg a i 砌a 等“四人组”( g 锄go f f o w ,g o f ) 并没有区别模式与设计模式,只是 指出将面向对象软件的设计经验作为设计模式记录下来【1 2 】,并给出了设计模式的定义:设 计模式是对那些被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述【j 2 】。 本文认为设计模式是模式的一种类型,关于模式与设计模式的关系在下一小节中进行 了阐述。 2 2 2 模式的分类 g o f 对模式和设计模式的阐述在软件领域产生了影响深远,但由于g o f 并没有将模式 与设计模式进行严格的区分,所以很多时候在软件领域讲到模式就是特指设计模式。从g o f 对设计模式的定义中可以看出设计模式所涉及的场景范围比模式要小得多。除了设计模式 外,还有很多其它种类的软件模式。例如在参考文献【1 4 】中m 枷nf o w l c r 关于分析模式的 论述中指出:分析模式提供了出现在包括医疗、财务、贸易等领域的一个模式目录,是用 于系统领域建模的模式,其目的是告诉你如何对某种常见的应用领域问题建模。 第9 页 信息t 程大学硕i :学位论文 模式这个术语通常用来指在软件架构,设计和实现方面的任何模式,根据这三种概念 层次可以将模式分为架构模式( a r c l l i t e c t i l r a lp a t t c n l s ) 、设计模式( d c s i 鲈p a n e f n s ) 和惯 用法( 1 d i o m s ,有时也称为编码模式) ,分别定义如下i l5 】: 架构模式:表达了软件系统的基本组织结构,它提供了一套预定义的子系统,详细说 明了它们的责任,包括了组织子系统问关系的规则和指导原则。 设计模式:描述了解决特定背景下一般设计问题的通信构件的结构。 惯用法:针对编程语言的底层模式,描述了怎样用某种特定编程语言实现构件的某些 方面或构件问的关系。 这三种模式的区别在于它们处于不同的抽象层次。架构模式是高层的抽象,关心的是 大规模的构件或子系统,系统的全局特性和机制,影响一个软件系统的所有核心结构和组 织。设计模式具有中等规模的粒度,它充实了子系统的结构和行为以及它们之间的关系, 并不影响整个系统的结构,但是定义了子系统和构件的微小架构。惯用法是特定的范例或 特定的编程技术,完善了构件的结构或行为的低层的内部或外部的细节。 r o b e f tm a n i n 和d i r l ( r i c h l e 对设计模式有类似的划分【,但他们是从分析、设计和 实现这三个方面划分,分别为概念模式( c c 印t l l a lp a t t 锄s ) 、设计模式( d e s i 弘p a t 自e m s ) 和编程模式( p m 酉a m m i n gp a t t e r n s ) 。 2 2 3 设计模式 e f i c hg a m m a 等“四人组”介绍了2 3 个经典的设计模式【1 2 】,并从两个角度来组织设计 模式:1 ) 目的准则。即模式是用来完成什么工作的。模式依据其目的可分为创建型 ( c 删i o n a l ) 、结构型( s t n l c t u r a l ) 、或行为型( b e h a v i o r a l ) 三种。创建型模式与对象的 创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配 职责进行描述。2 ) 范围准则。即指定模式主要是用于类还是用于对象。类模式处理类和 子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。对象模 式处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。具体如表2 1 所 示。 第1 0 页 信息1 = 程人学琐l 二学位论文 表2 一l 设计模式空间 类型 范围 创建型 结构型行为型 f a c t o r ym 岫o d a d 印t e ri n t e r p r e t e r a b s t m c tf a c t o r y b f i d g e t e m p l a t em c t h o d b u i l d e r c o m p o s i t e c h a i no f r 唧o n s i b i l i t y p m t o t y l 圮 d e c o r a t o rc o m m a n d 模 s i 孵e t o n f a c a d ei t e r a t e f l y w e i 出 m e d i a t o r 式 m 锄e n t o p r o x y o b s e i v e r s t a t e s t r a t e g y s i t o r 设计模式是用来协助框架设计的一种广为接受的技术,它使框架设计更可能获得高层 的代码复用和设计复用,以及有利于提高框架的易理解性和可靠性。成熟的框架通常使用 了多种设计模式,因为设计模式有助于获得无须重新设计就可适用于多种应用的框架体系 结构。设计模式可以描述框架的目的、怎样使用框架、框架的详细设计。r a l p he j o l l l i s 用一个等式表示框架和设计模式之问的关系:框架= 设计模式+ 组件【。框架主要由一系列 设计模式和类( 包括抽象类和具体类) 组成。 2 3 框架 本节对框架的定义、分类、优点进行讲解,并介绍了基于框架的应用开发过程。 2 3 1 框架的定义 目前关于框架的定义较多,尚未形

温馨提示

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

最新文档

评论

0/150

提交评论