(计算机应用技术专业论文)cots软件系统及其包装器的研究.pdf_第1页
(计算机应用技术专业论文)cots软件系统及其包装器的研究.pdf_第2页
(计算机应用技术专业论文)cots软件系统及其包装器的研究.pdf_第3页
(计算机应用技术专业论文)cots软件系统及其包装器的研究.pdf_第4页
(计算机应用技术专业论文)cots软件系统及其包装器的研究.pdf_第5页
已阅读5页,还剩78页未读, 继续免费阅读

(计算机应用技术专业论文)cots软件系统及其包装器的研究.pdf.pdf 免费下载

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

文档简介

摘要 c o t s 软件系统及c o t s 软件包装器的研究 摘要 基于c o t s 的软件z程 ( c o t s - b a s e d s o f t w a r e e n g i n e e r i n g )己 成 为当前的研究热点,国内对这一方面的研究很少,国外的研究很多,但 基本上是处于经验性的 ( e m p i r i c a l ) 、实例性的 ( c a s e s t u d y ) 、或者 是模型 ( m o d e l )一级的研究。 c o t s ( c o m m e r c i a l o f f - t h e - s h e l f )软件称为商用现成软件或现成 软件,本文中把 c o t s软件的范围加以扩展,它包括各种己经存在的可 以执行的软件实体以及各种文档和数据库:它的具体形式可以是商用现 成 ( c o t s )软件、军用现成 ( m o t s )软件、政府用现成 ( g o t s )软件, 以及免费开放的组织内或者组织外的己经存在的软件,甚至是整个企业 或组织的应用系统。把主要是通过集成 c o t s软件而构建起来的软件系 统称为c o t s软件系统。基于c o t s的软件工程强调通过组装 c o t s软件 来构建新的目标系统,即组装式开发。 本文在研究c o t s 软件特点的基础之上, 进一步研究了通过组装c o t s 软件来构造新的 c o t s软件系统这一种软件开发方法的特点。提出了先 把c o t s 软件包装之后再来集成它的c o t s 软件系统开发方法:从软件体 系结构的观点出发,论证了 c o t s软件系统应该具有的软件体系结构的 特性,并从方法和技术上来论证了如何保证这些特性,包括体系结构中 胶结器的设计、部件互连拓扑结构的设计和体系结构风格的设计;从使 用 c o t s软件的各种需求出发,提出、分析和评价了几种典型的集成环 境下使用c o t s 软件的包装配置模型;通过抽象提出了一种包装器模型. 并给出了这种包装器的接口设计方法和实现方法,给出了用这种包装器 来把 c o t s软件包装成标准组件的方法,给出了通过组织和实现包装器 接口的方法来解决 c o t s软件功能增加和裁减的问题:进一步分析了包 装器接口实现方法的特点 ( 领域工程) ,提取了实现包装器接口的一些 公共功能,并把这些功能做成了c o m 组件以帮助用户实现他们所需要的 包装器的接口:为方便用户实现包装器的接口,制作了一个小程序来帮 助用户获取 c o t s软件运行时的一些信息,这个小程序复用了本课题所 做的一些c o m 组件. 关键词:c o t s ,包装器,软件构件,遗留软件,软件复用 t h e r e s e a r c h o f c o t s s o f t w a r e a n d c o t s s o f t w a r e wr a p p e r ab s t r a c t t h e r e s e a r c h o f c o t s , c o m m e r c i a l o f f - t h e - s h e l f s o f t w a r e i s b e c o m i n g a h o t p o i n t i n s o f t w a r e e n g i n e e r i n g a r e a . h o w e v e r , m a n y r e s u l t s h a v e b e e n d o n e i n f o r e i g n c o u n t r i e s w e r e l a i d o n l e v e l s o f e m p i r i c a l , c a s e o r m o d e l s t u d i e s . i t s e e m s w e a k e r i n ch i n a . i n t h i s p a p e r s c o p e o f c o t s s o f t w a r e i s e x p a n d e d . i t i n c l u d e s a v a r i e t y o f e x i s t i n g e x e c u t a b l e s o f t w a r e e n t i t i e s , a n d a l s o i n c l u d e s s o f t w a r e d o c u m e n t s a n d d a t a b a s e s t h a t m a y b e a c c e s s e d b y c o t s s o f t w a r e . t h e o t h e r f o r m s o f c o t s s o f t w a r e mi l i t a r y l e g a c y o f f - t h e - s h e l f s o f t w a r e , g o v e r n m e n t o f f - t h e - s h e l f s o f t w a r e o r s o f t w a r e a n d a p p l i c a t i o n t h e c ot s - b a s e d s o f t wa r e e n g i n e e r i n g e m p h a s i z e s t o a s s e m b l e s o f t w a r e s y s t e ms . wi t h o u ta n y m o d i f i c a t i o n i n t o a n o t h e r t a r g e t s y s t e m , i . e . a n a s s e m b l i n g m a n n e r o f d e v e l o p m e n t . t h i s p a p e r p r e s e n t s f i r s t c o t s s o f t w a r e p r o p e r t i e s , t h e n p r e s e n t s s o m e f u r t h e r s t u d i e s a b o u t t h e m e t h o d o l o g y t o a s s e m b l e c o t s s o f t w a r e t o b u i l d a n e w s o f t w a r e s y s t e m . t h e m e t h o d o l o g y c o m b i n e d w i t h t w o s t e p s : m a k i n g w r a p p e r o f t h e c o t s s o f t w a r e f i r s t a n d t h e n c o h e r i n g t h e m t o g e t h e r i n t o a n e w p r o d u c t . f r o m s o f t w a r e a r c h i t e c t u r e v i e w p o i n t , t h e c o t s s o f t w a r e t o b e a s s e m b l e d m u s t p o s s e s s c o n s i s t e n t a r c h i t e c t u r e . t h e r e f o r e t h e w r a p p e r s a n d c o h e r e r s o f c o t s s o f t w a r e m u s t a l s o k e e p t h e i r c o n s i s t e n c y i n a n i d e n t i c a l a r c h i t e c t u r e . f r o m t h e v a r i e t i e s o f r e q u i r e m e n t s o f u s i n g c o t s s o f t w a r e , t h e p a p e r a l s o a n a l y z e s a n d e v a l u a t e s s o m e w r a p p i n g a n d d e p l o y i n g m o d e l s u n d e r s e v e r a l t y p i c a l e n v i r o n m e n t s w h e r e c o t s s o ft w a r e b e e n u s e d . f i n a l l y , t h e p a p e r p r o v i d e s a n e w c o t s a s s e m b l i n g m e t h o d i n c l u d e t h e d e s i g n a n d i m p l e m e n t o f w r a p p e r i n t e r f a c e t h a t m a y a d d a n d s h i e l d s o m e f u n c t i o n s t o a d a p t n e w n e e d s , a n d c o m p o n e n t t e c h n o l o g y t h a t t r a n s f o r m s c o t s s o ft w a r e w i t h w r a p p e r i n t e r f a c e i n t o t h e s t a n d a r d c o m p o n e n t s i n t h e r e u s a b l e c o m p o n e n t l i b r a r y . i n a d d i t i o n , s o m e c o m m o n f u n c t i o n s o f t h e c o t s w r a p p e r w e r e d r a w n a n d i n t e g r a t e d t h e m i n t o t h e c o m c o m p o n e n t s t h a t h e l p c o t s u s e r s t o e a s i l y r e a l i z e t h e w r a p p e r i n t e r f a c e s . a s m a l l p r o g r a m m a y h e l p r u n n i n g t i m e s o t h a t t h e y c ot s u s e r s t o o b t a i n t h e c o t s s o ft w a r e i n f o r ma t i o n i n m a y e a s i l y m a k e t h e w r a p p e r i n t e r f a c e s . t h e p r o g r a m r e u s e d c o m c o m p o n e n t s p r e s e n t e d i n t h i s p a p e r k e y w o r d s : c o t s , w r a p p e r , s o f t w a r e c o m p o n e n t , s o f t w a r e r e u s e y 昆明理工大学学位论文原创性声明 本人郑重声明: 所呈交的学位论文, 是本人在导师的指导下进行 研究工作所取得的成果。 除文中已 经注明引用的内容外, 本论文不含 任何其他个人或集体己 经发表或撰写过的研究成果。 对本文的 研究做 出重要贡献的个人和集体, 均己 在论文中作了明确的说明并表示了 谢 意。本声明的法律结果由 本人承担。 学 位 论 文 作 者 签 名 : 芯 怀纬 日 期:2 0 0 3年 2月2 0日 第 i 章绪论 第1 章绪论 1 . 1 论文选题的背景 软件系统的开发是极其复杂的,它是一种劳动密集与知识密集的工 作。 在这个信息技术突飞猛进的时代, 人们提出了大量的新的软件需求, 而老的软件系统也在被大量的废弃。那些被废弃的老的软件系统,它们 真的没有用处了吗?此外,现在正在被使用的很多软件系统己经满足不 了现在的籍要了,它们也面临着被废弃的命运。习惯上,我们把这些被 废弃的和将要被废弃的已经存在的软件系统称为遗留软件 ( l e g a c y s o f t w a r e ) ,事实上这些软件系统中的许多是很有使用价值的,我们不 能随便把它们废弃,而应该把它们改造之后在新的系统中使用起来。为 了拯救和使用这些被废弃的和将要被废弃的软件.软件界提出了基于 c o t s的软件系统开发。基于 c o t s的软件系统开发涉及到很多方面,对 于被废弃的和将要被废弃的这些遗留软件,应该怎样改造它们?应该把 它们改造成什么样子?用什么方法和技术来改造它们?这是本文选题 的背景之一。 现代软件系统越来越复杂,越来越庞大,涉及的内容越来越广,要 求也越来越高。要建造一个大型、复杂、可靠、适用的现代软件系统, 单凭一个组织的力璧是很难胜任的.因为要建造这样的软件系统,开发 者必须使用大量的标准、协议、技术以及工具包,每一项这样的内容都 需要开发者深入的学习,这明显的增加了开发者的负担,也不符合人类 劳动分工的原则。事实上为了有效地、可行地、有经济效益地实现现代 的软件系统,越来越多的组织正在越来越多的使用第三方开发者已经开 发出来的软件, 通过把这些软件组装到他们的软件系统中去从而构造新 的软件系统,这其实就是基于 c o t s的软件系统开发。在使用第三方开 发出来的软件或者组织内部已经开发出来的软件来建造新的软件系统 时,第三方软件或者组织内已经存在的软件与新的目 标系统软件不一定 兼容 ( 数据格式、类型和软件的功能、通信协议等都可能不兼容) ,新 的目 标软件系统为了要使用这些不兼容的有价值的软件,应该采取哪些 方法和技术? 此外,要把这些分散的 c o t s软件集成为一个新的软件系 统,用什么样的软件体系结构来集成这些 c o t s软件?这是本文选题的 璐 明 理 主 大 李 硕 士 研 究 生 毕 业 论 文 冬页 第 1 童绪论 背景之二。 信息技术的发展要求信息共享,而以往的信息基本上是限制于组织 内的,所以现在系统集成的市场空间很大。组织内部 ( 企业内部、政府 内部)需要系统集成,组织之间 ( 企业与企业、政府与政府、企业与政 府) 也需要系统集成 4u ) 。系统集成的关键是软件集成【 , ,而被集成的软 件之间往往是不兼容的,如何解决在系统集成时软件之间的不兼容性, 如何找到一个合理的软件体系结构来集成这些信息系统,这是本文选题 的背景之三 。 事实证明软件复用对于软件危机的解决是一条有效的途径,现在软 件复用的思想在软件企业界都己 经得到了 大量的运用, 而基于组件的软 件开发更是得到相当的重视。被复用的软件在其开发时开发者不一定使 其具有软件复用的内涵,如何有效的复用这些软件,这是本文选题的背 景之四。 总结起来,如何有效的利用现成软件和集成现成软件是本文选题的 中心点:从软件复用的观点来看,如何有效的复用现成软件、如何提高 现成软件的可复用性是本文选题的出发点。为此,要研究三个主要的问 题: c o t s 软件系统的特点: 适合于c o t s 软件系统的软件体系结构: c o t s 软件的集成机制 ( 怎样把c o t s 软件集成起来) 。 1 . 2 有关 c o t s 软件的简要说明 本文中所说的现成软件主要指各种已经存在的可以执行的软件实 体,也可以是各种文档和数据库,还可以是各种应用系统。现成软件在 本文中简称为c o t s 软件,把主要是使用c o t s软件建造起来的软件系统 称为墓于 c o t s的软件系统。c o t s软件的范围包括:商用现成软件 ( c o m m e r c i a l o f f - t h e - s h e l f .简称 c o t s ) 、军用现成软件 ( m i l i t a r y o f f - t h e - s h e l f .简称 m o t s ) 、 政 府 用 现 成 软件 ( g o v e r n m e n t o f f - t h e - s h e l f ) ,企业内部已经存在的软件 ( l e g a c y s o f t w a r e ) ,可以 免费取得的第三方软件,以及大粒度的企业的应用系统。 1 . 3 三种软件开发方法 昆明理工大学硕j : 研究生毕业论文 第 2页 一一一91 童正 1 . 3 . 1 传统的软件开发 传统的软件开发方法和技术缺乏对软件复用的支持,基本上不理会 软件复用的思想,软件的开发除了复用开发工具提供的一些类库和函数 库之外,很少复用第三方软件,也很少复用自己以前开发出来的软件。 从软件能力成熟度模型 ( c a p a c i t y m a t u r i t y m o d e )的框架来看,它应 该 是 处 于c m m 的 第 一 级 u o 1 . 3 . 2基于组件的软件开发 基于组件的软件开发 ( c 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 . 简 称 c b s d)方法有 的地 方 也 称 它 为 基 于组 件 的软件 工程 ( c o m p o n e n t - b a s e d s o f t w a r e e n g i n e e r i n g .简称 c b s e ) ,这种方法在 软件企业界已经得到了大量的使用。组件是提供标准接口的软件实体, 基于组件的软件开发是主要使用组件来建造新的软件系统的一种软件 开发方法 ” 。 事实证明c b s d 对于提高软件质量、 降低开发费用、 缩短开 发周期是非常有效的软件开发方法。人们期望软件复用能够给软件危机 的解决带来福音,而 c b s d作为软件复用的一种具体形式,对软件危机 的解决已经带来了相当的影响,目前的软件系统开发基本上都采用了 c b s d 的思想, 在软件开发中普遍采用c o m / d c o m / c o m + 技术, c o r b a 技术, e j b 技术 等c 9 基于组件的软件系统开发涉及到的开发者主要有两个方向:组件的 开发者和组件的使用者。 组件开发者主要开发领域内的有公开接口的组 件,如各种 c o m组件、c o r b a组件、e j b组件等,这些组件必须具有公 开接口而且这些接口必须遵循某一标准。组件的使用者就是使用这些具 有标准接口的组件来建造领域内的软件应用系统。 1 . 3 . 3 基于c o t s 的软件开发 基 于c o t s的 软 件 开 发( c o t s - b a s e d s o f t w a r e d e v e l o p m e n t, 简 杯c o t s b s d )本质上也采用了c b s d 的思想,它强调通过把现成 ( c o t s ) 软件集成到新的目标系统中去从而构建新的目标系统,即组装式开发。 与c b s d 一样, 墓于c o t s 的软件系统开发也是软件复用的一种具体形式, 它强调充分集成第三方软件和企业已经存在的软件,从而建造新的软件 璐 胡理工大学硕士 研究生毕业论 文 第 3页 第 1 章绪论 系统。 基于 c o t s软件系统的开发涉及到的开发者同样的具有两个方向: c o t s 软件的开发者和c o t s 软件的使用者。c o t s 软件的开发者是指所有 开发软件的人, 包括了组件的开发者。 c o t s 软件的开发者所开发出来的 c o t s 软件不一定具有公开的接口,即使有接口也不一定遵循某种标准。 c o t s 软件的使用者是指使用c o t s 软件构造新的软件系统的人。 1 . 3 . 4 c b s d与c o t s b s d的主要区别 对于领域内软件系统的开发来说,基于组件的软件开发 ( c b s d )与 基于c o t s 软件开发 ( c o t s b s d )本质上都是组装式开发,它们都是软件 复用的具体实例。但基于组件的软件系统开发所组装的是具有标准接口 的组件,而基于 c o t s软件系统开发所组装的是不一定具有标准接口的 c o t s软件。本文研究的主要是这些没有提供标准接口的c o t s软件的组 装所面临的问题。 1 . 4 基干 c u t s 软件系统的模型 基于c o t s 软件系统的开发本质上也采用了c b s d 的思想,它强调通 过把 c o t s软件集成到新的目标系统中去从而构建新的目标系统。基于 c o t s 的软件系统模型如图1 所示。 m f g : 压 司 c o t s 软件 图 1 . 包狡器 胶结骼 基千c o t s的软件系统棋型 f i g u r e l . c o t s - b a s e d s o f t w a r e s y s t e m mo d e l 在基于 c o t s软件系统的开发中,系统体系结构中的基本元素之一 昆明理工大学硕士研究生毕业论文 第 4页 第 章绪论 就是c o t s 软件, 通过把这些c o t s 软件连接起来就能够组建成新的软件 系统。基本元素之二是包装器,它的作用是解决 c o t s软件的功能不兼 容性问题和运行的上下文环境不兼容性问题。基本元素之三是胶结器, 胶结器是在 c o t s软件间传送信息和控制的机制和媒介,包括编码信息 的方式,散列和反散列参数和结果,处理异常和并发等 i :u 。 胶结器使得 c o t s 软件能够交互,它是软件集成的基础设施。 1 . 5 基于 c o t s软件系统的国内外研究现状及主要存在的 问题 目 前,基于 c o t s软件系统的开发实际上己经得到了应用,但缺少 理论指导,开发人员往往按照自己的爱好和经验来开发,因而开发模式 比较混乱。在基于 c o t s软件系统的开发中,主要存在的是以下几个问 题 , 3 is , ” 。 一 19 , 2 1 , 2 3 , 2 6 , 9 2 , 1:3 怎样在市场中选择最合适的c o t s 产品? 怎样找到最合适的软件体系结构来集成c o t s 产品? 怎样把这些c o t s 产品集成到新的系统中去? 怎样维护c o t s 软件系统? 怎样保证c o t s 软件产品的安全性? 对于这些问题,目 前国内外都没有得到解决。国内对于c o t s b s d 的 研究很少, 国外的研究倒是很多, 但基本上处于经验性的( e m p i r i c a l ) , 实例性的 ( c a s e s t u d y ) ,或者是模型 ( m o d e l )一级的研究,提出了一 些参考模型如c o c o t s ( c o n s t r u c t i v e c o t s i n t e g r a t i o n c o s t m o d e l ) 模型, 。 、p o r e( p r o c u r e m e n t - o r i e n t e d r e q u i r e m e n t s e n g i n e e r i n g ) 模型 , c o t s - l i m o ( c o t s - l i f e c y c l e m o d e l ) 模型y 8 , 等, 用于解决c o t s 软件的选择、评价等,但事实上这些模型远不能解决 c o t s软件的评价 和选护s 3 j a 根据 c o t s软件系统的开发现状。本文在研究 c o t s软件系统的基 础上, 进一步研究c o t s 软件系统的软件体系结构和c o t s 软件的集成机 制,提出了一些适合于 c o t s软件系统的软件体系结构,提出通过包装 银来使用c o t s 软件的方法并提出若干包装模型,通过抽象提出c o t s 软 件的包装器模型及包装器接口的设计方法和实现方法。希望用这些软件 醚 理 士 大 学 硒 士 研 究 生 毕 业 论 文第is x 第 i 章绪论 体系结构来从宏观上指导 c o t s软件系统的开发,用包装模型来根据需 要解决c o t s 软件的集成和配置问题,用包装器来解决怎样把c o t s 产品 包装成为所需要的标准组件从而解决 c o t s产品的集成机制问题。 1 . 6 软件体系结构的基本概念及其在 c o t s软件系统开发 中的作用 软件体系结构是由一些实体和这些实体间的关系所构成的模型,在 体系结构观点中实体是所关心的元素,它们可以是软件组件、源文件、 目标文件、编译器、平台等;关系可以用来描述连结性、动态行为或者 所关心的依赖性的任何其他类型 1 1 . u . 4 1 对于 c o t s软件系统的开发,有两个大的问题需要解决。其一是软 件组件的集成机制的问题,也就是用什么办法把组件集成到系统中去; 其二是c o t s 软件系统的体系结构问题。在c o t s 软件系统中,体系结构 直接关系到该软件的成功与否,因为体系结构是系统实现的蓝图,为 c o t s 软件的集成提供了上下文,它对解决软件的复杂性、 健壮性、容错 性、兼容性、可移植性、可被复用性、可扩展性、易维护性等问题起着 决定性的作用 , 幻 。 在c o t s 软件系统中,体系结构中的实体就是 c o t s 软件 ( 通过包装 器来使用它) ,关系用以描述集成机制 ( 表现为胶结器) .主要涉及的问 题有胶结器,c o t s 软件互连的拓扑结构和软件体系结构风格。 对于一个大规模的 c o t s软件系统开发,选择一个合理的软件体系 结构是非常重要的。本文在研究软件体系结构的基础上,针对 c o t s软 件系统的特点,论证了c o t s 软件系统的软件体系结构应该具有的特性, 给出了保证这些特性的方法和技术。 1 . 7 包装器的基本概念及使用包装器的原因 对象技术、接口技术、分布式技术、包装技术以及逆向工程技术等 都可以用来集成( 复用) c o t s 软件, 但包装技术本身是包含了对象技术、 接口技术、 分布式技术的。 前面提到, c o t s 软件不一定提供标准的接口, 本文研究的主要就是怎样把这些没有标准接口的 c o t s软件集成到新的 昆明理工大学硕士研究生毕业论文 第 6页 第 1 章绪论 目标系统中去所需要解决的问题。对此有两种技术路线,其一是逆向工 程,其二就是给 c o t s软件做一个包装器。本文采用做包装器这一技术 路线,原因主要有两点。一是通过包装器把 c o t s软件做成构件以便高 效复用,二是包装器技术路线是黑盒复用 c o t s软件,其复杂度可能比 逆向工程小。 包装器 ( w r a p p e r )也叫适配器 ( a d a p t e r ) ,用于把一个 c o t s 软件 与系统中的其他软件相隔离,它对外提供统一的接口,接口的实现由 c o t s 软件和包装器共同来完成; 对内用于映射数据表示、 增加或者屏蔽 c o t s 软件的功能、管理c o 丁 s 软件的安全性等。 1 . 8 本文提出的抽象的包装器模型 本文所提出的抽象的包装器模型如图2所示。 包软路 : 1 .启 动 倪 用c o t s 软件 的系统 安全守护 进程 2 .解 决 功能 不策容 的问 题 3 .解决 数络不策容的问皿 4 .泊动c o t s 软件 的执行并 的取侣其 结果 s .把执行结某进行傲据格式转换, 并通回拍该 求瓜落老 图 2 :抽象的包装器模型 f i g u r e 2 1 a b s t r a c t w r a p p e r m o d e l 逻辑上来看, 包装器的基本作用是桥接器的作用, 它把对 c o t s软 件服务的请求与 c o t s软件连接起来。包装器对外的表现形式是对象, 它提供了一组接口,这些接口的实现是由 c o t s软件来完成的,通过对 这些接口的操作来得到 c o t s软件的服务。包装器在内部要实现很多复 杂的功能,首先我们不能假设 c o t s软件的执行一定不会破坏系统,因 此在包装器中应该做一个防止 c o t s软件破坏系统的守护进程;c o t s 软 件不一定与新的目 标系统兼容,因此,要解决 c o t s软件的功能不兼容 问题和数据不兼容问题;然后启动 c o t s软件相应功能的执行:c o t s 软 件的执行结果要返回给包装器,或者包装器感知到 c o t s软件的执行结 昆 明 理 工 大 学 硕 士 研 究 生 毕 业 论 文二黎7 页 第 i 章堵 论 果,并把这个执行结果转换成请求服务者能够识别的结果并返回给它。 归纳起来,包装器的作用主要的有三点:提供与外界交互的接口, 解决c o t s 软件与新的目标系统不兼容的问题,防止 c o t s 软件对系统的 破坏。限于时间,本文只研究包装器的前面两个作用。 1 . 9 本文的具体研究内容 本文首先研究的是c o t s 软件的特点,进一步研究c o t s 软件系统的 开发方法的特点,在此基础上,从系统整体上研究适合于 c o t s软件系 统的软件体系结构, 然后从c o t s 软件的个体上研究怎样集成c o t s 软件。 具体说来,本文主要研究以下几个问题: c o t s 软件的特点和c o t s 软件系统开发的特点 适合于c o t s 软件系统的软件体系结构以及怎样来保证这些结构 典型的集成环境下的c o t s软件的包装配置模型 抽象的包装器模型 包装器的接口设计方法和实现方法 从构件技术出发,对所研究的结果进行构件的提取和制作 由于时间和工作量的关系,本文研究的包装器都是基于w i n d o w s 平 台的,c o t s软件也是在 w i n d o w s( 或者 d o s )平台下运行的,另外对于 用包装起来阻止 c o t s软件对系统的破坏这一问题也不做研究,也不讨 论相关的知识产权问题。 昆 明 妞工 大 学 硕士 研 究 生 毕业 论文 摘 合页 第2 章 c o t s 软 件 和c o t s 软 件系统的 概 贪、 特点 和c o t s 软 件的 使用方法 第2 章c o t s 软件和c o t s 软件系统的概念、 特 点和 c o t s软件的使用方法 2 . 1 c o t s软件的含义及其表现形式 c o t s 软件的本来含义是指商用现货 ( c o m m e r c i a l o f f - t h e - s h e l f ) 软件,主要是指从市场上买到的将把它集成到目 标系统中去的软件实 体,这些 c o t s软件往往是作为一个单独的应用程序来运行的,它可能 根本就没有提供外界使用它的接口“ n 。广义的 c o t s软件是指在软件系 统开发过程中,任何可以作为系统的一部分来复用的己经存在的现成软 件,一个 c o t s 软件可以是一个完整的应用或服务、子系统、子程序库、 抽象数据类型、类等 i r 1 本文中,我们把 c o t s的含义进一步扩展,它包括各种己经存在的 可以执行的软件实体以及各种文档和数据库:它的具体形式可是商用现 货软件 ( c o t s ) 、军用现货软件 ( m o t s ) 、政府用现货软件 ( g o t s ) ,以 及免费开放的组织内或者组织外的己经存在的软件,甚至是整个企业或 组织的应用系统;它的粒度可以从一个小的应用程序,到诸如 m s - w o r d 这样粒度中等的应用程序,甚至到数据库管理系统 ( d b m s )或完整的组 织的应用系统这样的大粒度的系统软件:它的运行表现形式可以是控制 台式的m s - d o s命令那样的文本形式,也可以是 g u i的w i n d o w s 应用程 序,还可以是在后台运行的数据库管理系统那样的形式,甚至它可以是 不能运行的文档和数据库;它可以是在单机上运行的,也可以是在分布 式环境中运行的,可以是在w i n d o w s 平台下运行的,也可以是在其他平 台下运行的;它可能提供了接口,这些接口可能是标准的,也可能不是 标准的,它也可能根本就没有提供接口。 由于时间和工作量的关系,本文只研究 w i n d o w s 平台下的 c o t s软 件,主要研究没有提供标准接口的在单机上运行的小粒度和中等粒度的 c o t s 软件。 2 . 2 c o t s 软件的价值与正确对待 c o t s 软件 任何c o t s软件都是耗费了大盘的人力物力的,充分使用这些 c o t s 绝 明 理工大学硕十 研究生毕 业论文第 ,页 软件也就可以节省大量的人力物力。但不是所有的 c o t s软件都具有使 用价值,事实上由于软件的复杂性,大量的 c o t s软件根本就没有使用 价值,复用这些 c o t s软件所需要的代价往往比开发新的软件还要大 2 7 . 3 j 。 因此, 在建造一个新的系统时选择合适的c o t s 软件是非常重要的, 如何选择c o t s 软件是基于c o t s 软件系统开发中的一个难题,至今仍然 没有有效的解决 1 7 。可以说,目前选择基于 c o t s软件系统的开发方法 时,是存在风险的,这种方法不一定能够达到快速省钱的目的。 2 . 3 0 0 下 s软件的特点与包装器的必要性 概括起来看,c o t s软件具有如下一些特点: c o t s软件的源代码不是公开的。 基于 c o t s 软件系统的开发者不 能访问c o t s 软件的源代码,当然他们也就不能修改c o t s 软件的源代码 以改变c o t s 软件的功能,同时也意味着 c o t s 软件的分析、测试、复用 都必须以黑盒的方式进行。黑盒复用 c o t s软件需要解决的问题通常使 用包装器技术来解决。 ) c o t s 软件的使用者对于c o t s 软件本身的改进没有或者只有很少 的控制力。集成c o t s 软件的系统开发者对于c o t s 软件的供应商来说只 是许多客户中的一个,对于 c o t s软件的改进,开发者没有控制力,或 者只有很小的影响力。 c o t s 软件升级版本中的新功能可能不是开发者所 需要的,可能没有定位到开发者所要求的平台上,可能影响一些所要求 的功能的操作.开发者不一定必须使用新版本的 c o t s软件,但是如果 需要使用的话, c o t s 软件新版本带来的问题一般也是通过包装器技术来 解决的。 c o t s 软件供应商并不能提供完整的正确的c o t s 软件的行为规范 定义。由于软件的复杂性,为 c o t s软件所提供的行为规范不总是正确 的和完整的,为了安全的可靠的使用 c o t s软件,开发者需要详细的知 道 c o t s软件的行为规范和资源需求,而这些需求往往得不到满足,因 为 c o t s软件的开发商并不能预先知道他们各种客户的各种需求。在得 不到有关c o t s软件的行为规范的详细资料时,要安全可靠的使用 c o t s 软件,有必要给它做一个包装器. c o t s软件之间可能是不兼容的。这种不兼容性发生的原因有许 昆明理工大学硕士研究生毕业论文 第 1 0页 多,例如数据模型失配,功能失配,资源冲突,进程冲突等。不兼容性 不是一开始就可以完全发现的,有时要到非常晚的时候才能发现,这对 系统开发来说无疑是不能接受的。不兼容性的问题通常也是采用包装器 技术来解决的。 许多c o t s 软件是被作为单独的应用设计的,因此没有提供与外 界交互的接口。要让这些 c o t s软件与其它软件相交互,可以做一个包 装器来给这些c o t s 软件提供接口。 我们不能假设c o t s 软件是绝对安全的,它可能会对系统做出无 意的或者是有意的甚至是恶意的攻击,它也可能会把我们的信息破坏或 者盗走。要防止 c o t s软件对系统和信息的破坏,可以做一个包装器来 把c o t s 软件与系统在一定程度上相隔离,并且让包装器监视c o t s 软件 的运行 。 c o t s 软件还有其它的一些特点, 但是上述 6 个特点是与本文的研究 密切相关的,也正是因为这些特点,我们才提出了基于 c o t s软件系统 的包装器的研究。 4 基于 c o t s 软件系统的优点和缺点 基于 c o t s的软件系统是主要过集成一组 c o t s软件而建造成的系 。系统开发者负责选择和取得 ( 购买和收集)c o t s 软件,并把它们集 2.统 成到一个新的系统中去,从而建造新的软件系统。这种软件开发方法只 需要很少的代码开发,需要开发的代码主要是用来处理这么三种情况: 裁剪c o t s 软件;制作自己的构拌;把c o 丁 s 软件粘在一起。只籍要很少 的代码开发也就意味着工作量减少,这是基于 c o t s软件系统的最大优 点。 除了工作量减少这个优点外,基于 c o t s的软件系统还有以下几个 优点 ,习 : 成熟的c o t s 软件得到市场的洗礼,因而它比自己制作的软件设 计更好,可靠性更高,技术也更先进。 c o t s 软件的维护费用被多个客户分摊, 因而基于c o t s的软件系 统其维护费用也会降低。 在不同的应用软件中使用同一 c o t s软件,会降低组织内的培训 砚朗 理工 大学硕士研究生毕业论文 第 u 更 费用 。 基于 c o t s的软件开发与基于组件的软件开发一样具有很大的吸引 力,但我们更应该重视它的不好的一面,概括起来讲,基于 c o t s的软 件系统有如下的一些缺点 川 : 集成一个不合适的c o t s软件可能是一场恶梦,开发费用会急剧 增加,甚至所开发的系统会失败。 c o t s 软件不兼容性所带来的问题若得不到妥善解决,基于c o t s 的软件系统其稳定性、可靠性都是有问题的。 c o t s软件产品的频繁升级给客户带来的问题是不容忽视的,客 户有时不得不接受升级的 c o t s产品,但升级后的 c o t s产品与原来的 c o t s 产品可能不一样,这就会产生问题。 c o t s 软件的安全性问题尤其值得注意,c o t s 软件有意或者是无 意的对系统的破坏和对信息的破坏都是不能容忍的。 2 . 5 c o t s软件的分类 可以从多个角度来分类 c o t s软件,鉴于本文研究内容的限制,可 以把c o t s 软件分为提供接口的c o t s 软件和没有提供接口的c o t s 软件。 提供接口的c o t s 软件可以进一步分为提供标准接口的c o t s 软件( 如c o m 组件、c o r b a组件、e j b 组件等)和提供自制接口的c o t s 软件。没有提 供接口的 c o t s软件可以进一步分为 m s - d o s命令式的控制台 c o t s软件 和 g u i 形式的w i n d o w s c o t s 软件。需要说明的事,提供接口的c o t s 软 件也会是g u i 的, 特别是在可视化开发环境中, 如可视的a c t i v e x 控件, o f f i c e 2 0 0 0 中的各种应用程序。 对于上述不同种类的 c o t s软件,它的包装器制作方法不同,特别 是提供给外界的接口的组织方法不同。 2 . 6 c o t s 软件的三种使用方法 2 . 6 . 1直接单独使用 在大型的软件系统中,大粒度的c o t s 软件往往是直接单独的使用 昆 明 理工大 学硕士研究生毕业论文 第 1 2页 例如要建造一个数据库服务器,那么可以直接使用 s y b a s e 、工 n f o r m i x , o r a c l e , s q l s e r v e r 等数据库管理系统。中、小粒度的c o t s软件也有 直接使用的情况,但更多的是把它们集成到更大的系统中去使用。 c o t s 软件的直接使用是 c o t s软件最简单的使用方式,它不需要客 户对c o t s 软件做过多的了解,只需要得到c o t s 软件的操作手册即可进 行 。 2 . 6 . 2 通过逆向工程 ( r e v e r s e e n g i n e e r i n g )使用 逆向工程用魔法召唤出 “ 魔术槽” 的映象,当把无结构的、无文 档的源程序列喂到槽中,在另一端出来的是计算机程序的完整文档 幻 。 c o t s软件的文档不总是正确的和完整的,而且 c o t s软件的源代码往往 是得不到的。理想情况下的逆向工程可以得到 c o t s软件的源代码和完 整的c o t s 文档,这样对c o t s软件的使用就相当容易了。在 2 0 世纪8 0 年代, 逆向工程是处理 c o t s软件的主要策略,方法主要是理解程序, 从程序中提取出 本质的功能, 然后重新编程 川。因为要理解程序的内 部 才能够成功地进行逆向工程,所以逆向工程是白盒复用 c o t s软件的方 式 。 逆向工程是极其复杂的,分析和理解旧的代码是件很困难的事,因 为随着时间的变化,每一个 c o t s软件系统在其 自身的复杂性之下会慢 慢的崩溃,会

温馨提示

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

评论

0/150

提交评论