已阅读5页,还剩64页未读, 继续免费阅读
(计算机软件与理论专业论文)基于net的分布式企业应用框架的研究与实践.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 当今企业级应用系统的规模和复杂性与日俱增上册务布式体系 结构的企业应用系统在信息化的进程中逐渐由理论研究走上应用前 沿? 为企业的信息化注入了无限的动力。然而,分布式企业应用系统 的开发环节众多、结构复杂,传统的软件开发方法包括面向对象的设 计方法,由于软件复用程度低,很难满足“工业化软件生产的需求。 框架作为现代软件复用技术的重要方式,不仅提供了设计复用, 而且实现了功能代码的大粒度复用,为软件开发的大粒度复用提供了 可能。实践证明,基于应用框架的二次开发,可以极大的提高软件的 开发效率。 本文针对当前分布式企业应用系统开发过程中可复用程度低、可 维护性差等问题,提出并实现了一个可为企业分布式应用系统开发提 供大粒度复用的企业应用框架( e n t e r p r i s ea p p l i c a t i o nf r a m e w o r k e a f ) 。e a f 框架采用独立业务流的设计思想,支持企业业务逻辑单 元的解耦合;支持业务服务的管理和备用机制,有效地提高了分布式 系统的可管理性和可靠性;同时还支持服务的动态装配,设计了基于 控制反转n 3 ( i n v e r s i o no fc o n t r o li o c ) 的微容器,采用了基于构造函 数的注入方式,实现了框架对企业业务逻辑的无侵入性。 本文首先对框架技术进行了深入的分析和探讨,介绍了框架的一 些基本概念、基于框架的软件开发过程及其优点,通过对构件、设计 模式等概念的比较,指出基于框架的软件复用与它们的不同点。其次 基于对当前企业应用系统体系结构的分析,提出了本文框架的设计思 想和基本要求,确定了框架的体系结构,并就框架的i o c 微容器、 通讯构馅服务信息管理构件( s i m c ) 以及集成优秀开源框架 n h i b e m a t e 的框架通用数据访问构件( 6 , w e t a ld a t aa c c e s sg d a ) 等核 。一 心构件进行了深入的分析和探讨,最终形成了一个应用予n 啦平台下, 基于b s 架构的分布式企业应用框架。最后,通过对一个人力资源管 理系统( h r m i s ) 的实现,验证了基于e a f 框架进行分布式企业信息 系统开发的简洁性和灵活性。 关键词:应用框架,软件复用,分布式,i o c ,r e m o t i n g i i a b s t r a c t a st h ee n t e r p r i s ea p p l i c a t i o ns y s t e mi n c r e a s i n g l yb e c o m el a r g e ra n d m o r ec o m p l i c a t e d ,e n t e r p r i s ea p p l i c a t i o ns y s t e mw h i c hi sb a s e do nd i s t r i b u t e d a r c h i t e c t u r ec o m e si n t o a p p l i c a t i o n f r o n t i e rf r o mt h e o r yr e s e a r c h , a n d i m p r o v e se n t e r p r i s ei n f o r m a t i o n i z e p r o c e s sg r e a t l y h o w e v e r ,。t h e d e v e l o p m e n tp r o c e s so fd i s t r i b u t e de n t e r p r i s ea p p l i c a t i o ns y s t e mi sc o m p l e x a n dv e r b o s e t r a d i t i o n a ls o f t w a r e d e v e l o p m e n ta p p r o a c h e s ,i n c l u d i n g t r a d i t i o n a lo b j e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n tm e t h o d s ,w h i c ha r ed i f f i c u l t t oi m p r o v et h ee f f i c i e n c yo fs o f t w a r ed e v e l o p m e n ta n df u r t h e rt om e e tt h e r e q u i r e m e n to fi n d u s t r i a l i z e ds o f t w a r ed e v e l o p m e n t t h ef r a m e w o r ka sa l li m p o r t a n ts o f t w a r er e u s em o d e ,n o to n l ye n a b l e s r e u s ea r c h i t e c t u r ed e s i g n , b u tp r o v i d e sf u n c t i o nc o d ei nl a r g eg r a n u l a r i t yr e u s e t h e r e f o r e ,s o f t w a r ed e v e l o p m e n tb a s e do nt h ef r a m e w o r ki sl i k e l yt op r o v i d e l a r g eg r a n u l a r i t yr e u s e a n da c c o r d i n gt ot h ep r a c t i c e ,s e c o n d a r yd e v e l o p m e n t b a s e do n a p p l i c a t i o nf r a m e w o r ki m p r o v e s t h es o f t w a r e d e v e l o p m e n t e f f i c i e n c yg r e a t l y t h i st h e s i sa i m sa tt h ep r o b l e mo fb a dr e u s a b i l i t ya n dm a i n t a i n a b i l i t yi n t h ed e v e l o p m e n tp r o c e s so fe n t e r p r i s ea p p l i c a t i o ns y s t e mb a s e do nd i s t r i b u t e d a r c h i t e c t u r e a n di t p r o p o s e sa ne n t e r p r i s ea p p l i c a t i o nf r a m e w o r k a f ) w h i c hp r o v i d e sl a r g eg r a n u l a r i t yr e u s ef o r t h ed e v e l o p m e n to fe n t e r p r i s e a p p l i c a t i o ns y s t e mb a s e do nd i s t r i b u t e da r c h i t e c t u r e e a fi sa d o p tt h en o t i o n m o fi n d e p e n d e n tb u s i n e s sf l o w , w h i c hs u p p o r t su n c o u p l e de n t e r p r i s eb u s i n e s s l o g i cu n i t ,s u p p o r t sb u s i n e s sl o g i cs e r v i c em a n a g ea n ds p a r e ,i ti m p r o v e s r e l i a b i l i t ya n dm a n a g e a b l ee f f e c t i v e l y , a n da l s o ,e a fs u p p o r t ss e r v i c e a s s e m b l ed y n a m i c a l l y , i td e s i g n sam i c r oc o n t a i n e r , w h i c hi sb a s e do ni o c ( i n v e r s i o no fc o n t r 0 1 ) m o d e i tb a s e so nc o n s t r u c t o ri n j e c t i o na n dn o n - i n v a d e s f o rb u s i n e s sl o g i cu n i t f i r s t l y , t h i st h e s i sd i s c u s s e sa n da n a l y z e sf r a m e w o r kd e e p l y i ti n t r o d u c e s t h ec o n c e p t i o no ff r a m e w o r k , t h ep r o c e s sa n dm e r i to fs o f t w a r ed e v e l o p m e n t a l s o ,i tc o m p a r e sw i t ht h ec o n c e p t i o n so fc o m p o n e n t , d e s i g np a t t e r n sa n ds oo n , a n dp o i n t so u tt h ed i f f e r e n c eb e t w e e nf r a m e w o r k a n do t h e r s s e c o n d l y , a c c o r d i n gt ot h e a n a l y s i s o fc u r r e n t e n t e r p r i s e a p p l i c a t i o ns y s t e ma r c h i t e c t u r e ,i tp r o p o s e st h en o t i o na n dr e q u i r e m e n t , d e f i n e st h es t r u c t u r eo fe a f , a n dd i s c u s s e st h ec o r ec o m p o n e n t s ,s u c ha u st h e m i c r oc o n t a i n e r , c o m m u n i c a t i o ns e r v i c e c o m p o n e n t ,s i m ca n dg d a ( g e n e r a ld a t aa c c e s s ) c o m p o n e n t ,w h i c hi n t e g r a t e st h ee x c e l l e n to p e ns o u r c e n h i b e r n a t ef r a m e w o r k a n dt h e n , ad i s t r i b u t e e n t e r p r i s ea p p l i c a t i o n f r a m e w o r kw h i c hb a s e do nb ss t r u c t u r ei ss h a p e df i n a l l yi n n e tp l a t f o r m a n dl a s t l y , i no r d e rt ov a l i d a t et h ec o n c i s i o na n df l e x i b i l i t yi nt h e d e v e l o p m e n to fd i s t r i b u t ee n t e r p r i s ea p p l i c a t i o ns y s t e mb a s e do ne a f , a h u m a nr e s o u r c e m a n a g e m e n t i n f o r m a t i o n s y s t e m ( r m m i s ) i s a c h i e v e d i v k e y w o r d s :a p p l i c a t i o nf r a m e w o r k ,s o f t w a r er e u s e ,d i s t r i b u t e d ,i o c , r e m o t i n g v 浙江师范大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。论文中除了特别加以标注和致谢的地方外,不包含其他人或其他机 构已经发表或撰写过的研究成果。其他同志对本研究的启发和所做的贡献均已在 论文中作了明确的声明并表示了谢意。本人完全意识到本声明的法律结果由本人 承担。 名:镨一鳓哪鲫绛 月节日 学位论文使用授权声明 本人完全了解浙江师范大学有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关机关或机构送交论文的复印件和电子文档,允许论文被查阅和 借阅,可以采用影印、缩印或扫描等手段保存、汇编学位论文。同意浙江师范大 学可以用不同方式在不同媒体上发表、传播论文的全部或部分内容。同时授权中 国科学技术信息研究所将本学位论文收录到中国学位论文全文数据库,并通 过网络向社会公众提供信息服务,同时本人保留在其他媒体发表论文的权利。 保密的学位论文在解密后遵守此协议。 储繇氧悌新虢7 乒m同期乒彬释譬月冲早 浙江师范大学学位论文诚信承诺书 我承诺自觉遵守浙江师范大学研究生学术道德规范管理条 例。我的学位论文中凡引用他人已经发表或未发表的成果、数据、 观点等,均已明确注明并详细列出有关文献的名称、作者、年份、 刊物名称和出版文献的出版机构、出版地和版次等内容。论文中 未注明的内容为本人的研究成果。 如有违反,本人接受处罚并承担一切责任。 承诺人c 研究生,:车蘑瓢 指 导教师:7 臣心么。 1 1 研究的背景及意义 第一章绪论 + 随着信息技术的飞速发展,面向企业应用的信息系统在现代企业经营管理中 得到了广泛的使用,极大的提高了企业的竞争力和管理水平,为企业创造了巨大 的效益。企业越来越多地将其资源纳入到信息系统的管理中。企业信息系统规模 日渐庞大,结构复杂,传统的集中式数据处理方式难以满足企业信息化的需求。 因此采用分布式体系结构的并行数据处理方式的信息系统逐渐为一些大中型企 业所接受【2 1 。然而,由于分布式企业信息系统体系结构复杂,开发及测试工作难 度高,极大的降低系统的开发效率,提高了企业的信息化实施成本。 在现代软件工程的研究中,软件复用已经成为其中一个主要目标,代码复用 通过面向对象语言的继承机制和编译技术己成为现实。随着面向对象技术的日趋 成熟,像这样低层次的复用已经不适合于特定领域大型软件生产的需求。为了提 高软件生产过程的复用力度,软件领域的先驱者们开始进行一种新的尝试来提高 软件生产力,他们不仅要复用旧的代码,而且要复用相似的分析设计结果和体系 结构,来减少构造新软件系统的代价并提高软件的可靠性。 框架技术就是这样一种面向特定领域的复用技术,框架由于提供了大粒度的 复用而被认为是一种最有前途的面向对象技术。单独的类的复用尽管有用,但由 于复用粒度小而不具备有意义的生产力的飞跃,只有把特定领域的体系结构作为 一个整体进行复用才能取得引入注目的成就。基于框架的软件开发过程,把软件 的开发看作一个组装过程,在软件框架的指导下寻找可复用构件( 及开发一些新 构件) 并进行系统组装,这种开发过程是目前很受重视的研究方向。 因此,一个面向特定应用领域,设计良好、性能稳定、简单易用的可复用系 统应用框架无疑是提高软件开发效率、保证软件可靠性的捷径。本文针对当前企 业应用的实际,结合分布式对象技术、1 0 ( 2 模式提出了一个基于n e t 平台的b s 构架的分布式企业应用框架。该框架实现了企业分布式信息系统的大粒度复用, 极大的减少了重复的思考和劳动。从而使系统开发和设计人员将更多的精力放在 极具个性的企业商业逻辑上,保障业务需求得到正确实现,提高开发效率,降低 分布式企业信息系统的开发成本。 浙江师范大学硕士学位论文 1 2 国内外研究概况 6 0 年代的软件危机导致了有关软件复用的研究。在1 9 6 8 年n a t o 软件工 程会议上,会议的邀请论文“m a s sp r o d u c e ds o f t w a r ec o m p o n e n t s 首次提出 可复用库的思想,并希望通过代码复用实现大规模软件生产。近十几年来,面向 对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持。软件复 用己经成为现代软件工程的一个主要研究重点【3 1 ,被视为解决软件危机,提高软 件生产效率和质量的现实可行的途径【4 】。随着软件复用技术的发展,复用的对象 已经由最早的代码、函数库,发展到类库、构件库,甚至于需求分析结果、体系 结构、设计方案、测试计划等一切可复用的软件资产。软件复用技术有助于提高 软件开发的生产率,提高软件系统的可靠性,减少软件维护的负担【5 l 。 在面向对象领域,类库( c l a s sl i b r a r i e s ) 、构件( c o m p o n e n t s ) 、模式 ( p a t t e r n s ) 、框架( f r a m e w o r k s ) 等等都是一些比较常见的软件复用技术。类 库是最为常用的一种复用技术,与函数库相比,类库通常能更为有效地支持小规 模的复用,因为类强调了“数据和“在数据上进行操作的方法的内聚。类库 常常独立于特定领域,并可被广泛地应用,但其复用的有效范围仍然是有限的, 因为它不具有相关软件制品族中典型的控制流、协作以及可变性。类库中的类通 常是被动的,开发者必须持续地重写大量的控制逻辑,才能把各个可复用的类绑 定在一起,从而形成完整的应用。 构件是被用于多层企业应用的一种复用技术。构件是实现特定的一个或一组 服务的软件系统中的一个被封装的部分。构件具有一个或多个接口,提供对其服 务的访问。构件充当了应用结构的“积木 ,而且,只需了解其接口协议,就可 对其进行复用。现在有三种主流的构件模型:e j b ( e n t e r p r i s ej a v a b e a n s ) 、c o m ( c o m p o n e n t o b j e c tm o d e l ,构件对象模型) d c o m ( d i s t r i b u t e dc o m p o n e n t o b j e c tm o d e l ,分布式构件对象模型) 和c o r b a ( c o m m o no b j e c tr e q u e s t b r o k e r a r c h i t e c t u r e ,公共对象请求代理体系结构) 。 设计模式不仅提供了代码复用,而且实现了设计复用。模式的概念起源于建 筑学家c h i r s t o p h e ra l e x a n d e r 的著作ap a t t e r nl a n g u a g e 。1 9 9 5 年,e r i c h g a m m a 等“四人组”的设计模式:可复用面向对象软件的基础出版后,产生 了重大的影响,模式被广泛接受。目前,模式主要应用于软件体系结构和设计以 2 第一章绪论 及软件开发过程和组织。每年国际上都举办包括p l o p ( p a t t e r nl a n g u a g eo f p r o g r a m m i n g ) 等在内的学术会议对设计模式进行讨论。当前,国内外针对设计 模式的研究工作主要包括以下三个方面:新设计模式的发现和发明;设计模式的 分类和描述;设计模式的应用。这三者构成一个特殊到一般,再由一般到特殊的 循环往复的过程。早期的研究大多集中于寻找和发现设计模式,如今研究的重点 已转向后两者因为如何充分发挥设计模式在软件开发中的作用从而使设计过程 越来越确定。越来越成熟,应该是研究其它问题的首要前提。 面向对象框架是现代软件工程中的一个主要研究内容,它是整个或部分系统 的可复用设计,由于提供了大粒度的软件复用,认为是面向对象系统获得最大软 件复用的方式【曰。相对于传统的过程库或函数库和类库的软件复用技术,框架不 仅提供了代码复用,而且实现了更具有软件生产力意义的设计复用,基于框架通 过剪裁和扩展可以快速开发具体的领域应用。g i c h a e lm a t t s s o n 对通信服务领 域面向对象框架进行了多年的研究与开发,实际证明基于框架开发应用程序的平 均努力比开发框架本身的工作量的1 2 还少f 7 l ,说明基于框架开发应用程序可以大 大提高框架领域应用的开发效率。但是框架的开发和基于框架的开发也存在不少 的缺点或问题,很多文献对这些缺点和问题也做了一些总结和叙述【8 埘。 面向对象应用框架技术越来越多地被广大软件研制开发人员所接受,并且 毒 在某些应用领域中成功地开发出了应用框架。s c h m i d t 研究小组将框架开发原理 和模式应用于网络化应用领域,成功地开发了一个面向并发通讯系统软件开发的 应用框架a c e ( i l l ( a d a p t i v ec o m m u n i c a t i o ne n v i r o n m e n t ) 。在a c e 中实现了许 多用于并发通信软件的核心模式,为面向对象的网络应用程序实现了一种模式语 k 口。 一因此,特定领域面向对象框架的开发与应用,对于提高目标领域系统的软件 开发效率、降低软件开发成本、提高系统的可靠性和可维护性等具有重大的意义。 在企业级应用领域,供应链管理、人事资产管理等是企业级应用的常见例 子。由于企业级应用一般都涉及到大量复杂的数据,涉及到很多人同时访问数据, 涉及到大量操作数据的用户界面,而且通常需要与散布在企业周围的其它企业应 用集成,所以在构建企业级应用时,如果系统架构设计的不好,将会带来非常严 重的后果。 浙江师范大学硕士学位论文 在当今企业级应用中,s u n 公司的j 2 e e 和微软的n e t 是毫无疑问的主流平 台。它们都为针对分布式多层应用的设计、集成、性能、安全性和可靠性等诸多 方面为用户提供了总体的指南和规范,基于这些指南和规范,技术提供商提供了 相应的平台、工具和编程环境。在j 2 e e 平台下,基于w e b 层级的应用框架起步 较早,目前在企业应用领域相对比较成熟,如s t r u t s 1 2 1 、s p r i n g 1 3 l 及h i b e r n a t e 1 4 l 框架等等;而在n e t 平台的企业应用中,针对其应用环境设计实现的应用框架 较少,目前应用中较为普及的框架多为从j 2 e e 平台下较为成功的应用框架中翻 版而成,但也有不少成功的应用框架,如s p r i n g n e t 和n h i b e r n a t e 框架。 值得注意的是,不论是起步较早的j 2 e e 平台还是n e t 平台,目前针对企业 级应用的通用框架得到业界较为公认的还很少,更多企业级应用是基于层级通用 应用框架整合而成的,如在j 2 e e 平台下应用较多的s t r u t s + s p r i n g + h i b e r n a t e 框架。 1 3 论文的主要工作及创新点 1 3 1 本文的主要工作 1 、基于框架复用思想,提出针对分布式企业应用系统开发的解决方案。 针对目前企业分布式应用系统开发的现状及存在的问题,在对框架技术 进行深入研究的基础上,提出了一个面向企业分布式信息系统开发的通用应用框 架。 2 、面向框架复用的e a f 应用框架的设计与实现 在对现有企业应用系统的体系结构进行分析的基础上,提出了本文应用 框架设计的基本思想和原则,并最终确定了e a f 框架的体系结构。然后就该框架 的核心构件一适配器( 包括i o c 微容器和通讯服务构件) 、服务管理构件及通用 数据访问构件进行了分析、设计和实现。 3 、基于e a f 框架的企业分布式应用系统开发的应用实践 文章的最后给出了,基于本文e a f 应用框架进行企业分布式应用系统开发 的应用案例一企业人力资源系统。以工程实践的方式表明了e a f 框架为分布 式企业应用系统的开发提供了大粒度的复用。 4 第一章绪论 1 3 2 本文企业应用框架的创新点 l 、实现了支持业务逻辑服务的动态管理和服务备用的机制。该机制采用 面向服务的基本思想,以不同粒度的业务服务注册、发现及查找为基本功能点, 实现应用系统业务服务的“热插拔 。同时在借鉴r a i d 的数据冗余备份的基础上, 提出了服务冗余备用的思想,有效的提高了分布式应用系统的稳定性和可靠性。 2 、设计了对象依赖条件检测和创建相分离的i o c 微容器系统。相比于传 统的对象在请求时进行依赖检测和创建而言( 如c a s t l e 、s p r i n g 等) ,本框架的 微容器系统具有更高对象创建的效率。 3 、实现了基于a o p 的对称与不对称加密算法相结合的数据安全模块。框 架采用不对称算法( r a s ) 负责身份认证和对称密匙的协商,采用对称算法( 3 d e s ) 进行数据传输,有效解决了效率与安全的矛盾。 1 4 论文的组织结构 本文分为6 章: 第l 章,介绍本文的研究对象、研究背景以及主要工作。 第2 章,介绍了框架技术的产生、概念、特点、分类与组成,并通过与相关 技术的比较,进一步说明了框架技术的实质。 第3 章对企业应用系统体系结构进行了分析,提出了e a f 框架的基本设计 思想和基本要求,确定了框架体系结构,并就实现技术进行了分析。 第4 章,就e a f 框架中适配器( 微容器系统、通讯服务构件) 、服务管理构 件、通用数据访问构件等核心构件进行分析、设计和实现,并就其中的关键问题 进行了探讨。 。 第5 章,介绍了e a f 框架在企业人力资源子系统开发中的应用。 第6 章,对本文进行了总结,并提出了下一步工作的方向。 第二章框架技术研究 长期以来,多数软件开发都是针对某个具体应用的,多是从头再来,许多 同类软件重复开发的现象依然存在,不仅浪费了大量的人力、物力,还使得软件 的质量得不到保证。软件复用技术正是为避免上述问题提出并发展的。软件复用 是指通过对已有的软件的各种有关知识来建立新的软件,这些知识包括:领域知 识、开发经验、设计决定、体系结构、需求、设计、编码、测试和文档等f 1 5 】。软 件复用的目的是降低软件开发和维护的成本,提高软件开发效率,提高软件的质 量。 , 过程和函数的使用可看作是最早的软件复用,六十年代末提出的对象、类和 继承等概念,产生了以类为单元的软件复用资源,然而类是一个小粒度的复用资 源,单独的类难以提供完整的行为,需要与其他类结合使用才能提供有用的功能。 在借鉴了工业产品设计生产模式的经验后,又提出了构件( c o m p o n e n t ) 的思想, 有一些组织专门生产构件,软件人员在开发软件时可大量复用这些构件,从而降 低软件的开发和维护成本,提高软件生产率;同时,由于这些构件往往已经过严 格的测试,并经过广泛的使用,因此可靠性通常比较高,从而也提高了新软件的 质量。 但是构件同样属于比较小的粒度复用。近些年来,面对日益复杂的软件系统, 研究人员逐渐认识到,要真正实现软件的工业化生产方式,达到软件产业发展所 需的软件生产率和质量,设计的复用更加重要,因为设计复用受实现环境影响较 小,从而被复用的机会更多,所需修改更少。 、- 为了达到设计上的复用,研究人员在构件技术的基础上,提出了面向对象 框架( o b j e c t - o r i e n t e df r a m e w o r k ,简称框架) 的概念。框架由一组相互协作的 抽象类和具体类组成,用来表达特定领域中若干相似的应用系统中所具有的功能 和基本结构,是针对应用系统或子系统的大粒度可复用软件资源。 框架最早起源于s m a l l t a l k 环境,其中最著名的是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 r o l l e r ) 1 6 l 。随着软件复用研究的深入,框架技术越 来越受到研究人员的重视,被成功的应用到许多领域,如操作系统【1 7 】、电子商务 等。目前,框架的研究主要集中在框架的开发、框架的演变和框架文档的建立方 面,并取得了很大进展。 6 第二章框架技术研究 2 1 框架的概念 面向对象的框架是由设计和代码组成的可复用软件成分,是一个给定领域内 一个应用程序的部分设计和实现,所以,7 框架是一个不完整的系统。关于框架, 有很多不同的定义,其中两个比较有代表性的定义是: 1 框架= 模式+ 构件,是由开发人员定制的应用系统的骨架,是整个系统或 子系统的可复用设计,由一组抽象类及它们实例间的交互方式组成【1 8 】。 2 框架是一个可实例化的、部分完成的软件系统或子系统,定义了一组系统 或子系统的体系结构并提供了构造系统的基本构造模块,还定义了对特殊功能实 现所需要的调整方式。在一个面向对象的环境中,框架由抽象类和具体类组成; 框架的实例化包括现有类的实例化和衍生1 1 9 1 。 上述两个定义说明了一个框架由一组协作类组成,阐明了整个设计、类间依 赖及成员类的责任分布。这些类通常是抽象类,实现细节放在具体子类中,构成 个抽象设计,不同的子类构成对设计的不同实现,所以说框架着重于设计复用, 尽管框架中可能包含某种程序语言实现的具体类。 应用开发人员通过扩展或定制框架生成应用特定部分的功能。框架是针对特 定领域的,一般建立在同一个或相似领域中,即所要开发的软件系统要具有较强 的相似性,通过框架把领域中不变或不易变的部分在一定时间间隔内固定下来, 把易变的部分以用户接口的形式保留下来,从而达到设计和代码的复用。一个成 功的框架在很大程度上简化了复杂系统的开发。框架技术与构件技术的结合产生 了基于构件的应用框架技术,这是框架技术的一个发展趋势。 。 2 2 框架的特点 框架内部使用的技术是面向对象技术,因此它继承了面向对象技术的所有优 点。此外,还拥有比面向对象技术更高级的特点【捌: 模块化( m o d u l a r i t y ) :框架继承了面向对象技术的特点,并提供了骨架和设 计,将数据封装在对象里并提供相对稳定的接口用于操作数据。框架不仅仅是类 的集合,还提供了丰富的功能和对象类之间内嵌的骨架结构,这些体系模型和设 计提高了系统的模块化,最大限度的减少了开发人员需要开发的通用代码,减轻 7 浙江师范大学硕士学位论文 了代码调试和测试的工作量。因此。框架技术具有很好的模块化特性。 可复用性( r e u s a b i l i t y ) :框架提供的稳定接口提高了复用性。通过定义通用 的构件,可以被重新是用来创建新的应用。应用的开发不再是从头开始重写整个 程序,而是从己有的框架基础上通过添加、改写或定制实现。因此,框架除了可 以用面向对象继承的方法重写代码外,其本身就是一个可多次复用的模板。 可扩展性( e x t e n s i b i l i t y ) :应用开发人员通过添加、改写和定制方法,一步 步的扩展框架,最终实现整个应用程序。因此,框架也具有很好的扩展性。 反向控制特性( i n v e r s i o no fc o n t r 0 1 ) :运行时框架的显著特征是反向控制。 反向控制是指由框架主动来控制工作流程( 比如通过消息派遣机制) ,不再像传统 的类库一样被用户代码调用,而是去调用用户代码。这种方法称为好莱坞规则 ( h o l l y w o o dp r i n c i p l e ) :“ic a l ly o u ,d o n tc a l lm e ( 不要给我打电话,我 会给你去电话) 一。这是一种新的思维方式,改变了过去过程式编程方式,角色发 生了逆转。框架提供控制流的角色,开发人员的代码被框架调用,这非常有益。 框架的这种特性使得应用的开发变得简单,因为开发人员可以从应用程序的细节 纠缠中脱离出来,而专注于他们所熟悉的问题域,专心设计好应用的业务方法。 与传统的类库相比,框架与领域密切相关,它定义了特定领域应用系统的公 共结构,而对类的复用并没有领域相关性的限制。类是一种小粒度的可复用资源, 而框架则提供了系统级的可复用性,支持系统的、全面的软件复用,是一种大粒 度的可复用资源。 2 3 框架的分类 目前市场上有许多类型的框架,用来解决不同类型的问题,主要可从以下方 面进行分类【2 1 2 4 l : 从应用中的作用分类 按照应用系统中所起作用的不同,可将框架分为三类: 应用框架( a p p l i c a t i o nf r a m e w o r k ) :面向应用领域中应用系统的骨架,但它 并不提供完整的应用软件系统的全部,目前普遍所谓的框架都是指应用框架。 支撑框架( s u p p o r tf r a m e w o r k ) :不是应用系统的骨架,而是框架的支撑部 分。 基础框架( f o u n d a t i o n a lf r a m e w o r k ) :不是应用系统的骨架,而是应用系统 第二章框架技术研究 共同使用的公共框架,如c o r b a 等。 从应用范围分类 按应用范围的不同,可将框架分为两类: 水平( ( h o r i z o n t a l ) 框架:这种框架是面向技术领域的,如程序开发环境和用 户界面等。 垂直( v e r t i c a l ) 框架:面向特定应用领域,如用于制造或证券交易问题等的 应用框架。 目前,多数类型都选用水平框架,例如g u i 工具,可在各种工业领域中用来 创建用户界面;而垂直框架强调在特定领域内应用,例如,用来分析经济数据的 框架就只能应用于商业领域,因此,水平框架比垂直框架更具一般化。 从用途上分类 框架按照用途可被分为三类: 系统基础设施框架( s y s t e mi n f r a s t r u c t u r ef r a m e w o r k ) :一般用在系统基 础建设中,给应用提供一个全范围、功能性的基础设施,简化了系统基础设施的 开发,如操作系统、通讯框架等。具体应用例如:c + + 类库1 i l f c 和j a v a 的基础类 库j f c 。系统基础设施框架主要用于一个软件组织内部,并不直接销售给顾客。 中间层集成框架( m i d d l e w a r ei n t e g r a t i o nf r a m e w o r k ) :通常用于开发集成 分布式应用和分布式构件,把中间层逻辑的代码通过框架技术组成为一个完整的 系统,可以提高软件开发人员的模型化复用,并且增强软件基础设施在分布式环 境下的无缝联接。中间层集成框架的市场非常繁荣,例如j 2 e e 中的应用程序服 务器和分布式数据库框架等。 企业应用框架( e n t e r p r i s ea p p li c a t i o nf r a m e w o r k ) :用于在某一特定企业 应用领域中( 如电信、电子设施、制造业和金融等) 提供通用的业务控制或特定业 务模式,是对该领域进行抽象而得出的,有助于减少实现应用的工作量,允许开 发人员在涉及的领域创造高质量的软件同时减少开拓市场的时间。相对于系统基 础设施框架和中间层集成框架,开发者购买企业应用程序框架是昂贵的,但因为 它们直接支持最终用户的开发,所以能够为投资带来可观的回报。系统基础设施 和中间件集成框架更大程度上致力于软件内部的开发,而企业应用框架更注重的 是快速创建高品质的系统。 9 浙江师范大学硕士学位论文 从使用形式上分类 框架按照使用形式可分为白盒框架( w h i t e - b o xf r a m e w o r k ) 和黑盒框架 ( bla c k b o xf r a m e w o r k ) 1 7 1 m l 。 白盒框架:又被称为基于集成的框架,因为复用白盒框架时使用者是通过对 框架中的抽象类进行特殊化的方式来定制框架行为的。使用者首先对白盒框架进 行具体化,即为每一个抽象类派生一个子类,并在子类中给定所有纯虚方法的具 体实现,然后就可使用这些具体的子类来开发特定应用系统。白盒框架由于提供 了框架种类的实现细节,使得开发人员能够对它进行各种修改,提高了它的可复 用范围,但同时这又成为了它的一个缺点,即使用者必须对白盒框架的内部结构 非常了解,才能正确有效地使用它。 黑盒框架:与自盒框架相反,描述了使用框架的系统所包含的类、这些类需 要符合的规约以及它们之间的互联关系。框架使用者通过定义类或构件的接口参 数得到它们的不同组装,从而达到修改黑盒框架的目的。与白盒框架相比,开发 人员在复用这种框架时只需知道其外部接口,而不需了解框架内部的实现细节, 但黑盒框架提供的应变机制较弱,而且复用的范围有限。 在框架的演变过程中,开始的时候常常是基于继承的白盒框架,因为这时框 架并发人员对应用领域还没有充分的了解,无法将行为参数化。随着开发人员对 领域的稳定方面和灵活易变方面的深入了解,框架将逐渐向参数化的方向演变, 即向基于组装的黑盒框架演变。 继承和组装各有优缺点。白盒框架利用集成可以导出新的子类,通过编程 创建新的功能。但是集成是一种静态关系,导致类之间的“硬连接”,难以在运 行时改变。组装可在运行时改变,但不能产生新的功能,所以基于组装的黑盒框 架要求框架开发人员预先知道什么将会改变。 然而,实际的框架通常是混合型的,也称为灰盒框架 ( g r a y b o x f r a m e w o r k ) 2 5 j ,用来避免白盒框架和黑盒框架带来的不足,一个好的 灰盒框架必须拥有足够的灵活性和可扩展性,并且能够隐藏一些开发者不必了解 的信息。 1 0 第二章框架技术研究 2 4 框架的组成元素 通常一个框架有舟元素构成【2 6 l : ( 1 ) 设计文档:框架的设计,包括类图( 或其它图) ,书写的文字,甚至是开发 者头脑中的想法。 ( 2 ) 接口:描述t 类的外部行为。在j a v a 中可用i n t e r f a c e 构造接口;c + + 中抽象类可以被用来模拟接口。接口可被用来在系统中构建不同的角色,一个角 色代表了一个小组彼此相关的方法接口。 ( 3 ) 抽象类:是一个或多个接口的不完整实现,可以被用来定义一组实现了接 口的构件的公共行为。 ( 4 ) 构件:构件和类的唯一区别是构件的a p i 能够以一个或多个接口构造的 形式使用。与类一样,构件可以与别的类发生联系。在图2 1 中,通过类和构 件间“是的一部分”的箭头来表示这种联系。 如果这些类本身具有定义完整的a p i ,则指定这个类的最终结果集为构件的 组合。一个构件就是一个具有明确a p i 的简单类。 ( 5 ) 类:是框架的最底层。通常,构件使用类来代理功能,既一个框架用户通 常不会看到这些类,因为它只是在与构件进行交互。 图2 1 中的元素通过带有标签的箭头连接,这些箭头表明了这些元素之间的 关系。通常接口和抽象类一起被看成白盒框架,用来创建具体类。构件由于实现 了框架中的一些接口,所以构件和协作类通常一起被看成黑盒框架。 图2 1 框架的组成元素 浙江师范大学硕士学位论文 2 5 基于框架的软件开发及其优点 2 5 1 基于框架的软件开发过程 基于框架的软件开发模式是一种软件复用的高级形式,不仅能实现代码复 用,且可有效实现系统分析与设计复用。通常基于框架的软件开发过程包含以下 及各阶段【1 9 】 ( 1 ) 领域分析 领域分析是在给定领域中,通过分析找出对所有应用程序来说都是共同的类 和对象,建立领域模型,包含该领域中的需求关系、相关概念及其之间的关系。 该模型应该集中于领域实体而不是实现细节。 “ ( 2 ) 需求分析 需求分析的目标是为了捕获所有有效的需求,给出一个能满足这些需求的理 想系统,并结合领域分析,找出系统的共同点,给出系统需求说明书。 ( 3 ) 框架设计 框架设计包括框架体系结构设计和详细设计。在体系结构设计阶段,结合设 计模式,将定义许多抽象类,使得整个系统结构的设计支持更灵活的变化。在详 细设计阶段,将描述在体系结构设计中抽象出来的类,并精确地定义它们。 ( 4 ) 框架实现 框架的实现即对框架的抽象类和具体类进行编码,一般采用自顶向下的开发 方法。在整个实现过程中,还必须定一个完整的实现标准,如编码的统一性。这 样做的目的是为了使开发出的框架更易于被应用程序开发人员所理解和利用。 ( 5 ) 应用程序设计与实现 通过对应用程序进行分析和设计,得到应用程序在该领域特殊要求,从而扩 展框架来实现该应用程序。这一阶段,需要应用程序开发人员对框架进行系统的 学习,从而能够更加有效地使用框架来进行开发。 ( 6 ) 测试 该过程一般分为单元测试和集成测试。一个单元是指某个操作、类或包含多 个类的模块、甚至整个框架。单元测试又分为结构测试和功能测试。结构测试需 要熟悉该单元的内部结构,对单元的代码和分支结构进行测试,主要是验证单元 第二章框架技术研究 的可靠性:而功能测试则不关心该单元的内部结构,而主要测试单元对特定输入 的响应,检查是否符合该单元的功能需求。集成测试则测试这些软件单元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育绩效管理方法
- 辽宁省2025八年级语文上学期期末学情评估新人教版
- 2025年护理学基础知识考试试题库及答案(共670题)
- 核医学科甲状腺功能亢进放射治疗方案
- 八年级历史第22课全面内战的爆发(导学案)
- 护理部护士考试题及答案
- 2025年工会知识竞赛题库和参考答案
- 湖北生物中考试题及答案2025
- 宁夏回族自治区口腔种植医师资格证职业认证试卷与答案
- 弘鑫机电招聘考试题及答案
- A01:欧洲标准(中文)-压力表-EN837-1-1998(04-09)
- GB/T 41782.2-2022物联网系统互操作性第2部分:网络连通性
- GB/T 1186-1992压缩空气用橡胶软管(2.5MPa以下)
- GB/T 10061-2008筛板筛孔的标记方法
- 水暖维修工理论考核试题及答案
- 2023年团课考试试题库
- 山茶花文化鉴赏课件
- 围手术期间循环紊乱的防治策略课件
- 六年级上册数学课件-3.6 分数连除和乘除混合运算丨苏教版 (共22张PPT)
- 新华师大版九年级下册初中数学全册教案
- DB4403∕T 36-2019 中小学生营养配餐指南
评论
0/150
提交评论