动态软件体系结构研究综述倡
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2008唱11唱06;修回日期:2008唱12唱08 基金项目:国家自然科学基金资助项目(60703116);云南省应用基础研究计划资助项目(2006F0024Q)
作者简介:李琼(1982唱),女,云南人,硕士研究生,主要研究方向为软件工程与软件测试(hellolqg@163.com);姜瑛(1974唱),女,浙江余姚人,副教授,硕导,博士,主要研究方向为软件工程、软件构件与测试技术.
动态软件体系结构研究综述倡
李 琼,姜 瑛
(昆明理工大学信息工程与自动化学院,昆明650051)
摘 要:近年来,随着Internet的迅猛发展和应用形式的不断更新,传统的软件体系结构(SA)已无法完全适应需求,动态软件体系结构(dynamicsoftwarearchitecture,DSA)逐渐成为SA研究人员关注的焦点之一。
描述了DSA的研究背景及研究意义;总结了DSA的研究内容及国内外的研究现状;最后探讨了DSA研究的主要发展方
向。
关键词:软件体系结构;动态软件体系结构;动态演化;描述语言;执行工具
中图分类号:TP311 文献标志码:A 文章编号:1001唱3695(2009)06唱2352唱04doi:10.3969/j.issn.1001唱3695.2009.06.106
Overviewonresearchofdynamicsoftwarearchitecture
LIQiong,JIANGYing
(SchoolofInformationEngineering&Automation,KunmingUniversityofScience&Technology,Kunming650051,China)
Abstract:Inrecentyears,withtherapidgrowthofInternetandthecontinuousimprovementoftheapplicationstyles,tradi唱tionalSAcouldnotfullymeettherequirements.Dynamicsoftwarearchitecture(DSA)graduallybecamethefocusofattentionofSAresearchers.Atfirst,describedthebackgroundandmeaningoftheDSA,summarizedthemainresearchareasoftheDSAanditspresentresearchsituationbothathomeandabroad.FinallydiscussedsomesignificantlypromisingtendencyaboutDSAresearch.
Keywords:(softwarearchitecture)SA;DSA;dynamicevolution;descriptionlanguage;implementationtool
0 DSA研究背景及意义
SA是对软件系统整体组织结构和控制结构的刻画,包括
系统中各计算单元(构件)的功能分配、各单元之间的高层交互说明(连接件)以及SA的约束。
当前,SA研究主要集中在静态体系结构上,这种体系结构在运行时不能发生改变。
而对于一些需要长期运行且具有特殊使命的系统(如航空航天、生命维持、金融、交通等),如果系统需求或环境发生了变化,此时停止系统运行进行更新或维护将会产生高额的费用和巨大的风险,对系统的安全性也会产生很大的影响。
静态体系结构缺乏表示动态更新的机制,很难用其分析、描述这样的系统,更不能用它来指导系统进行动态演化。
因此,DSA的研究应运而生。
随着网络和许多新兴软件技术(如agent、网格计算、普适计算、移动计算、网构软件等)的发展,对SA提出了许多更高的要求,如SA的扩展性、复用性、适应性等,而传统的静态体系结构已难以满足这些要求。
Perry在2000年第十六届世界计算机大会主题中提出,SA中最为重要的三个研究方向即体系结构风格、体系结构连接件和DSA,再次说明了DSA研究的重要性。
与静态体系结构相比,研究DSA的意义主要在于能够减少系统开发的费用和风险。
由于采用DSA,一些具有特殊使命的系统能够在系统运行时根据需求对系统进行更新,并降低更新的费用和风险。
此外,DSA能增强用户自定义性和可扩展性,并可为用户提供更新系统属性的服务。
1 DSA研究内容及现状
DSA指那些在软件运行时刻会发生变化的体系结构
[1,2]。
与传统(静态)SA相比,DSA的特殊之处在于它的动态性。
SA的动态性指由于系统需求、技术、环境、分布等因素的变化而导致SA在软件运行时刻的变化
[1]
,主要通过SA的动态演化来
体现。
目前,对DSA的研究主要集中在动态演化、模拟/描述SA动态演化的语言和支持SA动态演化的执行工具等方面展开。
1畅1 动态演化
现阶段,对于DSA动态演化的研究主要围绕动态演化的需求来源、动态演化时期、动态演化类型、动态演化方法等方面。
SA的动态演化主要来自两类需求:a)软件内部执行所导
致的体系结构改变。
例如,许多服务器端软件会在客户请求到达时创建新的构件来响应用户需求。
b)是软件系统外部的请求对软件进行的重配置。
例如,操作系统在升级时无须重新启动,在运行过程中就完成对体系结构的修改。
DSA的演化一般发生在四个时期:a)设计时期,演化发生在体系结构模型和与之相关的代码编译之前;b)预执行时,演化发生在执行之前、编译之后,这时由于应用程序并未执行,修改时可以不考虑应用程序的状态,但需要考虑系统的体系结构,且系统需要具有添加和删除构件的机制;c)受约束的运行时,演化只发生在某些特定约束满足时;d)运行时,系统的体系结构在运行时不
第26卷第6期2009年6月
计算机应用研究
ApplicationResearchofComputers
Vol.26No.6Jun.2009
能满足要求时发生的改变,包括添加构件、删除构件、升级替换构件、改变体系结构的拓扑结构等。
此时的演化是最难实现的。
事实上,对DSA的演化研究应重点放在后两个时期发生的演化。
在SA动态演化类型的研究上,Cuesta等人将软件的动态性分为三个级别:a)交互动态性,仅仅要求固定结构里的动态数据交流;b)结构动态性,允许结构的修改,即构件和连接件实例的创建、增加和删除;c)体系动态性,允许SA的基本构造的变动,即结构可以被重定义,如新的构件类型的定义。
以此标准衡量,目前DSA的动态演化研究大多仅支持发生在层次a)b)上的动态性,而对层次c)上的动态性支持甚少。
一般而言,实现SA动态演化的基本原理是使DSA在可运行应用系统中以一类有状态、有行为、可操作的实体显式地表示出来,并且被整个运行环境共享,作为整个系统运行的依据。
也就是说,运行时刻体系结构相关信息的改变可用来触发、驱动系统自身的动态调整。
此外,对系统自身所作的动态调整结果可反映在体系结构这一抽象层面上。
在系统结构上,通过引入运行时体系结构对象,使得相关协同逻辑可从计算部件中分离出来,显式地、集中地得以表达,符合关注分离的原则;同时又解除了系统部件之间的直接耦合,这些都有助于系统的动态调整。
由于动态演化实现起来比静态演化复杂得多,系统必须提供SA动态演化的一些相关功能。
首先,要求系统必须提供保存系统当前的SA信息(拓扑结构、部件状态和数目等)的功能;其次,实施动态演化还需设置一个监控管理机制,对系统有无需求变化进行监视。
当发现有需求变化时,应能分析、判断可否实施演化、何时演化及演化范围,并最终分析或生成演化策略。
再者,还应保证演化操作原子性,即在动态变化过程中,如果其中之一的操作失败了,整个操作集都要被撤销,从而避免系统出现不稳定的状态。
DSA实施动态演化大体遵循以下四步:a)捕捉并分析需求变化;b)获取或生成体系结构演化策略;c)根据步骤b)得到的演化策略,选择适当的演化策略实施演化;d)演化后的评估与检测。
目前,在DSA演化研究中,对系统的完整性及演化的一致性的保证、检查的研究还不够深入。
此外,由于DSA自身的复杂性,当前对于动态演化理论的研究还不成熟,缺乏统一性,仍处于摸索阶段。
1畅2 描述语言
连接件概念诞生后,一般从构件、连接件及它们之间的配置描述软件系统的结构。
支持构件、连接件及其配置的描述语言即体系结构描述语言(architecturedescriptionlanguage,ADL)。
ADL是研究和应用SA的基础,通常用来对SA进行建模?如何在SA层次上刻画软件的运行时动态行为、如何描述动态的SA,使得动态ADL成为设计和实现DSA的基础和关键。
动态ADL可分为形式化和非形式化两类,目前的研究以形式化描述语言为主流。
形式化语言要求:能够描述构件、连接件等单独的实体,体现SA关于构件、连接件的属性,如构件的抽象特点、连接件的通用性等;能够描述构件和连接件的交互,进行构件与连接件之间的一致性检查;能够描述系统SA的运行时演化。
目前用于描述DSA的形式化语言主要集中在对现有的一些ADLs的扩展上,采用到的技术主要有以下几类:a)基于图论的方法。
该方法主要用图的顶点表示构件,边表示连接件,并引入协调机制管理体系,动态性由图的重写(graphrewriting)规则体现。
b)进程代数方法。
该方法通常用于研究并发系统,一般基于代数及微分知识———具体涉及到的知识有通信交互系统演算(calculusofcommunicatingsystems,CCS)、通信顺序进程(com唱municatingsequentialprocesses,CSP)及Pi演算。
c)基于逻辑重写(时序逻辑)的方法。
该方法是DSA描述的形式化基础。
非形式化方法主要是采用XML技术。
表1是对动态ADL及其采用的相关技术、对DSA的支持情况等的归纳与总结。
表1 动态ADL研究总结
语言
类型
方法语言提出者具体技术特点
形
式
化
非形
式化
基于
图论
进程
代数
基于
图论
和进
程代
数
其他
CHAM[3]
LeMeta唱
yerap唱
proach[4]
Dynamic
Wright[4]
Darwin[4]
Pi唱ADL[5]
D唱ADL[6]
SAAM模
型的描
述语
言[7]
JB/SADL[8]
C2SADL[9]
Rapide[10]
ABC/ADL[11]
G.Berry
和
G.Boudol
LeMeta唱
yer
Rober.J.
Allen等
Magee和
Kramer
等
Archware
李长云
等
于振华
等
张世琨
等
Richard
N.Taylor
等
Luchham
等
王晓光
等
引入转换规则
及项重写
用HR(hyper唱
edgereplace唱
ment)图文法、
图重写
使用标签事件
(taggedevents)
技术对Wright
进行扩展
一阶Pi唱演算
基于高阶Pi唱演
算
基于高阶多型
Pi演算
面向对象Petri
网OPN和Pi演
算两种互补的
形式化方法
采用伪码刻画
构件接口、构件
结构、构件实
现,采用Mealy
机(包括一组有
穷的状态集合)
刻画构件的行
为
基于偏序事件
集
通过link和un唱
link操作,事件
驱动
用XML等作为
元语言
能够描述、分析SA的动
态行为,支持SA配置演
化的研究
能用图重写来规约体系
结构动态行为的途径
支持动态的建模和分
析,用于死锁检测、模型
一致性验证等工作
对基于消息传递的分布式
系统进行描述和动态配
置,支持预设的动态演化
支持动态体系结构建模
和验证
支持系统联机演化及
SA求精
适用于基于构件的软件
系统的动态演化,支持
动态体系结构建模、分
析与验证
支持对JB/HMB(青鸟
基于层次消息总线的
SA)风格的系统进行规
范化描述,并可在工具
的支持下进行系统性质
分析、动态模拟运行、动
态演化和代码框架自动
生成
主要面向C2风格的SA
描述,支持体系结构演
化、动态配置
支持有限度的动态体系
结构行为
一种通用类型的ADL,
用于支持基于体系结
构、面向构件的软件开
发方法
如表1所示,各种描述方法各有其特点。
例如图形化描述方法能够很直观地表示出软件系统的动态结构和风格,但在具体的动态行为描述上就受到一定的限制;进程代数方法能够详细描述系统的动态行为;逻辑重写方法在对体系结构风格的描述上比较困难等。
此外,与形式化方法相比,虽然非形式化方法表达直观、易理解,但是不及形式化方法精确,也不能支持各种特性的分析与验证。
现有的多数动态ADL都是在进行某种特殊应用的研究开发中设计和发展出来的,均有各自的侧重点,虽然在某些方面存在相同点,但在适用范围上却存在一定
・3532
・
第6期李 琼,等:动态软件体系结构研究综述
的局限性。
1畅3 动态演化的执行工具
目前,国内外对SA动态演化的执行工具研究较多,从SA指导软件系统演化时采用到的技术,可将动态演化的执行工具分为如下几类:
a)基于反射原理。
一般认为,反射是一种计算系统能监控自己状态并能改变自身运行方式的一种能力。
通常,基于反射的系统其体系结构为分层系统,最底层称为基本层,它通常由与应用有关的软件对象构成;除此之外的层称为元层,多个元层构成反射塔。
元层由元对象构成,其提供的访问接口协议称为元对象协议。
一个反射系统的工作过程可以描述为:基本层对象为实现应用功能而开始运行活动,其运行活动被元层对象捕获,导致计算上下文切换到元层(这个过程称为上行活动);元对象根据其运行逻辑将元计算结果反过来作用和影响基本层的对象,上下文再次切换到基本层(这个过程称为下行活动)[12]。
基于该原理的动态演化执行工具主要有J.Dowling等人[13]设计的K唱Component框架元模型、北京大学研究的PKUAS系统[8],以及文献[14]提出的基于体系结构空间、支持动态演化的软件模型(softwarearchitecturespace唱basedmodel,SASM),文献[10]介绍的Artemis唱ARC支撑系统。
b)基于构件操作。
在基于构件的DSA中,作为软件系统的一个特定功能单位,构件主要由三部分组成,即一组信息、一组行为和一组接口。
信息保存在构件的内部,包括构件内部的状态等;行为是构件所能实现的功能;接口是构件对外的表现,包括构件对外的属性和方法的调用,通过接口而且只能通过接口才能实现构件与其他构件之间的相互作用。
此时,软件系统的演化可有两种情形:(a)整体结构的演化,这种情况通常将构成系统的各个构件按新的要求重新组装,增加或删除系统的一些构件,或者修改整个系统的拓扑结构关系;(b)整个结构的拓扑关系并不改变,仅是系统中某个构件的演化,这种情况通常是修改构件的接口、功能,也可能修改单个构件的某些功能的实现方法。
基于该技术的动态演化执行工具主要有文献[15,16]提出的一种基于构件的动态体系结构模型(componentbaseddy唱namicarchitecture,CBDA);文献[17]设计的一个面向应用的、开放的、SA驱动的分布式运行环境SADRE;文献[18]提出可通过基于C2风格的应用程序的实现类及一系列方法来完成增加/删除构件、增加/删除连接器、改变构件与连接器的连接关系的操作,最终实现系统运行期的演化。
c)基于反演工作流。
反演计算是一个程序在执行时对描述自身的数据进行操作的能力。
通常来说,一个反演计算系统在两个逻辑空间内运行。
其中:被反演的系统运行的空间叫做基空间;对它进行反演的空间叫做元空间。
通过具体化这一操作,系统从基空间转移到元空间;通过反演这一操作,系统从元空间转移到基空间。
更进一步,元空间在它自身的上面还可以有元元空间,形成元空间塔的结构。
而工作流模型则是业务过程的计算模型,即将相应的业务逻辑和业务规则在计算机中以恰当的模型进行表示并对其实施计算。
中国科学院计算技术研究所网格与服务计算研究中心在“基于反演工作流和动态体系结构的信息系统演进技术研究”项目中,研究了信息系统动态重构和持续演进的方法、技术,将反演计算引入到工作流和系统资源管理中,再用反演工作流实现SA的动态控制,并研究演进过程中的一致性问题,以保证演进的正确性。
d)基于Pi演算。
Pi演算是在CCS基础上提出的、基于命名概念的进程代数并发通信行为演算方法,它包含一套完整的理论、方法体系,包括语法定义、操作语义和重要的互模拟等价理论。
Pi演算的前缀算子、选择算子和并发合成算子,使得研究人员可以采用自顶向下或自底向上的方法对复杂的并行行为进行形式化建模;其所具有的进程演算能力,使得研究人员可直接验证形式化模型的正确性和完备性;而其完备的互模拟等价理论,又为研究人员验证模型实现的有效性提供新的思路。
Pi演算可以用来描述结构不断变化的并发系统。
文献[7]中的软件体系抽象模型(softwarearchitectureab唱stractmodel,SAAM)便是通过一系列的Pi演算进程对SA实施演化,并利用Pi演算的相关分析方法,对SA的一致性进行分析。
e)基于不动点转移的矩阵变换。
文献[19]提出:(a)在SA动态演化过程中,可以设想信息流(数据流或控制流)是通过NSA中的连接件在构件之间流动的,当这种流动到达某一构件时,继续驱动目标构件,进而辐射出去或终止,这种反复出现的过程称为NSA浸润;(b)在浸润过程中,当时刻t到达某一时刻T时,如果出现了X(T+1)=X(T),S(T+1)=S(T),则称此时刻的点为不动点(其中:X表示某时刻SA状态的邻接矩阵;S为某时刻SA的动态语义网GSA的全部状态集合)。
文献[20]基于SA的构件—连接件动态语义模型,建立了SA动态语义网GSA,凭借动态语义网中的浸润理论和不动点特征,分析了SA动态语义网的浸润过程及其收敛性,并指出SA动态演化过程可用一个不动点转移序列对应的一个矩阵(X原子过滤)序列来刻画和描述。
总体上来看,文献[19]将SA作为一个整体来观察它运行时的整体变化,这种变化其实就是不同时刻的SA稳态之间的迁移和波动。
f)利用一个外部的体系结构演化管理器。
加州大学Ir唱wine分校提出了基于SA的开发和运行环境———ArchStudio,该执行工具包含三种体系结构变更源(sourcesofarchitecturalmodification)工具:Argo、ArchShell和扩展向导(extensionwi唱zard)。
Argo提供一个体系结构的图形描述和操作手段;Arch唱Shell提供一个文本的、命令式的体系结构变更语言;扩展向导提供一个可执行的脚本更改语言用来对体系结构进行连续演化。
其所定义的系统动态演化方法是如何使在体系结构层面表达的动态调整在具体系统中得以实施的一个典型代表,动态演化模型如图1[20]所示。
表2是对目前较典型的几个DSA演化的执行工具及其对动态演化支持情况的归纳。
如表2所示,尽管各种动态演化的执行工具实现形式各异,但在原理上有相似点:(a)将SA以某种形式在软件运行时表示出来;(b)在SA与软件之间建立某种联系,以便让SA控制和指导软件系统的演化。
有的执行工
・4532
・计算机应用研究 第26
卷
具将体系结构内置于计算部件中,有的则将SA与计算部件分离,且后者居多。
目前基于反射原理和构件技术的研究相对较成熟,大多数模型对运行时体系结构的行为语义描述不够严密,在系统完整演化和演化过程的一致性、DSA的追溯性方面还有待完善。
此外,模型一般只能适用于某些特定体系结构风格或某些特定领域,通用性需要进一步加强。
有的执行工具未能完全达到CarleseCuesta等人提出的第三级别的体系动态性,且对非预设的动态演化支持不够充分。
表2 DSA演化的执行工具及其对动态演化的支持情况
实现演化的技术模型提出者
动态软件体系
结构表示
对动态演化的支持情况
反射原理
K唱Component
框架元模
型[13]
PKUAS[21]
Artemis唱ARC[10]
SASM[14]
J.Dowling
等
北京大学
余萍等
李长云等
有类型的有向
配置图
引入运行时SA
(RSA)作为全
局视图
以ACME语义
为基础设计运
行时刻可编程
的体系结构元
模型
使用SA模
型———运行时体
系结构(RSAS)
作为一个在运行
时刻有状态、有
行为、可访问的
对象
支持系统的动态调整
支持基于单个EJB容器内的构
件演化
支持从基于构件和服务的集成
应用的体系结构设计到实现、部
署、运行、演化等一系列流程及
对DSA的追溯、验证以及对框
架代码的检查
面向服务的SA动态演化
构件操作CBDA[15,16]
SADRE[17]
王海燕等
李长云等
构件
支持基于构件的软件系统进行
动态演化
反演工作流MASON模
型[22]
韩燕
波
利用反演计算原
理建立元空间
实现信息系统的动态演进并保
证演进的正确性
Pi演算
进程SAAM[7]于振
华等
三元组
支持基于构件的SA的动态演
化及体系结构的一致性分析
矩阵变换SA动态语
义网络模
型[19]
王映
辉等
SA动态语义网支持SA的动态演化
利用一
个外部体系结构演化管理器ArchStu唱
dio[20]
加州
大学
Iwine
分校
用Argo进行图
形化表示体系
结构模型
支持Java编写的C2体系结构
风格软件的动态更改,不限制变
化类型,理论上允许体系结构的
任意修改
2 DSA研究的发展方向
通过总结DSA的研究现状,当前的研究主要集中在DSA的理论研究上,实际应用较少,因而解决软件的演化问题将成为DSA应用研究领域的一个重要方向。
其次,对于与DSA研究相关概念的统一、通用性支持工具、动态演化完整性、一致性、追溯性等问题都有待进一步深入。
此外,随着DSA研究的深入,基于DSA的一些新兴软件体系结构的研究,如自适应软件体系结构、正交软件体系结构、自省动态软件体系结构、网格动态体系结构等,将会成为DSA研究的发展方向。
3 结束语
随着移动计算、普适计算和Webservices等技术的迅速发展,软件系统所面临的计算环境变得开放、多元和易变。
为适应运行时刻计算环境中网络、设备、资源等的变化和用户需求的改变,在不中断系统运行的情况下进行在线演化,一些研究者开始由传统的SA转向对DSA的研究。
DSA具有动态性,支持动态演化,能很好地解决软件的动态性问题。
目前,DSA的研究主要集中在动态演化及其支持语言/执行工具的研究上。
但是,由于DSA自身的复杂性,当前仍缺乏通用的结构模型、有效的形式化描述机制和分析工具,相关研究需进一步深入。
鉴于DSA的动态性及软件发展的现状,一些基于DSA的新兴
SA研究已开始崭露头角,并有可能成为DSA研究的重要方向和热点。
参考文献:
[1]张友生.软件体系结构[M].2版.北京:清华大学出版社,2006:49唱169.
[2]张海波,王小非,曹万华,等.新型软件体系结构研究[J].计算机与数据工程,2005,35(1):50唱54.
[3]INBERARDIP,WOLFAL.Formalspecificationandanalysisofsoft唱warearchitecturesusingthechemicalabstractmachinemodel[J].IEEETransonSoftwareEngineering,1995,21(4):373唱386.[4]BRADBURYJS,CORDYJR,DINGELJ,etal.Asurveyofself唱managementindynamicsoftwarearchitecturespecifications[C]//Procofthe1stACMSIGSOFTWorkshoponSelf唱ManagedSystems.NewYork:ACMPress,2004:28唱33.
[5]OQUENDOF.Pi唱ADL:anarchitecturedescriptionlanguagebasedonthehigher唱ordertypedPi唱calculusforspecifyingdynamicandmobile
softwarearchitectures[J].ACMSoftwareEngineeringNotes,2004,29(4):1唱13.
[6]李长云,李赣生,何频捷.一种形式化的动态体系结构描述语言[J].软件学报,2006,17(6):1349唱1359.
[7]于振华,蔡远利,徐海平.动态软件体系结构建模方法研究[J].西安交通大学学报,2007,41(2):167唱171.
[8]张世琨,王立福,常欣,等.基于层次消息总线的软件体系结构描述语言[J].电子学报,2001(5):581唱584.
[9]TAYLORRN,MEDVIDOVIC,ANDERSONKM,etal.Acompo唱nent唱andmessage唱basedarchitecturalstyleforGUIsoftware[J].IEEETransonSoftwareEngineering,1996,22(6):390唱406.[10]余萍,马晓星,吕建,等.一种面向动态软件体系结构的在线演化方法[J].软件学报,2006,17(6):1360唱1371.
[11]王晓光,冯耀东,梅宏.ABC/ADL:一种基于XML的软件体系结构描述语言[J].计算机研究与发展,2004,41(9):1522唱1531.[12]黄晓冬,李伯虎,柴旭东.基于反射的分布交互仿真软件框架[J].北京航空航天大学学报,2007,33(8):995唱999.
[13]DOWLINGJ,CAHILLV,CLARKES.Dynamicsoftwareevolutionandthek唱componentmodel[C]//NORTHROPL,VLISSDESJ.Procof
WorkshoponSoftwareEvolution,ConfereceonObject唱OrientedPro唱grammingSystems,Languages,andApplications.NewYork:ACM
Press,2001.
[14]李长云,李莹,吴健,等.一个面向服务的支持动态演化的软件模型[J].计算机学报,2006,29(7):1021唱1028.
[15]王海燕.一种基于构件的可动态更新的体系结构模型[J].农业网络信息,2006(3):9唱11.
[16]马晓星.Internet软件协同技术研究[D].南京:南京大学,2003.[17]李长云,邬惠峰,李赣生,等.软件体系结构驱动的运行环境[J].小型微型计算机系统,2005,26(8):1358唱1363.
[18]薛云皎,余枝强,钱乐秋,等.C2风格软件构架的演化研究[J].计算机工程与应用,2002,38(11):83唱86.
[19]王映辉,王立福.软件体系结构演化模型[J].电子学报,2005(8):1381唱1386.
[20]OREIZYP,MEDVIDOVICN,TAYLORRN.Architecture唱basedruntimesoftwareevolution[C]//ProcofICSE’20.WashingtonDC:
IEEEPress,1998:177唱186.
[21]黄罡,梅宏,杨芙清.基于反射式软件中间件的运行时软件体系结构[J].中国科学E:辑技术科学,2004,34(2):121唱138.
[22][EB/OL].http://vega.ict.ac.cn/reflect_workflow.isp?id=dir13.
・5532
・
第6期李 琼,等:动态软件体系结构研究综述 。