软件体系结构动态性:
软件体系结构(Software Architecture,简称: SA)是对软件系统整体组织结构和控制结构的刻画,包括系统中各计算单元(构件)的功能分配、各单元之间的高层交互说明(连接件)以及SA的约束。当前,SA研究主要集中在静态体系结构上,这种体系结构在运行时不能发生改变。而对于一些需要长期运行且具有特殊使命的系统(如航空航天、生命维持、金融、交通等),如果系统需求或环境发生了变化,此时停止系统运行进行更新或维护,将会产生高额的费用和巨大的风险,对系统的安全性也会产生很大的影响。静态体系结构缺乏表示动态更新的机制,很难用其分析、描述这样的系统,更不能用它来指导系统进行动态演化。因此,动态软件体系结构(Dynamic Software Architecture, 简称: DSA)的研究应运而生。允许在系统运行时发生更新的软件体系结构称为动态软件体系结构,动态体系结构在系统创建后可以动态更新。其动态性主要分为三类:交互式,动态性,结构化动态性和体系结构动态性。
软件体系结构动态性分三类:
动态体系结构的研究分两个方面:
目前支持动态体系结构机制的主要有Ar chStudio工具集和软件体系结构助理( Software Arch itectureAss istant, SAA)
下图为ArchStud io概念模型,运行系统的改变通过一系列工具反映到体系结构模型上,例如脚本语言的改变和交互式的图形设计环境。体系结构的改变包括增加删除或更新构件、连接件,以及系统拓扑结构发生改变。
基于构件的动态系统结构模型:
动态体系结构描述语言:
1.Dynamic Wright
静态描述:
动态软件体系结构的形式化描述:
图形化方法
进程代数方法
逻辑化描述方法
1、可构造性动态特征
可构造性动态特征迪常可以迪过结合动态描述语言、动态修改语言和一个动态更新系统来实
现。(近年来,已经开发出了很多动态体系结构描述语言,如Darwin、 Dynamic ACMED、Dynamic Wright、Rapide等 )
动态描述语言用于描述应用系统软件体系结构的初始配置:当体系结构发生改变的时候,这种改变可以通过动态修改语言进行描述,该语言支持增加或删除、激活或取消体系结构元素和系统遗留元素:而动态更新可以通过体系结构框架或者中间件实现。
2、适应性动态特征
某些应用程序必须有立即反映当前事件的能力,此时程序不能进行等待,必须把初始化、选择和执行整合到体系结构框架或中间件里面。
适应性动态特征是基于一系列预定义配置而且所有事件在开发期间已经进行了评估。执行期间,动态改变是通过一-些预定义的事件集触发,体系结构选择-一个可选的配置来执行系统的重配置。
3、智能性动态特征
智能性动态特征是用一个有限的预配置集来移除约束。
对比适应性体系结构特征,智能性体系结构特征改善了选择转变的功能,适应性特征是从一系列固定的配置中选择一个适应性体系结构的配置,而智能性特征是包括了动态构造候选配置的功能。但是由于智能特征的复杂性,在实际的软件体系结构中并不是太多的系统能够用到这种方法。