(计算机软件与理论专业论文)基于总线模式的信息服务平台设计研究.pdf_第1页
(计算机软件与理论专业论文)基于总线模式的信息服务平台设计研究.pdf_第2页
(计算机软件与理论专业论文)基于总线模式的信息服务平台设计研究.pdf_第3页
(计算机软件与理论专业论文)基于总线模式的信息服务平台设计研究.pdf_第4页
(计算机软件与理论专业论文)基于总线模式的信息服务平台设计研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

河海大学硕士学位论文摘要 摘要 相比于常规的应用软件系统,信息服务平台类系统开发难度大、复杂度高, 设计开发周期长,而具体的软件技术变化快,平台系统的设计速度往往赶不上关 键技术的变化速度。本文从设计模式的角度提出了一种以服务为核心,解决软件 平台长期设计开发的方法一总线模式。 随着软件技术的发展,如何设计可复用的面向服务软件越来越受到关注。当 应用软件的复杂度不断加大时,单凭个人的设计经验已经不能解决所有的设计问 题,利用资深软件工程师的经验就显得尤为重要。当建筑领域提出把设计经验作 为设计模式来记录后,软件工程学便引入了这一理念,出现了软件领域的设计模 式。设计模式描述了在特定语境中出现的设计问题的特殊重现,并为这种方案提 供了一个被证明良好的一般计划,方案计划通过描述它的关键组件、它们的职责 和相互关系以及结合的方式来指定 本文旨在研究设计模式如何在基于的系统中得到合理应用。首先对于设计模 式进行了简单介绍,然后软件总线进行了详细的分析,提出了使用总线模式解决 平台类软件设计的问题,接着针对实际项目详细讨论了设计模式在项目中的应 用,并给出了项目的设计,最后给出了对本文的总结以及对于设计模式研究的看 法和展望。 【关键词】设计模式总线面向服务 河海大学_ 哦士学位论文 a b s t r a c t t r a d i t i o n a ls o f t w a r ef r a m e w o r kd e s i g n e dt or e d u c es o f t w a r ed e v e l o p m e n t c y c l e sa n dc o s t s ,i n c r e a s ed e v e l o p m e n te f f i c i e n c y , t h eb u sp a r e mp r o p o s e di nt h i s p a p e ri sn o tt oc h a n g et h ef a c t t h a tt h ep l a t f o r mo ft h es y s t e md e s i g na n d d e v e l o p m e n ti sd i f f i c u l lc o m p l e xa n dh i g hl o n gc y c l e ,t h es p e c i f i cs o f t w a r e t e c h n o l o g yc h a n g e sr a p i d l y t h ep a p e rp r e m i s e st os 朗肌a st h ec o r es o f t w a r e p l a t f o r mt or e s o l v el o n g t e r mc h a n g e si nt h ed e s i g na n dd e v e l o p m e n to fam e t h o d o f a d a p t a t i o n 。 w i t l lt h ed e v e l o p m e n to fs o f t w a r et e c h n o l o g y , h o wt od e s i g nr e u s a b l e s e r v i c e - o r i e n t e ds o r w a r e 汹m o r ea n dm o r ea t t e n t i o n w h e nt h ec o m p l e x i t yo f s o f t w a r ea p p l i c a t i o n si n c r e a s i n g t h ed e s i g no f t h ei n d i v i d u a la l o n ec a nn o ts o l v ea l l t h ee x p e r i e n c eh a sb e e nt h ed e s i g np r o b l e m ,u s i n gt h ee x p e r i e n c eo f s e n i o rs o f t w a r e e n g i n p 2 l si ts e e m sp a r t i c u l a r l yi m p o r t a n t w h e nm a d ei nt h ea r e ao ft h eb u i l d i n g d e s i g ne x p e r i e n c ea sad e s i g np a t t e r nt ot h er e c o r d , s o f t w a r ee n g i n e e r i n gw i l lb e i n t r o d u c e dt h i sc o n c e p ti nt h ef i e l do fs o f t w a r ed e s i g np a t t e r n s d e s i g np a t t e r n s d e s c r i b e di nt h es p e c i f i cc o n t e x to ft h es p e c i a ld e s i g np r o b l e m sr e c u l ,a n dp r o v i d e f o rs u c hap r o g r a mp r o v e dag o o dg e n e r a lp l a n , t h ep r o g r a mp l a n st od e s c r i b ei t s k e yc o m p o n e n t s ,a n dt h e i rm u t u a lr e l a t i o ma n dd u t i e sa n dt oac o m b i n a t i o no f d e s i g n a t e d t h i sp a p e ra i m st os t u d yb o wt od e s i g nt h es y s t e mt ob eb a s e do nr e a s o n a b l e a p p l i c a t i o n f i r s to fa l li tg i v e sas i m p l ed e s c r i p t i o na b o u td e s i g np a t t m , t h e s o i i w a r eb u sa n dt h e nc a r d e do u tad e t a i l e da n a l y s i s ,a n dt h e nf o rt h ea c t u a lp r o j e c t & s i g np a t t e r n sa r ed i s c u s s e di nd e t a i li nt h ep r o j e c ta p p l i c a t i o nb yt h eu s eo fb u s p a t t e r nt or e s o l v et h ep l a t f o r mo fs o f t w a r ed e s i g np r o b l e m s ,t ot h ef m a lo u to ft h e p a p e ra sw e l la sas u m m a r yo f t h es t u d yd e s i g nv i e w sa n dp r o s p e c t s k e y w o r d s 】d e s i g np a t t e r n ,b u s ,s e r v i c eo r i e n t e d n 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作 及取得的研究成果尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果与我一同工 作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意如不实,本人负全部责任。 论文作者( 签名) : ( 注:手写亲笔签名) 学位论文使用授权说明 w ,导年3 月沾日 河海大学、中国科学技术信息研究所、国家图书馆、中国学术期 刊( 光盘版) 电子杂志社有权保留本人所送交学位论文的复印件或电 子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文 档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允 许论文被查阅和借阅。论文全部或部分内容的公布( 包括刊登) 授权河 海大学研究生院办理。 论文作者( 签名) : ( 注:手写亲笔签名) 驴站年3 月磁日 扣海大学硕士学位论文 1 1 研究背景 第一章绪论 本课题来源于河海大学与水利部黄河水利管理委员会合作的科研项目一 一“数字黄河”信息服务平台的研究 。数字黄河”应用服务平台是。数字黄河”工程的核心,是支撑应用系 统开发与运行的重要基础设施,也是信息及资源共享的平台。建设应用服务平 台的主要目的是通过平台提供的机制与技术手段,基本打通已经存在的。信息 壁垒”,形成信息资源在黄委会范围内实现信息共享;提供基于软件复用等先 进技术的业务应用开发与运行支撑平台,形成可供复用的软件资源,最大限度 地减少软件的重复开发。 在黄委会已经建成的大量系统中,具有网络环境封闭化、数据库系统孤立 化、解决问题单一化、服务对象局部化等特点。由于这些特点的存在,导致了 三个方面主要问题: 信息资源缺乏完整性; 信息资源具有高度的独立性,信息资源之间交换信息困难; 应用基础薄弱,子信息系统功能单一,且存在重复开发: 针对上述问题,“数字黄河”工程规划提出了建设应用服务平台,并将其 作为建设的重点。应用服务平台建设的重要意义在于将纵向划分的治黄业务计 算机应用系统转变为横向整合的“数字黄河”有机体系。通过应用系统开发建 设的规范化与平台化,逐步形成。数字黄河”软件与信息的共享资源,最大限 度地避免重复开发,提高系统的整体技术水平,保障“数字黄河”基于开放性 与标准化的可持续演化,规避技术风险,减少开发建设与运行维护的复杂度, 提高投资效益。 对于信息服务平台的研究经过了需求分析、系统概要分析两个主要阶段, 现在处于研究开发阶段。在之前的研究中,研究人员采用j 2 e e 的软件架构, 整合黄委会的分布式资源,采用e j b 作为规范信息、支撑流程、产生应用的主 要手段。但是e j b 技术的以下问题,制约了基于e j b 的j 2 e e 架构在信息服务 平台中的应用: # 海人学硕j + 学位论文 f a b 的数据技术需要取得数据库的高级管理权限,对于国家政府机关来 说,开放敏感数据库的高级权限会带来国家安全隐患; 在使用f j b 构建分布式系统的过程中,需要在本地使用f a b 远程接口, 提高了分布式系统的耦合度; f j b 的开发维护需要专业团队的参与,维护成本较高; 针对基于e j b 的j 2 e e 存在的问题,在本阶段的研究中,引入了s o a 的 架构。s 0 n s e r v i c eo r i e n t e da r c h i t e c t u r e ) 称为面向服务的软件架构,它尝试给 出在特定环境下推荐采用的一种架构,从这个角度上来说,它更像一种模式 ( p a t t e m ) 。因此它与很多已有的软件技术比如面向对象技术,j 2 e e 架构,是互 补的而非互斥的。它们分别面向不同的应用场景、不同应用层次、不同系统粒 度,用来满足不同的需求。它最主要的应用场合在于解决在i n t e m e t 环境下的 不同商业应用之间的业务集成问题。s o a 提供了接口和实现之间的抽象级别 以最小化依赖关系,促进了可重用性,将业务需求与i t 功能结合,从而可以 为您提供用于将业务需求转换为编程服务来实现流程自动化的机制,以及在快 速变化的业务环境中所必需的灵活性。以下这些相关因素通常会建议企业采用 面向服务的体系结构: 具有大量可利用的遗产系统 s o a 提供了一个抽象层,通过这个抽象层,企业可以将这些现有的遗产 系统包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而 不必重新从头开始构建。 需要降低集成和管理的复杂性 在面向服务的体系结构中,集成点是规范而不是实现。提供了实现透明性, 并将基础设施和实现发生的改变所带来的影响降到最低限度。通过提供针对基 于完全不同的系统构建的现有资源和资产的服务规范,集成变得更加易于管 理,因为复杂性是隔离的。当更多的单位一起协作时,会变得更加重要。 需要更快的响应和应用速度 从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商业要求 的组织提供了独特的优势。通过利用现有的组件和服务,可以减少完成软件开 发生命周期所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅 2 河海大学硕士学位论文 速地对改变做出响应和减少应用准备时间。 减少成本和增加复用 通过以松散耦合的方式公开的业务服务,可以根据业务要求更轻松地使用 和组合服务。这意味资源副本的减少、以及重用和降低成本的可能性的增加。 构建可扩展的系统 $ o a 提供了灵活性和响应能力,一个基于s o a 的分布式系统不再是静止 的系统,它可以根据需求自动组合服务,动态增加新的功能,弹性的满足用户 的需要。 基于s o a 的以上特点,结合黄委会的实际情况,在对遗产系统低侵入性 的前提下,保留正常运作的遗产系统,分时增量的包装遗产系统称为s o a 中 的服务,减少副本服务的发布,统一服务发布中的数据标准,规范服务的过程, 可逐渐从原有的信息缺失、集成困难、应用基础薄弱的状态,向信息完整丰富、 易于集成、具有丰富的应用基础的方向逐步转变。 由于黄委会的遗产系统数量庞大、结构复杂,这个转变的过程是一项长期 而艰巨的工作,s o a 是一个适合“数字黄河”的软件架构,但是不能因此完 全否定之前j 2 e e 的架构,在使用s o a 的同时利用大量j 2 e e 的优秀思想去构 建系统,才是正确的方向。 1 2 研究现状 目前,国家要求软件开发要平台化,减少软件的重复开发;水利部黄河管 理委员会与河海大学合作,开发“数字黄河”信息服务平台。而对于“平台” 的定义,工业界与学术界尚没有确切定义,指导平台类软件开发缺少软件方法 支撑。这些是本文的非技术背景。 信息服务平台在建设过程中,主流技术也在发生着巨大的变化,设计的变 化能不能适应需求以及主流技术的巨大变化就成为需要解决的问题。而设计模 式是对某一特定问题的最佳解决方案,相对设计来说更加稳定 如果把具体的设计抽象成为设计模式,这种变化带来的不确定性将会大大 降低,具有相同设计模式的系统具有类似的设计思想,对于一个高风险、长周 期项目来说,项目需要一个稳定的设计思路能够支撑软件项目的整个生命周 # 海人学硕l 岸位论文 期。 1 9 9 5 年,翻c hg a m m a , r i c h a r dh e l m , r a l p hj o h n s o n 和j o h nv l i s s i d e s ( 四人 被昵称为g a n go f f o u rg o f ) 发表了设计模式:可复用面向对象软件的基础 【l 】,开创了设计模式的研究时代。 1 9 9 6 芷f r a n kb u s c h m a n n , r e g i n em e u n i e r , h a n sr o h n e r t , p e t e rs o m m e r l a d , m i c h a e ls t a l 写了( p a t t e r n - o r i e n t e d s o f t w a r e a r c h i t e c t u r e ( v o l1 ) 2 】一书进一 步归纳了很多优秀的设计思想,比如家喻户晓的m v c ,依赖反转的基础机制 “反射”,m a s t e r - s l a v e 模式等等,大大丰富了设计模式的内容。绝大多数设计 模式现在依然非常先进。 1 9 9 6 年以后,设计模式成为研究的热点,优秀的模式不断涌现,直到2 0 0 0 年,d o u g l a ss c h m i d t , m i c h a e ls t a l ,h a n sr o h n e r t 与f r a n kb u s c h m a n n 出版了 ( p a t t e r n - o r i e n t e ds o t ! 1 w a r ea r c h i t e c t u r e ( v o l2 ) 【3 】,对四年间设计模式的发 展,做了比较全面的总结。相比较之前的设计模式,本书中的设计模式更加复 杂,更加符合主流技术的需求,包括并发,同步,事件通知处理等先进模式被 提出来,同时还介绍了模式的组合原则与未来发展的方向。第一次在设计模式 的领域内,提到了服务( s e r v i c e ) 的概念。 2 0 0 4 年m i e h a e lk i r c h e r 与p r a s h a n tj a i n 合著了( p a t t e r n - o r i e n t e ds o f t w a r e a r c h i t e c t u r e ) ( v o i3 ) 【4 】。书中概括了设计模式在4 年中的发展,对于模式的 研究相对趋于平淡,但是模式的应用确越来越丰富。著名的分布式对象架 构n e t 与j 2 e e 被提出,出现了实时和嵌入式系统中的设计模式,流程、事务 等概念在不断扩大的商业应用中被提到越来越重要的位置。并且预测,之后的 四年,模式的发展方向在资源管理、消息机制、人机交互等方面。 目前,主要商业信息服务平台主要是w e b l o g i c ( b e a ) ,w e b s p h e r e ( i b m ) , j b o s s ( o p e n s o u r c e ) ,d o t n e tf r a m e w o r k ( m i e r o s o r ) ,四个不同的信息服 务平台的产品使用的主要的设计架构分别是j 2 e e 与n e t ,设计架构,实现方 实,编程语言虽然不同,但是m v c 与分布式对象的设计模式思想始终贯彻在 两种架构中。 s o a 的出现大大降低了软件系统中信息的不一致性,大量的行业软件需 要利用s o a 来降低其开发维护成本,提高软件敏捷性,增强对按需服务的需 4 河坶人学坝士学位论文 求。经过多年的发展,近些年来,基于软件总线的应用越来越广泛,像m i c r o s o r 公司的技术标准c o m ,o m g 的c o r b a ,i b m 的w e b s p h e r e ,开源的e c l i p s e , s u n 的j a v a r m i ,o b j e c t s p a c e 的v o y a g e r 等等。 国外在设计模式,面向服务等方面的研究较为深入,研究的主体不仅包括 高校,还有大型企业的研究院,面向服务的系统的研究同时在学术与商业领域 发展。主要的研究方向有类似e b 锄k i l l g p l a 哟皿【7 】的复杂应用,服务质量管理 l s i g l ,也有从工业与经济的角度来看待软件的论文【1 2 1 1 3 1 。 向服务的架构( s o a ) 正作为j 2 e e 与n e t 架构的补充不断兴起,l b m 公 司作为s o a 的倡导者,在诸多平台设计的关键领域,使用设计模式的方法, 为一些特定的问题提供解决方案对本文影响较大的文献有:p a t t e r n s : i m p l e m e n t i n g a ns o a u s i n gme n t e r p r i s e s e r v i c eb u s l p a t t e r n s : s e r v i c e - o r i e n t e da r c h i t e c t u r ea n dw e bs e r v i c e s 嘲p a t t e r n s :d i r e c tc o n n e c t i o n s f o ri n u a - a n di n t e r - e n t e r p r i s c l 旧p a t t e r n s :b r o k e ri n t e r a e t i o mf o ri n t r a - a n d i n t e r - e n t e r p r i s e t l ,j p a t t e r n s :m o d e l d r i v e nd e v e l o p m e n tu s i n gi b mr a t i o n a l s o f t w a r ea r c h i t 0 2 t 1 1 8 】 近几年国内对于软件总线的研究更多是使用某项成熟的软件总线技术,实 现一个复杂的应用系统,或支撑某个复杂的业务应用。比如参考文献中的软件 总线技术及其在企业e r p 中的应用【3 i 】、软件总线技术在卫星地面数据系统的 应用【3 2 1 、软件总线研究及其在水电仿真系统中的应用【3 3 1 。 对于设计模式的研究,国内的研究方向主要集中在比较复杂的应用【2 2 2 1 , 模式的性能分析 2 8 】1 3 4 肄方面。对于软件平台设计的研究,方向主要集中在设计 系统本身上。从设计模式的角度,给与平台类系统一个完整的定义,或者给出 较完整解决方案的论文很少。 设计模式经过十几年的发现已经日趋成熟,对软件设计、软件架构起着越 来越重要的作用。目前国外的商业研究机构对于信息服平台设计的研究,只要 在商业模式与业务模式的研究上比较开放,而对于软件设计模式的研究,却相 对比较保密,纵观各类商业服务平台产品,总线+ 插件的设计相当普遍。由于 商业服务平台产品高昂的价格与维护成本,很难适应“数字黄河”信息服务平 台设计的需要;为广泛适应商业应用而开发的大部分组件对于“数字黄河”信 5 i f 海人学顾f :学位论立 息服务平台来说并不必要。因此,设计开发适合黄河管理委员会的信息服务平 台系统,为。数字黄河”信息服务平台提供一个基本的设计架构,就成为本论 文最主要的工作。 由于软件技术的发展日新月异,一套设计很可能在还未开发完成之前就已 经过时,而层次比较高的平台系统的基本设计的直接可操作性较弱,无法直接 指导软件平台系统设计的需要。为了解决这样的矛盾,本论文选择了设计模式 作为解决问题的切入点,从设计模式的角度来为信息服务平台的设计提供一 个,相对变化较小,可操作性较强的设计模式,指导平台系统的自主研发。 1 3 论文内容与组织 本文首先给出了“数字黄河”信息服务平台的基本设计,然后从信息服务 平台的设计出发,抽取设计中的思想。本文提出了一种框架级设计模式“总 线模式”,研究如何解决在信息服务平台类软件设计中的功能性以及非功能性 问题,指导平台类产品的设计开发。 文章共分为五个章节: 第一章绪论:主要介绍选题的背景、研究现状及存在问题,然后针对性地 导出论文的内容,以及在此领域中的贡献。 第二章设计模式与软件总线:主要介绍了本文的主要技术背景设计模 式与软件总线。分别从起源、分类、组合原则以及定义方式几个方面作了阐述。 第三章总线模式:使用经典的模式定义方式,给出了总线模式的定义。作 为一个框架级的设计模式,总线模式是一种层次化的、动态的设计思想。 第四章信息服务平台设计:主要介绍了利用总线模式的思想,在面向服务 的架构下的信息服务平台软件设计。 第五章总结与展望:总结全文并提出进一步的工作。 6 列海大学碗士学位论文 第二章设计模式与软件总线 2 1 模式的起源 设计模式的思想最初来源于建筑领域。c h r i s t o p h e ra l e x a n d a r 针对建筑设 计的日益形式化,采用科学推理的方法,尝试寻找到一组能够决定一个城市、 一座建筑、一问房屋结构的规律。最终,a l e x a n d a r 将他找到的这组规律整理 成册,出版了建筑模式语言城市设计的新理论和建筑的永恒之道。 这三本著作震惊了整个行业,使那些不需要太多专门知识与经验的人也可以使 用建筑学。他们标识有效结构之问的相似性,确定共同原则,作为常见设计问 题的方案,并将其命名为建筑学中的方案“模式”。模式的目标是为了普及常 见建筑问题的解决方案,使经验较少的建筑师能更高效地进行设计。 软件设计模式在软件行业中的起源可以追溯到1 9 8 7 年。那时,w a r d c u n n i n # 扭m 和k e n tb e c k 在一起用s m a l l t a l k 做设计用户界面的工作。他们决 。 定使用a l e x a n d e r 的理论发展出一个有五个模式的语言来指导s m a l l t a l k 的新 手,因此他们写成了一篇“u s i n g p a t t e r n l a n g u a g e s f o r o b j e c t o r i e n t e d p r o g r a m s u 3 1 的论文。 1 9 9 5 年,e r i c hg a m m a , r i c h a r dh e l m , r a 【p hj o h n s o n 和j o h nv l i s s i d e s ( 四人 被昵称为g a n g o f f o u rg o f1 发表了“设计模式:可复用面向对象软传的基础” u 】一书,这是在面向对象的编程中使用模式化方法研究的开创性著作,对软件 设计模式的发展产生了巨大的影响。 2 2 模式的分类 经典的设计模式依据其耳的可分为戗建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 和行为型( b e h a v i o r a l ) 三种。 创建型模式抽象了实例化过程它们帮助一个系统独立于如何创建、组合 和表示它的那些对象,一个类刨建型模式使用继承改变被实例化的类,而一个 对象创建型模式将实例化委托给另一个对象。随着系统演化得越来越依赖于对 7 河海人学硕l 学位论义 象复合而不是类继承,创建型模式变得更为重要。创建型模式中有两个不断出 现的主旋律。第一,它们都将关于该系统使用哪些具体的类的信息封装起来: 第二,它们隐藏了这些类的实例是如何被仓建和放在一起的整个系统关于这 些对象所知道的是由抽象类所定义的接口。 创建型模式包括抽象工厂模式( a b s t r a c tf a c t o r y ) 、生成器( b u i l d e r ) 、工 厂方法( f a c t o r ym e t h o d ) 、原型( p r o t o t y p e ) 、单例( s i n g l e t o n ) 结构型模式涉及到如何组合类和对象以获得更大的结构。结构型模式采用 继承机制来组合接口或实现。结构型对象模式不是对接口和实现进行组合,而 是描述了如何对一些对象进行组合,从而实现新功能的一些方法。因为可以在 运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性。 结构型模式包括适配器( a d a p t e r ) 、桥接( b r i d g e ) 、组合( c o m p o s i t e ) 、 装饰( d e c o r a t o r ) 、外观( f a c a d e ) 、享元( f l y w e i g i l t ) 、代理( 代理) 。 行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的 模式,还描述它们之间的通信模式。这些模式刻了在运行时难以跟踪的复杂的 控制流它们将你的注意力从控制流转移到对象间的联系方式上来。类行为模 式使用继承机制分派行为。对象行为模式使用对象复合机制分派行为。 行为模式包括责任链( c h a i no f r e s p o n s i b i l i t y ) 、命令( c o m m a n d ) 、解释 器( i n t e r p r e t e r ) 、迭代器( 1 t e r a t o r ) 、中介者( m e d i a t o r ) 、备忘录( m e m e n t o ) 、 观察者( o b s e r v e r ) 、状态( s t a t e ) 、策略( s t r a t e g y ) 、模板方法( t e m p l a t e m e t h o d ) 、 访闯者( v i s i t o r ) 。 2 3 模式的原则 在实现代码复用,增加可维护性的目标的时候,我们必须遵循一定的原则, 只有这样,设计模式才是可行的解决方案,才可以更有效的实现采用设计模式 的目标。设计模式需要遵循的原则主要有四条:开放封闭原贝i j ( o c p ) 、里 氏替换原卿j ( l s p ) 、依赖倒转j 觖t ( d i p ) 、合成复用原贝l j ( c r p ) 。 河海大学确士学位论文 2 3 1 开放封闭原则( o c p ) 所谓开放封闭原n ( t h eo p e n c l o s e dp r i n c i p l e ,简称o c p ) ,是指软件 实体应该对扩展开放,对修改则是封闭的。 如果程序中的一处改动就会产生连锁反应,导致一系列相关模块的改动, 那么这样的设计是糟糕的如果正确地应用o c p ,那么以后再进行同样地改动 时,就只需要添加新地代码,而不必改动已经正常运行地代码。 开放封闭原则包含2 个方面内容: l 、对扩展是开放的( o p e n f o r e x t e n s i o n ) 。即模块的行为是可以扩展的。当 应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行 为。 2 、对更改是封闭的( c l o s e df o rm o d i f i c a t i o n ) 。即对模块行为进行扩展时, 不必改动模块的源代码或者二进制代码。 要实现开放封闭原则,关键是“抽象”。在面向对象编程语言中,可 以创建出固定却能够描述一族行为的抽象体,这个抽象体就是基类,而这一族 行为则表现为派生类如果模块依赖于一个固定的抽象体,所以它对于更改是 关闭的;如果通过从这个抽象体派生新的行为,那么此模块的对于扩展行为则 是开放的。面向抽象编程,正是设计模式的精华。 开放封闭原则也可以理解成“对可变性的封装原则”( p r i n c i p l eo f e n c a p s u l a t i o no f v a r i a t i o n , 简称e v p ) ,即:找到一个系统的可变因素,把它封 装起来。封装变化的概念,是许多设计模式的主题,它不是考虑什么会迫使设 计改变,而是考虑想要什么变化却又不会引起重新设计“对可变性的封装原则” 意味着两点:第一、一种可变性不应当散落在代码的很多角落里,而应当被封 装到一个对象里面,同一种可变性的不同表象意味着同一个继承等级结构中的 具体子类:第二、一种可变性不应当与另一种可变性混合在一起,即对于同种 可变性,继承结构一般不应超过两层。 在许多方面,o c p 都是面向对象设计的核心所在。然而,对于程序中的每 个部分都肆意的抽象同样不是一个好的主意,拒绝不成熟的抽象和抽象本身一 样重要。 9 河海人学硕i :学位论空 2 3 2 里氏替换原则s p ) l i s k o v 于1 9 8 7 年提出了一个关于继承的原则:“继承必须确保超类所拥有 的性质在子类中仍然成立”它表述如下:如果对每一个类型为s 的对象o l , 都存在类型为t 的对象0 2 ,使得以t 定义的所有程序p 中,在所有对象o i 都 换成0 2 时,程序p 的行为功能没有变化,那么类型s 是t 的子类型。也就是 说,子类( s u b t y p e ) 必, 须能够替换掉他们的基类( b a s e t y p e ) 。该原则称为里氏替换 原贝j j ( l i s k o vs u b s t i t u t i o np r i n c i p l e ,简称l s p ) 。 2 3 3 依赖倒转原则( d i p ) 依赖倒转原则( d e p e n d e n c yi n v e r s i o np r i n c i p l e ,简称d i p ) 指的是高层的 模块不应该依赖于低层次的模块,二者都应该依赖于抽象;抽象不应该依赖于 细节,细节应该依赖于抽象。 在传统的过程性系统中,高层的模块依赖于低层次的模块,抽象层次依赖 于具体层次。这样导致了底层的任何改变都会影响到上层。这样的软件系统没 有可维护性而言。抽象层次应该不依赖于具体的实现细节,这样才能保证系统 的可复用性和可维护性,这也就是所谓的倒转。 依赖倒转原则也可以表述为:对接1 2 1 编程,而不是对实现编程。只根据抽 象类中定义的接口来操纵对象有以下两个好处: l 、客户无须知道他们使用对象的特定类型,只须对象有客户所期望的接 口。 2 、客户无须知道他们使用的对象是用什么类来实现的,他们只须知道定 义接口的抽象类。 这将极大地减少子系统实现之间的相互依赖关系。 2 3 4 合成复用原贝q ( c r p ) 合成是通过获得对其他对象的引用而在运行时刻动态定义的。优先使用对 象合成有助于保持每个类被封装,并被集中在单个任务上。另一方面,基于对 象合成的设计会有更多的对象( f f 有较少的类) ,系统的行为将依赖于对象间的 l o 河海丈掌碗士学位论文 关系而不是被定义在某个类中。 2 4 模式的定义方式 如何定义一个模式? 图示法定义虽然非常重要且易于使用,但是描述的信 息缺乏完整性。这种方法只是简单的抓取模式的最终产品,比如类与对象之间 的关系,来定义模式。而想要复用一个设计模式。我们必须也记录下模式的决 定、可选项以及设计过程。具体的范例程序也是非常重要的,它们有助于在实 践中理解设计模式。 设计模式通常使用一致的格式来描述,每一个模式根据模版被划分成若干 部分,这些模版能够刻画出一个正规的结构来描述相关部分的信息,使得设计 模式易于学习、比较和利用。 这些用于刻画模式的模版包括: 模式名称与分类,意图,别名,动机,适用性,结构,参与部分,协作, 结论,范例实现,著名的应用,相关的模式。 模式的名称简洁地概括了模式的基本内容。一个好的名称是很重要的,因 为它会成为你的设计字典里的一部分。模式的分类反映出上文中介绍的模式结 构。 意图是一个简短的陈述回答以下问题:该模式傲什么事? 它的基本原理与 设计动机是什么? 存在什么特别的设计结果或者问题? 别名是这个模式其他有名的名称。 动机是一个能够阐明一个设计问题以及怎样使用类与对象解决这个问题 的完整的过程。这个过程可以帮助理解接下来对于模式更加抽象的描述。 适用性的主要内容是模式可以应用在那些情境下,该模式可以解决情境内 哪些失败的设计,以及怎样识别这些情境 结构通常是一个基于o m t 或者u m l 的图形化表现的类图关系,同时也 使用交互图来反映对象间的时序关系 参与部分详细描述参与模式的类与对象的职责。 协作的主要内容是参与者如何协作,完成他们各自的职责。 河j 每人学颇i 学位论文 结论是模式如何支持他们的目标,使用模式的利弊以及结果,系统的什么 方面能够独立变化。 范例实现是指代码级别的模式实现 著名应用是指现实系统中的应用实例。 相关模式的主要内容是与该模式相关的模式,他们有什么重要的区别,该 模式应该与其他哪些模式一起使用。 在本文将要定义的模式中,将主要采用名称、动机、适用性、结构、参与 部分、协作、结果、著名应用与相关模式这些模版来定义新的“总线模式”。 2 5 软件总线概述 软件总线是当前一种前沿的软件体系结构设计方式。正如硬件系统的复杂 化使工业生产不堪重负从而导致了总线结构的兴起,“总线插件”的体系 结构得到越来越多的认可。 软件总线的概念借鉴自计算机硬件系统总线结构。 计算机硬件总线结构是计算机硬件体系结构研究和发展的成果,目的是促 进计算机硬件工业的生产制造。计算机硬件系统中的总线( b u s ) 是指计算机各种 部件间传递信息的公共通道。它是一种分时共享的传输介质,具体实现为一组 公共的、有形的信号传输线,规定了一组互连信号线的集合,其控制功能一般 由c p u 或总线仲裁器完成。借助于总线,c p u 可与内存、i o 设备自j 交换信 息,协同工作,完成计算机系统的功能。微机中存在多种总线标准,如i s a 、 p c i 等,结构上也从以前的i s a 单总线结构,逐步发展到现在的p c i 多级总 线结构 在基于总线结构的计算机系统中,可以制作各种功能的插件板卡,插入到 系统的总线扩展槽,实现系统的“即插即用”,从而扩展了计算机系统的功能; 另一方面,计算机系统“积木化”的结构设计,硬件部件接口的标准化,使计 算机系统的生产、组装、升级、提速、扩充更新产生了质的飞跃,大幅度提高 了整个计算机硬件行业的生产率。 软件危机促使了对软件工程的研究,用于解决软件开发和设计中出现的和 硬件工业类似的问题。软件体系结构的研究是最有希望的途径和研究重点。软 河海人学颂i :学位论文 件体系结构的研究晚于硬件体系结构的研究,受到硬件总线体系结构的启发, 美国m a r y l a n d 大学的j a m e sp u r t i l o 和r i c h a r ds n o d g r a s s 于1 9 9 4 在一篇论 文中首先提出了“软件总线”的概念,并实现了一种软件总线原型p o l y l i t h 。 根据他们的定义,软件总线规定了一个标准的接口,只要软件模块( m o d u l e s ) 的接口符合总线标准,不管拥有何种内部私有属性,都能够“插到”总线上与 其它模块协同工作。 2 6 软件总线的定义 所谓软件总线结构,就是所有的功能部件以相同的方式连结在一个用来相 互通信的结构性部件上,这个结构性部件就是软件总线。而系统功能部件作为 软插件,挂接到总线上,部件之问的交互通过总线的控制和管理来完成。由此 带来的好处是,部件的内部设计被独立出来,再也不必考虑部件之间的互连问 题,设计人员可以专注于部件的功能设计。由于遵从同一的通信机制,完全实 现了部件的通用性。 在这种软件体系结构中,软件构件就像是硬件的“插件”,可以随意添加 和删减,系统的灵活性和可靠性都大大提高了。 2 7 软件总线的现状与未来 虽然“软件总线”的思想产生已久,但直到面向对象技术、客户,服务器 结构及分布式对象计算等技术的发展成熟,才使得这种软件总线思想的充分实 现成为可能。在此基础上,人们进一步将软件总线结构建立在软件重用的思想 上,包括构件的重用、软件体系结构的重用等,形成构件化的软总线体系结构, 即o b j e c t - o r i e n t e ds o f t w a r eb u s 面向对象的软件总线。各种符合软总线接口标 准的构件在软总线上可以实现“即插即用”,从而易于实现大规模软件系统的 集成和定制。同样,构件接口的标准化导致“软件生产的硬件化或工厂化”, 能够大幅度地提高整个软件行业的生产率。 目前软总线技术已得到了积极的应用,如美国t i b c o 公司的 t i b r e n d e z v o u s ( t h e i n f o r m a t i o n b u s 信息总线) 专利技术、爱尔兰i o n a 公司 的o r b i x 总线等。此外,h p 公司的n e g a t i o n 、i b m 公司的w e b s p h e 、 j i j j 海人学硕i :学位论文 s u n & n e t s c a p e 公司的p l a n e t 三种电子商务开发平台都支持基于总线结构的 应用软件开发,目前,在国内东南大学计算机系的推出了奥贝软总线( o r b u s ) 系统,另外东软软件股份有限公司也积极采用基于软总线的体系结构开发行业 应用软件。目前还出现了开源的软件总线程序库i v y 以及商业化的s w b u s 。 2 8 本章小结 本章首先回顾了设计模式发展的历史,阐述了设计模式的分类,讨论了设 计模式在组合过程中的基本原则,最后明确了设计模式的定义方式。为提出新 的设计模式,做理论准备。 接下来回顾了软件总线设计思想的来源和发展,阐明了软件总线的含义以 及用途,探讨了软件总线与软件复用之间的关系。为下一章节中的总线设计提 供理论支持。 4 河海大学碗士学位论文 第三章总线模式 信息服务平台在建设过程中,主流技术也在发生着巨大的变化,设计的变 化能不能适应需求以及主流技术的巨大变化就成为需要解决的问题。 如果把具体的设计抽象成为设计模式,这种变化带来的不确定性将会大大 降低,设计模式相对比较稳定,通常都是对某一特定问题的最佳解决方案,具 有相同设计模式的系统具有类似的设计思想,对于一个高风险、长周期项目来 说,一个稳定的设计思路能够支撑软件项目的整个生命周期。 3 1 总线模式的前提 3 1 1 基于文本的资源描述 资源是有限供给下的可用实体。资源用户是资源的请求者,他们需要实体 去完成某项功能。资源提供者是为请求提供实体的机构。 资源最简单的可以分为可服用资源与不可复用资源。典型的可服用资源从 资源提供者处请求,然后使用,最后释放。一旦资源释放,它就可以被重新请 求和使用。 资源按照使用方式分类,可以分成并发资源与排他资源。并发资源允许同 时使用,排他资源只允许独占使用。 资源的两种不同分类的关系,以及简单例子如下: 内存:可复用、排他 只读对象:可复用、并发 进程时间:不可复用、排他 总线模式中的最基本的原子资源叫做服务。服务是一种并发、可服用资源。 总线模式中最基本的过程叫做事务,是一种为了达到某个目的而有序地调 用若干服务的过程。 服务与事务是总线模式中最基本的逻辑抽象,它们都是可以由文本描述 的。l 是描述服务与事务最常见的工具。 i d 海大学硕j :学位论文 目前用于描述服务的典型语言是描述w e b 服务的w s d l ,用于描述事务 的

温馨提示

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

评论

0/150

提交评论