已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河海大学硕士学位论文摘要 摘一要 动态配置是指在软件系统运行时动态地改变系统的配置项。基于构件的软 件系统的配置项涉及系统的构件组成,构件间的连接关系,构件的物理分布等。 如果基于构件的软件系统不能根据用户的实际需要和系统的实际运行环境实现 灵活的动态配置,那么软件的重复开发仍将不可避免,软件的适应性和动态性 问题也得不到根本的解决。本文以分析基于构件的软件系统中的动态配置机制 为主要内容,完成的主要工作有: ( 1 ) 分析基于构件的软件系统中动态配置的基本原理,根据支持动态配 置的软件系统反射机制,建立基于反射的动态配置模型,分析动态配置模型的 各构成要素。从系统的结构和语义两个方面定义动态配置模型的元数据,并在 分析运行时系统的一致性的基础上,分析与系统结构、系统行为相关的元协议。 根据元协议影响的范围,分别从构件和系统两个层次分析动态配置机制。 ( 2 )以动态配置模型为基础,给出支持动态配置的构件、构件间的连接 关系和体系结构的元数据描述。根据对元协议的定义,设计构件属性设置、构 件删除、构件添加等五种基本动态配置请求的动态配置算法,为配置复杂、功 能多样的复合动态配置请求的实施奠定基础。 ( 3 ) 将动态配置模型的思想应用到具体的实践中,实现一个通用雨水情 图示系统。该系统能够根据用户的请求实现系统的动态配置,从而证实了本文 所提出的动态配置机制在支持软件系统动态配置方面的可行性。 【关键字】:构件:动态配置模型;描述;动态配置算法;系统一致性 河海大学硕士学位论文a b s t r a i c t a b s t r a c t d ) ,n a 血cr e c o n 丘g 啊a t i o nr e f i e r st om ec h a n g eo fas o f 啊a r es y s t e m sc 0 面g u r a t i o l l s w h e n 也es y s t e i ni s 1 1 1 i m i l l g t h ec o n f i 母l r a t i o l l j so fac o m p o n e mb a s e ds o f 呐a r e s y s t e mc o n s i s to fm ei i l s 删a t i o na 1 1 db i n d i n g so fs o 行w a r ec o m p o n e n t sa u sw e na u s 也e a h o c a t i o no fc o m p o n e n t st oh a r d w a r es y s t e n l s r 印e a t e dd e v e l o p m e n tc a nn o tb e a v o i da i l dm ea d a p t a b i l i t ) ,a n de v 0 1 而o no fs o f h v a r es y s t e m sw i l ln o tb es a t i s 6 e di f s o r w a r es y s t e mc a nn o ta d l i e v ean e x i b l em e c h a i l i s mf o rd m l a m i cr e c o n 丘g i l r a d o n a c c o r d i n gt 0m eu s e r sr e q u 疵:n l e n t s 觚dm er e a lt i n l eo p e r a t i i l ge i l v j r o i n e n t n l i s m e s i sf o c u so n 血ea n a l y s i so fd ) r n a n l i cr e c o n f i g u r a t i o no fs o f t w a r es y s t e i i la n dm a 玉【懿 m ef o l l o w i 】坞c o n t r i b u t i o n s ( 1 ) w em a d e a i la n a l y s i so nm ec o n t e m sa n dp r i n c i p l e so fd y l l a 芏n i cr e c o n f i g u r a t i o n o fs o r w a r es y s t e mw b j c hb a s e do nc o n l p o n e n t a c c o r d i n gt om er e n e 撕n g 孤c t l i t e c t u r eo fd y n 枷cr e c o n 丘目a 矗o n s y s t 口n s ,t 1 1 i sm e s i sp u 【tf o 刑a r da r e f l e c t i o nb a l s e dd y i l a m i cr e c o n 丘g u r a t i o nm o d e la i l da i l a l y z e di t sc o m p o s i n g e l e m e n t s t h em e t ad a t aw e r ed e f m e d a c c o r d i l l gt 0t h ea r c 陆t e c n l r ea n d s 锄a n t i c so fs o f t w a r es y s t e m a r e rm ea i l a l y s i so fs y s t e mc o n s i s t e n c y ,w ea l s o d e f h l e d 也es t i u c t u l ea n db e h a v i o rp r o t o c o lo fd y l l a i i l i cr e c o n f i g u r a t i o nm o d e l 1 1 1 e na c c o r d i n gt 0t 1 1 ea 虢c t so fp r o t o c o l ,w ea n a l y z e dc o n l p o n e md ) ,i l a m i c r e c o n f i 舀l r a t i o na 1 1 ds y s t e md ) ,n a m i cr e c o n 6 目婿a t i o ns e p a r a t e l y ( 2 ) b a s e do nm ed y n 锄i cr e c o n 丘g u r a t i o nm o d e l ,t h i sm e s i sg a v et l l ed e s 硪面o n s o fc o m p o n e n t s ,m e r c o 王1 i l e c t i o n sa n ds o r w a r ea r c m t e c t u r e a c c o r d 证gt om e s c a l eo fd ) ,i l a 血c r e c o n 丘g u r a t i o na 1 1 dm ep r e s e i i 培o fs y s t e mc o n s i s t e l l c y , r e c o n f i g u r a t i o na l g o r i 幽 n sw e r ep r e s e n t e dt oi 1 p l 锄e n tb a s i cr e c o n f i g u r a t i o n i 1 1 t e n t i o i l s ,i i l c l u d i n gc o r n p o n e n tc r e a t i o n ,c o m p o n e n tr e m o v a l , c o i l e c t i o n c r e a t i o n ,c o i u l e c t i o nr e m o v a l 觚dc o n l p o n e l l ta 缸b u t ec o n f i g u r a t i o n t 1 1 i sp 矾 o fw o r kf o m l e dm eb a s i st or e a l i z ec o i n p o u i l dr e c o n 丘g u r a t i o nn e l l t i o n s 谢m c o i n p l e xc o n f i g u r a t i o na 1 1 dp o w 晌1 缸l c t i o n s ( 3 ) w ea p p l i e dd ) ,1 1 a 血cr e c o n f i g u r a t i o nm e c h a m s m 缸t op r a c 廿c e ,d e v e l o p e da s y s t e mf o r 黟a p h i c a lr 印r e s c n t a t i o no fr a m f a l la n df l o o d n l i ss y s t e ms u p p o r t s d y n a m i cr e c o n 丘g u r a t i o n砌c hc o 血肌e dm ea v a i l a b i l i 哆 o fd y n a 血c r e c o n 丘目盯a t i o nm e c h a n i s m k e yw o r d :c o n l p o n e n t ;d ) ,i l a r n i cr e c o n f i g l 】r a t i o nm o d e l ;d e s c 邱t i o n ;d y n a i i l i c r e c o 血g 啊a t i o n 灿9 0 r i t b m ;s y s t 锄c o n s i s t e n c y 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一 同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。如不实,本人负全部责任。 论文作者( 签名) : 学位论文使用授权说明 2 0 0 8 予多月,7 日 河海大学、中国科学技术信息研究所、国家图书馆、中国学术 期刊( 光盘版) 电子杂志社有权保留本人所送交学位论文的复印件 或电子文档,可以采用影印、缩印或其他复制手段保存论文。本人 电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论 文外,允许论文被查阅和借阅。论文全部或部分内容的公布( 包括刊 登) 授权河海大学研究生院办理。 论文作者( 签名) :2 0 0 8 年月7 7 日 河海大学硕士学位论文第一章绪论 1 1 课题研究背景 第一章绪论 本论文的研究工作是教育部科学技术研究重点项目基于本体的水利领域 软件体系结构基础研究及建模分析( 项目编号:1 0 7 0 5 6 ) 的有机组成部分。 随着软件技术的发展,软件开发人员关注的焦点逐渐从静态的、业务逻辑 的重复开发转向如何实现将已实现具体功能的各个服务组装成完整的新系统,基 于构件的软件应用系统的开发逐渐替代原有的开发方式。未来软件的开发活动将 呈现为通过基础软件资源组合为基本系统【l 】。构件技术的发展为满足软件系统的 开放和动态提供了基础,研究以构件为基础的软件开发方法,更好的突出了软件 系统的构造性和动态性。 基于构件的软件开发方法,虽然避免了部分业务逻辑的重复开发,从一定 程度上提高了软件的开发效率,但是随着软件的用户越来越广泛,这种开发方 法仍然遇到了难题。基于构件的软件系统在开发完成并交付使用后,在长期的 运行过程中可能会遭遇各种各样的变化,如软件需求的变化、功能实现的变化、 企业业务流程的改变等等。大多数软件系统处理变化的方式是根据需求,开发 新的功能实现或更新已有的功能模块以生成新的应用系统。这种对软件系统的 更新本质上是一种静态的更新,软件系统仍然缺乏动态适应能力,难以根据应 用需求进行动态的调整。而随着网络技术的发展,软件系统运行的环境逐渐由 静态、封闭转向动态、开放。而且对于某些要求连续运行的系统,停止系统的 运行来实现更新将造成不可估量的损失。因此,基于构件技术开发的应用系统 如果不能根据用户的实际需要和系统的实际运行环境实现一种灵活的动态配置 机制,那么软件的重复开发仍将不可避免,软件的适应性和动态性问题也得不 到根本的解决。 河海大学硕士学位论文第一章绪论 1 2 现状分析 1 2 1 研究的现状 对动态配置的研究始于2 0 世纪7 0 年代,最初针对进程提出的,但是由于 基于进程的软件系统由于涉及到操作系统,编译器等底层细节,进程之间缺乏 相对独立性,使得动态配置难以实现,效率也难以保证。随着软件开发技术的 发展,进入2 0 世纪9 0 年代,分布式构件模型的提出,使得软件系统的发展从 基于进程的软件系统逐渐过渡到基于构件的软件系统,开发过程由对象的开发、 编译、链接转变为构件的开发、组装与部署,降低了分布式应用软件系统的开 发复杂度。此外,基于构件的软件开发将业务逻辑与服务逻辑分离,提高了构 件的可复用性,也使得应用系统更易于扩展,推动了系统自身对动态配置的需 求,同时,构件模型的独立性,接口的规范性,构件与平台之间的低耦合性也 消除了对进程进行动态配置时的种种约束。基于构件的软件系统降低了对系统 进行动态配置的难度,提高了动态配置的可行性,也使得动态配置的实体也由 进程逐渐过渡到了构件。 动态配置研究初始时,系统的配置信息被显式的定义在应用程序的源代码 中,配置信息由程序员自己在源代码中添加或者由系统自动完成相关配置代码 的生成,例如p o l y l i m 【2 1 ,这种配置机制对系统执行期间造成的影响比较小,只 有在实施某些配置时才会对系统造成一定的影响,但是这种在程序源代码中显 式定义配置信息的方法,随着程序代码量的增加,维护变得非常困难,而且配 置信息与具体的应用逻辑密切相关。随着对动态配置研究的展开,有限状态自 动机模型【3 】或者过程代数【4 】被用来描述配置规则,2 0 世纪八十年代末九十年代 初,人们提出了配置语言( c o n 丘g i l r a t i o n g u a g e s ) 的概念,将配置规则和配置 条件进行形式化约束,例如配置语言p c l 【5 】以及软件体系结构描述语言 d a 刑i n 【6 - 7 】,r a p i d e 【8 1 等,在研究动态配置时还有些学者使用有向图或者树的结构 来表示系统的逻辑结构,例如e x g o m 【9 1 ,d i g 【l o 】,g o p m c b s 【1 1 1 ,o r b g o p 【1 2 】等。 除了以上的方法外,还有一些方法从工程应用的角度研究动态配置机制,例如 基于配置器【1 3 - 1 5 1 的方法,基于通用连接器【2 0 1 的方法,基于包装器【2 1 】的方法,基 于现有平台改进的方法【1 岳1 9 卫垮等。 2 河海大学硕士学位论文第一章绪论 1 2 2 存在的问题 软件系统的动态配置一直是软件工程领域的研究热点之一【2 3 】。动态配置是 在系统正在运行时删除构件或者断开连接等配置操作,对软件实体间正在进行 的交互是一种打断,所以动态配置在实现系统更新的同时必须要保证系统中与 需要进行配置的软件实体进行交互的部分不会因为动态改变而出现故障。 虽然学者从各个不同的角度对动态配置展开了研究,并且取得了一定的成 果,但是仍然存在一些问题需要进一步研究,首先,缺乏动态配置模型,现有 的动态配置方法从形式化描述,动态配置算法设计、实现等研究动态配置机制, 取得了一定的成果,但是各种方法关注的焦点并不完全一致,使我们很难对现 有研究进行准确定位,并从正确性、功能性、透明性等方面对现有研究进行有 效的分析。而另一方面,动态配置模型的缺乏也使得支持动态配置的软件系统 的设计和实现缺乏必要的指导原则。 其次,缺乏对动态配置算法的合法性研究,动态配置算法的设计在使得动 态配置操作可行的同时还应当保证系统的一致性,但是在现有研究中,对动态 配置操作的粒度的确定存在较大的差异,动态配置算法的设计往往保证了动态 配置的可行性,牺牲了系统的一致性。 此外,动态配置的实现复杂度较大,现有各动态配置方法中,配置语言或 者体系结构描述语言,使得系统的动态配置的逻辑结构不明显,对动态配置实 施者的能力有很高的要求,不仅要了解系统本身的业务逻辑,还要学习新的描 述语言。其他的方法在实现动态配置平台时,通常要对底层的平台进行较大扩 展,如引入工厂对象以及各种形式的动态配置代理,复杂度较大。 1 3 选题的意义 对软件进行动态配置是一个对运行时的软件系统进行调节以满足新的软件 需求的过程,也是一个对已有软件系统不断进行修改、补充和完善以适用新需求 和环境变化的过程2 4 1 。基于构件的软件系统开发技术,在增加了动态配置的可行 性的同时,也使得动态配置的研究面临了新的挑战。一方面,为了屏蔽底层平台 的分布性和异构性,提供统一的编程模型,基于构件的软件系统中一般采用黑箱 3 河海大学硕士学位论文第一章绪论 的方式使构件对应用屏蔽具体的内部实现细节,对外提供统一的服务接口,外部 应用无法取得系统的内部结构和状态行为信息,而动态配置的实施需要收集系统 的行为和状态信息,另一方面,现有各种动态配置方法在对动态配置功能的确定、 动态配置算法的设计以及具体实现方面,存在很大差异。在设计和实现支持动态 配置的软件系统时也缺乏必要的指导原则。 本文以实现基于构件的软件系统的动态配置为目标,在对现有动态配置机 制研究的基础上,分析基于构件的软件系统中动态配置机制的基本原理,分析 支持动态配置的软件系统的结构特点,总结支持动态配置的软件系统的反射体 系,在此基础上建立了包含反射体系的动态配置模型,描绘动态配置系统的工 作原理及过程,分析动态配置系统的各构成要素及关联关系,为分析动态配置 系统提供了统一框架,也为支持动态配置的软件系统的设计与实现提供了参考。 1 4 本文的主要工作 对动态配置的研究将满足系统对演化的要求,动态配置的目标在于支持系 统在运行时刻以尽可能小的代价从一个配置状态演化到另一个配置状态【2 5 1 。动 态配置在一定范围内实施,影响范围外的系统的其它部分仍能提供服务。 本文以水利领域内的通用雨水情图示系统的开发为例,以实现基于构件的 软件系统的动态配置为目标,论证动态配置机制的可行性。本文的主要工作有: ( 1 ) 分析基于构件的软件系统中动态配置的基本原理,根据支持动态配 置的软件系统反射机制,建立动态配置模型,分析动态配置模型的各构成要素。 从系统的结构和语义两个方面定义动态配置模型的元数据,并在分析运行时系 统的一致性的基础上,分析元协议。根据元协议影响的范围,从不同的层次分 析动态配置机制。 ( 2 )以动态配置模型为基础,给出支持动态配置的构件、构件间的连接 关系和体系结构的元数据描述。根据对元协议的定义,设计构件属性设置、构 件删除、构件添加等五种基本动态配置请求的动态配置算法,为配置复杂、功 能多样的复合动态配置请求的实施奠定基础。 ( 3 ) 将动态配置模型的思想应用到具体的实践中,实现一个应用系统。 该系统能够在运行时根据用户的请求实现系统的动态配置,以验证本文所提出 4 河海大学硕士学位论文 第一章绪论 的动态配置机制在支持软件系统动态配置方面的可行性。 1 5 本文的组织结构 第一章绪论。对课题的研究背景、现状、存在的问题、意义以及文章的 组织结构作了阐述。 第二章动态配置机制。分析动态配置的研究现状、基本概念,对基于构 件的软件系统中与动态配置相关的技术作深入的分析,研究基于构件动态配置 机制的基本原理。 第三章动态配置模型。建立了给予反射的动态配置模型,分析动态配置 系统的各构成要素,从系统的结构和语义两个方面定义动态配置模型的元数据, 分析与系统结构和系统行为相关的元协议。根据元协议影响的范围,从构件和 系统的角度对动态配置展开研究。 第四章元数据与元协议。以动态配置模型为基础,给出支持动态配置的 构件,构件间的连接关系和体系结构的元数据描述。根据动态配置涉及的范围 和系统的一致性保证,设计了构件属性设置、构件删除、构件添加等五种基本 动态配置请求的动态配置算法,为配置复杂、功能强大的复合动态配置请求的 实施奠定了基础。 第五章实例。将动态配置模型的思想应用到具体的实践中,验证所提出 的动态配置机制在支持软件系统动态配置方面的可行性。 第六章总结与展望。总结取得的成绩与不足之处,并指出需要改进的地 方以及下一步要做的工作。 河海大学硕士学位论文第二章动态配置机制 2 1 引言 第二章动态配置机制 动态配置的对象可能是进程,对象或者构件等,不同的动态配置对象产生 了动态配置不同的研究方法。无论是以哪一种实体作为研究对象,动态配置研 究所关注的关键问题都有一定的共性。基于构件的软件系统中的动态配置将动 态配置的对象具体到构件和由组装而成的软件系统,动态配置的研究除了要对 构件和基于构件的软件系统的体系结构进行详细的分析之外,还应该针对基于 构件的软件系统的特点从动态配置的一般过程,配置原则等方面研究基于构件 的软件系统中动态配置机制的基本原理。 2 2 动态配置的基本概念 软件系统的实体组成、实体的物理分布以及实体间的映射连接关系构成了 软件系统的配置项,系统的软件配置项则可以定义为系统的软件实体组成和软 件实体间的连接关系。 对软件系统的配置项进行的操作可以分为静态配置和动态配置两种【1 0 1 。静 态配置是指组成系统的软件实体同时加载到处理器中,系统的所有软件组成部 分同时部署,需要修改时中断系统的运行,重新修改、编译,以建立新的软件 系统。动态配置是指运行期间对系统的配置项进行改变,也即对软件实体组成, 实体的物理分布,软件实体间的连接关系的改变,强调运行时的改变不影响整 个系统的运行。系统支持动态配置的目的之一是实现软件系统的在线演化,1 9 8 5 年j e 行m a g e e 和j e 行l ;渤m e r 提出了j e f f 动态配置模型 2 6 】如图2 1 所示,根据系 统的第i 次设计实现完成应用系统后,由运行的系统得到配置信息c d 卿r 口砌, 在获得配置信息的基础上,通过对动态配置活动的约束与管理,改变系统的实 体组成、实体的物理分布或者实体间的连接关系后,系统从当前的配置 , ,匙r 口矗d 体动态演化到另一个新配置c d 嘏鲥,口f f d 刀川,从而建立起系统的配置 信息与实时运行的系统之间的关联关系。 6 河海大学硕士学位论文第二章动态配置机制 图2 1 j e 行动态配置模型 根据j e 行动态配置模型,软件系统的一次动态配置,从动态配置请求的产 生开始,到动态配置算法的生成至动态配置实施结束。触发动态配置请求可能 是系统的管理员根据实际的需求产生,也可能是系统自身在满足一定的条件下 触发配置的产生,例如自适应软件系统。在实际的工程应用中,更可能的状况 是软件系统在人的辅助下触发动态配置。动态配置请求描述了动态配置实施者 希望使系统通过动态配置后到达的目标。根据动态配置对系统的改变的可预期 性,一般可以将动态配置分为可预期的动态配置和随时出现的动态配置两种【2 3 】。 可预期的动态配置对软件系统的自动化再配置至关重要,随时出现的动态配置 则适合用于软件系统维护期间【2 7 1 。 ( 1 ) 可预期的黟眦n e d ) 动态配置,亦被称为编程模式,软件系统配 置可能发生的更改在系统设计时就可以预知,并被编码在系统具体实现中,系 统运行时满足一定的条件的时候触发,通用连接器方法常被用来满足这种对可 预期的动态配置的需求,通用连接器支持两个级别的再配置,提供服务的构件 级和由各种服务组装而成的应用级; ( 2 ) 随时出现的( a d - h o c ) 动态配置,亦被称为进化模式,系统的配置在 设计时无法被完全预知,可能由用户根据环境的变化或者需求的变化在系统运 行的任意时刻进行。进化模式的动态配置实现起来更复杂,可能破坏系统的一 致性但是具有更好的灵活性。 河海大学硕士学位论文 第二章动态配置机制 2 3 动态配置的研究现状 以对系统配置信息的描述作为划分的标准,可以将对动态配置的研究方法 分为形式化方法( 例如基于配置语言或者软件体系结构描述语言的形式化方法 等) 与非形式化方法( 例如基于框架的方法,基于现有构件平台的动态配置方法 等) ,形式化的研究方向研究侧重于对系统结构、语义、配置条件等的形式化 描述及对以及对这些形式化描述的验证。 1 ) 形式化方法 形式化描述方法支持对软件体系结构信息的描述,通过j i 演算, c s p ( c o m m u n i c a t i n gs e q u t i a lp r o c e s s ) 等形式化工具支持对系统行为的语义描 述,保证系统的一致性,从而达到比较精确的描述系统的结构。2 0 世纪九十年 代初,人们提出了配置语言的概念,d 硼7 l ,i n 是其中之一,此后,d a 刑i n 逐渐演 变为一种体系结构描述语言,用来支持系统的动态配置。d a r 丽n 将构件接口按 服务流向不同可分为提供服务的端口与请求服务的端口。端口0 0 r t ) 的类型由接 口( i n t e m c e ) 来决定【6 】。在描述系统时d a 刑i i l 将系统描述成为绑定( b i n d i n g ) 在一 起的构件实例的配置。为了防止构成系统的构件间的互联模式过于复杂无法管 理,d a 刑i n 提供了建模的图形处理工具s a a ( 廿1 es o 脚a r e a 删t e c 咖s a s s i s t a l l t ) 【7 】 o 基于图的动态配置模型则从另外一个角度描述系统的配置,基于图的动态 配置以g o p ( g r a 灿o r i e l l t e dp r o g r a m m i n g ) 为基础【1 0 】,由一组l p ( l o c a lp r o 鲫n ) 组成,相互之间通信通过消息传递来完成。开发g o p 的时候用逻辑图来描述软 件系统,图上的各个功能模块互相配合完成应用程序的功能。逻辑图不仅从结 构上描述了系统的配置,也描述了模块间的通信方式,当开发人员定义一个逻 辑图变量并生成一个实例后,l p 之间的通信就可以通过执行图上预定义的一组 操作来实现。绑定软件实体与图或者树的节点,将软件实体映射到图或者树上, 绑定节点与处理器,将逻辑图或者树映射到底层运行网络上,这样软件实体之 间就可以通过面向图的原语进行交互。 2 ) 非形式化方法 通常对系统的描述采用l 等非形式化工具描述应用系统的配置信息,关 注动态配置请求的合法性和动态配置算法的效率,通过对动态配置的操作的约 河海大学硕士学位论文 第二章动态配置机制 束保障系统的一致性。非形式化的方法包括基于框架的方法,基于现有平台的 方法,基于配置器的方法等。配置管理器的概念最早由j e f r m a g 和j e f f l ( i 狮e r 等人提出,用于分析动态配置请求的合理性,具体的执行操作则与动态配置管 理器无关。在此后的很多研究动态配置的方法例如x a d a p t 【1 3 1 方法和p l a n i t 【1 4 】 方法中都是用配置管理器来负责动态配置中各种动态配置行为的管理。配置器 的概念用于动态配置,最早出现于d y n a n l i c t a o 及其后继研究l e g o i b ,u i c c o r b “”】中,配置器不仅承担配置管理器的管理动态配置的功能,还提供了动 态配置的具体实现方法。 随着分布式构件技术的出现,对基于构件的分布式应用进行动态配置逐渐 成为一个活跃的领域,逐渐出现一些对现有c o r b a 、j 2 e e 等构件平台进行修 改和扩展以实现动态配置的方法,代表性的有jp a 地l e i d a 等人提出的一种为 c o i m a 规范增加动态配置服务的方法【1 6 1 ,l a t e 、被s b u 巧等人在容错c o i m a 基础上,提出的对象在线升级方法【1 7 。1 羽,c h e nx u c j u n 提出的通过引入虚拟s 劬 扩展j a 、,a 枷i 实现动态配置的方法【2 2 1 。范国闯等人提出的支持e j b 动态迁移的 w 曲f r 锄e 方法【1 9 】等。jpa 砧m e i d a 等人提出的动态配置方法,利用的截获器 机制向发送该请求的客户端对象抛出特定异常,然后在驱动目标对象进入没有 参与请求处理的动态配置安全状态后,执行动态配置操作。t e 、k s b u d r 等人提 出的在线升级方法通过版本复制提供升级服务,一旦构件发生版本替换,所有 使用该构件接口的其他构件也相应的升级。c h x u e j l l l l 提出的方法引入了虚拟 s t u b ,监控构件间的交互行为,构件间并不直接交互。范国闯等人提出的 w e b f 瑚n e 实现了e j b 的动态迁移,并保证了系统的部分一致性。 3 ) 动态配置研究方法比较 我们从对配置信息的描述,系统的一致性保证方法,动态配置算法的效率 等方面对比形式化和非形式化的研究方法,表2 1 给出了简单的对比结果。 虽然描述语言可以很好的形式化描述系统的动态配置,但是这种方法使得 系统的动态配置的逻辑结构不明显,对动态配置实施者的能力有很高的要求, 不仅要了解系统本身的业务逻辑,还要学习新的描述语言,实际应用中大部分 系统也并不真正需要形式化的精确描述,而只要求根据使用需求准确、清晰描 述所需信息。而通过图描述系统的配置虽然能够从结构上很好的描述系统结构 9 河海大学硕士学位论文 第二章动态配置机制 的变化,但是如何实现将图上定义的操作原语映射到实际的构件和物理环境还 有待于进一步的研究。 对动态配置的非形式化研究方法着眼于动态配置的通用性,采用的方法往 往是生成一个动态配置框架或者在现有的基础平台的基础上进行扩展构建一个 动态配置平台,这种方法从理论研究上来说可以从整个系统的角度考虑系统的 一致性,不局限于某一种或者几种配置行为,具有一定的通用性,但由于动态 配置影响的范围往往是平台或者框架上的整个系统,系统的正确性进和运行效 率得不到保证。 。 表2 1 动态配置研究方法比较 特征系统配置系统一致性动态配置算法效率研究成果 方法 的描述保证 形式化方法形式化描形式化验证不考虑效率形式化的配置语言和 述体系结构描述语言 非形式化方法非形式化 动态配置操 动态配置影响的范围支持动态配置的动态 描述作的合法性和动态配置操作实施 配置平台 2 4 基于构件的软件系统 2 4 1 构件和构件连接器 构件技术的发展促进了动态配置机制在实际工程中的应用,构件技术以简 化应用系统的开发为目的,将软件开发的过程由传统的复杂对象的开发、编译 和链接转化为简单原子构件的开发。基于原子构件的组装与部署,降低了开发 应用系统的难度,提高了软件的开发效率和复用性,促发了对基于构件的应用 系统进行动态配置的需求。构件技术通过支持在二进制代码及的组装重用,极 大地降低了构件之间,构件与平台之间的耦合程度,为动态配置的实施提供了 良好的支持,研究基于构件的软件系统的相关技术对研究动态配置有着重大的 意义。 构件是软件系统的组成单元,是软件功能设计和实现的承载体,文献【冽 将构件定义成封装了数据和功能,在运行时能够通过参数进行配置的模块。构 1 0 河海大学硕士学位论文第二章动态配置机制 件通常由第三方开发,具有清晰的接口、使用的场合和可靠性等性能指标的描 述。构件应具有如下属性 2 9 】:有用性、可用性、质量、适应性、可移植性和可 替代性。 软件构件模型是关于开发可重用软件构件和构件之间相互通信的一组标 准的描述。通过重用已有的软构件,让使用构件对象模型的软件开发者可以像 搭积木一样快速地构造应用程序。这样不仅可以节省时间和经费,提高工作效 率,而且可以产生更加规范、可靠、易维护的应用软件。学术界更多地关注构 件描述模型,工业界更多地关注构件实现模型。具有代表性的描述模 型:i 也b o o t 、a l o a f ;规约模型:3 c 模型、c d i ,a d l 模型( 如a c m e 、u i l i c o n 、 d a 册i n ,w r i g h t ) ;工业界关注的实现模型c o r b a 、e j b j a v ab e 趾、 c o m d c o m c o m + 。这些模型中部分描述模型例如d a 觥i n ,w r i g h t 等规约模 型支持系统的动态配置,在实现模型中,基于e j b 的应用服务器,例如j b o s s 等提出了类似于动态配置的热部署功能,在无需重新启动应用服务器的前提下, 改变应用系统的相关配置,虽然热部署可以保证在不重启服务器的情况下实现 构件的添加、删除和替换,但是这并不意味着不需要中断应用系统的服务,同 时这种热部署并不保证应用系统的一致性。 虽然构件已被认为是一个软件系统的基本块,但系统的整体特性只有在构 件互连后才显现出来【3 们,连接器负责构件间的互联。在开发构件的同时开发人 员还应该开发出相应的连接器,实现多个构件间的连接。连接器分为原子连接 器和复杂连接器,复杂连接器是拥有内部结构和复杂交互协议的连接器,反之, 称为原子连接器。任何复合构件都可以由一系列原子构件和连接器聚集而成, 这是由构件本身的特性决定的【2 8 1 。在软件体系结构的研究中,计算( 构件) 和交 互( 连接器) 被分开,连接器成为和构件同等重要的一阶实体【3 1 1 。长期以来,人 们对于连接器( 交互) 并无深刻理解。m e h t a 和m e d 啊d o v i c 等人深入分析了构件 交互的本质及构件基本构成单位【3 2 1 ,并对现有连接器进行了分类:按照在交互 中扮演的角色,连接器可以分为通信( c o m m u n i c a t i o n ) 、协调( c o o r d i n a t i o n ) 、转换 ( c o n v e r s i o n ) 、协助( f a c i l i t 撕o n ) 等类型;按照实现交互服务方式的不同,连接器 可分为过程调用、事件、数据访问、连接、流、仲裁器、分布器等类别。在连 接器提供的众多服务中,数据传递、控制传递,接口的适应等是连接器的主要 河海大学硕士学位论文 第二章动态配置机制 功能,满足了基本的功能性需求,除了这些功能性的需求外,连接器还具有一 些非功能性的需求,例如用户自定义的软件体系结构实体,实体运行时的行为 的规约等。无论是功能性的还是非功能性的需求都是连接器设计时的重要参考 标准。 作为构件与环境之间的媒介,构件连接器将构件与周围与之交互的构件分 离,减少了构件与环境之间的相互影响,具有良好适应性的连接器可以方便的调 整或者定制构件间的交互关系,同时连接器将一组相互作用的构件连接在一起, 构成相对独立的大粒度构件,连接器的适应性对大粒度构件的行为和可配置性有 巨大的影响。连接器负责描述构件问的关联关系,构件必须通过连接器才可以同 其他构件相连。以连接器为基础,通过构件组装形成应用系统,这种基于构件的 软件开发方式支持体系结构的配置,但是这种配置主要是指体系结构的静态配置 【3 3 1 ,目前以连接器为基础的方法虽然并不能完全支持体系结构的动态配置,但是 却为软件系统的动态配置提供了潜能。目前,连接器在系统实现中的转化形式包 括:转化为一个计算的实体,成为共享的数据单位或者分化融合到相关组件的实 现中变得不可见,体现为一些消息通信机制或者协议。 2 4 2 软件体系结构 2 4 2 1 软件体系结构研究现状 构件开发人员在开发构件时,除了完成该构件必须完成的功能外,还应该 考虑构件的接口特性、运行特性、与其它构件的关联特性、动态特性等与实现 构件连接相关的问题,对构件和构件间连接的研究构成了软件体系结构研究的 两个重要组成部分,使得软件体系结构与基于构件的软件开发是密切相连的。 对软件体系结构的研究提出了一种自顶向下基于构件的软件系统开发途径【3 4 1 , 并将软件系统分解为一组构件及构件间相互的关系,从而使得软件开发者可以 从全局的角度去设计与分析系统,并克服了传统的基于构件的软件开发过程中 采用自底向上方式的局限【3 5 1 。基于构件的软件系统的开发必须从一个较高的层 次来考虑组成系统的构件、构件之间的交互,以及由构件与构件交互形成的拓 扑结构。这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的 环境下进行演化【3 6 】。体系结构是对一类具有相似组织结构的系统模式的抽象, 1 2 河海大学硕士学位论文第二章动态配置机制 它定义了构件、连接器类型和一系列关于它们如何组合的限制规则【2 9 1 。其他定 义如文献【3 刀认为体系结构包括构件、构件与构件、构件与环境间的关系,以及 相关的设计与演化原则等。文献【3 8 】认为对软件体系结构的研究和实践旨在将一 个系统的体系结构显示化,以便在高抽象层次处理诸如全局组织、控制结构、 功能到计算元素的分配、计算元素间高层交互等设计问题。它是软件系统的抽 象描述,可作为系统实现的蓝图,担当从需求到实现的桥梁。体系结构在软件 开发中的重要作用已经得到了广泛的认知,使得开发者将重点由代码行转向大 粒度构件的设计和重用上,通过它可以将复杂系统进行层次化抽象,层次化的 模型便于理解、管理、跟踪和重用【3 弘删。 在本文中,如果不特别指出,将使用软件体系结构的下列定义:软件体系 结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素 的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和 构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 早期的软件体系结构的研究集中在软件生命周期的设计阶段,关注如何通 过软件体系结构解决软件系统前期的设计问题,典型的研究点在于体系结构描 述语言、体系结构风格、体系结构验证、分析和评估方法等【4 1 1 。目前体系结构 研究可以分为典型的两种派别:学院派与实用派【3 6 】,学院派使用严格的建模符 号关注体系结构模型的解析与评估,实用派将软件建模技术直接用来描述软件 体系结构,强调时间可行性,考虑实现。对软件体系结构的研究提高了软件开 发者对复杂软件系统的抽象等级,更多地关注软件系统全局性的设计与描述, 而不是底层计算实体中算法与数据结构的选择。 2 4 2 2 软件体系结构与动态配置 从本质上讲,软件的配置和软件体系结构的概念大体相同【4 2 1 。无论是构件 的删除,替换或者构件间关系的改变,都有可能使系统的逻辑拓扑结构发生变 化,对系统进行动态配置以构造出新的功能,要求系统的结构是开放的、灵活 的。动态配置的实施显然也将改变应用系统的体系结构。 研究软件体系结构的首要问题是如何对软件体系结构建模。根据建模的侧 重点的不同,可以将软件体系结构的模型分为5 种:结构模型、框架模型、动态 1 3 河海大学硕士学位论文第二章动态配置机制 模型、过程模型和功能模型【4 3 】。在这五个模型中,最常用的是结构模型和动态模 型。 结构模型是一个最直观、最普遍的建模方法这种方法以体系结构的构件、 连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包 括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体 系结构描述语言a d l 。动态模型是对结构或框架模型的补充,将软件体系结构实 现为一组源对象并在运行时实例化,研究系统的“大粒度”的行为性质。例如,描 述系统的重新配置或演化。动态可能是系统总体结构的配置也可能是指建立或拆 除通信通道或计算的过程。 应用系统的体系结构信息包含了静态体系结构信息和动态体系结构信息 两部分的内容。应用系统在运行前的设计、部署信息为静态体系结构信息,应 用系统在运行后的结构更改信息为动态体系结构信息。基于构件的软件系统的 动态配置的研究关注动态体系结构信息,即软件运行过程中结构的变化信息。 本文所研究的基于构件的软件系统的动态配置是指运行期间对系统的配置项进 行改变,也即对构件组成,构件的物理分布,构件间连接关系的改变。从软件 体系结构角度研究动态配置,典型的形式化方向有通过体系结构描述语言或者 配置语言来支持动态配置,非形式化方向例如动态配置框架,新的设计模式等 都在一定的程度上支持动态配置。 2 5 基于构件的软件系统中的动态配置机制 2 5 1 动态配置意图 系统管理者对运行时软件系统的进行改变的企图,我们将之称为动态配置 意图,动态配置意图的提出是希望在已有的软件系统的基础上实施一些改变满 足用户对系统新的需求,这种改变带来代价远远小于对系统的重新开发,而动 态配置引起的这些变化无论是可预期的还是不可预期的都是能在系统运行时实 施,不需要中断现有系统的全部服务,以达到动态配置软件系统功能的目的。 这些变化可能包括【删: ( 1 ) 结构的变化:应用系统的逻辑拓扑结构发生变化,对基于构件的软 1 4 河海大学硕士学位论文第二章动态配置机制 件系统中小粒度的,可替换的功能构件进行一定的动态配置,构造出新的功能, 要求系统的结构是开放的、灵活的。 ( 2 ) 物理分布的变化:基于构件的软件系统可能部署在分布式的环境 中,考虑负载能力、容错能力等对系统进行的再配置可能涉及到构件物理位置 的变化。 ( 3 ) 接口的变化:接口是描述服务的契约,提供了构件间的交互规范( 方 法的签名、参数等) ,要使系统满足新的需求,提供新的服务,可能需要修改接 口或者添加新的接口。 ( 4 ) 实现的变化:虽然构件的独立性使得构件的内部具体实现的变化不 会影响系统的其它部分但却是使系统功能动态配置的手段之一。 动态配置意图可能包含以上几种变化,动态配置意图本身可能与系统正常 运行的约束规则相抵触,致使系统的正确性不能维持,因此在动态配置请求提 交后,动态配置实施前,系统应当对动态配置意图的可行性和合法性进行分析 和验证。 2 5 2 配置描述 只有对当前系统配置信息有详细的了解,才能清晰的描述动态配置意图。 动态配置的实现需要一种描述方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路建设场地平整施工方案
- 对运输的人员进行定位和跟踪行业营销策略方案
- 防水材料选型施工方案
- 2024年生态农业融资居间服务协议
- 成都2024年自驾游汽车租赁协议条款
- 2024车辆教学装置订购协议
- 图书馆环境清洁方案
- 大型活动场馆土压平衡施工方案
- 核电站主蒸汽管道水压试验方案
- 节日特殊食材配送方案
- 《业财融合》纲要课件
- 人工智能伦理与社会影响的讨论
- 运动损伤的预防措施适当的热身和拉伸
- 2024年深交所期权测试专业考试库
- 公司生产总监述职报告
- 小学生消防知识竞赛题(含答案)
- 2023年乒乓球二级裁判考试题库(含答案)
- 智能控制技术未来职业生涯发展展示
- 2023年(输电专业)安全准入考试题库(附答案)
- 房车营地规划设施方案
- 胎儿四维报告
评论
0/150
提交评论