(计算机科学与技术专业论文)基于体系结构的软件动态演化研究.pdf_第1页
(计算机科学与技术专业论文)基于体系结构的软件动态演化研究.pdf_第2页
(计算机科学与技术专业论文)基于体系结构的软件动态演化研究.pdf_第3页
(计算机科学与技术专业论文)基于体系结构的软件动态演化研究.pdf_第4页
(计算机科学与技术专业论文)基于体系结构的软件动态演化研究.pdf_第5页
已阅读5页,还剩112页未读 继续免费阅读

(计算机科学与技术专业论文)基于体系结构的软件动态演化研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 变化性是软件的基本属性。特别是在i n t c m e t 成为主流软件运行环境之后, 网络的开放性和动态性使得客户需求与硬件资源更加频繁地变化,导致软件的变 化性和复杂性进一步增强。软件演化指的是软件进行变化并达到所希望形态的过 程,可分为静态演化和动态演化两种类型。由于具有持续可用性的优点,动态演 化已成为软件工程研究的热点。但动态演化比静态演化更为复杂,技术上更难以 处理。 现代软件的复杂性决定了动态演化研究应从宏观层面入手。软件体系结构从 系统全局的角度刻画当前配置状态,有利于对系统级特征属性的监控和关键约束 是否得以遵守的检查,因此成为软件进彳亍动态演化的重要依据和驱动因素。为支 持基于体系结构的动态演化,本文较系统地从动态体系结构描述语言、体系结构 求精、软件应用模型和构造框架、软件运行环境和机制等方面逐步展开研究。 基于高阶多型冗演算理论,提出了动态体系结构描述语言d a d l 。在d a d l 中,构件、连接件和体系结构风格被模型化为高阶兀演算中的抽象( a b s t r a m o n ) 类型;构件计算功能、连接件路由行为、体系结构配置活动被模型化为进程 ( p m c e s s ) ;构件和连接件的交互点则被模型化为通道( c h a 皿e 毗d a d l 可显性表 示软件的变更计划,计划行为被形式化为高阶进程,从而直接支持预设的动态演 化。 在d a d l 形式规约的框架之下,论文从结构、行为和属性三个方面深入分 析体系结构求精,给出了求精的方法和准则,以维持求精过程中信息的一致性。 特别是形式化地给出了行为求精的准则,即构件的行为求精应该满足进程观察弱 模拟关系,连接件的行为求精应该满足进程分支弱模拟关系。这为通过对体系结 构求精来支持非预设的动态演化提供了可能。 在此基础上,提出了基于体系结构空问、面向动态演化的软件应用模型 s a s m 。s a s m 使用反射技术构造,基层和元层因果相联。基层由可运行的物理 构件形成,元层r s a s 是一个具备树形层次、层间存在求精关系的体系结构空间。 r s a s 反映了需求的层次性,提供给用户不同抽象级别的视图和管理手段。通过 对r s a s 的观察,可获知系统的结构和行为信息。对r s a s 的在线调整可实现对 基层的修改进而实现系统的非预设动态演化,而r s a s 中不同层次之间的求精关 系保证了应用的完整性和演化的一致性。 设计了s a s m 支撑平台并实现了其原型系统。s a s m 支撑平台由构造工具 集、执行工具集和动态演化工具集组成。构造工具集旨在方便用户按照s a s m 浙江大学博士学位论文 模型可视化地进行应用系统的开发;执行工具集为系统提供运行和监控环境;动 态演化工具集支持基于体系结构的系统动态演化,保障演化完整进行。与带来的 优点比较,对原型系统的测试表明s a s m 模型的额外开销是可以接受的。 关键词:动态演化,软件体系结构,高阶兀演算,a d l ,求精,反射 a b s t i a c t v “a b i l i t yi s a l le s s e n t i a lc h a r a c t 甜s t i co fs o f i 啪r es y s t e m s h lo r d e rt oa d a p t 也铷n s e l v e st ot l l eo p e i l i n ge n v i r o 姗e n to fi f l t e m e ta n dt 1 1 ev a r i a b l er e q u i r e m e n t so f u s e r s ,s o f t w a r es y s t 锄ss h o u l db ea b l et oa d j u s tm e m s e l v e sd y n a m i c a l l y s o f h ,a r e e v o l m i o nr e f e r st 0m ep r o c e s sm a ts o f t w a r ec h a n g e si t s e i ft oa c h i e v ea n t i c i p a i l tf o 珊 i tc a i lb ed i v i d e di n t ot w oc a t e g o e s ,s t a t i ce v o l u t i o na i l dd y n a m i ce v o l u t i o n o 谢n g t ot h em e r i to fc o n t i n u o u su s a b i l i t y ,d y l l a m i ce v o l u t i o nh a sb e c o l n eah o t s p o ti nt 1 1 e s o f t 、a r ee 百n e e 血gr e s e a r c ha r e a s b u td y n 锄i ce v o l u t i o ni sm o r ec o m p l c xa 1 1 d m o r ed i f f i c u l tt ob e ( 1 e a i tw i mt h a nt h es 雠i co n e t h ec o m p l e x i 移o fm o d e ms o f t 、a r es y s t e mr e q u i r e sm 砒m er e s e a r c ho nd y n 锄i c e v o o ns 姒1 l db ec o 删d 矗o mam a c s c o p i cv i e w s a ( s o f h a r e 觚h i t e c t u r e ) d 印i c t ss y s t e mc o 吐g u r a t 主o ns t a t e s 舶mag l o b a lp e r s p e c t i v e ,w h i c hi sa d va i l _ t a g e o u s t om o n i t o r 恤es y s t e ml e v e l 甜d b u t e sa n dc h e c k 也ek c yc o n g 妇m t s s ac a nb e c o m ea m a j o rg i s ta i l dad r i v i n gf 如t o rf o rd y n 锄i ce v o l u t i o n i no r d e rt os 嶝nd y n a m i c e v o l m i o nb a s e do ns a ,m i sp a p e rc o n d u c t e das 嘶e so fr e s e a r c h e s ,i n c l u d i n gd y n 锄i c s ad e s 州p t i o n1 a 1 1 9 i l a g e ,a r c l l i t e c t u r cr e f i n e i n e n t ,印p l i c a t i o nm o d e la n dc o n s t n j c t i o n f h m e w o r k ,a n dm n t i m ee n v i m m e m a i l dm e c h a n i s m sf o rd y n 锄i ce v 0 1 u t i o n b a s e do nt h eh i g h - o r d e rm l l l t i - t y p e 兀c a l c u l u s 也e o r y ,t l l i sp 印e rp r o p o s e da d y n a n l i c a f c n c c t u r e d e s c r i p t i o nl a l l g u a g ed a d l 1 i l d a d l , c o m p o n e h t s , c o 仰e c t o r s ,a n da r c h i t e c t u r ea r em o d e l e da s 也e a b s t r a c d o n t y p eo fh i g h - o r d e r 兀 c a l c u l u s ;c o m p o n e n t sc o m p u t i n c o r u l e c t o r sr o u t i n ga n da r c h 主t e c t u r ec o i g u r a t i o n a r cm o d e l e da s 也e p r o c e s s ;a n dt l l ei n t e r a c t i o np o i n tb e t 、e e nc o m p o n e n t 姐d c o n n e c t o ri sm o c i e l e da sn l e c l l a 工1 n e l ,d a d lc a i lb eu s e dt oi i e s c r i b ee 、叼l u t i o n p l a l l si na 1 1e x p l i c i tw a y ,w 1 1 i l et h ee v o l u t i o np l a n sa r ef o n n a l l yr e p r e s e n t e da st h e h i 曲一o r d e r 。p r o c e s s ,a 1 1 d 也l j sd - a d lc a nd i r e c u ys u p p o r ta 1 1 t i c i p a t e dd ”锄i c e v o l u t i o n o nt 1 1 eb a s i so fd - a d lf b 加a ls p e c 访c a t i o n ,t l l i sp 印e ra i l a l y z e d 廿l ea r c h i t e c t u r e r e f i n e m e n t 疔o mt l l 】r e e a s p e c t sd e e p 王y i e ,咖酶l r e ,b e h a v j o r ,a n da t 伍b u t e ,m e n p r c s e n t e dt h em e t l l o d sa 1 1 dp r i n c i p l e so fr e f - m e m e n t ,s ot h a tt l l ea r c h i t e c t u r a l i n f o n a t i o nf 硒md i f r e r e n tl e v e l sc a nb ek e p tc o n s i s t e n t 蛐gt h er e 6 n e m e n t d m c e s s e s p e c i a l l y ,m ep r i n c i p l e so fb e h a v i o rr e f i n e m e n ta r ef o m a l l yd e f i n e d ,i e ,m e b e h a v i o rr e f i n e m e n to fc o m _ p o n e n t ss h o u l ds a t i s 母t h er e l a t i o no f 0 b s e r v a t i o nw e a k s i m u l a t i o n b e t w e e np r o c e s s e s t h eb c h a v i o rr e f i n e m e n to fc o n n e c t o r ss h o l l l ds a t i s 白 t h er e l a t i o no f b r a n c h i n gw e a ks i m u l a t i o n b e 咐e e np r o c e s s e s t h i s 醐衙d s p o s s m i l i t yf o ru n 觚t i c i p a t e dd y n 锄i ce v o l u t i o nm r a u g ha r c 扯t e c t u r er e f i n e m e m t h e n , a 1 1 a r c h i t e c t r a l s p a c e - b a s e d ,d y n 锄i ce v 0 1 m i o n o r i e n t e ds o f t w a r e 浙江大学博士学位论文 a p p l i c a t i o nm o d e ls a s m ( s o r w a r ca r c h i t e c t u r es p a c c - b a s e dm o d e l ) 、v a sp r o p o s e d s a s mi sc o n s t n l c t e db yr e f l e c d o nt e c h n o l o g y n sm e t a 1 “e lr s a si sa na r c h i t e c t u r e s p a c ew i t l ln 它e l i k el a y e r s ,b e t 、v e e nw l l i c ht l l e r ee x i s tr e f i n e m e n tr e l a t i o 璐,a j l di t s b a s e - 1 e v e l i sc o m p o s e do fp h y s i c a lc o m p o n e n t s t h em e t a - l e v e la 1 1 db a s e - l e v e la r e a s s o c i a t e di i l 廿l ef o r i no fc 叭s ea i l de f f e c t w i 吐l i nr s a s ,d i f f e r 锄tl a v e r so f a r c m t e c t u r ep r o v i d ev i e w sa n dm a n a g e m e n tm e 姐sa td i 仃b r e n ta b s t r a c t i o nl e v e l st o t h eu s e r s ,w 场c hm e e tt h ev a i a b l er e q l ,i r e m e n to fv 商o u sr 0 1 e s 劬mm a n a g e m e n t l a y e rt oo p e m t i o nl a y e r m o u 曲n l eo b s e r v a t i o no fr s a s l ei n f o n i l a t i o no f 咖c m r e 姐db e h a v i o u ro f 印p l i c a t i o ns y s t e mi sa c q u i r e d t h eo n 一1 i n ea 由u s n n e n tf o r r s a sc a nm o d i 母b a s e - 1 e v e ls oa st oe v 0 1 v ea p p l i c a t i o ns y s t e n l a t1 a s t ,a s u p p o r t i n gs y s t e mf o rs a s mw a sd e s i g n e da t l di t sp r o t o t y p ei s d e v e l o p e d t h es u p p o r t i n gs y s t e mc o n s i s t so ft 1 1 r e em o d u l e s :c o n s 仃u c t i o nt o o ls e t , e x e c u t i o nt o o ls e ta n dd y n 狮i c a le v o l u t i o nt o o ls c t c o l 咖c t i o nt o o ls e ti n c l u d e sa v i s u a l i z e di n t e 伊砷巴dt 0 0 1f o rt l l ed e v e l o p m e n to fa p p 】i c a d o ns y s t e ma c c o r d i l l gt o s a s mm o d e l je x e c m i o nt o o ls e tp r o v i d e san m t i m ee i i m n m c n tf o rt l l ee x e c u t i o n a n dm o n i t o r i n go fd y i l a m i c 印p l i c a t i o n d ”撕c a le v o l u t i o nt o o ls e ts u p p o n s 也e d y n 锄i ce v o l u t i o nb a s e do na r c l l i t e c n 】r es p a c e r e s t i n gr e s u l to fm ep 咖。帅es h o w s 也a ta d d i t i o n a lc o s to f s a s mm o d e l i sa c c e p t a b l ei nv i e wo f i t sg r e a ta d v 锄t a g e k e y w o r d s :d ”a i l l i ce v o l l n i o n ,s a ,h i g h - o r d e r 兀c a l c u l u s ,a d l ,r e f m e m e n t , r e n e c t i o n 浙江大学博士学位论文 图表目录 图3 1d a d l 基本概念2 8 图3 2 单一构件的图形描述3 2 图3 3 复合构件的图形描述3 5 图3 4 一个复合构件的常规处理描述3 7 图3 5一个复合构件的d a d l 图形描述3 7 图3 6d a d l 的行为约束图示4 1 图4 1 体系结构求精5 2 图4 2 隔离求精过程特征5 3 图4 3 观察弱模拟和分支弱模拟5 8 图4 4 资料查阅系统的高层体系结构6 0 图4 5 检索服务器作为复合构件6 3 图4 6 标签迁移图6 7 图4 7c r e s o u r c e l i k 复合连接件6 7 图5 1a r c h s t u d i o 的动态演化模型7 3 图5 2s a s m 模型框架7 9 图5 3物理构件之间的交互8 0 图5 4s a s m 应用系统的构建过程8 1 图5 5r s a s 模型的树形层次结构的变更8 4 图5 6 体系结构空间的实际变更8 5 图6 1s a s m 支撑平台的总体架构9 0 图6 2 元连接件引擎的设计9 4 图6 3 平台支持下的动态演化过程9 5 图6 4 服务器规约的标签迁移系统9 8 图6 5 构造工具的可视化建模界面9 9 图6 6 构造工具的d a d l 语言编辑界面1 0 0 图6 7 物理构件问的通信测试1 0 1 表3 1高阶兀演算归约规则2 4 表3 2 高阶7 【演算动作术语和标记符号2 6 表3 3 高阶7 【演算迁移规则2 6 表4 一i 符号及其解释对照表6 5 第一章绪论 1 1研究背景及意义 第一章绪论 “变化”是永恒的主题,只有“变化”才能发展。l e b m a n 【lj 认为,现实世界 的系统要么变得越来越没有价值,要么进行持续不断的变化以适应环境的变化。 软件是对现实世界中问题空间与解空间的具体描述,是客观事物的一种反映。现 实世界是不断变化的,因此,变化性是软件的基本属性。特别是在i n t e m e t 成为 主流软件运行环境之后,网络的开放性和动态性使得客户需求与硬件资源更加频 繁地变化,导致软件的变化性和复杂性进一步增强。 软件演化指的是软件进行变化并达到所希望形态的过程,可分为静态演化和 动态演化两种类型【2 1 。静态演化是指软件在停机状态下的演化;动态演化是指软 件在运行期间的演化。由于涉及到状态迁移等问题,后者比前者从技术上更为难 以处理。但动态演化具有持续可用性的明显优点p j 。 例如对于执行关键任务的一些软件系统,通过停止、更新和重启来实现维护 和演化将导致不可接受的延迟、代价和危险。容错系统发生错误时,需要切换到 备用冗余部分,确保服务可用。移动计算在环境改变时,需要相应调整计算构件, 适应环境变化。诸如交通控制软件、电信交换软件、i n t e m e t 服务应用以及高可 用性的公共信息系统必须以7 2 4 的方式运行,但是又经常需要演化以适应外部环 境的变化和满足客户的更多需求,于是它们只能在不停机甚至质量不降低的前提 下进行扩展和升级。即使对于一般的商业应用软件如果具有运行时修改特性,使 得用户不需要重新编译就可定制和扩充功能,将大大提高系统的自适应性和敏捷 性,从而延长生命周期,加强企业的竞争力。可见,软件的这种在运行时进行演 化也即动态演化的能力日益重要,动态演化得到学术界和工业界的大力重视,成 为软件工程研究的热点。 动态演化由一系列复杂的变化活动组成,包括动态更新、增加和删除软件系 统的组成部分,运行时重配置系统结构等。对动态演化的控制是软件开发者历来 追求的目标。多年来,人们已研究了多种动态程序语言,试图通过这样的语言开 发可动态演化的软件,但程序语言层次上的动态演化机制仅局限于函数、类方法 和对象等小粒度的替换,只支持预设的有限变更。 现代软件的复杂性决定了动态演化研究应从宏观层面入手,这样可以避免过 早地陷入琐碎的细节中。软件体系结构( s o f h v a r ea r c l l i t e 血鹏) 从全局和整体的角 度为系统提供结构、行为和属性等信息,指定了系统的组织结构和拓扑结构,并 浙江大学博士学位论文 且描述了系统需求和构成系统的元素间的对应关系,已经成为软件开发过程中的 核心制品1 4 】。近年来,许多研究者关注在软件体系结构的指导下维护和演化系统, 注意到在系统运行时刻显式地维护体系结构信息的重要性垆”。相较于其它的动 态演化方法,基于体系结构的动态演化方法从系统全局的角度刻画当前配置状 态,有利于对系统级特征属性的监控和对关键约束是否得以遵守的检查。 但软件体系结构本身的发展还只有1 0 多年的时间,把软件体系结构应用到动 态演化领域的研究工作,还只是一个开端,存在许多问题有待解决。因此,本文 从体系结构描述语言、软件应用模型、支撑平台等方面系统地研究了基于体系结 构的动态演化技术。研究形式化的动态体系结构描述语言,能够支持动态演化的 分析和仿真;研究以体系结构为中心的软件应用模型,旨在提高软件的构造性, 从而易于软件动态演化:研究体系结构驱动的软件平台,方便用户开发自适应性 和敏捷性高的软件,提供运行和监控环境,保障演化完整进行。 1 2动态演化要解决的问题 引起软件演化的原因是多方面的,如基础设施的改变、功能需求的增加、高 性能算法的发现、技术环境因素的变化等等。所以,对软件演化进行理解和控制 显得比较复杂而又困难。软件动态演化涉及到四个方面【2 】:( 1 ) w h a t ,变更什么, 变更的对象和粒度大小以及变更的结果;f 2 ) w h e n ,变更的时序属性,什么时候 变更,变更的频度和历史;( 3 ) w h e r c ,变更发生的地点以及由谁触发变更;( 4 ) h o w , 如何变更,包括变更的类型,过程和方法。其中的核心问题是第4 个方面。在软 件动态演化的过程中,应该具备一定的方法和机制来保证和维护应用的正确性, 这包含如下几层意思: ( 1 )能够预先推导变更的结果及其影响范围。在发生软件变更之前,对变更之 后软件是否适应了需求? 变更后的软件是否符合应用约束? 软件的全局性 属性如安全性、可靠性是否受到影响? 影响的结果有多大? 这些都应该有 合适的机制进行自动的预测和评估,并决定是否进行软件演化。 ( 2 ) 具有灵活的演化策略定义和处理机制。综合考虑和协调动态演化的诸多因 素,给出动态配置的完整方案。不仅能表示和处理预设的演化,也能应对 非预设的演化。 ( 3 )对于软件组成成员的替换,能够保证替换前后成员的外部行为的一致性。 因为软件系统的各部分相互协作和相互通信,软件的一个组成成员的功能 执行可能需要另外成员的配合来完成,每个成员都对和它进行协作的成 员有一个期望的交互方式和行为约束。这意味着在替换软件成员时,不仅 要使得它们的接口保持兼容,而且它们的可观察的外部行为也要保持一致 第一章绪论 性。 f 4 )具备控制变更过程的手段,以保持应用的完整性。动态演化的全过程都可 以得到监视和控制,保障演化完整进行。例如在变更过程中发生了错误, 可以采取措施进行回滚,撤消刚做的变更。 ( 5 ) 实时、较准确地对变更前后状态进行切换的机制,以维持演化期间的上下 文一致性。当软件执行到某一断点时,从系统配置上撤换下来,它保持一 定的状态信息。当该构件重新连接进入系统时需要从撤换时的断点继续开 始执行。 1 3 相关研究现状 本节针对动态演化要解决的问题,从传统的和基于体系结构的两个方面阐述 动态演化方法的研究现状。 1 3 1传统的动态演化方法 在程序语言层次上,p e t e r s o n 等人【l7 】使用一个基于高阶的类型程序语言来进 行运行时变更。这个技术要求程序员预测程序中可能发生变化的部分,并把这部 分以函数的形式组织以封装变更。开发者把变化策略和变化范围也编写在源代码 中,因此允许在运行时对程序进行细粒度的控制。但是由于变化策略没有从执行 计算的源代码中独立出来,单独地更改应用行为变得困难,在大规模系统中管理 变更成为很复杂的事情。p o l y l i t l l 【l8 是一个基于软件总线的分布式程序环境,允 许异构分布式应用系统的结构变化。在p o l y l i t h 中,结构重配置可发生在指定的 运行时刻,但局限于应用源代码层次上。d 翎耀序环境【l9 】支持事件触发的重配 置机制,缺陷是仅支持预设的动态演化。 g o r l i c k 等人表达了一个基于数据流的方法w e a v e s 。w e a v e s 是由并发执行 的工具片断( t o o l 丘a g r n e n t ) 构成的网络,工具片断之间以数据对象为中介进行通 信。一个工具片断是一个小的软件构件,它按照一个步骤顺序,执行一个单一的、 良定义的功能。工具片断消耗对象作为输入,产生对象作为输出。通过附加到“队 列”上的“端口”,它把一个对象转换成一个不同的对象。队列把不同工具片断 间的通信按照顺序缓存和同步起来,工具片断通过端口连接到队列上。每一个工 具片断作为一个独立的线程共享内存。对象在流动中所经过的端口和队列都是被 动的,只有工具片断是主动的,它从端口接收对象,调用对象所实现的方法,进 行该工具特定的计算,并把对象传递下去。这种机制使得在不扰乱对象流的前提 下可以进行运行时重配置,用户使用一个交互式的图形工具可视化地直接重配置 浙江大学博士学位论文 、c a v e 。但是,w e a v e 当前并不提供任何机制进行运行时的一致性检查,也没有显 式表达变更策略的方式。 心锄e r 和m a g e e 【3 】提出了一个结构化的分布式系统动态演化方法。在这个方 法中,一个配置由使用双向通信链接互连的处理节点构成。当系统运行期间变更 发生时,配置管理器强迫受变更直接影响的节点以及其邻接节点进入“静止”状 态。在“静止”状态,节点不能发起通信以确保变更期间受变更直接影响的节点 的运行状态不变。变更策略以一种声明式语言定义,重配置管理器负责解释和执 行变更策略。但是这种方法也不解决演化过程中行为观察一致性问题。 1 3 2基于体系结构的动态演化方法 软件体系结构概念的产生是试图在软件需求与软件设计之间架起一座桥梁, 着重解决软件系统的结构和需求向实现平坦地过渡的问题,软件体系结构已经作 为一个明确的文档和中间产品存在于软件开发过程中f 4 】。可见,软件体系结构技 术的产生源于软件开发的需求,原是一个供软件开发人员使用的设计概念和技 术。由于软件体系结构清晰地描述了构件及其相互关系和整个系统的框架,自然 地,将软件开发中的软件体系结构应用于动态演化也成为一种考虑。 软件体系结构研究的主要成果表现为体系结构描述语言f 妇l l i t e c t u r e d e s c r i p t i o nl a n g i l a g e ,简称a d l ) 。目前已提出了许多a d l ,用这些a d l 书写的 体系结构为系统的实现提供了良好的坚实的基础。软件体系结构对动态演化的支 持,首先体现在把动态配置功能集成在a d l 中,即动态a d l 的研究,如 d a n v i n 【9 | 2 1 】,r a p i d e 语言阎和d y n 锄i cw r i g l l t l 2 3 1 等。 动态a d l 的思路主要是在a d l 中专门设计用于预设演化的策略表示机制。 例如d a r w i n 语言运用兀演算给出体系结构的语义,提供延迟实例化( l a z y i n s t a 埘a t i o n ) 和直接动态实例化( d i r e c td ”a m i ci n s t a m i a t i o n ) 两种技术支持动态体 系结构建模,允许事先规划好的运行时的构件复制、删除和重新绑定;r a p i d e 基于偏序事件集( p a n i a l l yo r d e r e de v e n ts e t s ) 对构件的计算行为和交互行为进行 建模,允许在w h e r e 语句中,通过1 i n k 和l h l l i i l k 操作符重新建立结构关联:d ”a m i c w r i 咖使用标签事件( t a 鹊e de v e l i t s ) 技术,提供了运用c s p 对动态体系结构建模的 方法。这些语言的动态管理机制中,都要求体系结构运行时的变化必须事先可知。 c 2 是一种基于构件和消息的体系结构风格,为体系结构的演化提供了特别 的支持1 8 ”。c 2 的动态管理机制对体系结构运行时的变化不加限制,专门提供了 体系结构变更语言a m l ( a r c h i t e c t u r em o d i 6 c a t i o nl a l l g u a g e ) 。在a m l 中定义了一 组在运行时可插入、删除和重新关联体系结构元素的操作。如a d d c o m d o n e n t 、 w e l d 等。但c 2 没有严密的形式化基础,不能根据系统的计算行为和状态决定是 第一章绪论 否实行体系结构动态变化,以确保系统完整地演化。 软件体系结构对动态演化的支持,也体现为以体系结构为核心的应用模型和 软件框架的研究。例如,j d o w l i n g 等人设计的k c o m p o n e l l t 框架元模型通过提供 体系结构元模型和适配契约( a d a p t a t i o nc o n t r a c t s ) 来支持系统动态重配置1 1 2 】。适配 契约显式地表达适配逻辑,而不将其固化于程序语言或支撑平台之中,从而使得 适配逻辑可编程和动态地修改。k c o n l p o n e n t 元模型的缺陷是不能严格和全面地 表达体系结构的行为语义和结构语义。w a l t e rc a z z o l a 【1 3 ,2 4 】提出由拓扑元对象和 策略元对象形成体系结构反射元模型,但也仅支持预设的演化。 国内北京大学开发的p k u a s 系统1 1 4 筇】采取了基于运行时软件体系结构 ( r u n t i m es o 胁a r ea r c l l i t c c t u r e ,简称r s a ) 的软件维护与演化方法。通过r s a ,系 统的运行状态与行为以体系结构的形式展现,且操纵该体系结构视图能导致运行 系统进行相应改变,这种因果关联通过反射式软件中间件实现。他们通过扩展传 统的体系结构描述语言a b c ,a d l 描述r s a ,并使之具备继承设计阶段体系结构 所富含语义的天然能力。但由于a b c a d l 缺乏构件行为和交互的形式化描述, 没有解决构件替换时的可观察行为的一致性问题。为了让应用系统能够灵活地动 态演化以适应底层因特网计算环境和用户需求的变化,南京大学也提出了一种动 态协同架构1 1 “。该架构引入内置的r s a 对象来解耦系统中的各个构件,并通过该 对象以体系结构的视角来重解释构件之间的引用和交互。这样就把体系结构这一 抽象概念具体化为可直接操控的对象,从而可以利用面向对象程序设计语言的继 承和多态等整套机制,导出一种面向体系结构的动态演化技术。但这种内置r s a 增加了应用系统开发的复杂性,也缺乏严格的语义定义,不支持行为分析和一致 性检测。 c a r l o se c u e s t a 等人州将基于体系结构的软件动态性分为三个级别:最低级 别称为交互动态性,仅仅要求固定结构里的动态数据交流;第二级别允许结构的 修改,即构件和连接件实例的创建、增加和删除,被称之为结构动态性;第三级 别称为体系动态性,允许软件体系结构的基本构造“曲a s t r u c n 鹏) 的变动,即结构 可以被重定义,如新的构件类型的定义。以这个标准衡量,目前基于体系结构的 动态演化研究一般仅支持发生在第二个层次上的动态性。 1 4 本文工作 运行时体系结构信息是进行软件动态演化的重要依据和驱动因素。我们工作 的基本出发点就是:使得软件体系结构在可运行应用系统中以一类实体显性地表 示,并且被整个运行环境共享,作为整个系统运行的依据。也就是说,运行时刻 体系结构相关信息的改变可用来触发和驱动系统自身的动态调整。具体来说,为 浙江大学博士学位论文 全面支持体系层次上的动态性,我们从动态体系结构描述语言、体系结构自动求 精、软件模型和构造框架、软件运行环境和机制等方面逐步展开研究。 ( 1 ) 语言方面 我们的目标首先就是设计一种不仅可用于软件构造,而且支持对软件运行时 的体系结构进行表示和操作的描述语言。对r s a 的描述和对一般软件体系结构的 描述有所不同,现有的a d l 只关注软件开发阶段的软件体系结构,因而无法完整 和准确地描述r s a 。r s a 不仅包括设计时的软件体系结构信息,还包括运行时的 状态信息。因此,这样的语言,旨在提供体系结构的运行时支持,不仅能表示一 般的属性信息,还能表示运行时的属性信息,如运行线程数、缓存大小、构件状 态等;这样的语言,也应该具有高度的形式化和丰富的语义,尤其是对行为和交 互的精确刻画,使得可以被机器自动处理和执行,便于模型检查和演化。 论文提出的d a d l 是一个基于高阶多类型兀演算的动态描述语言,其具有如 下优点和特征:( 1 ) d a d l 以高阶多类型的兀演算作为行为语义基础,使得其可以 被机器自动化处理,便于模型检查、求精和演化;( 2 ) d - a d l 从结构和行为两个 视图描述r s a ,提供了对体系结构的运行时支持;( 3 ) d a d l 是一个可执行的语 言,可被运行环境解释执行,成为整个系统调度的依据,驱动用户应用运行;( 4 ) d a d l 提供了灵活有力的演化计划表示能力,可直接支持预设的动态演化;( 5 ) d a d l 充分考虑了属性和约束的表达能力,包括静态属性和动态属性的表示。 ( 2 ) 体系结构求精方面 我们的第二个研究内容是软件体系结构求精( m c h i t e c t u r er e f i n e m e n t ) 。求精 是软件开发中的基本活动,体系结构求精是软件体系结构研究的重要内容,也是 构造r s a 的重要手段。体系结构求精的本质在于,不同层次的体系结构信息应该 保持一致。因此,体系结构求精研究的重点在于寻找这样的规则,通过这样的规 则可保证在体系结构的层次当中,具体体系结构依旧保持了抽象体系结构的行 为、结构及其它方面属性。 在d - a d l 形式规约的框架之下,论文形式化地给出体系结构求精的方法和 准则。体系结构求精包含三个方面:结构求精、行为求精和属性求精。详细讨论 了三个方面的求精规则和约束,特别是给出了行为求精的准则,即构件的行为求 精应该满足进程观察弱模拟关系,连接件的行为求精应该满足进程分支弱模拟关 系。 ( 3 ) 模型方面 为提高软件的构造性,更好地支持动态演化,论文提出了基于体系结构空间、 面向动态演化的软件应用模型s a s m ( s o 脚a r ea r c h i t e c t _ cs p a c e b a s e dm o d e l , 简称s a s m ) 。s a s m 使用反射技术构造,元层由运行时体系结构空间 第一章绪论 r s a s ( r l i n t j m es o f h v a r e 如c l l i t e c t l l r es p a c e ,简称r s a s ) 组成,基层由可运行的物 理构件形成。 可运行系统中尽量多地保留设计期的建模信息可提高软件的构造性和演化 性。s a s m 的元层r s a s 并不是一个平面式的体系结构,而是一个由抽象程度不 同的多层体系结构组成、层间存在求精关系、整体里现树形形状的体系结构空间。 这是因为,用户需求具有层次性,从管理层到操作层各种角色的需求变化,抽象 程度和视图各不相同。r s a s 反映这种用户需求的层次性,保留了体系结构设计 和决策信息,从而为系统投入运行以后的演化行为提供充分的依据和支持。 基层由可运行的二进制物理构件形成,真正地执行应用领域中的单元计算。 在r s a s 的树形层次中每一个叶子构件都绑定一个物理构件,叶子构件是对应物 理构件的信息映像,物理构件是其对应叶子构件的实现承载体。物理构件彼此独 立,不相互直接引用,其交互通过运行环境对r s a s 中的连接件规约的解释执行 来完成。运行环境也通过对物理构件的创建、销毁和交互事件等生命周期活动的 管理捕捉物理构件的运行时信息,并存储和更新到r s a s 中。 因此,元层和基层因果相联,建立了一种反射关系:一方面,r s a s 是对应 用的一种自省,通过对r s a s 的观察,可获知应用的状态、结构和行为信息;另 一方面,对r s a s 的动态调整可实现对基层的修改进而实现系统的动态演化。不 同于一般通过子类型化构件来支持非预设的演化方法,s a s m 是通过对元层 r s a s 的结构和行为求精及其属性的细化来支持非预设的演化,并提供给用户不 同抽象级别的视图和管理手段。r s a s 中不同层次之间的求精关系保证了应用的 完整性和演化的一致性。 ( 4 ) 支撑平台方面 s a s m 模型为构造开放、分布和动态可演化软件提供了一个良好的基于体系 结构空间的软件框架和应用范式。但是,为方便符合s a s m 模型的应用软件的 开发、布署、演化以及提供基本的运行环境,需要设计和实现相应的支撑平台。 s a s m 支撑平台由构造工具集、执行工具集和动态演化工具集组成。构造工 具集旨在提供一系列工具,方便用户按照s a s m 模型可视化地进行应用系统的 开发。执行工具集旨在为系统提供运行和监控环境,包括物理构件的调度和执行、 构件交互事件的截取和管理、元连接件规约的解析执行等。动态演化工具集旨在 支持应用系统中基于体系结构的动态演化,包括演化分析、评价、解决从当前态 切换到目标态过程中运行状态的迁移问题,保证演化期间的上下文一致性。 1 5 论文结构 论文组织结构如下 浙江大学博士学位论文 第一章是绪论,总领全文。 第二章简要介绍软件演化和软件体系结构的基本内容,包括软件演化的概 念、分类、软件体系结构的概念、体系结构描述语言综述、软件演化和软件体系 结构之间的关系,以及基于体系结构的软件演化的研究现状和存在的问题。本章 目的是方便后续内容的阐述和展开。 第三章阐述基于高阶多型兀演算的动态体系结构描述语言d a d l 。首先简 单介绍高阶多类型冗演算,然后给出设计d a d l 的基本思想和原则,介绍了 d a d l 描述体系结构的框架,接着详细讨论d a d l 的语法表示,包括其类型系 统、行为规约方法、预设的演化行为形式化语义解释、属性以及风格表示方法, 最后以案例说明了d a d l 的应用。d a d l 具有对结构和行为演化的支持能力, 奠定了后续研究工作的基础。 第四章是体系结构求精研究。在d a d l 形式规约

温馨提示

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

评论

0/150

提交评论