




已阅读5页,还剩65页未读, 继续免费阅读
(通信与信息系统专业论文)基于框架思想的项目开发方法的研究和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于框架思想的项目开发方法的研究和实现 摘要 当前,随着项目开发规模的不断扩大,使用框架模式已成为进行软件生产的 大趋势。提高设计复用率和代码复用率,已成为当前软件在面向结构、面向过程、 面向对象的发展过程中的重要步骤。现在以j a v a2e n t e r p r i s ee d i t i o n ( j 2 e e ) 为代表的框架技术已日趋完善并得到广泛应用,一系列基于框架思想的项目开发 工具不断产生,越来越多的开发人员在当代软件开发模式中,开始使用各种应用 框架。框架为应用程序提供了预备的软件构架和相关的软件包,它大大提高了应 用程序的开发速度和效率。现在,当开发人员开始一个新的项目的时候,首先考 虑的问题不再是“我们是否需要一个框架”,而是“我们应该选用什么样的框 架”。 框架开发的含义很简单,就是为了适应大型可扩展项目,通过提供一个框架, 使开发人员可以把精力集中在如何解决实际业务的问题上。而使大多数开发人员 能够忽略项目中各个阶段的开发技术,单一地并深入地考虑项目中的某一点。由 于框架的使用,减少了开发的代码量,重用代码大大增加,软件生产的效率和质 量都得到提高。并且框架是经过了深入检验的部分,它具有相当高的可靠性,它 同时致力于增加项目中模块的颗粒度,因此,基于框架平台编写的程序,可将大 的模块尽量分成小的部分,这就可以缩短开发周期,为项目的早日投入使用,提 供了很大的帮助。 本文对于现有w e b 系的流行框架s t r u t s 进行分析后,了解了他的内部结构和使 用方式,得出了该框架的性能的优越性和如何实现框架的m v c 模型,将该框架模 式引申到j a v a 桌面系统,加以创新,重新设计,通过分析这类程序的基本需求, 和共通的技术点,并借助现有框架模型的优势,和软件设计模式,并实现了一个 基于j a v a 桌面系统的,具有自己特点的,并符合客户需求的框架,作为整个具体 项目的基盘。通过本次试验,得出使用框架必要性,和他带了的巨大经济效益, 普及框架技术提供了极大的便利,具有广阔的实用价值。 关键字:框架技术框架模式j a v a 桌面系统m v c 模型软件设计模式 h 查i ! 查兰堡主兰竺堕塞生! ! ! l t h er e s e a r c ha n da c t u a l i z a t i o no ft h ep r o j e c td e v e l o p m e n t m e t h o db a s e do i lf r a m e w o r k a b s t r a c t a tp m s e m ,a l o n gw i t ht h ep r o j e c td e v e l o p m e ms c a l et u r n e dl a r g e ra n dl a r g e r ,t h e f o r m w o r km o d e lh a sa l r e a d yb e c o m eac o m n l o nw a yt ot h es o f t w a r ep r o d u c t i o n a st o p r o m o t i n gt h er a t i oo fr e u s ed e s i g na n ds o u r c ec o d e ,b e c o m eai m p o r t a n ts t e pi nt h e d e v e l o p m e n to fc o n s t r u c to r i e n t e d ,p r o c e d u r eo r i e n t e d ,o b j e c to r i e n t e d n o w , t h e f f a m e w o r kt e c h n i q u er e p r e s e n t e db yj a v a2e n t e r p r i s ee d i t i o n ( j 2 e e ) ,h a sb e e n d e v e l o p e dm o r ep e r f e c t l ya n du s e di nw i d e rr a n g i n g as e r i e so fp r o j e c td e v e l o p m e n t t o o l sg e n e r a t e d ,w h i c hb a s i n go nt h ef r a m e w o r kt e c h n i q u e m o r ea n dm o r e p r o g r a m m e rs t a r t e dt o u s ef r a m e w o r kt e c h n i q u ei nm o d e ms o f t w a r ee n g i n e e r i n g f r a r n e w o r kp r o v i d e dt h ep r e p a r i n gs o f t w a r e b u i l d i n gm o d e la n dc o n s i d e r a t es o f t w a r e p a c k a g e ,w h i c hc a ng a i nd e v e l o p m e n ts p e e da n dr a t er a p i d l yf o rt h eu t i l i z i n gp r o g r a m n o w , w h e nw es t a r tan e wp r o j e c t 。w h a tw ef a c e di sn o t “w h e t h e rw en e e d a f r a m e w o r k ”b u t “w h a tk i n do f t h ef r a m e w o r ks h a l lb ec h o s e n ” f r a m e w o r kd e v e l o p m e n tg o ta ne a s ym e a n i n g ,i tw a sf i x i n gt ol a r g es c a l ea n d e x t e n d a b l ep r o j e c tt h a tp r o g r a m m e ru s et h ep r o v i d i n gf r a m e w o r kt ol i m i tt h e i rp o i n t s i nc o m m o nb u s i n e s sl o g i c a lp r o b l e m t h i sm a d eab i gc o m m o np a r to ft h ep r o j e c t ,a n d t h e np r o g r a m m e rc a n i g n o r e t h e d e v e l o p m e n tt e c h n i q u e i nw h o l ep a r t ,o n l y c o n c e n t r a t i n go nc o n c e r n e dp a r ti nap r o j e c t d u et ou s i n gt h ef r a m e w o r k ,t h es o u r c e c o d ei nd e v e i o p m e n tw s sr e d u c e d ,m u s e dc o d ei n c r e a s e d ,t h er a t ea n dq u a l i t yo ft h e s o f t w a r ee n g i n e e r i n gw a sp r o m o t e d f r a m e w o r ki st h eh o m ec h e e k e dp a r ti np r o j e c t , h a dh i 吐r e l i a b i l i t y i ta l s ob ea b l et op a r t i t i o nt h ep r o j e c ti ns m a l l e rm o d u l e ,s ot h e p r o j e c tm o d u l eb a s i n go nf r a m e w o r kc a nb es e p a r a t e da ss m a l la si tw o u l db e t o r e d u c ed e v e l o p m e n tp e d o da n dg i v eah e l pt oe a r l yu s et h ep r o j e c ti nr e a l i t y i n t h i sp a p e r ,a f t e rw et a l k i n ga b o u ts t r t l | s t h ep o p u l a rf r a m e w o r ki nw e b d e v e l o p m e n t ,w eg o ti t sc o n f i g u r a t i o na n du s i n gw a y s ,t h e n ,w ek n o wi t sp e r f e c t p e r f o r m a n c ea n dh o wt ou s et h em v cm o d e j i nm a k i n gaf r a m e w o r k ,f u r t h e rm o r e ,w eu s e d t h i sf r a m e w o r km o d e li nj a v ad e s k - t o ps y s t e m a d df l e wc r e a t e di ni t ,r e d e s i g n e dt l l i s f r a m e w o r k ,a tl a s t , b r o u g h ta b o u taf t a l t l e w o r kb a s i n go nj a v ad e s k - t o ps y s t e m t h en e w f r a m e w o r kp o s s e s s e dj t so w nc h a r a c t e r i s t i c s 。i tc o m p l i e sw i t ht h e r e q u e s to fc u s t o m e r s , b e c o m et h eb a s e m e n to fw h o l ep r o j e c t f r o mt h i s e x p e r i m e n t ,w eg o t t h en e c e s s i t yo f f r f l n l e w o r k ,a n dt h ea m a z i n ge c o n o m i cb e n e f i t sb r o u g h tt ou s p o p u l a r i z e dt h ef f a m e w o r k t e c h n i q u ew i l lp r o v i d ec o n v e n i e n tt os o f t w a r ed e v e l o p m e n t ,s oi tg o tw i d e l yu s i n gp r o s p e c t k e yw o r d s :f r a m e w o r kt e c h n i q u e f r a m e w o r km o d e lj a v ad e s k t o ps y s t e m m v cm o d e l s o f t w a r ed e s i g np a u e r n i i i 独创性声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中取 得的研究成果除加以标注和致谢的地方外,不包含其他人己经发表或 撰写过的研究成果,也不包括本人为获得其他学位而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确 的说明并表示谢意。 学位论文作者签名:关商 日期:弘口s 1 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位 论文的规定:即学校有权保留并向国家有关部门或机构送交论文的复 印件和磁盘,允许论文被查阅和借阅。本人授权东北大学可以将学位 论文的全部或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师同意网上交流,请在下方签名;否则视为不同意。) 学位论文作者签名: 签字日期: 导师签名: 签字日期: 东北丈学硕士学位论文 框架的踪进 第一章框架的综述 1 1 现阶段基于j a v a 业务应用面临的问题 软件工程开发经历了面向结构、面向过程、面向对象的发展过程。其中最主 要的目标是提高代码的重用性和可靠性,软件构件化是2 l 世纪软件工业发展的大 趋势。工业化的软件复用已经从通用类库( 面向过程) 进化到了面向对象的应用 框架。目前,绝大多数的新应用将主要建立在如软件构件和应用框架这类构造 块之上;应用开发的未来就在于提供一开放体系结构,以方便构件的选择、组 装和集成。框架的重用已成为软件生产中最有效的重用方式之 。”。 1 1 1 大规模项目人员的可募集性和成本控制 通常的桌面业务应用开发没有具体的流程模块的划分仅有功能模块或者函 数库的划分,开发人员要独自处理从最初的画面摆放,画面控件事件的处理,检 索s q l 文的构成,对数据库操作等等,这一系列的动作。所以要求开发者要完全 熟悉所有各个阶段的开发技术。为了保证各个部分的开发品质,对开发者技术水 平要求很高,但是大规模开发中如何找到这么多的高技术的开发者从开发体制 上是个问题,另外高水平也意味着高成本。把新手培养成可以开发的程度也需要 较长的时间,对于目前的项目开发周期向更短开发费用降低的趋势来讲,是不 符合实际的。 1 1 2 品质的可靠性 随着桌面业务应用规模的变大,项目的可管理性和逻辑的正确性要急剧下降, 即使采用单体测试和结合测试,并且导入额外的模块调用定义和开发规约等等手 段也不能保证开发的品质。 开发的人员比较多,经验和水平参差不齐,没有框架划分的开发,风险性和 品质的可靠性是很难预计的。 品质的可靠性是很雉预计的。 东北大学硕士学位论文 框架的综述 1 1 3 开发的可并行性 目前的项目开发周期相比较以前大幅度变短,原因是客户要求对导入的系统能 够尽可能快地反映当前的业务变化,从而争取主动,获得最大的效益。以往的开 发方法需要一个开发者将一个业务逻辑从画面到数据库的流程全部开发,需要较 长的时间周期,从而带来一个后果是,项目的最短开发周期取决于最大的业务逻 辑的开发周期。虽然可以通过对瓶颈的业务逻辑增加开发人员的方法,但是开发 粒度的不可再分性的影响,究竟会有多大的效果很难预计。 1 1 4 项目伸缩性,后期维护和扩充的不可预见性 项目在开发或者使用中的时候,经常会有变更的要求,如果没有一个统一的 开发模式,画面处理和业务逻辑处理,以及数据库操作的做成方法都依赖于开发 者自身的习惯,这些变更对项目的整体影响很难有一个正确的判断,而且也不一 定能够满足变更的要求。1 2 而且对于后期的维护和升级来说,经常是由非开发者本人来进行,这样能否 保证原有的程序的正确性和可接受的对应时间就变成了一个关键的问题。 1 2 框架应用在当今开发领域的现状 当今的应用程序开发主要有两类,一类是基于w e b 的应用开发,以j s p 、a s p 、 p h p 、c g i 开发语言为代表:另一类为传统应用程序开发,主要以v c 、v b ,j a v a 等 为代表。但是这两类主要的应用程序却不约而同地将未来的开发模式定位于框架 ( f r a m e w o r k ) ,j 2 e e 技术的飞速发展,各种技术框架和设计模式层出不穷,现在 最流行的j s p 开发框架的s t r u t s 和v c 一直保持的m v c 结构,而且微软的n e t 将 要全面基于框架结构。 1 2 1 微软n e t 框架简介 v i s u a l s t u d i o n e t 是m i c r o s o f t 公司推出的具有战略性发展的新一代开发平 台。v i s u a ls t u d i o n e t 框架将m i c r o s o 矗公司的所有编程语言的开发环境统一起来, 2 东北大学硕士学位论文 框架的综述 并且可以创建、配置和运行w e b 服务以及w i n d o w s 平台的应用。在n e t 框架中, 所有的编程语言,从高层的j a v a s c r i p t 到低层的c 抖语言,一律是等同的,它们 都将生成托管代码,并且可以一次编写,随处运行。n e t 框架还可以使不同的 语言之间进行交互,即一种语言可以使用另一种语言所编写的组件。还可以从另 一种语言编写的类派生新类,或创建实例。更令人感到振奋的是,它可以利用互 联网和企业内部网,访问整个网络上的w e b 服务。1 3 】 n e t 框架是创建、部署和运行w e b 服务及其他应用程序的一个环境。它包 括三个主要部分:公共语言运行时( e l r ) 、框架类和a s e n e t 。 公共语言运行时( c l r ) 是n e t 框架应用程序的执行引擎。它提供许多服 务,包括:代码管理( 加载和执行) 、应用程序内存隔离、类型安全验证、i l 到 本机代码的转换、元数据( 增强的类型信息) 访问、为托管对象管理内存、强制 代码访问安全、异常处理,包括跨语言异常、托管代码、c o m 对象和现有d l l ( 非托管代码和数据) 之间的互操作、自动进行对象布局、对开发人员服务( 配 置、调试等) 的支持。 n e t 框架类也即s y s t e m 类,它提供了大量在构造a s e n e t 应用( 以及非 a s e n e t 应用时) 可以利用的核心功能。s y s t e m 类可在所有n e t 语言中使用, 所以可以把s y s t e m 类看成是一种n e t 的w i n d o w s a p l 。与w i n d o w s a p i 不同的 是,s y s t e m 类提供了类似于c o m 的高级接口,相当容易使用。 正如所有其他n e t 类,s y s t e m 类也以程序集( a s s e m b l y ) 的形式存在。n e t 中的程序集类似于c o m 、d l l 或者e x e 文件它是保存类代码的执行文件。 例如,m a t h 类( 包括其属性和方法定义) 位于m s e o r l i b d l l 程序集。n e t 有两种 类型的程序集私有程序集,共享程序集。私有程序集是属于单个应用的程序 集,通常位于应用的b i n 目录:与此相反,共享程序集可以用于多个应用,而且 它应该由程序集的创建者装入到全局程序集缓冲区( 相当于n e t 中的系统注册 表) 。n e ts y s t e m 类都属于共享程序集。 n e t 框架可以创建优秀的w e b 应用程序。但它也可以创建现在的各种 应用程序。与当前创建应用程序的方式相比,n e t 在编写任何w i n d o w s 软件( 使 用a t l c o m 、m f c 、m i c r o s o f t v i s u a lb a s i c 或标准m i c r o s o f t w i n 3 2 ) 方 面都具有更大的优势。 n e t 框架有两个主要组件:公共语言运行库和n e tf r a m e w o r k 精简版 查韭盔堂堕主兰堡鲨塞 堡垄些堕堕 类库。 1 2 2j 2 e e 平台实现简介 在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通 用企业需求模块,这些模块如果每次再开发中都由开发人员来完成的话,将会造 成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服 务。这些服务性的软件系列统称为中间件。在上面的需求基础之上,许多公司都 开发了自己的中间件产品,但其与用户的沟通都各有不同,从而导致用户无法将 各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的 概念。其实j 2 e e 就是基于j a 、,a 技术的一系列标准。中间件的解释为中间件处在 操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操 作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该 应用程序在解决问题上的能力。 4 1 j 2 e e ,开发企业应用很好的一项技术或者说平台。它的内涵非常丰富,使用 人群也非常庞大,有很多最佳实践,优秀的工具,优秀的a p i 和f r a m e w o r k 。事 实证明,j 2 e e 确实可以为复杂的企业应用提供强大的技术保障。 j 2 e e 平台提供了一个基于组件的方法来实现多层的软件框架。可以使用这个 构架来建模通常表达业务应用程序特征的元素,组成构架的组件在一个被称为容 器的运行环境中执行。容器提供生命周期管理、分布式、和安全之类的基础设施 类的服务。在基于w e b 的瘦客户端,大多数应用程序驻留在应用程序服务器上 运行的两个容器中,j 2 e e 应用程序服务器提供了w e b 容器和e j b 容器。这样的 两个环境提供了建立事务性业务应用程序的良好基础。 j 2 e e 框架中的容器和组建被分成三层。这些层的定义如下: 客户层w e b 浏览器或j a v a 应用程序的客户端。 中间层包括w e b 容器和e j b 容器,中间层包括应用程序的业务逻辑并提供 客户层所用的服务。 企业信息系统层 企业信息框架的其余部分,包括数据库和现有应用程序。 j 2 e e 平台使用了个多层的分布式应用程序模型,应用程序的逻辑根据其实 现的,北风装到组件中,组成j 2 e e 应用程序的大量应用程序组件根据其所处的 4 东北大学硕士学位论文 框架的综述 层被安装到不同的机器中,图1 1 描述了一个分布式j 2 e e 的应用程序,他分为四 层,他也可分为三层,除去w e b 层,由客户端和运行在j 2 e e 服务器的业务逻辑 层通信。1 5 1 ( 1 ) 运行在客户端机器的客户层组件 f 2 ) 运行在j 2 e e 服务器中的w e b 层组件 ( 3 ) 运行在j 2 e e 服务器中的业务逻辑层组件 ( 4 ) 运行在e i s 服务器中的企业信息系统( e i s ) 层软件 客户层 l 。e b 层 l 商业逻辑层 企业信息系 竞j t 客户机 i j 2 髓服务器 l e i s 服务器 图1 1多层结构的应用程序 f i g 1 1a p p l i c a t i o no f m u l t i l a y e rc o n f i g u r a t i o n 1 3 框架思想在w e b 系的成功应用( j a k a r t as t r u t s ) 为什么越来越多的开发平台和开发语言的标准愈来愈趋向接受框架结构和开 发思想,采用框架结构会带来哪些好处,如何在一定范围内解决现阶段基于j a v a 桌面业务应用面临的问题。首先,通过s t r u t s 的c 机制和其流程,简略的描述 基于该应用的开发模式,说明以s t r u t s 为工具进行的大规模开发的优点是是由于 简化了开发的过程,使开发人员将精力集中到实际的业务逻辑中去。 东北大学硕士学位论文 框架的综述 1 3 1 基于j a k a r t as t r u t s 框架开发的优越性 f r a m e w o r k 有很多种,s t r u t s 并不是唯一的选择。可以根据具体的项目来选 择不同的f r a m e w o r k 。s t r u t s 之所以如此流行,其主要原因是它推出时间比较 早,版本较稳定,并且是m v c 标准的实现。 s t r u t s 师出名门,拥有诸多优点,其中最关键的一点就是简单易用,这也是 正他迅速普及,越来越流行的根本原因。与其同时代的t u b i n e 、c o c o o n 等, 都可以作为w e b 框架,功能也很强大,但使用起来过于复杂,一真难以流行。 作为一名普通的j a v a 开发者,只要稍具j s p 开发水平,都可以在一周左右的时 间内,基本学会s t r u t s 。 s t r u t s 还提供了丰富的t a g l i b ,熟练用之,将节省大量的开发时间。 s t r u t s 具有良好的页面导航功能,开发者可以通过一个名为s t r u t s c o n t i g x m l 的文件,把握整个系统各部分之间的联系,这对于后期维护有着莫大的帮助,尤 其是当另一批开发者接手该项目时,这种优势体现得更加明显。1 6 j 当然, s t r u t s 也有一些不足之处。对于很大的项目,当s t r u t s - c o n f i g x m l 越 来越庞大时,维护也就变得越来越复杂,甚至需要专人负责( 对于这种维护情况, 建议采用专门的维护工具,如s t r u t sc o n s o l e ) 。另外,s t r u t s 框架主要是针对 表示层设计的,对于后端的逻辑层支持不是很强。 1 3 2j a k a r t as t r u t s 实现m v c 的机制 s t r u t s 实质上就是j s pm o d e l 2 的基础上实现的一个m v c 框架。在s t r u t s 框 架中,模型有实现业务逻辑的j a v a b e a n 或e j b 组件构成,控制器由a c t i o n s e r v l e t 和a c t i o n 来实现,试图有一组j s p 文件构成,下图显示了s t r u t s 实现的m v c 框 架。【7 】 ( 1 )视图 视图就是一组j s p 文件,这些j s p 文件中没有业务逻辑,也没有模型信息,只 有标签,这些标签可以是标准的j s p 标签,也可以是客户化的标签,如s t r u t s 标签 库的标签。 ( 2 ) 模型 6 东北大学硕士学位论文 框架的综述 模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由 j a v a b e a n 或e j b 组件来实现。 ( 3 ) 控制器 图1 2s t r u t s 实现的m v c 框架 f i g 1 2m v cm o d e lo fs t r u t s 控制器由a c t i o n s e r v l e t 类和a c t i o n 类来实现。a c t i o n s e r v l c t 类是s t r u t s 框架 中的核心组件。a c t i o n s c r v l c t 继承了j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,他在m v c 模型中扮演中央控制器的角色。a c t i o n s e r v l c t 主要负责接受h t t p 请求信息,根 据配制文件s t r u t s c o n f i g x m l 的配制信息,把请求转发给适当的a c t i o n 对象。如果 该a c t i o n 对象不存在,a c t i o n s e r v l e t 就会先创建这个a c t i o n 对象。a c t i o n 类负责调 用模型的方法,更现模型的状态,并帮助控制应用程序的流程。 ( 4 ) s t r u t s 的配制文件s t r u t s c o n f i g x m l a c t i o n s e r v l e t 如何决定把用户请求转发到相应的a c t i o n 对象? 就需要一些描 述用户请求路径和a c t i o n 影射关系的配制信息。在s t r u t s 中,这些配制影射信息 都存储在特定的x m l 文件s t r u t s c o n f i g x m l 中,在该配置文件中,每一个a c t i o n 的映射信息都通过 元素来配置。这些配置信息在系统启动的时候就同时 读入内存,供s t r u t s 在运行期间使用。在内存中,每一个 元素都对应一个 o r g a p a c h e ,s t u r t s a c t i o n a c t i o n m a p p i n g 类的实例。 1 3 3j a k a r t as t r u t s 的工作流程 对于采用s t r u m 框架的w e b 应用,在w e b 应用启动时就会加载并初始化 东北大学硕士学位论文 框架的综述 a c t i o n s e r v l e t ,a c t i o n s e r v l e t 从s t r u t s c o n f i g x m l 文件中读取配置信息,把他们存 放到各种配置对象中,例如a c t i o n 的映射信息存放到a c t i o n m a p p i n g 的对象中。 当a c t i o n s e r v l e t 接收到一个客户请求时,将执行如下流程。( 如图1 3 ) ( 1 )检索和用户请求匹配的a c t i o n m a p p i n g 实例,如果不存在,就返回用 户请求路径无效的信息。 ( 2 )如果a c t i o n f o r m 实例不存在,就创建一个a c t i o n f o r m 对象,把客户 提交的表单数据保存到a c t i o n f o r m 对象中。 ( 3 )根据配置信息决定是否需要表单验证。如果需要验证,就调用 a c t i o n f o r n l 的v a l i d a t e ( ) 方法。 ( 4 )如果a c t i o n f o r m 的v a l i d a t e ( ) 方法返回n u l l 或者返回一个不包含 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证成功。 ( 5 ) a c t i o n s e r v l e t 根据a c t i o n m a p p i n g 实例包含的映射信息决定将请求转 发给哪个a c t i o n 翔果相应的a c t i o n 实例不存在,就先创建这个事例,然后调用 a c t i o n 的e x e c u t e 0 方法。 ( 6 ) a c t i o n 的e x e c u t e 0 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再 把客户请求转发给a c t i o n f o r w a r d 对象指向的j s p 组件。 ( 7 ) a c t i o n f o r w a r d 对象指向的j s p 组件生成动态网页,返回给客户。 坠竺! 陌再i 面品 h t t p 。i s e r v l e t r e q u e s tl _ t 1 善饕曩,i f o r w a r d l s 吣- c 丙舢 u p d a t e i v i e w 1 卅婴 r e s p o n s e g “ 图1 3s t r u t s 体系结构 f i g 1 3s t r u t sc o n f i g u r a t i o n 1 4 本文主要研究的方面和章节的安排 b u s i n e s sl o g i c a 酬o r l m o d e i a p p i l c e l j o ns l a t e 基于框架的原理,结合当前流行的框架技术的特点,针对对几种模式的研究 东北大学硕士学位论文 框架的综述 基础之上,参照并改进当前用于w e b 类的框架设计模式,设计出符合客户需求 的能充分重复使用的基于j a v a 桌面业务的框架。并在此框架基础之上做出实验 程序,验证本次实验的结果。 本文的安排如下:第二章对框架的基本概念做出简单综述,评价框架的优越 性与不足:第三章分析根据框架的概念和当前设计框架的模式设计出符合客户需 求的j a v a 桌面业务的框架;第四章基于第三章的设计较为详细的实现出一个桌 面业务的框架,并基于该框架实现一个验证程序,用于验证该框架的可行性;第 五章总结全文。 9 东北大学硕士学位论文 框架的基本概念 第二章框架的基本概念 通常把一组可配置的,能自动完成应用程序基本功能的基础组件称为一个框 架。表现为一组抽象构件及构件实例间交互的方法。 2 1 框架的定义 框架( f r a m e w o r k ) 是可被应用开发者定制的应用骨架。一个框架是一个可复 用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依 赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法。 框架不是一个具体的开发工具或者开发平台,而是一个开发思想和模式,如果采 用这种设计开发模式会显著提高应用程序的开发效率和扩展性,提供高品质的产 品。框架为构件复用提供了上下文( c o n t e x t ) 关系。因此构件库的大规模重用也需要 框架。 应用框架的概念也很简单。它并不是包含构件应用程序的小片程序,而是实现 了某应用领域通用完备功能( 除去特殊应用的部分) 的底层服务。使用这种框架 的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提 供了所有应用期望的默认行为的类集合。具体的应用通过重写子类( 该子类属于框 架的默认行为) 或组装对象来支持应用专用的行为。【8 l 应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件 系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较, 应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根 据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就 越完整。 构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、 软件体系结构研究和应用软件开发三者发展结合的产物。在很多情况下,框架通 常以构件库的形式出现,但构件库只是框架的一个重要部分。框架的关键还在于 框架内对象间的交互模式和控制流模式。 总之,可以这样理解框架,它是项目开发的一部分,但并不是一个实际的工具, 而且它包含着主要的流程处理,所以为了项目耍利用框架思想要先开发针对这个 i o 东北大学硕士学位论文 框架的基本概念 项目的框架,也就是骨架。【9 】框架是为特定应用服务的,现在已经存在着针对某一 方面使用的框架,比如针对w e b 应用的j s p 的s t r u t s 框架,和v c 的m f c 结构框 架,可以不必开发框架直接应用现有的,如果没有适合的( 尤其在企业业务应用 的时候) ,花一些小的代价在预先的框架设计和构造上是相当值得的,尤其是当这 种项目很庞大,或者业务逻辑经常变更的情况。 2 2 选择框架技术处理j a v a 业务的必要性 采用框架技术进行软件开发的的主要特点包括: 领域内的软件结构的一致性好;建立更加开放的系统;重用代码大大增加,软 件生产效率和质量得到提高;软件设计人员专注于领域的了解,使需求分析更充 分;有利于一个项目的多人协作。 2 2 1 基于框架开发的特点 框架最大的特点是代码复用。面向对象系统获得的最大的复用方式就是框架, 一个大的应用系统往往可以有多层互相协作的框架组成。 由于框架能重用代码,因此从个已有的构件库中建立应用变的非常容易,因 为构件都采用框架统一定义的接口,从而使构件间的通信变的简单。 框架的重用设计,饱提供可重用的抽象算法及高层设计,并将大系统分解成小 系统,而且描述构件间的内部接口。只要符合这些接口定义,新的构件就能插入 框架中,框架设计者就能重用框架的设计。 2 2 2 框架应用的优越性 ( 1 ) 提高开发效率 阻往的开发来看,除了需要对真正的业务逻辑进行编程以外,还需要各种各样 结构模型的设计和开发,以及必要的技术调查和验证。使开发者能够尽可能的专 心于业务逻辑的开发是框架应用的最终目标。 ( a ) 开发者关心的部分少了,可以集中精力在自己的部分。 ( b ) 开发出现的问题可以被限定在一定的范围,给纠错和调试方便。 东北大学硕士学位论文 框架的基本概念 ( 2 ) 开发品质 ( a ) 框架部分被通用化了,系统的安定性高。 ( b ) 系统的接口统一,给与整体统一感的维护性,将来的修改都很容易、 可靠。 ( c ) 局部的修改对整体的破坏性小。 ( 3 ) 升级性,安全性和维护性 画面和d b 逻辑分离以后,对于系统的扩充升级都有极大的好处。 在小规模和对安全性要求不高的系统里,可以把画面处理和业务逻辑的处理都 放到一起,存在于客户端,如果客户要求变化了,从性能角度考虑,有可能专门 把业务逻辑集中在一起,以e j b 的方式来访问,或者出安全性的考虑,不允许各 个客户端本地都拥有业务逻辑的代码,因为j a v a 编译过的代码是可以反编译的, 虽然有一些保护工具但是也不是最终解决方式,把关键业务逻辑集中放到一个服 务器端,会是一个好的方法。对于这两种实际中经常出现的要求,由于画面和d b 逻辑的分离,都能够很好地解决。这样,客户端只有显示和发起事件的部分,业 务逻辑都在服务器一端,大大提高了安全性。 而还带来另一个好处,业务逻辑的改变和升级都跟客户端没关系,客户端只是 一个显示和操作的工具,不会出现以前的,即使一个微小的逻辑改变也要更新全 部客户端的问题,而业务的改变在现实中是最频繁的。 ( 4 ) 开发周期 分离和模块化以后,可以并行开发,缩短开发周期。 ( 5 ) 开发体制和成本 开发关心的问题少了,对开发者要求也降低了,为了项目的开发聚集一定数目 的开发者也变得相对容易了,而且即使水平不高的开发者。在短时间内也比较容 易达到开发的要求,相应的对人的要求降低了,花的费用也较少,同时效率的提 高也可以减少成本。“” 2 3 框架应用非万能 总的说来,框架的应用在简单的业务应用中是得不偿失的。如果一个项目只有 几个页面流程,将其装进框架后就扩大了代码量,并使程序的逻辑变的复杂。另 东北大学硕士学位论文 框架的基本概念 外框架的设计和实现需要必要的成本投入,用于保证框架的稳定性,正确性,及 可扩展性。因此通常来说,框架适合于较大规模的,逻辑较为复杂的项目,不适 合简单的业务应用程序。 建立构架重用的经济效益度量模型,同部件重用在构架重用方面的需求相类 似,这要求框架的重用必须建立在相似的系统中,需求不一致的系统很难共用同 一框架。【l l 】 “ 2 4 框架与共通函数库的区别 开发的时候,经常有在程序的某些地方需要使用同样的处理的隋况。如果在各 个地方都进行编程的话,从开发效率到维护性来说都不利。所以一般来说,只在 一个地方做成,作为共通函数库来提供给各个利用的地方。 框架在提高开发效率和维护性的角度来讲,同共通函数库是一样的,但是调用 方法确有很大的区别。共通函数库是从主程序流程的各个模块来调用,框架却是 调用已编程的部分,换句话说,主流程是在框架里面记述的,开发者开发的部分 是对框架要调用的处理编程。 图2 1 框架和共通函数库的区别 f i 2 2 1d i f f e r e n c eb e t w e e nf r a m e w o r ka n dc o m m o nf u n c t i o n 东北大学硕士学位论文框架的基本概念 2 5 与框架相关的概念 框架可分为白盒( w h i t e b o x ) 和黑盒( b l a c k b o x ) 两种框架。 基于继承的框架被称为白盒框架。所谓的白盒框架既具有可视性,被继承的父 类的内部实现细节对于子类而言都是可知的。利用白盒框架的应用开发者通过衍 生子类或者重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类 的实现,这种依赖性限制了重用的灵活性。但是可以继承抽象的父类,因此抽象 类上不具备具体实现。自盒框架是一个程序骨架,而用户衍生出的子类是这个骨 架的附属品。吲 基于对象框架组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获 得系统的实现。用户只需了解构件的外部接口,无需了解内部的具体实现。另外, 组装比继承更为灵活,他能动态改变,继承只是一个静态编译的概念。 】 东北大学硕士学位论文 框架思想针对j a v a 业务应用的一种设计实现 第三章框架思想针对j a v a 业务应用的一 种设计实现 3 1 起因与目的 考虑在w e b 系统上能够通过完成类似s t r u t s 的框架来大规模简化开发和提高 后期维护性等多种优点,本设计的主要实现目标是把s t r u t s 在w e b 上成功的框 架设计思想和实现方法,实现个应用于以往的业务桌面系统的框架。来简化目 前的这类应用开发。 3 1 1 桌面系统和w e b 系统在运用上的区别 首先要分析一下w e b 系统和桌面系统在运用上的不同。 ( 1 ) 画面部件的不同 w e b 系统的画面部件是标准的h t m l 部件,没有太多自定义功能的扩充,相 对功能比较固定,单一,控制也相对简单。 然而桌面系统的画面往往比较复杂,有一些特殊的要求,比如对于表这样的 部件( j t a b l e ) 来说,可能往往有排序或者固定列的要求等等,所以般实现的时候 都需要自己扩展功能。 ( 2 ) 画面事件控制复杂度的不同 相对于w e b 部件,桌面应用系统的部件所引起的事件种类更多,已经不能用 固定的映射的方法来硬性对应,实现的难度更大。另外,桌面系统往往对部件焦 点控制等有特殊的要求。 ( 3 ) 画面迁移的难易度不同 w e b 系统的载体是浏览器,操作也是关掉本页面,到上一页或者下一页,就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行成都市简阳市2025秋招笔试热点题型专练及答案
- 农发行资阳市乐至县2025秋招笔试行测高频题及答案
- 楚雄姚安县中储粮2025秋招笔试行测高频题库及答案
- 国家能源济南市莱芜区2025秋招笔试思维策略题专练及答案
- 国家能源保定市唐县2025秋招笔试逻辑推理题专练及答案
- 恩施咸丰县中储粮2025秋招写作案例分析万能模板直接套用
- 半年护理工作总结15篇
- 厂转让合同汇编15篇
- 劳动委员个人工作总结
- 2025年湖北城市建设职业技术学院专项公开招聘19名工作人员模拟试卷完整参考答案详解
- GB/T 19494.2-2023煤炭机械化采样第2部分:煤样的制备
- 2023年【汽车驾驶员(技师)】考试题及汽车驾驶员(技师)试题答案
- 催化重整(石油加工生产技术课件)
- (完整版)袱子的书写格式和称呼
- 证监会行业分类结构与代码
- 安全仪表系统SIS课件
- Φ1397套管开窗侧钻操作规程
- 《寻梦环游记(2017)》完整中英文对照剧本
- RB/T 089-2022绿色供应链管理体系要求及使用指南
- 某某集团年度经营计划编制指引
- 山区道路施工施组
评论
0/150
提交评论