




已阅读5页,还剩47页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件的软件开发技术在企业应用集成中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文 m a s t e k st h e s i s 摘要 基于构件的软件开发( c o m p o n e n t - b a s e ds o f t w a r ed e v e l o p m e n t 。c b s d ) 是目前较为先进的开发技术,它已经给软件业带来了新的前景。而作为 i n t e r n e t 时代的企业级解决方案e a i ( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ) 提供了一条标准化的道路,通过使用连接器和集成方法把各种不同种类的现有 系统连接到一个基于w e b 的应用程序中。 随着计算机网络及其相关技术的发展。i n t e r n e t 不再仅仅是人们交流和获 取信息的途径,它己经成为一个遍布全球的、巨大的分布式计算平台。w e b 是 其提供服务的重要方式,并且它的应用领域越来越广泛。基于构件的软件丌 发技术是提高软件开发效率、保证软件开发质量、解决软件复用的重要手段。 在分布式环境下,w e b 与基于构件的软件开发技术的结合呈现一种必然趋势。 本文主要讨论了基于构件的软件开发技术( c o m p o n e n t b a s e ds o f t w a r e d e v e l o p m e n t ,c b s d ) 的发展状况、基本方法,以及它的基本开发模型和所使用 的技术,特别是在企业应用集成( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n e a i ) 方面的应用。通过对e a i 体系结构的研究,结合c b s d 方法的特点,给出了c b s d 应用于e a i 的几种模型,并通过对它们之间的比较得出了更优的方案,最终用 于提供企业级解决方案。 最后,通过大量实例显示将基于构件的软件开发技术应用于e a i 的作用、 有效性,并对提供解决方案的详细过程作了介绍,同时对全文的工作做了总结, 并对进一步的研究工作做了展望。 关键词:构件:框架:基于构件的软件开发:u m l :企业应用集成 硕士学位论文 m a s t e r st h e s i s a b s t r a c t n o w a d a y s ,t h ec o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n ti sa n a d v a n c e dd e v e l o p m e n ts k i l l ,w h i c hb r i n g san e wp r o s p e c tf o r t h e s o f t w a r ei n d u s t r y e a i ( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ) ,a sas o l u t i o n f o rt h ee n t e r p r i s e si nt h ee r ao fi n t e r a c t p r o v i d e sas t a n d a r dw a y i t c o n n e c t st h ev a r i o u ss y s t e m si n t oa na p p l i c a t i o np r o g r a mb a s e do nw e b b yt h ew a yo f c o n n e c t o ra n di n t e g r a t i o n w i t ht h ed e v e l o p m e n to ft h ec o m p u t e ri n t e r n e ta n di t sr e l a t e d t e c h n o l o g y , i n t e r a c ti s n o t o n l y t h ew a yf o rh u m a nb e i n g st o c o m m u n i c a t ea n do b t a i ni n f o r m a t i o n ,b u ta l s ob e c o m e sah u g e w o r l d w i d ed i s t r i b u t e dc a l c u l a t i n gp l a t f o r m w 曲p l a y sa ni m p o r t a n t m e a n st oo f f e ri t ss e v i c e m o r e o v e r , i ti se m p l o y e dm o r ea n dm o r e w i d e l y t h ec o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n ti s av e r y i m p o r t a n tw a y t o p r o m o t el h e s o f t w a r e d e v e l o p m e n te f f i c i e n c y , g u r a n t t e e i t s d e v e l o p m e n tq u a l i t y a n dr e u s et h es o f t w a r e s i nt h e d i s t r i b u t e de n v i r o n m e n t i ti sn e c e s s a r yt r e n dt oi n t e g r a t et h e c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n ta n dw e b t h i st h e s i sm a i n l yd e a l sw i t ht h ed e v e l o p m e n ts t a t u s ,b a s i cm e t h o d , t h eb a s i cd e v e l o p m e n tm o d e la n dt h et e c h n o l o g yo fc o m p o n e n t - b a s e d s o f t w a r e d e v e l o p m e n t ,e s p e c i a l l y t h e a p p l i c a t i o n o f e n t e r p r i s e a p p l i c a t i o ni n t e g r a t i o n t h r o u g h t h e s t u d y o fe a is y s t e ma n d f r a m e w o r k ,i n t e g r a t i n gt h ef e a t u r e so fc b s dw a y , t h i st h e s i sp u t s f o r w a r dt h em o d e l si nw h i c hc b s di su s e di ne a i a n dp r o v i d e st h e b e t t e rm o d e lo nt h eb a s i so ft h e i rc o m p a r i s o n l a s t ,f u r t h e r m o r e ,t h i s t h e s i so f f e r sas o l u t i o nf o rt h ee n t e r p r i s e s f i n a l l y , t h i sp a p e rp r o v e s t h ee f f e c ta n de f f e c t i v e so f 儿 c o m p o n e n t - b a s e d s o f t w a r ed e v e l o p m e n ta p p l i e di ne a ib yt h ew a yo f al a r g en u m b e ro fp r a c t i c a le x a m p l e s ,i n t r o d u c e st h es p e c i f i cc o u r s eo f o f f e r i n gt h es o l u t i o n ,s u m m a r i z e st h eh a r d w o r ko ft h et h e s i sa n dm a k e s ap r o s p e c to ff u r t h e rr e s e a r c h k e y sw o r d s :c o m p o n e n t ;f r a m e w o r k ;c o m p o n e n t _ b a s e d s o f t w a r ed e v e l o p m e n t ;u m l ;e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n i i i 硕士学位论文 m a s t e r st h e s i s 郑重声明 本人的学位论文是在导师指导下撰写的,学位论文没有剽窃、 抄袭、造假等违反学术道德、学术规范和侵权行为,本人愿意承担 由此而产生的法律责任和法律后果,特此郑重声明。 学位论文作者( 签名) : 蟛年厂月小 硕士学位论文 m a s l 讯s t h e s i s 1 1引言 第一章绪论 自2 0 世纪中叶计算机诞生以来,计算机技术就以罕见的速度迅速发展和 普及,渗透到人类生活的各个角落。计算机最初只是被应用于科学计算,随 着通讯技术和计算机技术的结合,分布在不同地域的计算机被连接起来,构 成了计算机网络,网络技术使计算机突破了单机应用的局限性,使信息可以 共享和交换。 近年来i n t e m e t 的迅猛发展已经对人类社会形成巨大的冲击,各行各业都 受其影响发生了深刻的变化,随着世界范围内i n t e m e t 环境的形成,人类社会 正在进入一个以网络为中心的信息时代。 随着i n t e m e t 技术不断发展,大量的应用系统,都面临着向i n t e m e t 迁移 这样一个共同的课题,同时计算机软件的开发技术也面临着新的挑战,传统 的结构化方法和面向对象方法不再适合分布式应用的丌发,基于构件的软件 开发技术成为解决多层w e b 应用的核心,涌现出了许多以构件为基础的技术, 如c o r b a ,c o m ,j a v ab e a n s 等,这些开发技术遵循面向对象原则,以构件 为基础,可以很好的支持分布式计算。分布式计算与基于构件的软件开发技 术的结合使得基于w e b 的应用蓬勃发展成为了一种必然的趋势。如何更好的 丌发分布式应用,如何更好的开发简单易用的构件。使构造出来的应用尽可 能符合软件复用思想就成为软件开发者研究的重要内容。 部署构架的越来越多的异构性、复杂性和分布性使得今天的软件解决方 案提供者所面对的问题混合在一起。在过去的十多年中,这些变化的一个主 要驱动力是大量采用i n t e m e t 作为许多系统部署的目标。i n t e r a c t 一开始作为 一种共享信息的手段,现在已经成为各种类型的高度交互的系统、支持商业 事务、信息收集和分发以及许多形式的教育和娱乐的一个主要目标。 硕士学位论文 m a s t e r st h e s i s 1 2 国内外研究现状 国际上,软件复用在领域工程、构件及构件库的标准化、构件组装技术、 基于复用的软件开发过程和复用成熟度模型等方面取得了重大成功。如:卡内 基梅隆大学的软件工程研究所( c m u s e i ) 提出了面向特征的领域分析方法 ( f e a t u r e o r i e n t e dd o m a i na n a l y s i sm e t h o d f o d a ) ,并将该方法成功地运用于 美国空军运动控制等领域。美国军方与政府资助的项目中,己建立了若干构 件库系统,立1 1 :c a r d s ,a s s e t , d s r s 等。s t a r s 项目组于1 9 9 2 年提交了 a l o a f ( a s s e sl i b r a r yo p e na r c h i t e c t u r ef r a m e w o r k ,开放体系结构的构件库 框架) v e r s i o n1 2 。这一报告体现了a l o a f 对可复用构件库系统的认识,并就 此实现了a l o a f 规约作为该参考模型的实例。c a l d i e r i 和b a s i l i 提出了基于 复用的软件开发过程。i b m 和l o r a lf e d e r a ls y s t e m 公司研究出了复用成熟度 模型。 为了达到“即插即用”的效果,构件接口的标准化尤其重要,在构件的 接口方面也有了很多种技术,其中具有代表性的三种工业标准为:o m g 的 c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ) 技术、m i c r o s o f l 的 c o m ( c o m p o n e n to b j e c tm o d e l ) 技术、s u n 的e j b ( e n t e r p r i s ej a v ab e a n s ) 技术。 在国内,杨芙清院士主持的国家重点科技攻关项目青鸟工程重点研究 了软件的工业化生产流程和软件复用的相关技术,并取得了可喜的研究成果。 另外,“上海构件库”项目也取得了重大进展。 e a i ( 企业应用集成) 将进程、软件、标准和硬件联合起来,在两个或更 多的企业系统之间实现无缝集成,使它们就像一个整体一样。尽管e a i 常常 表现为对一个商业实体( 例如一家公司) 的信息系统进行业务应用集成,但 当在多个企业系统之问进行商务交易的时候,e a i 也表现为不同公司实体之阳j 的企业系统集成。 i b m 软件部副总裁b i l l r e e d y 认为“现在,大部分人都从软件公司购买成 品,他们不得不迅速从一种环境转入另外一种环境。比如说,我需要在周四 将自己的应用程序w e b 化,但在三年之内,我也可能没有办法实现,我必须 篇慕 加快进一步使用手头的应用系统的步伐,使它们和新的应用合并起来。并且 无论是购买还是自己构造,你都是在建造一个能提供价值的应用程序链,这 就是e a i 所做的事情。” i d c 认为,e a i 服务市场将会是未来3 5 年内i t 行业中增长最快的部分。 根据i d c 的调查,“这个市场上全球的营业收入会从2 0 0 0 年的5 0 亿美元上升 到2 0 0 5 年的2 1 0 亿美元,这意味着综合年增长率( c a g r ) 超过了3 0 。与此相 对应,整个i t 服务产业的同期综合年增长率预计为1 1 。”i d c 还报道,北美 和西欧将产生9 0 $ 的e a i 的服务需求,而r 本和拉美将驱动剩下的需求。制约 e a i 发展的因素主要有:服务的价格、人们对e a i 的认识以及b 2 b 集成的挑战。 但由于基于构件的软件开发技术是一个全新的研究领域,许多技术尚不 成熟,至于将其应用于e a i ,更是近年来的事,这里面要解决的问题很多, 值得研究。 1 3研究e a i 的意义和目的 i n t e m e t 迫使各个公司必须重新考虑战略模型和业务模型。与客户和供应 商之间实现电子网络化的扩展企业概念现在已经成为现实。 新的渠道正在改变着与市场打交道的方式,并且导致了传统的销售、信 息和供应链渠道的中介者的消失。例如,由于公司现在可以与它们的客户建 立实时的密切联系,所以它们经常在取消中问商的同时既改进了服务又减少 了成本。力量的平衡正倾向于客户一方。由于可以没有限制地访问i n t e r n e t 提供的信息,顾客们比“没有联网”时有更多的要求。真正的顾客忠诚度更 加难以建立,并且不能依赖。 竞争的面貌正在发生根本性的改变。不仅仅是新的竞争者正在出现,而 且传统的竞争者正在研究i n t e m e t 以使它变得更加具有创新性和商效性。 业务变化的速度正在增长到“i n t e m e t 速度”。规划水平、信息需要以及 客户和供应商的期望现在正反映了这个新的进展。 i n t e m e t 正在推动企业越过它们传统的边界。新技术重新定义了顾客和供 应商之间的关系,并且正在挑战现有的过程、功能和业务单元之间的内部边 3 硕士学位论文 m a s t e r st h e s i s 界。 知识正在成为一笔关键的财富和竞争优势的源泉。客户和他们购买模式 的信息被收集使用并取得了良好的效果。我们正在向知识经济发展。 由此看来,对e a i 的研究可以极大改善企业的管理状况,应对电子商务 革命,提高生产力。 1 4 全文的组织 第一章介绍将c b s d 用于e a i 研究和建设的背景、目的和意义。 第二章介绍构件、基于构件的软件开发技术的思想、方法,并通过给出 一种基于构件的软件开发( c b s d ) 的模型介绍了c b s d 的开发要点和过程。 第三章介绍i n t e m e t 所引发的电子商务革命,要求提供i n t e m e t 时代的企 业级解决方案,深入探讨将基于构件的软件开发技术用于e a i 建设的方法、 要点、示例。 第四章总结了全文所做的工作并对迸一步的研究进行了展望。 硕士学位论文 m a s t e k st h e s i s 第二章基于构件的软件开发技术 本章从自己的视点详细讨论了构件相关的概念和思想,特别地论述了基 于构件的软件开发技术、面向对象技术、分布式技术之间的关系,u m l 极其特 点,并通过给出一种基于构件开发( c b s d ) 的模型介绍了c b s d 的开发要点和 过程。 2 1 构件基础 2 1 1 构件概念及特征 构件是当前软件开发、软件设计中一个重要的概念和先进的技术。关于 构件的概念有许多不同的意见。一般认为,构件是一个可复用的、提供某一 种服务或完成一定任务的软件体。实际上构件是一个独立发布的功能部分, 可以通过它的接口访问它的服务。 归纳起来构件有如下几大特征: ( 1 ) o p 插即用:构件可以方便的集成于应用框架( a p p l i c a t i o nf r a m e w o r k ) 中,就象d i y 装机一样。 ( 2 ) 接口为核心:构件的接口和实现是分离的。构件通过接口实现与其它 构件和框架的交互:构件的具体实现被封装在内部,组装者只需关心接口, 不必知道其它的实现细节。 ( 3 ) 标准化:构件的接口必须严格标准化,这是构件成熟的标志之一。只 有出现了成熟的构件标准,才使构件开发的思想变成现实。 ( 4 ) 构件不仅可以通过开发得到,同时大量成熟的构件可以通过市场购得, 从而为软件生产提供广泛的选择空间。 5 硕士学位论文 m a s t e r st i - i e s i s 2 1 3 构件分类 构件按其遵循的标准、使用的范围、系统类型、应用领域和组装形式有 不同的划分: 按照遵循的标准可将构件分为两种:一种是可跨语言使用的标准构件, 如a c t i v e x 、c o r b a 构件;另一种是在某个特定环境下刁堵2 使用的菜单、用户 对象、模板等,如d e l p h i 下的v c l 构件、v b 、p o w e rb u i l d e r 下的可视化构 件。 根据使用的范围可将构件分为系统构件、领域通用构件和领域专用构件。 系统构件诸如组成用户界面的窗体、按钮、下拉式列表框等,它在各种应用 领域都有较大的复用价值;领域通用构件是在某应用领域内有较大复用价值 的构件,如信息系统中的数据库构件、报表构件;领域专用构件是指为完成 某特定功能或业务处理所设定的构件,复用领域有限,如信息系统中的业务 处理构件即属此类。 根据构件适用的操作系统类型可以分为w i n d o w s 9 8 、w i n d o w sn t 构件、 u n i x 、l i n u x 构件等。 根据构件适用的应用领域划分为,数据库、网络、多媒体、人工智能等 领域构件。 按照构件组装的角度分为二进制代码构件和源代码构件。 2 1 4 框架( f r a m e w o r k ) 框架( f r a m e w o r k ) 是为了解决某类问题的一组抽象类的集合及其实例对 象间交互协调行为的可复用的支撑技术。一个框架可以包含一组预先丌发好 的软件构件,开发人员可以直接利用这些构件,或者扩充定制这些构件得到 一个特殊的计算解决方案。利用框架开发人员不必每次都从底层开始丌发应 用。根据它所解决的问题,将框架分为三类; 应用框架:应用框架封装了可以普遍用于应用程序的一些专门技术,它 6 篙篙。 们可是被所有用户使用的水平功能。现在流行的图形用户界面是一个典型的 应用框架,它支持可被所有的图形界面应用程序利用的标准功能。 领域框架:领域框架封装了某一特定业务领域专门技术,这些框架包括 了专门为特定客户域服务的垂直功能,领域框架的例子包括:电子商务框架、 多媒体框架、数据访问框架。 支撑框架:支撑框架提供了一系列系统级服务,比如文件访问,分却式 计算或者设备驱动等,应用程序开发者可以直接利用支撑框架开发自己的应 用程序。 2 2 基于构件的软件开发技术 2 2 1 引言 在任何行业中,复杂情况通常是通过应用很多关键概念来解决的。这些 概念是通过像抽象分解、迭代和细化这样的方法来表达。它们是我们可以控 制的、可管理的方式来解决复杂问题时所要依赖的思维方式。 其中的关键是分解技术一把一个较大的问题分解成较小的、可管理的单 元,那样每一个单元都可以单独处理。这个技术是软件工程的许多方法的核 心。这些方法可以称为结构化设计、模块化编程或面向对象,它们产生的单 元称为模块、包或构件。然而,在每一种情况下所涉及的主要原则是,把 个大型系统认为是由定义良好的、可复用的功能单元构成的,能够控制系统 的分解,并且保证能够重构成一个完整系统成为可能。 虽然这些概念是很好理解的,但大多数机构在把这些概念应用于实际时 还是很艰苦的。然而,由于被软件工程师今天面对的挑战所驱动,许多机构 开始重新评价它们设计、实现和演化软件所使用的方法。这源于从现有系统 快速组装解决方案,更多地使用第三方解决方案,以及开发具有更大灵活性 的可复用服务等方面的不断增加的压力。 因此,我们应该重新注意面向复用、基于构件的方法,重新定义基于构 7 硕士学位论文 m a s t e r st h e s i s 件的策略,并用适当的工具和技术支持它。这些新方法统称为基于构件的软 件- 丌发( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t ,c b s d ) 或基于构件的软件 工程( c o m p o e n t b a s e ds o f t w a r ee n g i n e e r i n g ,c b s e ) 。对于软件系统的丌发 者和用户来说,c b s d 被看作是一种能够降低开发费用、提高生产率以及在快 速的技术演化原则面前受控的系统升级的丌发方式。 2 2 2c b s d 可能达到的目标 基于构件的软件开发( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t 。c b s d ) , 实际上是通过有计划地集成现有的软件部分来进行软件开发。 遏止复杂性:这些技术包括抽象、分解、以及增量式开发。 缩短发布时间:可以“i n t e r n e t 速度”发布软件。 提高一致性:尽可能利用系统之间的共性来提高一致性和降低开发成 本。 利用本领域中的最佳方法:利用很多领域中已经开发好的解决方案作为 更大规模开发工作的一部分。 提高生产率。 增加项目进度的可视性:降低管理大型软件项目的风险。 支持并行的和分布式的开发:有利于分布式团队进行并行开发。 减少维护费用:软件的大部分费用发生在维护阶段,c b s d 能有效降低这 一阶段的费用。 2 3 构件、对象、分布式技术 2 3 1 面向对象的开发方法 在计算机软件领域,每当一种程序设计方法不能适应应用软件发展需要 时,人们总会找到一种新的程序设计方法来解决这种“软件危机”。可以说, 8 硕士学位论文 m a s t e r st h e s i s 面向对象程序设计方法就是在这样的情况下发展起来的。随着面向对象思想 的提出,软件工程也发展到了一个新的阶段面向对象是一个非常优秀的开 发方法,是对软件开发过程所有阶段综合考虑得到的,面向对象的思想贯穿 软件开发的全过程,由面向对象分析( o o a ) ,面向对象设计( o o d ) 和面对象程 序设计( o o p ) 缀成。该方法的典型特点是:人们将现实世界中的事物看作是对 象。抽象对象的基本属性成为一个类,系统由对象组成,以对象为中心,对 象通过一系列状态变化完成计算任务。 面向对象程序设计方法能够从问题本身来把握应用系统的整体设计,并 且有效地把应用发展过程中易变部分与稳定部分隔开。而且面向对象程序设 计方法与面向对象分析、面向对象实现紧密结合起来,构成了软件生存周期 的主体。 从软件生存周期的全过程来看,复用性是一个很重要的特性,复用性也 是软件产业发展的基础,很长一段时间内,软件复用仅限于程序代码的复用, 各种程序库的应用就是代码复用的成功实践。但是这仅仅是一种较低层次的 复用,由于对代码理解的困难、标准的不一致以及传统程序设计语言本身对 复用的支持力度不足等方面原因,软件复用率并不高。随着软件工程技术的 发展,人们认识到软件复用和软件生存周期一样并不局限于代码编写和浏试, 而是一个从系统需求分析、设计到实现、测试、运行、维护的全过程。 在现实世界和作为其映射的软件系统中,“过程”和“操作”是多变和不 稳定的,而“对象”和“数据结构”是相对稳定的。因此以过程为中- 1 1 , 来设 计开发软件系统的结果可复用性必然较差;而以“对象”或“数据结构”为 中心来设计开发软件系统的结果的可复用性就可能较好。f 因为如此,自8 0 年代以来,在短短不到z o 年的研究工作中,己经提出了许多面向对象的软件 设计方法,其中较有影响的有:c o a d y o u r d o n 方法、o m t ( o b j e c tm o d e l i n g t e c h n o l o g y ,对象建模技术) 方法、 a c o b s o n 方法和o o s a 方法等等。 面向对象程序设计方法强调把问题域的概念直接映射到对象以及对象之 间的接口,这种方式比较符合人们通常的思维方法,从而减少了传统开发方 法从问题域到分析阶段再到设计和实现阶段的偏差。 面向对象方法使得在客观世界以及作为其映射的软件系统中,实体的结 9 硕士学位论文 m a s l 讯st h e s i s 构相对稳定。面向对象方法把属性和服务封装在对象中,当外部功能发生变 化时,这种封装可以保持对象结构的相对稳定,使得改动仅局限在一个对象 的内部,减小了因改动引起的系统波动效应。因此,用面向对象方法丌发的 软件具有易于扩充、修改和维护的特性。 差不多每一种面向对象程序设计方法都使用统一的模型来表达每个阶段 的结果,包括分析、设计、编码实现等阶段,因此,从整个软件生存周期来 看,后一阶段可以直接复用前一阶段的工作成果,弥补了传统丌发方式从数 据流图到模块结构图转化的鸿沟,既避免了重复劳动,又消除了转换过程带 来的误差。 面向对象方法具有的继承性和封装性也支持软件复用,并易于扩充,能 较好地适应复杂大系统不断发展和变化的要求。 但是,面向对象程序设计方法也不是十全十美,它也表现出一些缺点: 首先面向对象程序设计方法在处理大型软件系统时,它的粒度难以有效控制; 其次,现实世界中的许多问题领域包括影响多个对象的全局性处理,可以由 若干并行或串行执行的步骤组成,这种全局处理的概念不从属于任何单个对 象,与面向对象的思想不统一,并且缺乏有效的表示方法:另外一点,虽然 面向对象程序设计方法强调复用性,但实际复用的效果并不理想。 2 3 2基于构件的软件开发技术与面向对象技术的关系 随着计算机软硬件技术的发展,缩短软件开发时间、提高软件的丌发质 量越来越成为软件丌发者首要解决的问题,解决这一问题的途径之一就是软 件复用。从6 0 年代开始的函数级别的小粒度代码复用,到普通中粒度的复用 ( d e l p h i 的v c l ,v i s u a lc 十+ 的模板库) ,软件工作者一直在寻找一种能够象 电子产品那样,可即插即用,装配型的软件开发模式,于是构件的概念被人 们提了出来。 在面向对象思想中,对象具有属性和方法,内部实现被封装起来,通过 方法向外界提供服务,人们不能直接对对象内部的数据进行操作,面向对象 思想的出现极大的推动了软件业的发展。但是面向对象技术编译的对象与环 1 0 硕士学位论文 m a s l 讯s t h e s i s 境有关,缺少二进制标准,人们在发布对象库时不得不附上源代码。其次, 要跨越语言平台复用对象很困难,一种对象几乎只能被使用同样语言的程序 所调用。第三个问题是当使用如c + + 编写的应用程序中某个对象要改变时,你 将不得不重新链接甚至重新编译整个程序。我们期望只生成该对象的新版本。 应用程序就能够自动使用这个新版本的对象。 进入9 0 年代后,以面向对象技术为基础的基于构件的软件丌发技术的发 展才使这种局面歼始改变。采用基于构件的软件开发技术,软件工程师就可 以利用别人的成果来集成最终的系统,简化自己的工作。 构件的两个重要特性: ( 1 ) 构件之间可以在二进制级别上进行集成和复用。在一个成熟的构件应 用系统中,构件往往是来自不同的软件独立开发商。 ( 2 ) 构件必须独立的被生产、获得和配置,并且与环境和上下文无关。 构件也可看成一种对象,是一种粒度较大的对象,它由一个或多个小粒 度的传统对象构成,这些小粒度对象之间的联系比较紧密,而整个构件则相 对独立,与外界的联系较少,这些小粒度对象基本上只是在构件内部相互作 用。构件和对象具有如下的区别: 首先,通常对于“对象”的定义往往偏重于技术方面,简单来说,对象 是对状态和行为的封装,具有多态性和继承性,而不包含独立性和可构造性 的概念。而构件的概念除了技术方面的因素之外,还具有工程方面的属性。 其次,构件强调接口和构成,可咀通过一个或多个接口展示构件的属性 和方法,而对象强调继承。 第三,构件可以是语言和平台无关的。而传统对象做不到这一点,构件 一般要比传统的对象粒度大,构件沿袭了对象的封装特性,但同时并不局限 在一个对象其内部,可以封装一个或多个对象甚至过程。 第四,构件更强调基础服务的标准化,构件并不象c + + 对象那样直接通过 消息、相互作用,构件之间要通过软总线来进行消息传递,获取服务。如果 说对象封装了数据和操作,构件可以说是对对象进行了第二次封装。 晟后,构件可以很容易被复用,构件的独立性比对象要大得多。 有此可知,可复用构件必须具有独立性、完整性、可标识性、一般性、 i i 硕士学位论文 m a s t e r st h e s i s 适应性、可靠性、标准化这样的几个属性。 近几年来,构件在软件开发中得到了广泛的应用,这是因为在应用丌发 方面构件具有以下特点: 第一,构件是与开发的工具语言无关的,开发人员可以根据特定情况选 择特定语言工具实现构件的开发。 第二,通过接口有效保证了构件的复用性。一个构件具有若干个接口, 每个接口代表构件的某个属性或方法。其它构件或应用程序可以设置或调用 这些属性和方法来进行特定的逻辑处理。构件和应用程序的连接是通过其接 口实现的,负责集成的开发人员无须了解构件功能是如何实现的,而只须简 单的创建构件对象,和其接口建立连接。在保证接口一致性的前提之下,可 以调换构件、更新版本;也可以把构件安插在不同的应用系统中。 第三,构件是二进制代码,运行效率高、便于使用和管理。核一1 1 , 的业务 逻辑由构件来承担有利于提高整体性能,而且构件在网络上的位置可被透明 的分配,构件和使用它的程序能在同一进程中、不同进程中或不同机器上运 行。构件对象通过一个内部引用计数器来管理它自己的生存期,这个计数器 存放任何时候连接到该对象的客户数,当引用计数变为0 时,对象可以把自 己从内存中释放掉,这使程序员不必考虑与提供可共享资源有关的问题。 第四,对于使用构件的集成开发者而言,一个构件就是一个接口集,只 能通过接口才能与构件进行通信。而对于构件来说,接i z l 是包含一个函数指 针数组的内存结构,每个数组元素包含的是一个由构件所实现的函数地址。 在一个应用程序中,起决定作用的是构件的接口而不是构件本身。只要构件 的接e l 保持不变,构件可以任意升级或更换,而应用程序不必做任何修改。 接口将特定的行为封装起来,一方面使客户可以用同样的方式处理不同构件, 一方面同一构件可以在不同的应用中使用。这些特点决定了构件必然有很好 的复用性。 2 3 3 构件和分布式系统 2 0 世纪8 0 年代以来,我们看到了廉价而强大的硬件和网络技术的普及。 1 2 硕士学位论文 m h s t e e st h e s i s 这使大多数机构向更加分散的计算基础设施转移。现在有很多应用系统开发 新的方法。我们根据创建分布式系统时必须使用的编程级别,以及支持的透 明度的抽象级别对这些方法分类如下: 应用程序透明度 s a nf r a n c i s c o ,d n a 应用程序,特定服务 服务透明度e j b ,c o m + 事务、安全、事件 中间件透明度i i o p ,c o m 抽象命名、协议转换 c o r b ab r i d g e s 平台透明度c o m ,c o r b a ,r m i 接口定义语言( i d l ) 硬件透明度r p c ,m o m互连、同步和异步通信 构建分布式系统的最初方法是致力予为开发者提供某种程度的硬件透明 性,如远程过程调用( r e m o t ep r o c e d u r ec a l l ,r p c ) 、面向消息的中间件 ( m e s s a g e 一0 r i e n t e dm i d d l e w a r e ,m o m ) 等技术。这些技术允许不同计算机之 问进行进程间通信,并独立于各方使用的编程语言。 但r p c 仍然要求开发者实现每个应用特有的服务。为解决这一点,引入 了面向对象的概念。独立服务提供者以构件的形式出现,通过接口提供服务, 并封装其实现细节。这些分布式对象技术包括m i c r o s o f t 的分布式对象模型 ( d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l ,d c o m ) 和o m g 的公共对象请求代理 构架( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,c o r b a ) 等。 这导致了接口定义语言( i n t e r f a c ed e f i n i t i o nl a n g u a g e ,i d l ) 的产生, 为编程语言提供了一种中立的方式来描述分布式交互每一端的服务,也为分 稚式系统开发者提供了很大程度上的平台独立性。 然而,许多支持某种i d l 的实现不能在不同提供商提供的基础设施之间 迁移。每一种中间件技术都以自己的方式支持i d l ,为了给应用程序提供中间 件透明性,发明了桥接技术和协议( 比如i n t e r n e ti n t e r o r bp r o t o c o l ,i l o p ) 。 这使构件对于它们实现时所依赖的中间件具有更大的独立性。 当然,我们想要的是组装由多个独立构件得到的解决方案,基于c o m + 和 e j b 规范的应用服务器支持这种方法。这些标准定义了构件实现者在它执行时 所处的“容器”中可依赖的行为。 硕士学位论文 n t a s t f 。r st h e s i s 最后,在很多领域中可以有一些公共的服务,存在于相关领域的很多应 用程序中,比如银行为管理帐户、转移资金等建立一系列公共服务,这是应 用程序的透明性。 总之,在分布式系统中,构件为设计和开发灵活的解决方案提供了个 关键的抽象。它们使设计者能够把注意力集中在业务层上而忽略低层构件的 实现细节。 2 4 基于构件的软件开发模型 基于构件的软件工程的过程模型强调并行的轨迹,其中领域工程和基于 构件的软件开发并发地发生。领域工程完成一系列工作,以建立一组可以被 其他软件工程师复用的软件构件,然后这些软件构件被越过分隔领域工程和 基于构件的软件开发的“边界”传送。 一囱 。:。i 厂- j 。f l 。 磊攀上f 1 釜【1 j 酬性耕 纛i 。i 体系结三设计一叫构件适应 ,、 n h1 i 。 丫应用 、 i - 一 图2 1 一个支持c b s d 的过程模型 1 4 硕士学位论文 m a s t e r st h e s i s 图2 i 给出了一个典型的过程模型。领域工程创建应用领域的模型,该 模型被用作在软件工程流中分析用户需求的基础。类属的软件体系结构( 及 其对应的结构点) 为应用的设计提供了输入。最后,在可复用构件已经被购 买、从现存库中选出或构造好后( 作为领域工程的一部分) ,它们可以被从事 基于构件开发的软件工程师使用。 2 4 1 构件合格性认证( c o m p o n e n tq u a li f i c a t i o n ) 系统需求和体系结构定义了所需的构件。可复用的构件( 不管是c o t s 或 自有) 通常是通过它们的接口特征来标识的,即“被提供的服务,以及客户 访问这些服务的方式”被作为构件接口的一部分而描述。但是,接口并不是 提供构件将符合体系结构和需求的全面描述。软件工程师必须通过一个发现 和分析过程来认证每个构件的适合性。在构件认证中考虑的主要因素: 应用编程接口( a p i ) 。 构件所需的开发和集成。 运行时需求,包括资源使用( 如内存和存储器) 、时间或速度以及网络协 议。 服务需求,包括操作系统接口和来自其他构件的支持。 ,安全特性,包括访问控制和身份验证协议。 嵌入式设计假定,包括特定的数值或非数值算法的使用。 异常处理。 2 4 2 构件适应性修改( c o m p o n e n ta d a p t a tio n ) 软件体系结构表示了由构件、连接和协同构成的设计模式。本质上体 系结构定义了所有构件的设计规则、标识连接和协同模式。有时现存的可复 用构件可能和体系结构的设计规则不匹配,这些构件必须被自适应以满足体 系结构的需要或者选择更合适的构件,这种适应的过程也叫构件的特化。 硕士学位论文 m a s t e r st h e s i s 2 4 3 构件组装( c o m p o n e n t :c o m p o s i t i o n ) 在软件构件被集成以形成新的系统时,通过标识连接和协同机制,体系 结构指导最终产品的组装。 为了组装j f i 孵u ,构件在描述和接口的标准化方面显得尤其重要,有时对 c b s d 幻影;:向苎至是关键的,现有的已经形成标准的主要有以下三种: o m g c o r b a 对象管理组织发布了公共对象请求代理体系结构( o m g c o r b a ) ,一个 对象请求代理( o r b ) 提供了一系列服务。它们使得可复用构件( 对象) 可 以和其他构件通信,不管它们在系统中的位置如何。当构件用o m g c o r b a 标准建立时,那些构件在某系统内的集成( 没有修改) 可以得到保证,如果 对每个构件创建一个接口定义语言( i d l ) 接口。使用客户,服务器的比喻, 在客户端应用中的对象向o r b 服务器请求一个或多个服务,请求是通过i d l 或在运行时动态地进行的。一个接口池包含了所有关于服务请求和响应格式 的信息。 微软的c o m d c o m 微软丌发了一个构件对象模型( c o m ) ,它提供了在运行于w i n d o w s 操 作系统之上的单个应用中使用不同厂商生产的对象的规约。c o m 包含两个元 素:c o m 接口( 实现为c o m 对象) 和在c o m 接口间注册和传递信息的一 组机制。从应用的观点看,“重点不在于c o m 对象如何被实现,仅在于这样 一个事实:对象具有在系统中注册的接口,且对象使用构件系统和其他c o m 对象通信”。 o l e ( o b j e c tl i n k i n ga n de m b e d d i n g ) 是m i c r o s o f t 公司最初发布的版本,只 是一种针对复合文档的技术。c o m 是微软公司在其o l e 技术基础上提出的 一种组件规范,是建筑在o l e 之上的,其中d c o m 是微软为支持网络应用 而对c o m 进行扩充的结果,d c o m 用r p c s 代替了c o m 中的局域网通信协 议,可以使用任何协议来支持分布式应用。a c t i v e x 最初是用来标志m i c r o s o f t 的基于c o m 和i n t e m e t 技术的一个标签,如今a c t i v e x 专门用来表示a e t i v e x 1 6 硕士学位论文 m a s t e r st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《大树的变化》小学语文教案范例
- 高校教学质量监控体系构建与完善
- 5G网络安全防护策略-洞察及研究
- 材料设计中的机器学习模型评估-洞察及研究
- 桥梁结构健康状态评估方法-洞察及研究
- 数字化转型在畜牧服务业的应用-洞察及研究
- 微纳能源热管理-洞察及研究
- 石菖蒲种植资源调查-洞察及研究
- 环境光传感器数据处理-洞察及研究
- 复华材料在在线教育中的应用-洞察及研究
- 农村处理矛盾纠纷课件
- 厂房搬迁管理办法
- 保险学考试题(附答案)
- 中药处方点评管理办法
- 国企纪法教育实施路径
- 药品发放登记管理制度
- 临床科室科研管理制度
- 铁艺围栏采购合同
- 中国皮肤基底细胞癌诊疗指南2023
- 卫星通信技术在电力行业中的应用场景分析
- 黄旭华人物介绍
评论
0/150
提交评论