系统韧性研究(3)| 工程系统韧性要求

从最基本的层面上说,系统韧性指的是系统在逆境中继续执行其任务的程度。虽然对操作连续性至关重要,但系统的服务(能力)只是系统继续执行其任务所必须保护的一些资产。该系统必须检测不利因素,对其作出反应,并从它们对关键资产造成的损害中恢复过来。因此,更深层次的系统韧性是指系统快速有效地保护自身及其连续性相关资产免受不利事件和条件造成的损害的程度。

正如我在本系列的第一篇文章中提到的,系统韧性可以分解为两个子类型:主动韧性和被动韧性。主动系统韧性要求系统检测不利事件和条件,相应地做出反应,以防止或最大限度地减少任何由此产生的中断,并从这种中断中恢复。另一方面,如果系统被过度设计以被动避免中断(例如,通过具有足够的容量,过度负载不会导致性能损失或降级),则可以实现被动系统韧性。如本系列第一篇文章的初始图所示,系统韧性可以是被动的,也可以是主动的,即被动韧性被动地抵御逆境,而主动韧性主动地检测、应对逆境并从逆境中恢复。这种区别可以用于对规定阻力、检测、反应和恢复的韧性要求进行分类。

在本系列的第二篇文章中,我探索了系统韧性如何与其他质量属性密切相关,特别是鲁棒性、安全性、网络安全性、防篡改性、生存性、容量、寿命和互操作性。在第三篇文章中,我将阐述系统韧性需求,这些需求推动选择架构、设计和实现功能(例如,保障、安全控制和韧性相关的模式和习惯用法),以实现所需类型和级别的韧性。

01

系统韧性和次要质量属性要求

系统韧性要求规定了系统通过检测、响应和响应不利事件和条件,在面对不利情况时继续提供系统能力的程度。如下表所示,韧性系统必须克服的逆境类型根据其相关的从属质量属性进行分类。

鉴于系统韧性和上述从属质量属性之间的密切关系,一个自然的问题是,系统韧性要求与其他相关质量属性要求(如鲁棒性、安全性、网络安全和类似要求)有何不同?例如,以下是韧性要求还是鲁棒性(容错)要求:

当子系统Y中发生故障(不良事件)时,系统应继续提供服务X,可能处于降级模式。

以下是系统韧性要求还是安全要求:

汽车应检测到黑冰(即公路冰层,代指危险-不利条件),并通过修改牵引力控制来做出反应,以保持足够的牵引力,防止失去转向控制(服务)和由此产生的交通事故(对关键资产的伤害)。

同理,以下是韧性要求还是网络安全要求:

当威胁参与者在系统外部防火墙之外实现未经授权的访问(不良事件)时,系统应继续提供功能X。

关于与防篡改(例如,试图远程访问关键程序信息)、生存能力(例如,检测敌方雷达或导弹锁定等威胁)、容量(例如,系统接近或超过其最大容量)和寿命(例如,接近或超过设计寿命的系统组件)相关的不利因素,可以指定类似的要求。

02

都有哪些类型的要求?

关于韧性要求与其他质量属性要求的重叠,有三种学派:

方法1:无重叠

下图说明了系统韧性需求的MITRE方法。如果需求规定系统在面临特定逆境时应保持特定能力的特定水平,则该需求是系统韧性需求(由灰色框指示)。这些特定的逆境包括与质量属性相关的逆境:鲁棒性、安全性、网络安全等。系统韧性要求包括防止(也称为避免)逆境、被动抵抗逆境以及主动检测逆境的存在、对检测到的逆境做出反应以及从逆境造成的伤害中恢复的要求。系统韧性需求不包括与在逆境中维护特定能力无关的次要质量属性的需求(即下图的底行)。

方法1-系统韧性和次级需求之间没有重叠

第一种方法基本上表明,一些鲁棒性要求实际上是韧性要求,而不是鲁棒性要求,一些安全要求实际上是依赖性要求,而非安全要求,等等。除了造成混淆外,这种方法还使专业(如可靠性、安全性和安防)工程师更难找到与他们相关的所有需求,这些需求都放在需求规范的相关质量属性特定部分中。它还包括预防(也称为避免),这在逻辑上不属于恢复力的范围。

方法2:双重需求类型

第二种方法是使需求同时既是韧性需求又是从属质量属性需求。下图通过灰色框来说明这一点,灰色框表示韧性和次要质量属性需求。具体来说,由灰色框表示的每个阻力、检测、反应和恢复要求同时是系统韧性要求和从属质量属性(例如鲁棒性、安全性或网络安全)要求。

方法2-同时韧性和次要质量属性要求

这种重叠的方法可能会导致混淆。它还存在冗余规范的问题,这使得确保需求具有唯一的需求ID和将需求跟踪到测试(例如容量、鲁棒性、安全性、安全和互操作性测试)变得更加困难。然而,如果每个需求在需求数据库中仅存储一次,每个需求都用相关的质量属性进行注释,并且专业工程师可以根据其专业知识和职责领域过滤需求,则可以在一定程度上克服此问题。

方法3:衍生需求

下图说明了第三种方法,其中高级系统韧性需求(灰色框)与较低级别、衍生的次要质量属性需求(白色框)分开。这种需求分离将系统韧性需求保持在非常高的抽象级别,以至于它们忽略了质量属性特定的不利因素。例如,以下是这种系统韧性要求的示例:

系统应继续为任务关键能力C提供关键性能参数KPP,概率至少为P,尽管存在所有已识别的潜在不利因素。

一旦需求工程师指定了高级韧性需求,他们就会从这些韧性需求中衍生出多个次要质量属性需求。它们根据与鲁棒性、安全性、网络安全等相关的特定不良事件和条件来规定这些衍生要求。

方法3-衍生次要质量属性需求

第三种方法清楚地将韧性需求与其次要质量属性需求区分开来,将韧性需求保持在利益相关者关注的级别,并支持较低级别质量需求的衍生。请注意,与将性能需求分配给多个架构(architecture)组件一样,韧性KPP级别必须分解并分配给相关的派生次要质量属性需求。

03

需求工程(Engineering)过程

我建议使用以下过程(基于上述第三种方法),首先制定高水平的韧性要求,然后推导相应的低水平、特定于逆境的质量属性要求:

1.识别风险资产。在不利条件或事件发生时,哪些关键系统功能(即服务)必须继续提供?如果系统架构已知,则需要哪些关键系统组件(如子系统、硬件和软件)来提供这些功能和服务?类似地,在可用性、机密性和完整性方面必须保护哪些关键系统数据?系统服务是否依赖于任何系统外部资产,系统是否负责这些资产?

2.确定潜在危害。逆境会对这些关键资产造成何种危害,从而导致关键系统功能或服务的损失或降级?

3.确定最大可接受危害。逆境可能对维护关键能力和服务所需的资产造成的最大可接受伤害量是多少?对于功能和服务,请考虑设置以下类型的限制:

对服务/能力相关资产的最大可接受危害:

  • 服务/功能降级的最大可接受水平·在逆境期间和恢复之前,服务/能力的最低可接受可用性
  • 在逆境中和恢复之前,服务/能力的最低可接受可靠性
  • 交付服务/能力所需的对资产的最大可接受损害

服务/能力相关资产的最大可接受损害持续时间(见下图):

  • 可接受的最长不利条件/事件检测时间(检测逆境所需)
  • 最大可接受反应开始时间(检测和反应之间的时间,以防止进一步伤害)
  • 最大可接受反应持续时间(完成反应以阻止进一步伤害所需的时间)
  • 最大可接受恢复持续时间(反应完成到恢复完成之间的时间)
  • 服务/能力损失/降级的最大可接受持续时间

能力和服务降级可以根据性能下降来衡量,并可能取决于操作模式(例如操作、培训、演习、维护和更新)。

4.优先考虑资产和危害。在所有可信的情况下,很少有足够的资源来确保足够的复原力。因此,必须根据资产和相关损害的优先顺序来限制分析。

5.制定相关的韧性要求。基于对关键资产的最大可接受危害,开发高级别系统韧性需求。高水平韧性要求的示例模板(括号中包含可选条款)包括:

顶级韧性要求:

  • 「当处于模式M」时,系统应在不利条件持续期间,以至少P的概率,继续提供可用性为a的能力C「最大降级为D」。
  • 「当处于模式M」时,系统应在不良事件发生后,以至少P的概率继续提供可用性为a的能力C「最大降级为D」。
  • 「当处于模式M」时,系统应在不利条件下以至少P的概率继续提供可靠性为R的能力C「最大降级为D」。

检测韧性要求:

  • 「当处于模式M」时,系统应在S秒/毫秒内检测到不良事件和条件的P%。
  • 「在模式M」下,系统应在S秒/毫秒内检测能力C的丢失/降级。

反应韧性要求:

  • 在检测到不利条件「在模式M」时,系统应在S秒/毫秒内限制容量C的进一步损失或降级。

恢复韧性要求:

  • 「当处于模式M」时,系统应在检测不良事件和条件的S秒/毫秒内恢复能力C,概率至少为P。

6.确定相关的不利因素。哪些类型的不利条件和事件会导致不可接受的关键服务和能力丢失或显著降级?对于每个次要质量属性,考虑可能损害韧性相关关键资产的不良事件和条件的相关类型。

7.优先考虑可信的逆境。由于在所有可信的情况下,很少有足够的资源来确保足够的韧性,因此,需求分析必须基于造成危害的逆境的优先顺序进行限制。

8.衍生相关的质量属性需求。使用优先化的逆境,从韧性要求中导出特定于逆境的下属质量属性要求,以达到适当的质量属性。

04

衍生需求

顶级系统韧性需求可用于导出组件级和数据级韧性需求,以及导出次要质量属性需求。以下是韧性要求和相关衍生要求的示例:

系统韧性要求:

  • 检测要求:系统应在5秒内检测能力C的重大中断(即,超过30%的总损失或退化)。
  • 反应要求:在检测到性能C下降超过15%时,系统应采取足够的步骤,确保性能C的下降不超过30%。
  • 恢复要求:在检测到能力C的重大中断时,系统应在2分钟内自动恢复全部能力,概率为99.5%。

组件X韧性要求:

  • 检测要求:系统应在500毫秒内检测子系统X的故障,该故障需要提供能力Y。
  • 反应要求:在检测到子系统X的故障时,该故障会中断性能Y,系统应采取足够的步骤,以确保该故障不会使性能Y降低30%以上。
  • 恢复要求:系统应在检测到导致性能Y严重中断的故障后1分钟内自主恢复子系统X。

次要质量要求:

  • 反应能力要求:在检测到将事务T的吞吐量降低到每秒20000以下的过度负载时,系统应增加服务器数量,以确保吞吐量不低于每秒18000。

许多不同的可信不良事件和条件可能会破坏相同的关键系统能力。其中一些逆境彼此独立,概率很低,以至于人们可以合理地忽略这些逆境同时发生的可能性。另一方面,其他不利因素可能有共同的原因,或者有足够高的概率必须考虑同时发生。

05

总结与预告

本文阐述了不同类型的系统韧性需求,以及它们如何与派生的次要质量属性需求相关,并提供了一个通用过程,即系统韧性如何与其他密切相关的质量属性相关。下一篇亦即本系列的第四篇文章将介绍支持不良事件和条件的检测、反应和恢复的韧性功能(例如鲁棒性模式、保障和安全控制)。

敬请期待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vscode使用国内镜像源下载,秒下

镜像源 国内镜像地址:https://vscode.cdn.azure.cn 使用方法:很简单,只需要在官网选择自己需要的版本,点击下载,在下载的路径中将我们的镜像源替换上去即可 1.81.1版本下载链接 https://vscode.cdn.azure.cn/stable/…

软件测试优秀的测试工具,会用三款工作效率能提升一半

我们将常用的测试工具分为10类。 1. 测试管理工具 2. 接口测试工具 3. 性能测试工具 4. C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app自动化工具 10.web安全测试工具 注:工具排名没有任何意义。 大多数初学者&…

STM32:串口轮询模式、中断模式、DMA模式和接收不定长数据

一.串口轮询模式底层机制: 在STM32每个串口的内部都有两个寄存器:发送数据寄存器(TDR)/发送移位寄存器,当我们调用HAL_UART_Transmit 把数据发送出去时,CPU会将数据依次将数据发送到数据寄存器中,移位寄存器中的数据会根据我们设置…

【Java数据结构重点知识】第三节:认识包装类和泛型

目录 一:包装类 1.什么是包装类 2.装箱和拆箱 3.一个经典面试题 二:泛型 1.什么是泛型 2.语法 3.使用 4.泛型是如何编译的 5.泛型的上界 一:包装类 1.什么是包装类 (1)概念:在Java中&#xff0…

YOLOv7优化:独家创新(SC_C_Detect)检测头结构创新,实现涨点 | 检测头新颖创新系列

💡💡💡本文独家改进:独家创新(SC_C_Detect)检测头结构创新,适合科研创新度十足,强烈推荐 SC_C_Detect | 亲测在多个数据集能够实现大幅涨点 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c ✨✨✨前沿最新计算机顶会复现 🚀🚀🚀YOLOv7自研…

正点原子嵌入式linux驱动开发——Linux CAN驱动

CAN是目前应用非常广泛的现场总线之一,主要应用于汽车电子和工业领域,尤其是汽车领域,汽车上大量的传感器与模块都是通过CAN总线连接起来的。CAN总线目前是自动化领域发展的热点技术之一,由于其高可靠性,CAN总线目前广…

java进行支付宝支付(沙箱环境)

目录 1.准备工作 2.idea配置文件准备 3.后端代码编写 接口1:支付订单 接口2:查询订单 接口3:订单退款 接口4:查询退款结果 接口5:获取总账单 接口6:取消订单 接口7:回调接口 定时任务…

docker环境安装+maven依赖继承问题

1,docker环境安装 我们使用yum指令进行安装,分别cmd运行: yum install -y yum-utils device-mapper-persistent-data lvm2 yum-contig-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep具体解释如下:…

如何创建 SpringBoot 多模块项目

1. 创建父模块 【添加依赖】 【删除父模块资源】 父模块只需要保留 pom.xml,其他文件的全部删除(包括 src) 2. 创建子模块 3. 修改父模块 3.1 删除不必要的依赖 3.2 添加打包类型 3.3 添加所有子模块 声明子模块有两个好处: …

Pytorch 注意力机制解析与代码实现

什么是注意力机制 注意力机制是深度学习常用的一个小技巧,它有多种多样的实现形式,尽管实现方式多样,但是每一种注意力机制的实现的核心都是类似的,就是注意力。 注意力机制的核心重点就是让网络关注到它更需要关注的地方。 当…

什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(3)

参考视频:https://www.youtube.com/watch?vE5Z7FQp7AQQ&listPLuhqtP7jdD8CD6rOWy20INGM44kULvrHu 视频7:CNN 的全局架构 卷积层除了做卷积操作外,还要加上 bias ,再经过非线性的函数,这么做的原因是 “scaled p…

电压放大器在压电陶瓷致动器中的应用有哪些

电压放大器在压电陶瓷致动器中有多种应用。压电陶瓷致动器是一种能够将电能转化为机械能的装置,通过施加电压来使陶瓷材料发生形变或振动。它在许多领域中得到广泛应用,如精密定位、振动控制、压力控制等。下面安泰电子将详细介绍电压放大器在压电陶瓷致…

java修仙基石篇->instanceof子父类检查

instanceof检查子父类(或者是否能被强转) 作用1:检查某对象是否是某类的子类 如:儿子类继承了父亲类。 检查儿子类对象是否属于父亲类 作用2:检查两个对象是否可以强转 语法: 子类对象 instanceof 父…

物联网智慧种植农业大棚系统

物联网智慧种植农业大棚系统 项目背景 智慧农业是是将物联网技术和农业生产箱管理的新型农业,依托部署在农业生产现场的各种传感节点,以物联网网关为通道形成数据传输网络,可以实现控制柜、环境监测传感器、气象监测机器等设备的远程监控&a…

【计算机网络】数据链路层——以太网

文章目录 前言什么是以太网以太网帧格式6位目的地址和源地址2位类型数据长度CRC 校验和 数据在数据链路层是如何转发的 前言 前面我们学习了关于应用层——自定义协议、传输层——UDP、TCP协议、网络层——IP协议,今天我将为大家分享关于数据链路层——以太网方面的…

B-5:网络安全事件响应

B-5:网络安全事件响应 任务环境说明: 服务器场景:Server2216(开放链接) 用户名:root密码:123456 1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交; 通过nmap扫描我们发现开启了22端口,…

C++特殊类的设计

文章目录 设计一个类不能被拷贝请设计一个类,只能在堆上创建对象设计一个类只能在栈上去创建对象设计一个类不能被继承设计一个类,只能创建一个对象(单例模式)饿汉模式懒汉模式 单例模式总结饿汉模式懒汉模式 设计一个类不能被拷贝 拷贝一个类对象可以有…

Kubernetes 概述以及Kubernetes 集群架构与组件

目录 Kubernetes概述 K8S 是什么 为什么要用 K8S K8S 的特性 Kubernetes 集群架构与组件 核心组件 Master 组件 Node 组件 ​编辑 Kubernetes 核心概念 常见的K8S按照部署方式 Kubernetes概述 K8S 是什么 K8S 的全称为 Kubernetes,Kubernetes 是一个可移植、可扩…

面试算法45:二叉树最低层最左边的值

题目 如何在一棵二叉树中找出它最低层最左边节点的值?假设二叉树中最少有一个节点。例如,在如图7.5所示的二叉树中最低层最左边一个节点的值是5。 分析 可以用一个变量bottomLeft来保存每一层最左边的节点的值。在遍历二叉树时,每当遇到新…

【AI数学】三维视觉中的四种坐标系

三维视觉中,需要掌握四种坐标系:世界坐标系、相机视角坐标系、NDC坐标系、屏幕坐标系。 世界坐标系(World coordinate system) 物体或者场景在真实世界中的位置。 相机视角坐标系(Camera view coordinate system&…