Chap05.2_动态软件体系结构_动态模型(精)

合集下载

动态软件体系结构描述方法

动态软件体系结构描述方法

学号 1206年级 2012级动态软件体系结构描述D-ADL方法理解与研究专业班级计算机(2)班姓名联系方式 15任课教师周2015年5月中国南京摘要D-ADL是一种刻画软件的动态行为的描述方法,该方法是由我国学者李长云提出的。

在D—ADL中,组件、连接件和体系结构风格定义为抽象类型,系统行为被模型化为进程,构件和连接件的交互点则被模型化为通道,它将动态行为从计算行为中分离出来,其结果能够被预先推导。

关键词:动态软件体系结构;D-ADL根据软件体系结构在运行时的演化方式,可以分为静态软件体系结构和动态软件体系结构。

软件体系结构的动态演化包括组件或连接件的创建或删除、组件的更新、调整负载平衡等几种情况。

D-ADL便是一种为动态体系结构建模提供支持的方法。

D-ADL遵循Wright等给出的SA描述框架,并且D-ADL将高阶多型π演算作为行为语义基础,凭借高阶π演算描述动态系统的特征,D-ADL允许构件、连接件和配置产生变更,并使得对SA的自动化分析成为可能。

D-ADL将类型与实例区分开来,构件类型是实现构件重用的手段。

构件具有三个基本组成部分:接口部分、行为部分和属性部分。

构件分有原子构件和复合构件两种。

原子构件是指不具备内部结构的构件。

为了进一步促进原子构件的重用,构件可以参数化,通过输入不同的参数,来提高构件的灵活性。

复合构件是由多个构件实例和连接件实例组装而成的,它在规约层次上表达了成员之间的组合。

与原子构件类似,复合构件也可进行参数化,从而提高构件的可重用性。

连接件是一种特殊的构件,同样地,连接件也分为原子连接件和复合连接件两类。

原子连接件语法规约类似于原子构件,仅仅是计算行为描述换成了路由行为。

通过结构化组合,多个连接件和构件也能形成复合连接件。

在D-ADL中,动态行为规约是通过choreographer来处理的.动态行为本质上是对体系结构的动态重配置,涉及到如下的体系结构变动:(1)动态创建新的构件实例和连接件实例以及新的端口和通道;(2)动态删除构件实例和连接件实例以及端口和通道;(3)体系结构元素之间连接的改变。

第5章 动态软件体系结构

第5章 动态软件体系结构

◇ 基于构件的动态系统结构模型
◎ 更新执行步骤
◇ 检测更新的范围 ◇ 更新准备工作 ◇ 执行更新 ◇ 存储更新
第5章 动态软件动态系统结构模型
◎ 实例分析
◇ 局部更新
第5章 动态软件体系结构
5.2 软件体系结构动态模型
◇ 基于构件的动态系统结构模型
第5章 动态软件体系结构
第5章 动态软件体系结构 ◇ 软件体系结构动态性
◎ 交互式动态性 ◎ 结构化动态性
5.1 动态软件体系结构概述
◎ 体系结构动态性
第5章 动态软件体系结构 ◇ 动态体系结构的研究
5.1 动态软件体系结构概述
◎ 模拟和描述体系结构动态更新 ◎ 体系结构动态更新的执行
第5章 动态软件体系结构
◎ 实例分析
◇ 全局更新
第5章 动态软件体系结构 πADL动态体系结构 ◇ πADL动态体系结构
5.2 软件体系结构动态模型
选读
第5章 动态软件体系结构 ◇ 动态体系结构描述语言
◎ Dynamic Wright
5.2 动态体系结构的描述
静态描述
动态描述
第5章 动态软件体系结构 ◇ 动态体系结构描述语言
◎ Darwin
5.3 动态体系结构的描述
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 图形化方法
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 进程代数方法
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 逻辑化描述方法
第5章 动态软件体系结构 ◇ 可构造性动态特征

5章 动态软件体系结构(张有生)

5章 动态软件体系结构(张有生)

17
第5章 动态软件体系结构 ◇ 基于构件的动态系统结构模型
◎ 实例分析
5.2 软件体系结构动态模型
局部更新:只作用于需要更新的构件内部,不 影响系统的其他部分
1.请求 更新 5.成功 更 新 返回 发起者 构件A 构件配置 接口
3. 执行 更新
2.准备 4.重新 连接
连接件B
构件C 构件配置
连接配置 接口 构件连接 执行
结构化动态性
eg.允许在复合构件的固定连接中改变数据 eg.允许对系统添加或删除构建或连接件 eg.允许构件的整个配置改变

体系结构动态性
第5章 动态软件体系结构 ◇ 动态体系结构的研究
5.1 动态软件体系结构概述
◎ 模拟和描述体系结构动态更新的语言 ◎ 支持体系结构动态更新的执行工具
Change scripts Changes applies to Model Architecture Model Design environment Changes implicitly affect implementation Implementation
第5章 动态软件体系结构 ◇ 动态更新的执行
5.1 动态软件体系结构概述
◎ 目前,支持动态体系结构机制的主要有ArchStudio
工具集和软件体系结构助理(SAA)。
· ArchStudio工具集由加州大学提出,支持交互式图形化描 述和C2风格描述的体系结构的动态修改。 〃 SAA是由伦敦皇家学院提出的,可以用来描述、分析和建 立动态体系结构。
第5章 动态软件体系结构 ◇ πADL动态体系结构
◎ ∏ADL体系结构描述框架定义
围绕体系结构抽象级别的实体,如构件、连 接件、系统配置、体系结构风格等进行体系 结构建模。 书中利用扩充的BNF范式给出∏ADL描述体 系结构的框架。

Chap05.3_动态软件体系结构_动态体系结构的描述汇总

Chap05.3_动态软件体系结构_动态体系结构的描述汇总
wangzhiming@
6
2018/9/14
§5.3.2 动态体系结构的形式化描述 (续)
Architectural Structure Architectural Style Le Metayer approach Hirsch et al approach Taentzer et al approach Context-free graph grammar Context-free graph grammar System Architecture Graph(formally defined as a multiset) hypergraph Architectural Element Behavior components nodes of a graph and a csp like behavior specification edges of a graph with CCS labels local graph of each network graph node and local transformations between local graphs molecule connectors edges of a graph nodes of a graph[pointpoint communication and broadcast communication] edges of a graph links between two component molecules Architectural Reconfiguration graph rewriting rules with side conditions to refer to the status of public variables graph rewriting rules

软件体系结构-完整张友生

软件体系结构-完整张友生

精品课件
第1章 软件体系结构概论 ◇ 构件重用
1.2 构件与软件重用
◎ 检索与提取构件 ◎ 理解与评价构件 ◎ 修改构件 ◎ 构件组装
精品课件
第1章 软件体系结构概论 ◇ 构件重用
1.2 构件与软件重用
◎ 检索与提取构件
◇ 基于关键字的检索 ◇ 刻面检索法 ◇ 超文本检索法 ◇ 其他检索方法
精品课件
精品课件
第1章 软件体系结构概论 ◇ 软件危机的表现
1.1 从软件危机谈起
◎ 软件质量差
软件项目即使能按预定日期完成,结果却不尽人意。 1965年至1970年,美国范登堡基地发射火箭多次失败,绝 大部分故障是由应用程序错误造成的。
在“软件作坊”里,由于缺乏工程化思想的指导,程 序员几乎总是习惯性地以自己的想法去代替用户对软件的 需求,软件设计带有随意性,很多功能只是程序员的“一 厢情愿”而已,这是造成软件不能令人满意的重要因素。
软件项目开发人员不能有效地、独立自主地处理大型 软件的全部关系和各个分支,因此容易产生疏漏和错误。
精品课件
第1章 软件体系结构概论 ◇ 软件危机的原因
1.1 从软件危机谈起
◎ 软件复杂度越来越高
软件不仅仅是在规模上快速地发展扩大,而且其复杂 性也急剧地增加。软件产品的特殊性和人类智力的局限性, 导致人们无力处理“复杂问题”。
在技术上,应该采用基于重用的软件生产技术; 在管理上,应该采用多维的工程管理模式。
精品课件
第1章 软件体系结构概论 ◇ 构件模型及实现
1.2 构件与软件重用
◎ 构件的定义
构件是指语义完整、语法正确和有可重用价值的单 位软件,是软件重用过程中可以明确辨识的系统;结构 上,它是语义描述、通讯接口和实现代码的复合体。

软件体系结构_第二章软件体系结构的风格与模式

软件体系结构_第二章软件体系结构的风格与模式

软件体系结构_第二章软件体系结构的风格与模式软件体系结构是指软件系统在运行时所表现出来的组成部分之间的关系。

在软件设计和开发过程中,选择适合的体系结构风格与模式对于实现系统的可扩展性、可维护性和可靠性等方面的要求非常重要。

本章将介绍一些常见的软件体系结构风格与模式。

1. 分层体系结构(Layered architecture)分层体系结构是一种自顶向下的体系结构风格,它将软件系统划分为多个分层,每个分层只与其相邻的分层进行通信,并且每个分层都具有一定的功能和责任。

分层体系结构能够有效地提高系统的模块化程度,降低系统的复杂性。

2. 客户/服务器体系结构(Client/Server architecture)客户/服务器体系结构是基于分布式计算的一种体系结构风格,其中客户端和服务器端是相对的角色。

客户端负责用户界面和用户交互,而服务器端负责数据存储和业务逻辑。

客户/服务器体系结构能够提高系统的可扩展性和性能。

3. 事件驱动体系结构(Event-Driven architecture)事件驱动体系结构是一种基于事件和消息的体系结构风格,其中组件之间通过事件和消息进行通信和协作。

事件驱动体系结构能够实现松耦合,提高系统的灵活性和可扩展性。

4. MVC模式(Model-View-Controller pattern)MVC模式是一种软件设计模式,用于将用户界面、数据处理和业务逻辑相分离,使每个部分可以独立变化。

模型(Model)表示应用程序的数据和业务逻辑,视图(View)表示用户界面,控制器(Controller)负责接收和处理用户的输入。

MVC模式能够提高系统的可维护性和可重用性。

5. 微服务架构(Microservices architecture)微服务架构是一种将系统划分为多个小型、自治的服务的体系结构风格。

每个服务都可以独立地开发、部署和扩展,并且通过轻量级的协议进行通信。

微服务架构能够提高系统的灵活性和可扩展性。

软件体系结构知识点

软件体系结构知识点

构件:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。

构件管理:1构件描述2构件分类与构件库组织:关键字分类法刻面分类法(青鸟)超文本组织方法(基本单位是结点)3人员及权限管理构件重用步骤:检索与提取构件(检索方法同上3种加其他)理解与评价构件修改构件(实参)构件组装(功能数据面向对象)软件体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。

软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。

软件体系结构的意义:体系结构是风险承担者进行交流的手段体系结构是早期设计决策的体现软件体系结构是可传递和可重用的模型软件体系结构建模的种类:结构模型框架模型动态模型过程模型功能模型4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。

逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。

开发视图也称模块视图,主要侧重于软件模块的组织和管理。

进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。

物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。

场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。

体系结构风格反映了领域中众多系统所共有的结构和语义特性经典的体系结构风格数据流风格:批处理序列;管道/过滤器。

调用/返回风格:主程序/子程序;面向对象风格;层次结构。

独立构件风格:进程通讯;事件系统。

虚拟机风格:解释器;基于规则的系统。

仓库风格:数据库系统;超文本系统;黑板系统。

软件工程软件体系结构

软件工程软件体系结构

通用语言运行规范(CLS)
Web服务 数据和XML 用户接口
基本类库
通用语言运行时刻环境(CLR)
某制造企业的架构
用户界面 子 系 统
销 售 公 司
生 产 计 划 部 生 产 设 备 处
采 购
财 务 处
人 事 处
劳 资 处
专 卖 处
科 技 处
仓 库
办 公 室
市 场 部

DDL 专用 构件库
查 询 统 计 采 购 管 理 计 帐 分 析 对 比 报 表 财 务 管 理 计 划 销 售 管 理 … 计 划 管 理 汇 总 执 行 录 入 … 文 档 审 计 … 文 档 批 阅 归 档 特 权 管 理 恢 复 文 档 转 发 转 储 …
• 什么是软件体系结构 • 软件体系结构的发展
• 软件体系结构的研究范畴
软件设计的目标
•设计应该是便于维护和升级的,因而应
该是模块化的
•设计应该是便于移植的 •设计应该具有适应性 •设计过程应该受到理性化的控制 •设计应该表现出概念的完整性
软件设计思想
•强调信息隐蔽的单元概念 •应用基于操作和数据封装构成的单元设计
计算机硬件体系结构分类
指令1 指令2
数据1 指令 1 控制1 处理1
存储1
控制2
…… 控制n
指令2
处理2
……
数据2
存储2
……
指令n
指令n
处理n
数据n
存储n
MIMD多指令流多数据流计算机
多处理机系统
控制 处理
MAP
…… ……
控制 处理
MAP
……
互连网络
……
通道
存储

软件体系结构

软件体系结构

软件体系结构软件体系结构是指软件系统中各个组件之间的关系和结构的抽象描述。

它是构建软件系统的基础,对软件系统的设计和开发起着重要的指导作用。

本文将从软件体系结构的定义、目标和应用领域等方面对其进行详细的介绍。

一、软件体系结构的定义软件体系结构是指软件系统中各个组件之间的关系和结构的抽象描述,它包括软件系统的静态结构和动态行为。

静态结构是指软件系统中组件的组织方式和相互之间的关系,动态行为是指软件系统中组件的交互方式和相互之间的通信方式。

二、软件体系结构的目标软件体系结构的目标是实现软件系统的可重用性、可维护性、可扩展性和可伸缩性。

可重用性是指软件系统中的组件能够被多次使用,可维护性是指软件系统中的组件能够被轻松地修改和维护,可扩展性是指软件系统能够根据需求进行功能的扩展,可伸缩性是指软件系统能够根据需求进行性能的扩展。

三、软件体系结构的应用领域软件体系结构广泛应用于各个领域的软件系统开发,特别是大型跨平台和分布式系统的开发。

在金融领域,软件体系结构被应用于交易系统和风险管理系统的开发;在电子商务领域,软件体系结构被应用于在线购物系统和支付系统的开发;在物流领域,软件体系结构被应用于供应链管理系统和运输管理系统的开发。

四、软件体系结构的基本原则软件体系结构的设计应遵循以下基本原则:1. 模块化:将软件系统分为独立的模块,每个模块只负责特定的功能,通过接口进行通信和交互。

2. 松耦合:各个模块之间的依赖应尽量降低,避免模块之间的紧密耦合,以提高系统的灵活性和可维护性。

3. 高内聚:模块内部的各个元素之间应紧密关联,功能相关的元素应放在同一个模块中,以提高系统的内聚性。

4. 分层:将软件系统分为多个层次,每个层次负责不同的功能,上层层次通过接口调用下层层次的功能。

5. 可伸缩性:系统的设计应考虑未来的扩展需求,能够根据需求进行功能和性能的扩展。

六、软件体系结构的设计方法软件体系结构的设计方法有很多种,常用的有面向对象的体系结构设计方法、服务导向的体系结构设计方法和领域驱动设计方法。

动态软件体系结构模型及自适应策略的研究

动态软件体系结构模型及自适应策略的研究

动态软件体系结构模型及自适应策略的研究动态软件体系结构模型及自适应策略的研究随着软件系统的复杂性和多样性不断增加,为了提高软件系统的性能和适应性,研究者们开始关注动态软件体系结构模型及自适应策略。

动态软件体系结构模型是一种可以自适应地应对不同环境和需求变化的软件系统架构。

本文将介绍动态软件体系结构模型的概念和原理,并探讨其在软件开发中的应用。

动态软件体系结构模型是指一种可以根据系统环境和需求变化来动态调整自身结构和功能的软件架构。

与传统的静态软件体系结构模型不同,动态软件体系结构模型允许软件系统在运行时根据实时环境信息进行改变,以提供更好的性能和适应性。

其核心思想是将软件系统分为多个自治的组件,这些组件可以根据环境和需求的变化进行自主调整和动态协作。

通过灵活调整系统结构,动态软件体系结构模型能够在不改变系统整体功能的情况下适应不同的运行环境和需求变化。

动态软件体系结构模型的设计需要考虑以下几个关键方面。

首先是系统的自组织能力,即组件之间的动态协作和自治能力。

通过定义合适的接口和通信机制,不同的组件可以自主地判断环境信息并进行相应的调整。

其次是系统的可扩展性,即系统能够在运行时动态地添加或删除组件以满足不同的功能需求。

同时,动态软件体系结构模型还需要考虑系统性能和安全性的平衡,以确保系统在动态调整过程中不会降低性能或引入不安全因素。

在动态软件体系结构模型的研究中,自适应策略被广泛应用于系统的决策和调整过程。

自适应策略是指一种根据实时环境信息和需求变化来调整系统行为和配置的方法。

通过引入自适应策略,动态软件体系结构模型可以根据具体需求自动选择合适的组件并调整它们之间的协作关系,以实现更高的性能和适应性。

常见的自适应策略包括基于规则的策略和基于机器学习的策略。

基于规则的策略通过预先定义一些规则和条件来决定系统的行为和配置;而基于机器学习的策略则通过学习历史数据和环境信息来预测未来的需求变化,并根据预测结果进行相应的调整。

Chap05.2_动态软件体系结构_动态模型(精)

Chap05.2_动态软件体系结构_动态模型(精)


2018/9/14
wangzhiming@
12
§5.2.2 πADL动态体系结构(续)

2、πADL体系结构建模方法 基本思想:



在构件的计算、连接件的胶水进程中,插入用 于体系结构动态演化的特定控制名字,表达体 系结构动态演化的起因和安全地进行动态演化 的时间; 运用π演算作为统一的形式语义基础,建立单 独的动态配置进程,形式化描述体系结构动态 演化方案; 运用π演算固有的动态建模能力,通过连接件 动态输入不同构件的交互行为名字,实现与构 件的动态连接和交互,并据此给出体系结构动 态配置的形式语义。
wangzhiming@
14
2018/9/14
§5.2.2 πADL动态体系结构(续)

3、πADL体系结构建模语义

动态配置软件系统的整体行为是所有构件实例、 连接件实例的进程和动态配置进程的并发执行;


构件、连接件的动态创建和删除;
运用π演算的动态建模能力,借助连接件实现 构件、连接件的动态连接关系。
本层可添加、删除、更新构件。

2018/9/14
wangzhiming@
4
§5.2.1 基于构件的动态系统结构 模型(续)

中间层:包括连接件配置、构件配置、构件 描述和执行。

连接件配置管理连接件及其接口的通信配置; 构件配置管理构件行为;构件描述对构件的内 部结构、行为、功能和版本等信息加以描述;
2018/9/14
返回准备 就绪信息 执行 更新
wangzhiming@
10
§5.2.2 πADL动态体系结构

Hale Waihona Puke Π演算

05动态软件体系结构

05动态软件体系结构
◎ 体系结构动态更新的执行
5.1 动态软件体系结构概述
目前支持动态体系结构机制的主要有 ArchStudio 工具 集 和 软 件 体 系 结 构 助 理 ( Software Architecture Assistant,SAA)。
• ArchStudio 工具集由加州大学Irwine 分校提出,支持交互 式图形化描述和C2风格描述的体系结构的动态修改。 • SAA 由伦敦皇家学院提出,也是一种交互式图形工具,可 以用来描述、分析和建立动态体系结构。
22/33
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 形式化描述主要包括
• 软件体系结构的描述 • 体系结构的重新配置 • 系统行为的描述
23/33
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 形式化描述的方法
• 图形化方法 • 进程代数方法 • 逻辑方法
5.2 软件体系结构动态模型
◇ 基于构件的动态系统结构模型
◎ 实例分析
Server构件 配置器 请求更新 提交更新请求 判 断 通知有更新请求 通知有更新请求 返回准备 就绪信息 返回准备 就绪信息 通知一切就绪 准备执行更新 通知更新执行完毕并返回结果 通知更新 结束 通知更新结束 返回相应信息 通知更新结束 通知更新结束 返回准备 就绪信息 执行 更新 体系结构 配置器 Client 配置器 连接件 Server构件 执行
5.1 动态软件体系结构概述
◎ 由于系统需求、技术、环境、分布等因素的变化而最终 导致软件体系结构的变动,称之为软件体系结构演化。
◎ 软件系统在运行时刻的体系结构变动称为体系结构的动 态性。 ◎ 体系结构的静态修改称为体系结构扩展。 ◎ 体系结构的扩展和动态性都是体系结构适应性和演化性 的研究范畴。

第5章动态软件体系结构

第5章动态软件体系结构

第5章动态软件体系结构第5章动态软件体系结构原来研究静态,运行时结构不变。

动态软件体系结构,研究由于特殊需要必须连续运行时的变化。

5.1 概述基于软件体系结构成为开发主流,灵活—>动态、可扩展、自定义、可演化动态性三类:P151下。

研究分两方面:研究动态更新语言,研究支持工具。

1.动态ADL,C2支持动态2.工具,ArchStudio,SAA。

图5-1研究不成熟。

5.2 动态模型5.2.1 基于构件的模型1.模型简介CBDSAM,分三层。

应用层,中间层,体系结构层,图5-2。

应用层可添加删除、更新构件。

中间层添加版本控制机制,运载方法。

体系结构层更改扩展更新机制,改拓扑,改映射。

2.更新请求描述表5-1,add,remove,updata。

包括几个方面,P155(①-⑥)3.更新执行步骤,4个,P1554.实例分析,局部更新,不影响系统运行,图5-3,A构件动态隔离和恢复。

全局更新,图5-4,服务器更新。

5.2.2 πADL动态体系结构1.定义,表5-2,BNF范式2.建模方法,πADL借鉴Wright框架,用π演算动态建模能力。

基本思路:P159上,(1)(2)(3)建模具体方法,P159中,(1)(2)(3)(4) (8)表5-3,解释P160-161 (1)-(6)3.建模语义,π进程作形式语义基本思想,各进程并发运行,关键要点,表达动态创建和删除,动态连接。

动态体系结构行为推导算法,P161,步骤一二三步。

5.3 动态体系结构的描述5.3.1 描述语言1.Dynamic Wright,扩展了Wright,试图模拟或标记,以解决动态性。

图5-5,与两个Server交互,静态。

图5-6,动态描述,虚线,配置C,非常适合描述动态。

2.Darwin,描述系统配置规则。

ADL不同之处,有指定服务规则,图5-7,P163。

5.3.2 形式化描述包括体系结构描述,重配置,行为描述。

用图形化,代数进程,逻辑等。

动态软件体系结构总结

动态软件体系结构总结
3

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

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

行为
◦ 由于用户需求的变化或者系统自身QoS调节的需要,
软件系统在运行过程中会改变其行为,比如由于安全
级别的提高更换加密算法;将http协议改为https协 议,行为的变化往往是由构件或连接子的替换和重配 置引起的
负载平衡等
6
完整性和一致性是动态变化的必要条件

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

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



体系结构动态变化的原因

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

属性
◦ 已有的软件体系结构描述大都支持对非功能属性
(non functional properties)的规约和分析, 比如对服务响应时间和吞吐量的要求等,在系统运行
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wangzhiming@
13
2018/9/14
§5.2.2 πADL动态体系结构(续)

2、πADL体系结构建模方法(续) 具体方法:


2018/9/14
wangzhiming@
12
§5.2.2 πADL动态体系结构(续)

2、πADL体系结构建模方法 基本思想:



在构件的计算、连接件的胶水进程中,插入用 于体系结构动态演化的特定控制名字,表达体 系结构动态演化的起因和安全地进行动态演化 的时间; 运用π演算作为统一的形式语义基础,建立单 独的动态配置进程,形式化描述体系结构动态 演化方案; 运用π演算固有的动态建模能力,通过连接件 动态输入不同构件的交互行为名字,实现与构 件的动态连接和交互,并据此给出体系结构动 态配置的形式语义。
本层可添加、删除、更新构件。

2018/9/14
wangzhiming@
4
§5.2.1 基于构件的动态系统结构 模型(续)

中间层:包括连接件配置、构件配置、构件 描述和执行。

连接件配置管理连接件及其接口的通信配置; 构件配置管理构件行为;构件描述对构件的内 部结构、行为、功能和版本等信息加以描述;
9
执行
2018/9/14
wangzhiming@

全局更新:
体系结构 配置器 Client 配置器 连接件 Server构件 执行
Server构件 配置器 请求更新
提交更新请求 判 断 通知有更新请求 通知有更新请求 返回准备 就绪信息 返回准备 就绪信息 通知一切就绪 准备执行更新 通知更新执行完毕并返回结果 通知更新 结束 通知更新结束 返回相应信息 通知更新结束 通知更新结束

分为三层:应用层、中间层和体系结 构层,见图5-2。
2018/9/14
wangzhiming@
2
§5.2.1 基于构件的动态系统结构 模型(续)
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
本层可添加版本控制机制和不同的构件装载方 法。

2018/9/14
wangzhiming@
5
§5.2.1 基于构件的动态系统结构 模型(续)

体系结构层:最上层,控制和管理整个体系 结构,包括体系结构配置、描述和执行。

SA描述主要描述构件及相联系连接件的数据; SA配置控制整个分布式系统的执行,并管理配 置层,SA执行对体系结构层的行为进行描述; 更改和扩展更新机制,更改系统的拓扑结构, 以及更新构件到处理元素之间的映射。
wangzhiming@
11
2018/9/14
§5.2.2 πADL动态体系结构(续)

1、πADL体系结构描述框架定义

借鉴ACME、Wright体系结构描述框架, 提供专门的标记符号,围绕构件、连接件、 系统配置、风格等实体进行体系结构建模; 既能描述单个系统,又能描述一类系统的 体系结构风格,支持层次配置、动态体系 结构和体系结构演化。
2018/9/14
返回准备 就绪信息 执行 更新
wangzhiming@
10
§5.2.2 πADL动态体系结构

Π演算



R. Milner于70年代提出的通信系统演算 CCS (The Calculus of Communication Systems);(1991年图灵奖) 为描述通信拓扑结构动态变化的系统,与 D. Walker, J. Parrow在80年代末提出π演 算; 可描述通信拓扑结构动态变化的分布通信 系统,允许进程之间传送和接收通道名, 并且可以引入和输出局部名,具有很强的 表达能力。

2018/9/14
wangzhiming@
6
§5.2.1 基于构件的动态系统结构 模型(续)
二、更新请求描述




更新类型:添加、删除和修改构件; 更新对象列表:需要更新对象类的ID号; 对象的新版本说明:对象的新版本执行情况; 对象更新方法:更替、动态和静态; 更新函数:用来更新一个执行对象进程的状态 转换函数; 更新限制:描述更新及它们之间的关系。
第五章 动态软件体系结构



5.1 动态软件体系结构概述 5.2 软件体系结构动态模型 5.3 动态体系结构的描述 5.4 动态体系结构特征 5.5 化学抽象机
2018/9/14
wangzhiming@
1
§5.2 软件体系结构动态模型
§5.2.1 基于构件的动态系统结构模型 一、模型简介 CBDSAM: Component Based Dynamic System Architecture Model;
构件 构件配置 构件描述 执行 构件接口 执行
3
2018/9/14
图5.2 CBDSAM wangzhiming@
§5.2.1 基于构件的动态系统结构 模型(续)

应用层:最底层,包括构件连接、构件接口 和执行。

构件连接定义连接件如何与构件相连接;构 件接口说明构件提供的服务;
2018/9/14
wangzhiming@
8
§5.2.1 基于构件的动态系统结构模 型(续)
四、实例分析

局部更新:
构件A 构件配置 接口
3. 执行 更新
1.请求 更新 5.成功 更 新 返回 发起者
2.准备 4.重新 连接源自连接件B构件C 构件配置
连接配置 接口 构件连接 执行
2018/9/14
wangzhiming@
7
§5.2.1 基于构件的动态系统结构 模型(续)
三、更新执行步骤



检测更新的范围:局部、全局; 更新准备工作:应用层需要等待参与进程发 出可安全更新信号;配置层需要等待连接件 其他构件已完成更新; 执行更新:告知发起者更新的结果; 存储更新:将所作的更新存储到构件或体系 结构描述中。
相关文档
最新文档