五、动态软件体系结构

一、动态软件体系结构概述

软件体系结构动态性:

软件体系结构(Software Architecture,简称: SA)是对软件系统整体组织结构和控制结构的刻画,包括系统中各计算单元(构件)的功能分配、各单元之间的高层交互说明(连接件)以及SA的约束。当前,SA研究主要集中在静态体系结构上,这种体系结构在运行时不能发生改变。而对于一些需要长期运行且具有特殊使命的系统(如航空航天、生命维持、金融、交通等),如果系统需求或环境发生了变化,此时停止系统运行进行更新或维护,将会产生高额的费用和巨大的风险,对系统的安全性也会产生很大的影响。静态体系结构缺乏表示动态更新的机制,很难用其分析、描述这样的系统,更不能用它来指导系统进行动态演化。因此,动态软件体系结构(Dynamic Software Architecture, 简称: DSA)的研究应运而生。允许在系统运行时发生更新的软件体系结构称为动态软件体系结构,动态体系结构在系统创建后可以动态更新。其动态性主要分为三类:交互式,动态性,结构化动态性和体系结构动态性。

软件体系结构动态性分三类:

  1. 交互式动态性

  2. 结构化动态性

  3. 体系结构动态性

动态体系结构的研究分两个方面:

  1. 模拟和描述体系结构动态更新
  • ADL提供了一种形式化机制来描述软件体系结构,主要通过提供语法和语义描述来模拟构件、连接件和配置。
  • 近年的研究主要集中在对现有的一些ADL扩 展以支持体系结构的动态性。
  • 现已研究出一-些支持动态体系结构的ADL.
  1. 体系结构动态更新的执行

目前支持动态体系结构机制的主要有Ar chStudio工具集和软件体系结构助理( Software Arch itectureAss istant, SAA)

  • ArchStudio.具集由加州大学Irwine分校提出,支持交互式图形化描述和C2风格描述的体系结构的动态修改。
  • SAA由伦敦皇家学院提出,也是一种交互式图形工具,可以用来描述、分析和建立动态体系结构。

下图为ArchStud io概念模型,运行系统的改变通过一系列工具反映到体系结构模型上,例如脚本语言的改变和交互式的图形设计环境。体系结构的改变包括增加删除或更新构件、连接件,以及系统拓扑结构发生改变。
五、动态软件体系结构

二、软件体系结构动态模型

基于构件的动态系统结构模型:
五、动态软件体系结构
模型简介:
五、动态软件体系结构
五、动态软件体系结构
五、动态软件体系结构

三、动态体系结构的描述

动态体系结构描述语言:
1.Dynamic Wright

  • Wright的一个扩展,试图模拟、标记和解决软件系统的动态性
  • 增加描述描述体系结构动态变化的新符号,配置Configuror©: .
    何时应该重新配置?
    什么原因需要重新配置?
    重新配置如何进行?

静态描述:
五、动态软件体系结构
动态描述:
五、动态软件体系结构
2. Darwin

  • 一个用于描述系统配置规划的ADL,把.一个程序看成是由不同级别的构件进行相应配置的结果;
  • 可对一个构件所需要的和所提供的服务进行指定;
    五、动态软件体系结构
  • 每一个服务需要局部指定,每y一个构件可进行独立测试。

动态软件体系结构的形式化描述:

  1. 图形化方法
    五、动态软件体系结构

  2. 进程代数方法
    五、动态软件体系结构

  3. 逻辑化描述方法
    五、动态软件体系结构

四、动态体系结构特征

1、可构造性动态特征

可构造性动态特征迪常可以迪过结合动态描述语言、动态修改语言和一个动态更新系统来实
现。(近年来,已经开发出了很多动态体系结构描述语言,如Darwin、 Dynamic ACMED、Dynamic Wright、Rapide等 )

动态描述语言用于描述应用系统软件体系结构的初始配置:当体系结构发生改变的时候,这种改变可以通过动态修改语言进行描述,该语言支持增加或删除、**或取消体系结构元素和系统遗留元素:而动态更新可以通过体系结构框架或者中间件实现。

五、动态软件体系结构

2、适应性动态特征

某些应用程序必须有立即反映当前事件的能力,此时程序不能进行等待,必须把初始化、选择和执行整合到体系结构框架或中间件里面。

适应性动态特征是基于一系列预定义配置而且所有事件在开发期间已经进行了评估。执行期间,动态改变是通过一-些预定义的事件集触发,体系结构选择-一个可选的配置来执行系统的重配置。

五、动态软件体系结构

3、智能性动态特征

智能性动态特征是用一个有限的预配置集来移除约束。
五、动态软件体系结构
对比适应性体系结构特征,智能性体系结构特征改善了选择转变的功能,适应性特征是从一系列固定的配置中选择一个适应性体系结构的配置,而智能性特征是包括了动态构造候选配置的功能。但是由于智能特征的复杂性,在实际的软件体系结构中并不是太多的系统能够用到这种方法。