(计算机软件与理论专业论文)一种基于路径的构件软件可靠性模型.pdf_第1页
(计算机软件与理论专业论文)一种基于路径的构件软件可靠性模型.pdf_第2页
(计算机软件与理论专业论文)一种基于路径的构件软件可靠性模型.pdf_第3页
(计算机软件与理论专业论文)一种基于路径的构件软件可靠性模型.pdf_第4页
(计算机软件与理论专业论文)一种基于路径的构件软件可靠性模型.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

一-j a b s t r a c t 。 第1 章绪论1 1 1 论文研究背景及意义1 1 2 国内外相关领域的研究现状2 1 3 主要研究内容2 1 4 论文的研究意义及创新点3 1 5 论文的内容安排3 第2 章基于构件的软件工程5 2 1 构件5 2 2 连接件6 2 3 当前主流构件模型6 2 3 1c o r b a 6 2 3 2c o m 。7 2 3 3e j b 9 2 4 基于构件的软件工程9 2 5 本章小结1 1 第3 章构件软件可靠性的理论研究1 3 3 1 软件可靠性1 3 3 1 1 软件可靠性定义1 3 3 1 2 软件可靠性的基本数学关系1 4 3 1 3 软件的失效机理1 5 3 2 软件可靠性模型1 6 3 2 1 软件可靠性模型的分类1 6 3 2 2 软件可靠性分析的基本流程1 6 3 3j m 模型1 8 3 3 1 j m 模型的基本假设18 3 3 2 基本公式厶18 3 3 3 参数估计1 9 3 4l v 模型 3 4 1 基本假设 3 4 2 基本公式1 9 3 5c h e u n g 模型2 0 3 5 1 模型假设2 0 3 5 2 模型求解过程2 0 3 5 3c h e u n g 模型的改进2 1 3 6 本章小结2 3 第4 章一种基于路径的构件软件可靠性模型2 5 4 1 相关定义2 5 4 1 1 构件定义2 5 4 1 2 连接件定义2 6 4 1 3 构件软件体系结构2 6 4 2 构件可靠性模型2 6 4 2 1 模型假设2 7 4 2 2 基本公式2 7 4 2 3 构件可靠性计算及构件发布的基本流程:2 9 4 3 一种基于路径的构件软件可靠性模型2 9 4 3 1 模型假设3 0 4 3 2 构件动态迁移图3 0 4 3 3i s r m r 模型31 4 3 4i s r a r 算法3 2 4 4 容错机制3 3 4 4 1 构件灵敏度3 3 4 4 2 关键构件集3 3 4 4 3a u t s k c 算法3 3 4 4 4 关键构件集的容错3 4 4 5 小结3 4 第5 章仿真实验与分析。3 5 5 1 实验环境3 5 5 2a c l w b - n h p p 模型的实验3 5 2 k i j- 3 f 量,f - j l f 黑盒模型,忽略了构件软件的体系结构。传统对构件软件可靠性评估的基于状态的方法假设 其满足m a r k o v 模型的构件独立性,但实际上难以满足;基于操作剖面的方法存在着操作剖面 定义的困难;基于路径的方法往往没有考虑路径中构件之间的关系。因此,研究如何利用构 件的可靠性和构件软件的体系结构来评估构件软件的可靠性具有十分重要的意义。 本文在已有研究成果的基础上,提出一种基于路径的构件软件可靠性模型i s r m r ( a c o m p o n e n t - b a s e ds o f t w a r er e l i a b i l i t ym o d e lb a s e d o nr o u t e ) ,主要进行以下几个方面的探讨 和研究: 第一,根据构件自身封闭性特点利用n h p p 模型,结合软件可靠性的定义,提出了一种基 于n h p p 的构件可靠性模型a c r m b - n h p p 用以计算构件可靠性。 第二,分析构件软件系统结构,统计构件间的迁移概率,利用构件动态迁移图,针对运 行路径提出一种基于路径的构件软件可靠性模型i s r m r 。 第三,提出构件灵敏度和关键构件集概念,利用a u t s k c 算法计算关键构件集,结合容 错机制对关键构件集中构件进行容错处理以提高构件软件系统的可靠性。 最后,通过仿真实验验证了本文提出的a c r m b n h p p 模型、i s r m r 模型及a u t s k c 算法 的可行性和有效性。 关键词:构件软件可靠性动态迁移图关键构件集容错机制 f ab s t r a c t a c o m p o n e n t b a s e ds o f t w a r er e l i a b i l i t y m o d e lb a s e do nr o u t e m a j o r :c o m p u t e r s o f t w a r ea n dt h e o r y s u p e r v i s o r :p r o f z h a n gw e i q u n a u t h o r :z h a n gw e i a b s t r a c t 、阴t ht h ei n c r e a s i n g l ym a t u r et e c h n o l o g yo fs o f t w a r er e u s ea n dc o m p o n e n td e v e l o p m e n t e t c ,c o m p o n 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 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 ) i s c h a n g i n gt h es o f t w a r ed e v e l o p m e n tm o d e l t h ed e s i g no fl a r g ec o m p l e xs o f t w a r es y s t e mt h r o u g h c o m p o n e n tr e u s et e c h n o l o g yi n c r e a s i n g l yb e c o m eah o ts p o t h o w e v e r , t h ec u r r e n tw o r kf o c u s e so n t h ec o m p o n e n td e v e l o p m e n t ,c o m p o n e n tr e u s e ,a n ds o f t w a r es y s t e md e s i g ne t c b u tw ep a yl e s s a t t e n t i o nt ot h er e l i a b i l i t yo fc o m p o n e n t - b a s e ds o f t w a r e ,t h ee v a l u t a t i o no ft h ec o m p o n e n t - b a s e d s o f t w a r er e l i a b i l i t yb e c o m e sas e r i o u sp r o b l e m a tp r e s e n t , s c h o l a r sh a v ep u tf o r w a r ds o m es o f t w a r er e l i a b i l i t ym o d e l s ,s u c ha sj - m ,g oa n d s oo n s u c hm o d e l sa r et h eb l a c kb o xm o d e lb a s e do nt h ef a i l u r ed a t a , w h i c hi g n o r et h ea r c h i t e c t u r e o fc o m p o n e n t - b a s e ds o f t w a r e t h et r a d i t i o n a ls t a t e b a s e dm e t h o du s e dt oe v a l u t ee o m p o n e t - b a s e d s o f t w a r e r e l i a b i l i t ya s s u m e st h a t m e e t sm a r k o vm o d e lw h i c hs u p p o s et h a tc o m p o n e n t si n c o m p o n e n t - b a s e ds o f t w a r ea r ei n d e p e n d e n t ,b u ti nf a c ti ti sd i f f i c u l tt om e e t t h em e t h o db a s e do n t h eo p e r a t i o n a ls e c t i o ne x i s t st h ed i f f i c u l t yi nt h ed e f i n i t i o no ft h eo p e r a t i o n a ls e c t i o n t h e p a t h - b a s e dm e t h o do f t e nd o e s n tc o n s i d e rt h er e l a t i o n s h i p b e t w e e nt h ec o m p o n e n t si nr o u t e t h e r e f o r e ,t h es t u d yo nh o wt o e v a l u a t et h ec o m p o n e n t - b a s e ds o f t w a r er e l i a b i l i t yu s i n gt h e r e l i a b i l i t yo fc o m p o n e n t sa n d t h ea r c h i t e c t u r eo fc o m p o n e n t - b a s e ds o f t w a r ei sv e r yi m p o r t a n t b a s e do ne x i s t i n gr e s e a r c hr e s u l t s ,w ep r o p o s eac o m p o n e n t b a s e ds o f t w a r er e l i a b i l i t ym o d e l b a s e do nr o u t e i s r m ra n de x p l o r e df r o mt h ef o l l o w i n ga s p e c t s : f i r s t , a c c o r d i n gt o t h ec l o s e dc h a r a c t e r i s t i co fc o m p o n e n tu s i n gt h en h p pm o d e la n d c o m b i n i n gw i t ht h ed e f i n i t i o no fs o f t w a r er e l i a b i l i t y , w ep r o p o s eac o m p o n e n tr e l i a b i l i t ym o d e l b a s e do nn h p p ( a c r m b - n h p p ) u s e dt oc a l c u l a t et h ec o m p o n e n tr e l i a b i l i t y s e c o n d l y , w ea n a l y s et h es t m c t u r o ft h ec o m p o n e n t - b a s e ds o f t w a r es y s t e m c o u n tt h e p r o b a b i l i t yo fm i g r a t i o nb e t w e e nc o m p o n e n t s ,u s e t h ed y n a m i ct r a n s i t i o ng r a p hb e t w e e nc o m p o n e n t s , p r e s e n tac o m p o n e n t - b a s e ds o f t w a r er e l i a b i l i t ym o d e lb a s e do nr o u t e - i s r m rc o n t r a p o s i n gt h e r u n n i n gr o u t e i l l 两南大学硕+ 学位论文 t h i r d , w ep m p o s et h ec o n c e p t i o n o fc o m p o n e n ts e n s i t i v i t ya n dt h es e to ft h e k e y c o m p o n e n t s ,a n du s et h ea u t s k ca l g o r i t h mt os e l e c tt h es e to ft h ek e yc o m p o n e n t s a n dw ep r o c e s s f o rt l l ec o m p o n e n t si nt h es e to ft h ek e yc o m p o n e n t sw i t ht h ef a u l t - t o l e r a n tm e c h a n i s mt oi m p r o v e t h ec o m p o n e n t - b 弱e ds o f t w a r es y s t e m r e l i a b i l i t y f i n a l l y , t h r o u g hs i m u l a t i o ne x p e r i m e n t sw ev e r i f yt h ea c r m b n h p pm o d e l i s r m rm o d e la n d a u t s k ca l g o r i t h mp r o p o s e di nt h i sp a p e ri sf e a s i b i l i t ya n de f f e c t i v e n e s s k e yw o r d s :c o m p o n e n t b a s e ds o f t w a r e ;r e l i a b i l i t y ;d y n a m i ct r a n s i t i o ng r a p h ; t h es e to ft h ek e yc o m p o n e n t s ;f a u l t - t o l e r a n tm e c h a n i s m i v 第1 章绪论 第1 章绪论 随着软件复用和构件开发等技术的广泛应用,基于构件的软件工程正迅猛发 展着。因此,构件软件的可靠性研究具有深远的理论意义和实用价值。 1 1 论文研究背景及意义 伴随着计算机技术的迅速发展,计算机系统被广泛应用于当今社会的各个领 域,计算机系统所起的作用及所担当的角色也越来越重要【l j ,社会经济、生产和 生活等方面无不依赖于计算机系统。当今计算机系统已遍布于人们的生活各个角 落,并引起社会结构、经济结构和生活方式的巨大变化。随着计算机系统所要完 成的工作日趋复杂,其软件及硬件系统的复杂性也随之提高,必然导致其失效的 可能性增加1 2 】,而计算机系统失效会给人们的工作和生活带来诸多不便,造成一定 财产损失甚至威胁到人们生命安全,使社会生产、经济活动陷入不可收拾的混乱 状态。根据调查得出:在造成计算机系统失效的诸多因素中,由计算机软件导致 失效的占了6 5 左右1 3 】。因此,软件可靠性己成为计算机系统可靠性的瓶颈。 自从2 0 世纪7 0 年代以来,学者们已提出了一些评估软件可靠性的模型,但 是大多数模型都是围绕软件测试阶段的基于失效数据的可靠性增长的黑盒模型 ( 所谓的黑箱模型就是把软件系统作为一个整体,而不考虑系统的内部结构i n 】和系 统架构) 。然而,随着软件复用和构件技术的广泛运用,基于构件的软件开发正在 迅增长。基于构件的软件工程( c b s e ,c o m p o n e 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 更加注重软件系统的体系结构。因此在估算基于构 件的软件可靠性中,现有的黑盒可靠性模型已不在适用垆j 。 面向对象软件技术是2 0 世纪8 0 年代以来软件工程领域取得的主要成就之一, 它改变原有软件开发流程,开创一个全新的软件开发模式,而基于构件的软件工 程则是面向对象技术的进一步发展【6 】,同时构件也从自主开发的可重用构件逐步扩 展到商用构件( 如:c o m 、e j b 等构件模式标准) 。伴随着构件技术的快速发展, 聚焦构件通过软件复用设计大型复杂软件系统的软件开发方法也日趋成为焦点, 因此基于构件的软件系统开发无疑是软件工程领域的主导方向之一。c b s e 作为一 种软件开发设计的技术方法,即适应了对于软件开发的高效率要求又体现了软件 复用的思想,是软件产业化、工程化进程中的必然趋势。但是,目前的工作更多 地集中在构件的开发以及构件复用技术等方面,而对于构件软件的可靠性则较少 得到关注 7 1 ,因此,如何利用构件的可靠性和构件软件的系统架构进行构件软件的 可靠性评估成为一个亟待解决的问题。而针对构件和基于构件的软件系统的可靠 性评估的研究还处于起步阶段1 8 】,因此对基于构件的软件系统可靠性研究具有巨大 意义。 况和构件迁移概率,计算不同剖面出现概率等得到系统可靠性。 基于状态的模型通常假设组成构件软件的各个构件间的控制转移具有m a r k o v 性质,但实际上基于构件的软件系统难以满足m a r k o v 模型的构件独立性假设。 基于路径的模型通常假设组成系统的构件运行是独立的,在系统架构完毕后, 针对测试用例所遵循的路径,通过计算各个路径上其构件间的迁移概率来计算各 个路径的可靠性进而计算系统的可靠性【l l 】。此模型通常在实现后对软件系统可靠 性进行评估。 国内对构件软件可靠性研究工作的主要代表有:支小莉等提出的用m o n t e c a r l o 模拟方法评估w e bs e r v i c e s 系统的可靠性f 1 2 1 ;毛晓光等提出的基于构件软件 的可靠性通用模型【1 3 】;金光等提出的一种基于p e t r i 网的可靠性分析方法【1 4 】。 国外对构件软件可靠性研究工作的主要代表有:c h e u n g 提出的面向用户的软 件可靠性模型【1 5 ;s h e r i fm y a c o u b 提出的基于场景的构件软件可靠性风险分析法 1 6 1 ;w e n l iw a n g 和y ew h 等提出的一种基于体系结构的软件可靠性模型17 】; k a t e r i n ag o s e v a - p o p s t o j a n o v a 等提出的利用u m l 在体系结构级进行风险分析【1 8 1 ; s w a p n as g o k h a l e 提出的用构件级的容错进行软件可靠性分析【1 9 1 。 1 3 主要研究内容 本文通过对软件可靠性理论的研究,在构件可靠性、构件动态迁移图、运行 路径、软件体系结构等方面研究基础上,提出一种基于路径的构件软件可靠性模 型i s r m r ,同时提出构件灵敏度和关键构件集概念,通过对关键构件集的容错处 理,可以高效提高系统可靠性。本文主要在以下几个方面进行研究和探讨: ( 1 ) 对基于构件的软件工程进行研究,针对构件、连接件和构件软件体系结 构相关特点提出其形式化定义。 ( 2 ) 针对构件封闭性特点,无法获得其内部细节,因此采用传统的黑盒模型 对构件的可靠性进行估算,并提出了一种基于n h p p 的构件可靠性模型 a c r m b 小m p p 用以计算构件可靠性。 ( 3 ) 对构件软件体系结构进行研究,提出一种基于路径的构件软件可靠性模 型i s r m r ,并用i s r a r 算法予以描述。文章中提出构件运行路径和构件动态迁移 图概念,用于刻画构件的迁移性、可靠性,并利用构件运行路径对构件软件体系 2 第1 章绪论 结构划分,分为串行、并行和调用结构,计算不同运行路径的出现的频率和可靠 性,最终用于估算构件可靠性。 ( 4 ) 在对构件软件可靠性研究基础上,研究不同构件对系统可靠性的影响度, 提出构件灵敏度概念,并用其构造关键构件集,对关键构件集中构件进行容错处 理以提高系统可靠性。 1 4 论文的研究意义及创新点 构件软件不同于传统意义上的软件,它是一种新的软件开发模式,通过复用 构件库中一个、多个构件或者自主开发新的构件,在满足一定构件模型的框架下 利用组合方法开发应用软件系统的过程。构件软件更加注重系统架构,因此利用 传统的黑盒模型进行构件软件可靠性估算会忽略其体系结构特点,而传统对构件 软件可靠性评估的基于状态的方法假设其满足m a r k o v 模型的构件独立性,但实际 上难以满足;基于操作剖面的方法存在着操作剖面定义的困难;基于路径的方法 往往没有考虑路径中构件之间的关系。本文提出一种基于路径的构件软件可靠新 模型,既考虑构件自身的可靠性又考虑构件软件的体系结构,同时结合容错机制, 提高系统可靠性。 本文提出的构件软件可靠性模型主要有以下三个创新点: ( 1 ) 针对构件自身封闭性的特点,结合构件失效数据,提出提出了一种基于 n h p p 的构件可靠性模型a c r m b - n h p p 用以计算构件可靠性,此模型是一种黑盒 模型。 ( 2 ) 针对构件软件结构,其功能实现是构件迁移的过程,并且构件迁移路径 被描述为运行路径,结合此特点提出构件动态迁移图用以描述构件的迁移及运行 路径。同时在构件迁移图的基础上提出了一种基于路径的构件软件可靠性模型 i s r m r ,并用i s r a r 算法予以描述。 ( 3 ) 分析构件软件体系结构,针对不同构件对系统可靠性影响度不同,提出 构件灵敏度和关键构件集概念,并且对系统中的关键构件集进行容错处理,以提 高系统可靠性。 1 5 论文的内容安排 本文共分为章,各章节内容安排如下: 第一章为绪论,主要介绍论文的研究背景、国内外相关领域的研究、主要研 究内容、论文的研究意义及创新点、论文的内容安排。 第二章较为详细地介绍了本课题所涉及的基于构件的软件工程相关知识,包 括:构件和连接件的定义、特征以及两者之间的异同;当前一些流行的构件模型 标准( c o r b a 、c o m 及e j b ) ;基于构件的软件工程开发流程等。 两南大学硕十学何论文 第三章主要对本课题所涉及的构件软件可靠性相关理论进行介绍,包括:软 件可靠性定义和相关数学知识及基本公式;软件失效机理;经典的软件可靠性模 型和构件软件可靠性模型。 第四章为本论文的核心章节,首先提出提出了一种基于n h p p 的构件可靠性模 型a c r m b n h p p ;接着提出构件动态迁移图定义,结合运行路径提出一种基于路 径的构件软件可靠性模型i s r m r ;最后,提出构件灵敏度和关键构件集概念,结 合容错机制对关键构件集进行容错处理提高系统可靠性。 第五章对本文采用的开发工具、实验环境进行了介绍,并利用m a t l a b 根据 a c r m b - n h p p 模型开发一程序用以估算构件可靠性,并结合实验数据验证其有效 性,接着利用a u t o l t 结合本文提出的可靠性模型i s r m r 开发一个小系统用以计算构 件软件可靠性和系统关键构件集,并用实例验证i s r m r 模型及a u t s k c 算法的正 确性和可行性。 第六章对全文进行总结并提出提出对未来工作的展望。 4 第2 章基丁构件的软件t 程 第2 章基于构件的软件工程 基于构件的软件工程( c o m p o n e 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 e 与成熟的面向对象( o b j e c t o r i e n t e d ,o o ) 技术也有诸多不同,它推广了对象封装的内涵,侧重于复杂软件系统 中构件之间的协调关系,强调其系统的体系结构,形成了一个专门的软件开发模 式。本章将对基于构件的软件工程的相关知识进行介绍,主要包括构件、连接件、 构件软件的体系结构和构件软件开发流程。 2 1 构件 在1 9 6 8 年召开的北大西洋公约组织( n a t o ) 会议上,为了解决软件危机问 题,m c l l r o y 首次提出软件构件、构件工厂等概念【2 们。2 0 世纪9 0 年代中期以后, 随着i n t e m e t 、c s 、w e b 、4 g l 、j a v a 、分布式对象和可视化开发工具等技术以及 基于构件的软件开发模式的发展,构件被频繁应用于软件开发过程中,因此一些 学者、公司和产业联盟对构件相继提出自己定义,但是在国际上却还没有一个统 一的标准。 著名学者c l e m e n ss z y p e r s k i 将构件定义【2 i 】为:“构件是具有约定接口规范和明 显环境依赖的组合体单元,可以被单独配置并且易于被第三方整合 ,此定义不仅 兼顾构件的技术因素而且考虑其市场因素【2 引。 在2 0 0 0 年一份关于基于构件的软件工程的报告中,c m u s e i 的f e l i x 、 b a c h m a n 等人将构件定义【2 3 1 为:构件是一个不透明( o p a q u e ) 的功能实现体,符 合一个既定约束的构件模型,并可供第三方组装。 在欧洲面向对象编程( e c o o p ) 会议上,参会者最终一致将构件定义为:构 件是一个具有规范接口和确定的上下文依赖的组装单元,可以被独立部署和易于 第三方组装。 o m g 组织将构件定义为:构件是一个物理的、可被替换的系统组成部分,它 封装了其内部结构的实现体并且提供了一组接口的具体实现方法【2 4 j 。 m i c r o s o f tc o r p o r a t i o n 将构件定义为:构件是一个通过其接口向外界提供服务、 满足各种功能要求的软件组装单元1 2 5 。 综上所述,构件主要具有如下特征: ( 1 ) 构件是一个可以被独立配置的,且其功能完整的单位; ( 2 ) 构件是被严格封装的,其内部实现的细节与外部环境和其它构件是相互 分离的,外部环境和其它构件不会对内部造成任何影响: ( 3 ) 构件是通过接口向外界提供服务,实现其信息交互的功能; ( 4 ) 构件的真正价值在于复用,利用构件通过复用技术组装实现完整复杂的 两南大学硕十学位论文 应用系统; 构件具有诸多优点,主要体现为以下几点: ( 1 ) 独立性:它不依赖于某一个特定系统,可以被应用于不同功能的软件系 统中; ( 2 ) 互换性:在一个软件系统中它可以被功能相同的其它构件所替换; ( 3 ) 预制性:构件可以不由应用开发人员实际开发而是由第三方提供,或直 接从构件库中选取; ( 4 ) 封装性和透明性:不提供其源代码,用户无需了解其内部细节,仅仅通 过其功能描述了解其相关功能特性; ( 5 ) 通用性:它不是为某一个用户定制的,而是为了实现一定功能所开发的, 在其相关领域中通用的【2 6 1 。 2 2 连接件 任何独立存在的构件并不能发挥和实现其的功能,而是必须通过构件之间的 连接件来发挥其功能,从而实现构件间的信息交互,因此连接件是构件链接的纽 带。 连接件与构件一样,也具有其内部结构和外部接口。但是,连接件仅有一组 相互关联的接口【2 7 1 ,用于连接特定的两个构件,而构件则可以有若干个相互无关 的接口用于与其它不同构件交互,因此,连接件只能在一个特定的交互中起到相 应作用,而构件则可以在多个交互中起到不同作用。 连接件具有连接的方向性与角色性,前者是指连接件的任意一端的构件可以 进行单向或者双向的信息交互、请求传递和消息响应,后者是指连接件所连接的 构件其作用和地位( 有主动和被动或者请求和响应的区分等) 。 2 3 当前主流构件模型 当前主流构件模型包括:o m g 的c o r b a 、m i c r o s o f t 的c o m 以及s u n 的 e j b 28 3 2 1 。 2 3 1c o r b a 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 ,公共对象服务请求代理 结构) 是由o m g ( o b j e c tm a n a g eg r o u p ,对象管理组织) 所制定的,它是一种面 向对象应用的标准程序体系规范【3 3 】。 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 ) 进行对象建 模,使用不用的编程语言、编译器实现构件的内部结构,通过对象请求代理o r b ( o b j e c tr e q u e s tb r o k e r ) 进行客户和服务器之间的信息交互。 6 l i 第2 章基于构件的软什t 程 i d l 提供了数据类型,主要包括:基本数据类型、模板类型、构造类型、复合 类型,这些数据类型用来描述参数、属性、返回值以及异常等;同时,提供了操 作说明用来表示可以被客户调用的处于构件中的服务。接口是i d l 中最重要的部 分,i d l 不仅提供了接口定义,而且提供了接口继承性,接口继承性是指派生接口 可以继承其基类接口所定义的类型与操作【3 4 1 。 c o r b a 的基本模型是对象管理结构o m a ( o b j e c tm a n a g e m e n ta r c h i t e c t u r e ) , o m a 有四个主要层次:对象服务、对象请求代理、公共设施和应用对象,如图2 1 所示。 图2 1o m a 模型 ( 1 ) 对象服务是为管理和实现对象所提供的基本的功能,包括:生存周期服 务、并发服务、事务服务、安全服务、命名服务等。 ( 2 ) 对象请求代理是o m a 模型的核心,它提供了一种使对象可以发送请求、 接受响应的机制,从而实现对象之间的信息交互。 ( 3 ) 公共设施是适用于众多领域的通用构件,例如用户界面、任务管理、系 统管理和信息管理等。 ( 4 ) 应用对象是仅能被应用于特定领域的专用构件。 2 3 2c o m c o m 3 5 ( c o m p o n e n to b j e c tm o d e l ) 是由m i c r o s o f t 公司提出的一种软件构件模 型,主要是用于w i n d o w s 系列平台上的构件软件的开发,同时m i c r o s o f t 现有的 许多技术如d i r e c t x 、a c t i v e x 以及o l e 等都是基于c o m 构件模型而开发的。 在不需要使用中间件的情况下,c o m 通过规范构件的接口就可以实现构件间 的信息交互,它还支持不同语言间的协作开发,如c 、c + + 、j a v a 等之间的协作 7 两南大学硕十学付论文 开发。c o m 是面向对象的软件构件模型,以接口的形式向外提供服务,而其接口 也是构件之间相互交互的关键之处。 对于c o m 来讲,接口是一个包含一个函数指针数组的内存结构,其数组中的 每一个元素均是一个由构件所实现的函数地址。c o m 构件定义的规范化接口模型 如图2 2 所示。 v t a b l e 图2 2c o m 的接口模型 所有的c o m 都必须继承i u n k n o w n ,而且通过i u n k n o w n 的接口指针来查询该 构件的其他接口。i u n k n o w n 接口的定义包含在w i n 3 2 s d k 中的u n k n o w n h 的头文件 中,引用如下: i n t e r f a c ei u n k n o w n v i r t u a lh r e s u t l s t d c a uq u e r y i n t e r f a c e ( c o n s ti i d & i i d ,v o i d 幸奉p p v ) = 0 ; v i r t u a lu l o n g _ s t d c a l la d d r e f 0 = 0 ; v i r t u a lu l o n g _ s t d c a l lr e l e a s e ( ) = o ; ) ; 可以看出每个i u n k n o w n 接口前三个函数都是q u e r y i n t e r f a c e ,a d d r e f 和r e l e a s e 函数,c o m 构件模型的管理主要通过这三个函数实现【3 6 1 : ( 1 ) q u e r y i m e r f a c e 函数主要用于实现查询构件所提供的功能函数的接口的功 能; ( 2 ) a d d r e f 函数主要用于实现调用构件功能函数的接口的功能; ( 3 ) r e l e a s e 函数主要用于实现释放构件功能函数的接口的功能; ( 4 ) a d d r e f 和r e l e a s e 函数还可以实现的是一种所谓引用技术的内存管理技 术。当客户获取一个构件或者创建一个构件时候,就会通过a d d r e f 函数增大其引 用计数值;当客户使用完一个组件,就会通过r e l e a s e 函数减少其引用计数值,当 引用计数值为0 时,构件就会删除自己,同时释放其所占内存。 v t a b l e t 3 7 】( v i r t u a lf u n c t i o nt a b e l ) 用于存放每个构件的功能函数指针,而功能 8 第2 章基于构件的软件下稃 函数指针用于指向构件的每个功能函数的接口,同时每个构件在调用其它构件的 功能函数之前都必须通过v t a b l e 进行查找。 2 3 3e j b e j b ( e m e r p r i s ej a v a b e a n s ) 是由s u n 公司于1 9 9 7 年1 2 发布的构件模型的规范 标准,遵循e j b 构件模型编写的应用程序具有交互性、可扩展性及多用户安全等 特性。 s u n 公司发布的相关说明文档中对e j b ( e n t e r p r i s ej a v a b e a n s ) 的定义是:e j b 是一种用于开发和部署面向对象的、分布式的应用系统构件体系结构。 e j b 组件有两种类型: ( 1 ) s e s s i o nb e a n s e s s i o nb e a n 实际上代表的是一个c l i e n t ,c l i e n t 是通过调用s e s s i o nb e a n 的方 法来现实远程访问服务。s e s s i o nb e a n 具有两种状态管理模式:s t a t e f u l 和s t a t e l e s s 。 s t a t e f u ls e s s i o nb e a n 可以维持某个调用客户的状态,而s t a t e l e s ss e s s i o nb e a n 不能 够维持一个调用客户的状态。 ( 2 ) e n t i t ) ,b e a n e n t i t yb e a n 代表一个数据库或一个应用系统中的数据对象,和s e s s i o nb e a n 不同的是e m i t yb e a n 是持久的,同时允许共享访问。e n t i t yb e a n 的持久性是指其 状态不依赖于相关的应用服务器。 e j b 主要由构件协调者o t m 、e j b 组件、e j b 容器组成。o t m 提供了运行服 务器方的构件框架,其主要功能是:激活构件、撤销构件、管理构件的状态和协 调分布式事务等。c o r b a 因缺乏构件协调者框架和完整的服务器方构件,所以服 务器方的构件之间无法进行信息交流的问题。而o t m 提供了服务器方的构件框 架,因此服务器方构件之间可以进行信息交流,同时实现了e j b 与c o r b a 之间 的兼容。e j b 构件模型的特点如下: ( 1 ) e j b 具有面向对象、跨平台、分布式、可移植性等优点,可以和已有的 服务器平台、其它的j a v a a p i 、c o r b a 等兼容; ( 2 ) e j b 构件只需考虑其应用系统的实际需求,而系统的服务都是通过e j b 服务器管理实现的,因此可以节省系统开发时间。 2 4 基于构件的软件工程 基于构件的软件工程( c b s e ) 是一种新的软件开发模式,它是通过复用构件 库中一个、多个构件或者自主开发新的构件,在满足一定构件模型的框架下利用 组合方法从而高效率、高质量地开发应用软件系统的过程【3 8 1 。c b s e 的开发流程图 如图2 3 所示: 9 图2 3c b s e 的开发流程图 c b s e 的开发的流程: ( 1 ) 对于需要开发的系统进行需求和分析分析,主要遵循抽象、封装和集成 的原则; ( 2 ) 分析待开发系统的体系结构,按照其功能模块形成其结构模型; ( 3 ) 对结构模块进行体系结构设计,如果构件库中已经存在需要的构件,则 直接进行构件合格性检验,否则进行可复用的构件开发; ( 4 ) 对将组成的构件进行构件合格性检验,构件合格性检验将保证所有的候 选构件执行其功能完全适应系统的体系结构,并保证其所需的质量特性( 如:可 靠性、性能) ; ( 5 ) 构件被集成到应用体系结构中可能会存在一个或多个地方的冲突,为了 避免其冲突就要利用构件适应性修改技术; ( 6 ) 经过合格性检验和适应性修改的构件,将通过一个“基础设施 被组成 到为应用系统建立的体系结构中,这个基础设施主要完成数据交换、结构化存储 和底层对象交互等功能,其实,这个基础设施就是上小节所述的c o r b a 、c o m 等构件软件标准; ( 7 ) 接着进行构件软件的测试,确保其质量特性; ( 8 ) 应用软件开发完成; ( 9 ) 当有些功能变动或者需求变化时,需要进行特定构件的更新,确保其功 l o 工

温馨提示

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

评论

0/150

提交评论