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

(计算机软件与理论专业论文)基于net平台的应用框架的设计与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 摘要 当今企业级应用的规模和复杂性与日俱增,对软件开发提出了更高的要求。 在分析中发现,传统的软件设计与开发方法在设计和开发大型软件时暴露出开发 周期长和成本高等缺点,把很多时间和精力都浪费在重新设计相似的系统架构和 功能代码上,从而导致大量的重复劳动,给软件企业造成巨大的人力、物力和财 力的浪费软件复用技术的出现为实现软件的重复使用提供了很好的技术支持, 包括代码、设计以及分析复用,大幅度降低了软件开发成本,提高了生产效率和 产品质量其中框架是重要的面向对象软件复用方式,不仅提供了代码复用,而 且实现了设计复用。 随着n e t 技术的推广,越来越多的公司正在采用n e t 开发系统但是,如 何方便、快速、灵活地开发适应性强的软件系统是一个亟待解决的课题,而构建 通用的开发框架就是一个很好的解决方案。本论文的全部工作专注于基于n e t 的 企业应用开发领域中的框架设计与实现。论文首先对框架技术进行了阐述,对框 架的概念、特点、分类、组成元素和设计原则进行了说明;然后通过分析企业应 用的特点和软件自身的结构,对软件开发中的通用过程进行了提炼和封装;最后 提出和实现了一个基于n e t 技术的企业应用系统的可复用框架c o m m n e t c o m m n e t 是一个基于n e t 技术的应用框架,该框架分为三个组成部分:基 于m v c 模式的表示层,通用数据访问层、通用异常处理模块。本框架不仅适用 于n e t 的w e b 系统开发,也适用于w i n d o wf o r m 系统开发;而且借鉴了j a v a 中数据访问的思想;应用程序中所使用的数据访问代码几乎不需要改变,就能满 足不同厂商的数据库开发,有更好的灵活性和扩展性;通用异常处理模块适用于 应用程序开发的每一个层,不需要为每一层编写异常处理代码。 最后,对本文的工作进行了总结并对下一步工作进行了讨论。 关键词:设计模式;应用框架;w c ;异常处理 英文摘要 d e s i g na n di m p l e m e n t a t i o no fa p p l i c a t i o nf r a m e w o r k b a s e d o n n e tp l a t f o r i l l a b s t r a c t n o w a d a y s ,s c a l ea n dc o m p l e x i t yo fe n t e r p r i s ea p p l i c a t i o ng r o wd a yb yd a y , w h i c h a s kf o rah i g h e rr e q u e s t t h et r a d i t i o n a la p p r o a c hd o e sn o te m p h a s i z er e u s e ,s ot h a ti t m u s tc a u s eal a r g ea m o u n to fr e p e a t e dw o r k ma d d i t i o n , i tb r i n g se n o r m o u sw a s t et o s o f t w a r ee n t e r p r i s e s h o w e v e r , f r a m e w o r kc a nr e a l i z ec o d er e u s e ,d e s i g nr e u s e ,a n d a n a l y s i sr e u s e a c c o r d i n g l y ,i tc a nr e d u c ec o s t ;i m p r o v ew o r ke f f i c i e n c ya n dp r o d u c t q u a l i t y f r a m e w o r ki sav e r yi m p o r tr e u s em e t h o do fo r i e n t e do b j e c t ;i ts u p p l i e sc o d e r e u s e ,d e s i g nr e u s e a l o n gw i t ht h ep o p u l a r i t yo f n e tt e c h n o l o g y , m o r ea n dm o r ec o m p a n i e sc o m e a b o u t n e t , a n dd e v e l o pa p p l i c a t i o ns y s t e mw i t l l n e t b u t ,h o wc o n v e n i e n t , f a s t , f l e x i b l et ob u i l dt h ea d a p t a b l ea p p l i c a t i o n si sap r o b l e mw h i c hn c c d st ob cs o l v e d 。t o b u i l dac o m m o na p p l i c a t i o nf r a m e w o r ki sav e r yg o o ds o l u t i o n t h ep a p e rf o c u s e so n t h ed e s i g na n di m p l e m e n to ff r a m e w o r kb a s eo n n e ti nt h ea p p l i c a t i o n so fe n t e r p r i s e a tf i r s t ,t h ep a p e ri l l u s t r a t e sf r a m e w o r k st e c h n o l o g ya n de x p l a i n st h ed e f i n i t i o n , c h a r a c t e r i s t i c ,c l a s s i f i c a t i o n ,c o m p o s i t i o ne l e m e n t ,d e s i g np r i n c i p l eo ff r a m e w o r k t h e n t h r o u 【曲t h ea n a l y s i s o fc h a r a c t e r i s t i co fe n t e r p r i s ea n da n a l y s i so fs t r u c t u r eo f a p p l i c a t i o n s 。c a r r yo nr e f i n e m e n ta n de n c a p s u l a t i o no fc o m m o np r o c e s so fs o f t w a r e d e v e l o p m e n t f i n a l l y , d e s i g na n di m p l e m e n tt h ef r a m e w o r kn a m e dc o m m n e t w h i c h e , a nb er e u s eb a s eo n n e tt e c h n o l o g yi nt h ee n t e r p r i s ea p p l i c a t i o n s c o m m n e ti sa p p l i c a t i o nf r a m e w o r kb a s e do n n e tt e c h n o l o g y i ti sc o m p o s e do f t h r e ep a r t s :t h ev i e wl a y e rb a s e do nm v c p a t t e r n ,t h el a y e ro fc o m m o nd a t aa c o b s s , c o m n l o ne x c e p t i o nh a n d i n gm o d u l e i tn o to n l yc a nb ea p p l yt ow e ba p p l i c a t i o n ,b u t a l s oc a nb ea p p l yt ow i n d o wf o r ma p p l i c a t i o n i tc a ns e p a r a t ev i e ww i t hb u s i n e s sv e r y w e l l i tr e f e r st ot h e o r yt h a tj a v aa c c e s s e sd a t a b a s e ,s ot h ec o d eo fa c c e s s i n gd a t a b a s e d o e s n tn e e db ec h a n g e dt os a t i s f yw i t hd e v e l o p m e n t sb a s e do nd i f f e r e n td a t a b a s e s y s t e m ,i th a sab e t t e rf l e x i b i l i t ya n de x p a n s i b i l i t y c o m m o ne x c e p t i o nh a n d i n gm o d u l e c a nb eu s e di ne v e r yl a y e r i ti sn o tn e c e s s a r yt ow r i t ee x c e p t i o nh a n d i n gc o d ef o re v e r y 英文摘要 l a y e r k e yw o r d s :d e s i g np a t t e r n ;a p p l i c a t i o nf r a m e w o r k ;m v c ;e x c e p t i o nh a n d l i n g 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文! 基壬:m g ! 垩鱼的廑旦攫袈曲逯让生塞现= _ 。除论文中 已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中 以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开 发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:蒯珂 6 1 年;月刍伊 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印,缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在 年解密后适用本授权书。 本学位论文属于:保密口 不保密巨,( 请在以上方框内打“”) 论文作者签名;侄e 晴导师签名:f 触 日期:沙1 1 年岁月够e t 基于n e t 平台的应用框架的设计与实现 第1 章绪论 随着i n t e r n e t 技术的发展,企业级应用系统的逻辑越来越复杂、版本升级周期 越来越短、需求变动和增长越来越快。因而在开发过程中必须保证开发的速度和 系统的可扩展性,使系统能够在最短的时间内按照用户的需求开发出来,同时还 要方便将来系统功能的扩充。 在现代软件工程的研究中,软件重用己经成为其中一个主要课题,代码重用 通过面向对象语言的继承机制和编译技术己成为现实。随着面向对象技术的日趋 成熟,面向代码复用已经不再适合于特定领域大型软件生产的需求。为了提高软 件生产过程的重用力度,软件领域的先驱者们开始进行一种新的尝试来提高软件 生产力,他们不仅要重用旧的代码,还要重用相似的分析设计结果和体系结构, 以此来减少构造新软件系统的代价并提高软件的可靠性。框架技术就是这样一种 面向特定领域的重用技术,由于提供了大粒度的重用而被认为是一种最有前途的 重用技术。基于框架的软件开发过程把软件开发看作一个组装过程,在软件框架 的指导下寻找可复用构件及开发一些新构件并进行系统组装,这种开发过程是目 前很受重视的研究方向。 通过研究和实践,目前针对企业级应用出现了一些解决方案。微软的n e t 框 架和s u n 公司的j 2 e e 就是两个目前最为流行和成熟的并且可以简化企业应用中与 开发、部署和管理相关复杂问题的体系结构。开发过程中n e t 本身也只是广义上 的一种企业解决方案。企业基于n e t 的系统开发实践中,开发者们已经注意到经 常为同样的过程进行着重复的设计、实现,这无疑造成了资源的浪费。如果将这 些通用的、成熟的设计方案和实现成果抽取、提炼出来,形成一个n e t 企业应用 开发领域的框架产品。那么可以在很大程度上避免不必要的重复性劳动,从而提 高软件的生产效率和质量。 1 1 课题的研究背景及意义 在应用n e t 进行企业级应用系统开发时,开发者不但需要考虑应用系统程序 之间的联系和逻辑,还要考虑应用系统的业务逻辑。应用系统中程序之间的联系 第1 章绪论 和逻辑具有一定的通用性,每次开发都做着重复的工作,这无疑影响了软件开发 的效率。而企业的业务逻辑是根据不同的企业和不同的时间环境在不断变化。开 发和设计人员应该将更多的精力放在企业的业务逻辑上,以保障业务需求的正确 实现。目前j a v a 环境下的框架技术已经相当成熟,但是n e t 平台下的框架研究 不多,所以基于这样的考虑,决定将n e t 开发中的非业务逻辑的通用部分抽取出 来开发成一个应用框架,以便以后开发重用。 本论文的研究目的是从实际的n e t 项目中抽取、提炼并开发出一个有实用价 值的应用框架本文作者在对设计模式进行了深入的研究和理解,根据框架应用 情况,借鉴当前j a v a 应用中比较流行的框架技术,对框架进行了进一步的完善和 考虑,最终形成了本文企业应用框架c o m m n e t 。 通过对应用框架的研究,可以将基于n e t 的企业应用开发中比较通用和成熟 的过程和设计抽取出来,对这些过程和设计从软件设计、软件性能、扩展性能等 各方面进行充分地考虑,实现开发过程的复用,从而提高软件生产效率和质量。 1 2 论文的主要研究内容 本文对当前的框架技术进行了详细的阐述,介绍了框架的概念,特点、分类 以及框架的组成元素,同时介绍了设计框架时应采用的原则,并与其他复用技术 类库,构件、设计模式进行了比较,使对框架技术有了更深的理解 本文通过分析企业应用软件的特点和软件自身结构,对软件开发中通用过程 进行了提炼和封装,提出了一个基于n e t 技术的可复用的企业应用框架 c o m m n e t 本文提出了应用框架的设计目标、设计方案,并给出了具体实现,并详细论 述了c o m m n e t 框架的总体设计以及该框架中所使用的相关技术。该框架分为三 个组成都分i 基于m v c 模式的表示层、通用的数据访问层、通用异常处理模块。 本框架不仅适应于n e t 的w e b 系统开发,也适应于w i n d o wf o r m 系统开发; 而且借鉴了j a v a 中数据访问的思想,访问不同厂商的数据库时,代码几乎不用改 变,这样使用n e t 开发数据库系统时,有更好的灵活性和扩展性。最后利用反射 机制和x m l 配置技术实现了一个通用的、灵活的、可配置的、高度可扩展的异常 基于n e t 平台的应用框架的设计与实现 处理模块。 1 3 论文的组织结构 本文分为7 章: 第l 章介绍论文的研究背景以及研究对象。 第2 章介绍了框架技术的产生、概念、特点、分类、组成以及框架的设计原 则,并通过与相关技术的比较进一步说明了框架技术的实质。 第3 章对企业应用系统体系结构进行了分析,介绍了c o m m n e t 框架的总体 设计,同时介绍了在c o m m n e t 框架中所用到的n e t 技术。 第4 章介绍了基于m v c 模式的表示层的设计与实现。 第5 章介绍了通用数据访问层的设计与实现。 第6 章介绍了通用异常处理模块的设计与实现。 第7 章总结了本文的研究成果,并提出了下一步工作的方向。 第2 章框架及相关技术分析 第2 章框架及相关技术分析 随着计算机技术的发展,软件的规模在不断提高,复杂度在不断增加,软件 危机也愈加明显地暴露出来。软件复用被认为是提高软件生产率、解决软件危机、 提高软件质量和增强软件开放性的主要途径。2 0 世纪8 0 年代以来,面向对象技术 的兴起为软件复用提供了基本的技术支持。软件构件技术以及框架的提出又为软 件复用带来了新的生机,成为软件工作者研究的热点。框架为实现特定领域的软 件复用提供了良好的技术支持,它不仅实现了代码的复用,而且使设计和分析得 到复用 2 1 框架技术 2 1 1 框架的概念 关于框架有很多不同的定义,其中有三个比较有代表性的定义,分别为: 1 国外著名的软件大师j o h n s o n 教授对框架进行了如下的定义:框架 ( f r a m e w o r k ) 是整个或部分系统的可复用设计,表现为一组抽象类及其实 例( 对象) 之间的交互方式【1 1 。 2 北京大学杨芙清教授从构件角度认为:一个框架由一组协作构件组成,阐 明了整个设计、构件间的依赖及成员构件的责任分布1 2 。这些成员构件通 常是子框架、类树或类,大多以抽象的形式出现,构成一个抽象设计,不 同的具体子类构成对设计的不同实现。 3 j o h n s o n f o o t 给出的定义:框架给出了一组类的定义,其中包含了对一 组应用的相关问题的抽象解决方案1 3 1 。 通过对上述观点的分析,框架是一个能够被开发人员实例化的系统骨架,是 一个可以最大程度复用现有领域生产经验的技术,表现为一组抽象类和具体类的 形式,是特定领域应用软件的半成品。 应用开发人员通过扩展或定制框架生成应用特定部分的功能框架是针对特 定领域的。一般建立在同一个或相似领域中,即所要开发的软件系统要具有较强 的相似性。通过框架把领域中不变或不易变的部分在一定时间间隔内固定下来, 止 基于n e t 平台的应用框架的设计与实现 把易变的部分以用户接口的形式保留下来,从而达到设计和代码的复用。一个成 功的框架在很大程度上简化了复杂系统的开发。 2 1 2 框架的特征 框架内部使用面向对象技术,因此它继承了面向对象技术的所有优点。此外 还拥有比面向对象技术更高级的特点【4 】。 可复用性:框架强调应用领域内重复出现的大粒度问题及其解的抽象提取, 适应于该领域内一组相关问题的求解,并作为应用程序的半成品,具有较大的重 用粒度。可复用性是框架的最重要的特征。 模块化和封装性;框架是对某领域内应用软件公用部分的抽象,具体表现为 一组相关的抽象类。面向对象的封装性可为应用框架提供统一而稳定的使用界面, 从而可使设计与实现的细节局部化并对用户透明,这为框架的使用和实现带来了 诸多方便。 集成性;框架的本质内涵为对一组问题求解的基础结构。通常表现为在统一 基础结构下的一组设计模式( d e s i g np a t t e r n ) 与相应功能的有机合成。面向对象的继 承与组合机制可以用来较好地表达框架的集成性。 可扩展性:框架为用户提供了直接使用其内置的手段。但更为重要的是,框 架也为用户提供了修改其功能及扩充其功能的途径。框架的扩展性是通过扩展点 的实例化过程实现的。 领域性:框架总是面向特定领域的,记录了应用领域的公共设计决策,反映 了特定领域应用软件的体系结构,是特定领域软件体系结构( d s s a ) 的实例。 易移植性:由于不同的应用领域对其应用环境往往会有不同的要求。因此, 框架可以在单机、并行机或分布式网络环境等多重平台上实现,而对应用程序不 产生影响。框架表示的抽象界面为此提供了可能。 2 1 3 框架的分类 可从以下方面进行分类 5 - s l 1 从组成范围分类 应用框架( a p p l i c a t i o nf r a m e w o r k ) :面向应用领域中应用系统的骨架,但它并 第2 章框架及相关技术分析 不提供完整的应用软件系统的全部,目前普遍所谓的框架都是指应用框架。 支撑框架( 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 等。 2 从应用范围分类 水平( h o r i z o n t a l ) 框架:这种框架是面向技术领域的,如程序开发环境和用户 界面等。 垂直( v e r t i c a l ) 框架:面向特定应用领域,如用于制造或证券交易问题等的应 用框架。 3 从用途上分类 系统基础设施框架( 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 ) :一般用在系统基础建设 中,给应用提供一个全范围、功能性的基础设施,简化了系统基础设施的开发, 如操作系统,通讯框架等。 中间层集成框架( 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 ) :通常用于开发集成分布 式应用和分布式构件,把中间层逻辑的代码通过框架技术组成为一个完整的系统, 可以提高软件开发人员的模型化复用,并且增强软件基础设施在分布式环境下的 无缝联接 企业应用程序框架( e n t e r p r i s e a p p l i c a t i o n f r a m e w o r k ) :用于在某一特定企业应 用领域中( 如电信、电子设施、制造业和金融等) 提供通用的业务控制或特定业务 模式,是对该领域进行抽象而得出的,有助于减少实现应用的工作量,允许开发 人员在涉及的领域创造高质量的软件,同时减少开拓市场的时间。 4 从使用形式上分类 白盒框架t 又被称为基于集成的框架,因为复用白盒框架时使用者是通过对 框架中的抽象类进行特殊化的方式来定制框架行为的。使用者首先对白盒框架进 行具体化,即为每一个抽象类派生一个子类,并在子类中给定所有纯虚方法的具 体实现,然后就可使用这些具体的子类来开发特定应用系统。 黑盒框架:与白盒框架相反,描述了使用框架的系统所包含的类、这些类需 基于n e t 平台的应用框架的设计与实现 要符合的规约以及它们之间的互联关系。框架使用者通过定义类或构件的接口参 数得到它们的不同组装,从而达到修改黑盒框架的目的。 灰盒框架:实际的框架通常是混合型的,也称为灰盒框架( g r a y b o x f r a m e w o r k ) i g l ,用来避免白盒框架和黑盒框架带来的不足。一个好的灰盒框架必须 拥有足够的灵活性和扩展性,并且能够隐藏一些开发者不必了解的信息。 5 其它分类 除了上述的分类方法外,还可按照框架使用是否可视化,分为可视化框架和 形式化框架;按照框架能否开发出分布式应用程序,分为集中式框架和分布式框 架等。 2 1 4 框架的组成元素 通常一个框架有以下几个元素构成1 1 0 1 : ( 1 ) 设计文档:框架的设计,包括类图( 或其它图) ,书写的文字,甚至是开发 者头脑中的想法。 ( 2 ) 接口:描述了类的外部行为。接口可被用来在系统中构建不同的角色,一 个角色代表了小组彼此相关的方法接口。 ( 3 ) 抽象类:是一个或多个接口的不完整实现,可以被用来定义一组实现了接 口的组件的公共行为。 ( 4 ) 组件:组件和类的唯一区别是组件的a p i 能够以一个或多个接口构造的形 式使用。 ( 5 ) 类:框架的底层。通常,组件使用类来代理功能,即一个框架用户通常不 会看到这些类,因为它只是在与组件进行交互。 2 1 5 框架的设计原则 框架的设计原则如下【1 1 】; 1 场景驱动设计原则 框架通常包含非常大的一组a p i 。为了支持功能强大且表现力丰富的高级使用 场景,这是必需的。但是,大多数开发只涉及小部分常用场景,它们只用到整个 框架中相对较小的一个子集。为了优化框架使用者的开发效率,在为最常用的场 第2 章框架及相关技术分析 景设计a p i 时投入大量精力是至关重要的。 因此,在设计框架时应该把注意力集中在一些常用场景,使整个设计过程由 使用场景来驱动。我们给框架设计师的建议是,从用户的角度,先自己编写一些 对主要场景来说必不可少的代码,然后再设计对象模型( o b j e 斌m o d e l ) 来支持这些 样例代码 2 低门槛原则 许多开发人员希望能够很快地学习新框架的基本用法。他们希望通过对框架 的某些部分做一些针对性的实验就能做到这一点,只有当发现某个特性很有趣或 不满足于简单场景时,他们才会花时间去完全理解整个架构。一个设计糟糕的 p i 在初次使用时会给人留下太过复杂的深刻印象,并妨碍部分用户继续使用。这就 是为什么对于一个框架来说,为那些仅希望对框架进行实验的开发人员提供低门 槛是非常重要的。 3 自说明对象模型原则 许多框架包含成百上千类型,以及更多的成员和参数。为了让使用此类框架 的开发人员了解a p i 的用途和正确用法,需要给他们以大量的指导和提示。参考 文档本身并不能满足这样的要求。如果仅仅为了回答一个简单的问题而必须查阅 文档,那么这不仅浪费时间,而且会打断开发人员的工作流程。此外,如前面提 到的,许多开发人员更倾向于通过实验和犯错误来编写代码,只有当发现自己的 直觉是错误的时他们才会去阅读文档。 4 分层架构原则 并非所有的开发人员都在解决相同类型的问题。不同的开发人员经常需要并 期望框架能提供不同层次的抽象,使他们能对框架进行不同程度的控制。一部分 开发人员对表现力丰富和功能强大的a f i 有很高的评价,一般来说这部分开发人 员主要使用c + + 和c 带。我们将这种类型的a p i 称为低层a f i ,因为它们通常提供 较低层的抽象另一方面,一部分开发人员,对为开发效率和简单性而优化的a p i 有很高的评价,一般来说这部分开发人员主要使用甜和v b n e t 。我们将这种类 型的a p i 称为高层a p i ,因为它们提供较高层的抽象。通过使用分层设计,只构 基于n e t 平台的应用框架的设计与实现 建一个框架就可以满足这些不同的需求是可能的。 2 2 框架与其它复用技术的比较 2 2 1 框架与类库 类库是一组相关的、可复用的类的层次结构集合,这些类提供了通用的功能 b 2 1 。类库的典型例子如c + + 的f o 流库和标准模板库( c s t l ) 。类库强调的是代码 复用,它们是面向对象环境下的“子程序库”。在基于框架的开发过程中,类库扮 演着重要的角色。框架将类库集成到内部来简化开发工作,并通过类库来完成一 些基本的任务如字符串处理、文件管理等。 所有框架的表现形式都是一组类库,所以框架应该是一种特殊的类库,但并 不是所有的类库都是框架。框架通过下列方式来扩展类库的功能:框架是包含特 定领域对象体系结构和功能的“半成品”。框架中的组件一起合作,为一类相关的 应用程序提供一个标准的体系结构骨架,通过从框架组件继承和组合可以得到完 整的应用程序。与之相比,类库并不是针对特定领域,并只提供较小范围内的复 用。 与框架的运行时的“反向控制”相比,类库是被动的。当开发人员使用类库 时,需要写应用程序的主体并调用开发人员想要复用的代码。而当开发人员使用 框架时,开发人员应该复用应用程序的主体,写主体调用的代码。因此,在使用 面向对象技术条件下,类库可以看作是一种工具箱,它向应用提供工具。而框架 则应看作是自动机械人,它依据一定的流程自动执行任务,并且它可以使用第三 方提供的工具。 类库中的构件在一般情况下可以单独使用,而彼此不会互相影响。框架则不 同,框架中的各个构件之间可能存在很复杂的依赖关系,在使用框架时需要依据 一定的构件之间的交互协议平行实例化这些构件,并保证它们之间方法调用符合 交互协议所定义的规则。因此框架比类库更复杂,更难以学习。 2 2 2 框架与构件 构件是指可以被明确标识的软件制品,可以是需求分析和设计阶段的产品、 第2 章框架及相关技术分析 代码、测试案例、文档或软件开发过程中的其他产品【1 3 1 。可复用构件是指可被其 它系统的开发者复用,以开发新软件的构件,通常所讲的构件主要是指可复用构 件。单个构件的用处较小,而将若干个相关的构件组织成一个构件系统就能发挥 较大的作用 一个构件系统是指提供一组可复用特性的系统产品,这些特性相互依赖和相 互连接的众多构件( 包括各种类型、互相关联的包和描述的文档) 来体现。一个 构件系统规模可大可小,小的可能只有几个构件及其相关文档。一个开发单位往 往需要使用多个构件系统来实施复用,开发单位应把构件系统当作产品来管理, 必要时应自行开发。 构件系统可以从相对独立的一些类( 实际上是包装的类库) 延伸到相互协作的 相关构件的集合,这些构件协同工作完成应用系统的某种功能,复用者可以将这 些构件组合起来向消费者提供某些用例。 框架就是一种可复用的构件系统,它规定了整个设计、协作构件之间的依赖 关系、责任分配和控制流程,表现为一组抽象类及其实例之间协作的方法,为构 件提供了一个标准的环境来处理错误、交换数据、激活彼此间的互操作。通常所 谓构件系统实际上也可理解为一种框架,它们解决了在构造复杂系统和其它组合 对象时所带来的标准问题。框架与构件在一起协同工作也使得开发新的构件变得 容易,因为框架提供了设计新构件的规范和实现他们的模板。 2 2 3 框架与设计模式 设计模式指的是针对某个领域中的公共设计问题,对一些行之有效的设计结 构和设计经验系统地抽象、命名与定义【1 4 1 。每一个设计模式都集中于一个特定的 设计问题或设计要点,描述了什么时候使用它,以及使用的效果和如何取舍。 设计模式是框架的局部设计元素,体现了框架的局部设计决策一个成功的 框架中可以包含多个设计模式,从一个成功的框架中也可以提取出新的设计模式, 当框架被实现了多次之后,它们就成为了设计模式。例如模型视图控制器 ( m n ,c ) ,它最初是作为实现图形用户界面的框架。现在,由于很多图形界面框架 中都借鉴了它的思想,因此,它现在被看作是一种设计模式。 基于n e t 平台的应用框架的设计与实现 设计模式是高于面向对象框架的抽象。设计模式是对领域内可复用的设计结 构的抽象描述,应用框架则是对这些抽象描述用具体程序设计语言的实现【1 4 1 。从 这个意义来说,框架是个物理实体,而设计模式是个逻辑实体。因此,设计模式 的抽象级别在应用框架之上。 设计模式是比框架更小的体系结构元素,典型的框架都包含多个设计模式, 而反之决非如此。因为设计模式是高于框架的抽象,所以框架比设计模式更加特 例化,框架总是针对一个特定的应用领域,而设计模式可以被用于任何应用。框 架的优势在于它们能够用程序设计语言编写,不仅可以被学习,还能被直接执行 和复用。组件代表代码复用,设计模式代表设计复用,框架是它们中间体。框架 比组件更抽象,更灵活,而比设计模式更具体和更易于使用。因此,框架可以看 作是一种兼有设计复用和代码复用特征的软件复用技术。 2 3 本章小结 在本章中,首先介绍了框架技术的概念、特征、分类、组成元素以及框架设 计原则,接着通过与类库、构件、设计模式比较进一步说明了框架技术的实质, 使我们对框架技术有了更深层的认识。 第3 章c o m m n e t 框架概览 第3 章c o m m n e t 框架的总体设计 3 1 设计目标 框架的总体目标:建立一个通用的基于n e t 的应用框架。基于这一目标,有 以下几个评价指标: 功能完善:能够满足用户所需要的各种功能。 通用性强:能够适应不同用户的不同需求,即框架要与具体业务逻辑的耦 合性要低。 分层结构:各层间的耦合性要低,以提高框架的柔性,并且能根据用户不 同需求进行相应的改变。 3 2 框架采用的体系结构 初期的客户机服务器技术采用两层结构,即用户界面和大部分业务逻辑放在 客户端,共享的数据放在数据库服务器端,这种结构对于规模较小,复杂程度较 低的信息系统比较合适,但在开发大规模企业应用系统中逐渐暴露出不足来: 难以集中控制:企业逻辑安装在每一个客户机上,这就使得对系统的维护、 修改非常困难。 客户端负担大:由于企业逻辑放在客户端,这就要求客户机具有完成这些 计算任务的强大功能,客户机性能影响系统性能。 安全性比较差:由于大部分业务逻辑放在客户端,企业的核心机密容易被 泄漏,导致不安全。 三层构架的出现,解决了上述的问题,它将用户界面同企业逻辑分离。把信 息系统的功能划分为:表示、功能和数据三大块,分别放置在不同的层上。由于 业务逻辑与用户界面相分离,这就解决了两层结构所面临的问题。具体来说,三 层架构有如下优点: 适合群体开发,每个人可以有不同的分工,协同分工使效率倍增。 属于瘦客户端模式,对用户端的要求比较低。 可以更好地支持分布式计算环境,逻辑层的应用程序可以运行在多个机器 基于n e t 平台的应用框架的设计与实现 上,充分利用网络的计算功能。 最大优点是安全性,客户端只能通过逻辑层来访问数据层,减少了入口点, 把关键的系统功能都屏蔽起来。 当前企业应用软件的开发主要采用三层体系结构。在一个典型的采用三层体 系结构的企业应用系统中,应用系统通常被划分为三个层次:数据存储层,应用 逻辑层,用户界面层。如图3 1 所示: 图3 1 三层体系结构图 f i g3 1t h r f , el a y e r a r c h i t e c t u r ec h a r t 1 用户界面层 用户界面层提供给用户一个视觉上的界面,通过界面层,用户输入数据,系 统获取数据,同时界面层也提供一定的安全性,确保用户不会看到机密信息。 2 应用逻辑层 应用逻辑层是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务 并从数据层获取数据,并将必要的数据传送给界面层。在这里应用逻辑层由w e b 服务器和应用服务器及其上的应用服务构成,即w e b 服务器向用户界面层的浏览 器提供w e b 访问服务;应用服务器上的程序完成实际业务逻辑,并将需向前台返 回的结果从数据库中取出,交给w e b 服务器。 3 数据存储层 第3 章c o m m n e t 框架概览 数据存储层的定义:维护数据的完整性、安全性、它响应逻辑层的请求并访 问数据。这一层通常由大型的数据库服务器实现,如o r a c l e 、s y b a s e ,m ss q l s e r v e r 等。 采用三层体系结构,与该企业原有的系统相比,主要以下几个区别t 良好的解耦性,各个功能层只需负责自己相应的事物,相对独立; 软件体系结构更先进; 灵活性强,中间层高效的跨平台性,提高了系统的通用性; 为系统的安全提供了有效的保障; 系统维护更简便,布局合理; 系统的可扩展性强,可靠性高。 3 3c o m m n e t 框架的总体设计 通过前面对企业应用软件体系架构进行的分析,我们决定在c o m m n e t 框架 中采用三层体系结构并实现以下几个部分以展现其向客户程序提供的各种服务。 图3 2 显示了c o m m n e t 框架的总体结构。 c o m m n e t 框架主要包括以下3 个组成部分: 1 基于m v c 模式的表示层 该部分采用应用比较广泛的m v c 模式,支持w e b 层客户端和w i n d o wf o r m 客户端,而且通过扩展能够支持其他类型的客户端,很好的改善了n e t 显示与业 务分离的特性 2 通用数据访问层 该部分采用抽象工厂等模式,结合n e t 本身的技术特点,设计了一个适合当 今流行数据库的通用数据访问层。 3 通用异常处理模块 利用反射机制和x m l 配置技术实现一个通用的、灵活的、可配置的、高度可 自扩展的异常处理模块。 本文将在后续章节中详细叙述各个部分的设计与实现。 基于n e t 平台的应用框架的设计与实现 用户请求 l 视 v i e w w 曲v i e w w i nh 图 、f 异 表示层 上 , 上 常 控 l 丽骊弪利蒋 r 7 处 控制层 lj l 制 理 r 模 l 业务逻辑l业务逻辑卜 模 业务逻辑层 il 型 1 li 块 数据访问对象卜 。 数据访问层 tt 1 出 数据存储层 l i 黼库 图3 2 框架的总体结构 f i g3 2e n t i r es t r u c t u r eo ft h ef r a m e w o r k 3 4c o m m n e t 框架中相关技术 3 4 1x m l 简介 x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 由w 3 c ( 互联网联合组 织】于1 9 9 8 年2 月发布的标准,是s g m l ( s t a n d a r dg e n e r a l i z e dm a k e u pl a n g u a g e , 标准通用标记语言) 的一个简化子集,它将s g m l 的丰富功能与h t m l 的易用性 结合到w e b 应用中【1 5 1 。h t m l 是一种简单的表示性语言,只能显示内容而无法表 达数据内容,而这一点恰恰是电子商务、智能搜索引擎所必须的i 坷。另外,h t m l 语言不能描述矢量图形、数学公式、化学符号等特殊对象,数据显示方面的描述 第3 章c o m m n e t 框架概览 能力不强最重要的是,h t m l 可扩展性差,用户不能自定义有意义的标记供他 人使用。这一切都成为w e b 技术进一步发展的障碍。x m l 描述了一类称为x m l 文件的数据对象,同时也部分地描述了处理这些数据对象的计算机程序的动作。 本质上x m l 是- - f 表达结构化数据的技术【1 5 1 。大部分相关w e b 服务都使用x m l 作为数据表达方式,就像使用x m l 模式来描述数据类型一样,x m l 克服了h t m l 的诸多缺点,具有高度的灵活性,因此业界一致认为它将成为网络信息交换的通 用语言。 3 4 2 n e t 反射机制 反射机制是n e t 提供的非常重要的功能,通过反射机制,n e t 可以访问应用 程序元数据我们可以将反射简单的定义为在运行时发现类型信息的能力,反射 通常具有以下用途【1 7 1 : 使用a s s e m b l y 定义和加载程序集,加载在程序集清单中列出的模块以及 从此程序集中查找类型并创建该类型的实例。 使用m o d u l e 获取如下的类似信息:包含模块的程序集以及模块中的类等, 还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。 使用c o n s t r u c t o r i n f o 获取如下的类似信息:构造函数的名称、参数、访问 修饰符( 如p u b l i c 或p f i v a t c ) 和实现详细信息( 如a b s t r a c t 或v i r t u a l ) 等。使 用,i 卯c 的g e t c o n s t r u c t o r s 或g e t c o n s t r u c t o r 方法来调用特定的构造函数。 使用m e t h o d i n f o 来获取如下的类似信息:方法的名称、返回类型、参数、 访问修饰符( 如p u b l i c 或p r i v a t e ) 和实现详细信息( 如a b s t r a c t 或v i r t u a l ) 等。 使用t y p e 的g e t m e t h o d s 或g e t m e t h o d 方法来调用特定的方法 反射也可用于创建称作类型浏览器的应用程序,它使用户能够选择类型,然 后查看有关选定类型的信息。 反射还有其他一些用途。j s c r i p t 等语言编译器使用反射来构造符号表。 s y s t e m r u n t i m e s e r i a l i z a t i o n 命名空间中的类使用反射来访问数据并确定要持久保 存的字段。s y s t e m r u n t i m e r e m o t i n g 命名空间中的类通过序列化来间接地使用反 射【1 8 】。 基于n e t 平台的应用框架的设计与实现 3 4 3 n e t 委托机制 委托是代表自己调用对象方法的对象,有时被描述为类型安全、面向对象的 函数指针【1 9 l 。可以使用委托指定事件处理的响应程序,也可以与多线程应用程序 一起使用委托。 通过新增的关键字d e l e g a t e 定义委托类型。委托类型是具有某种签名的函数 或过程原型,用n e w 关键字可以生成委托实例。委托实例用来引用类型的s h a r e d 方法供似于饼或c + + 的静态方法) 。任何具有匹配参数类型和返回类型的过程均 可用来创建委托类的实例,然后就可以通过委托实例来调用过程。 3 4 4 n e t 数据绑定技术 从本质上讲,数据绑定指的是一个在运行时自动为包含数据的结构中的一个 或多个窗体控件设置属性的过程。具体而言,是指w i n d o w s 窗体使用m i c r o s o f t a d o n e t 进行数据绑定的过程。使用数据绑定,无需显式编写实例化连接和创 建数据集的代码( 而使用非绑定窗体则必须这样做) ,与w i n d o w s 窗体相关联的向 导将编写必要的a d o n e t 代码【刎。n e t 可以进行两种类型的数据绑定;简单 数据绑定和复杂数据绑定。两种方法各有优势。 简单数据绑定允许将控件绑定到单个数据元素。最常用的简单数据绑定是将 单一

温馨提示

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

评论

0/150

提交评论