动态软件体系结构总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
构件 构件配置 构件描述 执行 构件接口 执行
9
软件体系结构的动态模型

应用层:包括构件连接、构件接口,其中构件连接定义了 连接件如何与构件相连接;构件接口说明了构件提供的功 能服务,如消息、操作等,在这一层可以添加新的构件、 删除或更新已经存在的构件
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
构件 构件配置 构件描述 执行 构件接口 执行
12
软件体系结构的动态模型

执行部分:各层均有独立的执行部分,主要是对相应层的 操作进行具体执行,在更新时,必要情况下将会临时孤立 所涉及的构件,所以在更新前需要确保:所涉及的构件停 止发送新的请求;连接件请求队列中的请求已被全部执行
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
构件 构件配置 构件描述 执行 构件接口 执行
13
更新执行的步骤

检查更新的范围:判断是局部更新还是全局更新,局部更 新作用于需更新构件的内部而不影响系统的其他部分;全 局更新影响系统的其他部分,故需要发送请求到体系结构 中更高的抽象层 更新准备工作:如果更新发生在应用层,构件配置器等待 参与的进程发出信号,以表明其已处于可安全执行更新的 状态;如果更新发生在配置层,就需要等待连接件中断通 信,其他构件配置器已完成他们的更新
第四章 动态软件体系结构

4.1 动态软件体系结构概述 4.2 软件体系结构的动态模型
wenku.baidu.com
1
动态软件体系结构概述

当前,软件体系结构研究主要集中在静态体系结构上, 这种体系结构在运行时不能发生改变 如果系统需求或环境发生变化,停止系统运行来进行体 系结构的更新或维护,将会引起高额的费用和巨大的风 险,对系统的安全性也会产生严重的影响 因此,有关学者开始研究动态软件体系结构,即软件系 统由于特殊需求必须在连续运行的情况下,对软件体系 结构进行适应性调整 由于系统需求、技术、环境、分布等因素的变化而导致 软件体系结构的变动,称之为软件体系结构演化



执行更新:执行更新过程,并告知发起者更新结果
存储更新:将构件或体系结构所做的更新存储到构架或体 系结构描述中
14
局部更新示例

构件A 与 构件C 通过 连接件B 连接 构件A执行局部更新
构件A 构件配置 接口
3. 执行 更新
构件C 未受到影响
1.请求 更新 5.成功 更 新 返回 发起者
5
体系结构的动态变化可分为(3/3)

风格
◦ 通常,演化前后软件的体系结构风格应该保持不变,
如非要发生改变也只能是“受限”的演化,即只允许 体系结构风格演化为其“衍生”风格。风格“衍生”
关系类似于面向对象中的继承关系,比如将原有的两
层C/S 结构调整为3层或多层的B/S 结构,将“1 对1”的请求/响应结构改为“1对N”的结构,以实现
◦ 3) 系统行为的一致性,如管道-过滤器风格中增加一个过滤器,
则需要保证该过滤器的输入和输出与相连的管道要求一致 ◦ 4) 体系结构风格的一致性,演化前后体系结构或保持风格不变,
或演化为当前风格的“衍生”风格
8
软件体系结构的动态模型

基于构件的动态系统结构模型(CBDSAM)支 持运行系统的动态更新,该模型分为三层
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
构件 构件配置 构件描述 执行 构件接口 执行
11
软件体系结构的动态模型

体系结构层:控制和管理整个体系结构,包括体系结构配 置和体系结构描述,其中体系结构配置控制整个分布式系 统的执行,并管理配置层;体系结构描述主要描述体系结 构层的行为,及构件及连接件的数据关联,在这一层可以 更改和扩展更新机制,更改系统的拓扑结构
4
体系结构的动态变化可分为(2/3)

属性
◦ 已有的软件体系结构描述大都支持对非功能属性
(non functional properties)的规约和分析, 比如对服务响应时间和吞吐量的要求等,在系统运行
的过程中这些要求可能发生改变,而这些变化又会进
一步触发软件系统结构或行为的调整,属性的变化是 驱动系统演化的主要原因
3

体系结构的动态变化可分为(1/3)

结构
◦ 软件系统为适应当前的计算环境往往需要调整自身的
结构,比如增加或删除构件、连接子,这将导致SA 的拓扑结构发生显式的变化

行为
◦ 由于用户需求的变化或者系统自身QoS调节的需要,
软件系统在运行过程中会改变其行为,比如由于安全
级别的提高更换加密算法;将http协议改为https协 议,行为的变化往往是由构件或连接子的替换和重配 置引起的
2.准备 4.重新 连接
连接件B
构件C 构件配置
连接配置 接口 构件连接 执行
15
执行
全局更新示例

C/S 风格的软件系统,更新一个Server构件
Server构件 配置器 体系结构 配置器 Client 配置器 连接件 Server构件 执行
请求更新 提交更新请求 判 断 通知有更新请求 通知有更新请求 返回准备 就绪信息 返回准备 就绪信息 通知一切就绪 准备执行更新 通知更新执行完毕并返回结果 通知更新 结束 通知更新结束 返回相应信息 通知更新结束 通知更新结束 返回准备 就绪信息 执行 更新
负载平衡等
6
完整性和一致性是动态变化的必要条件

运行时刻上述SA所可能发生的变化,需要保证该变化不
会破坏系统体系结构的完整性和一致性

完整性意味着系统的演化不能破坏软件体系结构描述中的 约束,比如限制与某构件相连的构件数目为1,若在演化 过程中删除了与它相连的原有构件,或者为它增加了一个 新的相连构件,都会导致系统出错

完整性还意味着演化前后系统的状态不会丢失,否则系统
将变得不“安全”,甚至不能正确运行
7
一致性和完整性是动态变化的必要条件

一致性有4层含义:
◦ 1) 体系结构描述与系统实现的一致性,运行时刻的修改应及时地 反映到描述中,以保证描述不会过时 ◦ 2) 系统内部状态的一致性,正在修改的部分不应被其他模块更改
2



体系结构动态变化的原因

软件内部执行所导致的体系结构改变:例如很多服务器端 软件会在客户请求到达时创建新的构件来响应用户的需求 ,某个自适应的软件系统可能根据不同的配置状况采用不 同的连接子来传送数据 软件系统外部的请求对软件进行的重配置:例如有很多高 安全性的软件系统,这些系统在升级或进行其他修改时不 能停机。因为修改是在运行时刻进行的,体系结构也就动 态地发生了变化。在高安全性系统之外也有很多软件需要 进行动态修改,比如很多操作系统期望能够在升级时无须 重新启动系统,在运行过程中就完成对体系结构的修改
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
构件 构件配置 构件描述 执行 构件接口 执行
10
软件体系结构的动态模型

中间层:包括连接件配置、构件配置和构件描述,其中连 接件配置管理连接件及接口的通信配置;构件配置管理构 件的所有行为;构件描述对构件的内部结构、行为、功能 和版本等信息加以描述,在这一层可以添加版本控制机制 和不同的构件装载方法
系统运行 未受到影响
16
相关文档
最新文档