当前位置: 首页 > news >正文

系统韧性研究(2)|系统韧性如何关联其他质量属性?

对大多数人来说,如果一个系统在逆境中继续执行它的任务,那么它会被认为具有韧性。换句话说,尽管过度的压力或多或少都会导致系统中断,但如果系统依然能够正常运行并提供所需的能力,则可认为该系统具备韧性。

系统韧性不是一个孤立的质量属性。鉴于本文是关于系统韧性及其细节的系列文章中的第二篇,所以它更多的是与鲁棒性、安全性、网络安全、防篡改、生存性、容量、寿命和互操作性直接相关,而与适应性、可用性、性能、可靠性和可修复性的关系不大。

01

系统韧性-简要回顾

系统韧性显然是很重要的,因为没有人想要一个无法克服逆境的脆弱系统。如果不利事件或不利条件导致系统无法正常运行,则可能会对有价值的资产造成多样化的损害。

此前,针对系统韧性的定义有着很大的模糊性,并且没有解决特定的问题。包括哪些类型的逆境和中断?继续执行其任务意味着什么?当系统无法正常运行时,会发生什么危害?在本系列关于系统韧性的第一篇文章中,我通过提供以下更详细和微妙的定义来解决这些问题:

系统具有一定的韧性,能够快速有效地保护其关键能力免受不利事件和不利条件造成的伤害。

然后,我将该定义澄清如下:

  • 「保护」包括检测不利事件和条件,通过限制它们对关键资产造成的伤害来应对这些不利情况,并在事后从这种伤害中恢复。逆境的预防不在系统韧性的范围内,因为韧性假设逆境将发生,并与关键服务在面对这些逆境时的连续性有关。
  • 「资产」是系统功能、组件和数据,以及必须保护其免受不利事件和条件造成的伤害的系统外部资产,因为它们实现了系统的关键功能。

这些资产中的每一项都会受到许多不同类型的特定于资产的损害,例如服务的损失或降级、关键系统组件的损坏或破坏、关键数据的机密性和完整性的损失,以及持续运营所需的外部系统或对象的损坏或毁坏。

尽管我在第一篇文章中已经就系统韧性的各种解释进行了论述,但在本文接下来的篇幅中,我会探索系统韧性如何关联其他质量属性。

02

下级质量属性的韧性

如下表所示,系统非常有韧性的不利事件和条件可以根据其相关质量属性进行分类:鲁棒性、安全性、网络安全性、防篡改性、生存性、容量、寿命和互操作性。

尽管生存能力有时被用作韧性的同义词,但本文使用了生存能力的军事定义:系统在单次交战后保持任务能力的能力。生存能力的特征通常是系统避免被敌人检测的能力(即低可检测性)、其避免被武器击中的能力(例如低易感性)、其承受打击的能力(如低易损性)以及其从被击中中恢复的能力(即高可恢复性)。

03

基于质量属性特征的韧性

系统韧性是通过结合一组适当的体系结构、设计和实现功能(例如保障、安全控制、体系结构和设计模式以及实现习惯用法)来实现的。如下图所示,韧性特征可以通过两种方式进行分类:

韧性功能支持上表中列出的系统韧性的八个从属质量属性(如鲁棒性、安全性和网络安全性)中的一个或多个。相同的韧性特征通常可以改善这些质量属性中的多个,因此不应将它们视为相互独立实现的不相关质量属性。相反,应该在系统韧性的标题下对其整体看待。这些韧性特征将是本系列第四篇文章的主题。

韧性功能将支持韧性的三个保护子功能之一:检测、反应和恢复。系统韧性涉及在不利事件发生或不利条件存在后确保运营的连续性,因此,即使在这些次要质量属性的范围内,逆境预防也不在系统韧性的范围内。

04

容差韧性

另一种看待系统韧性的方法是,系统的韧性达到了它对各种类型的不良事件和条件的容忍程度。换句话说,系统的韧性达到其展示以下类型容差的程度(按下级质量属性进行组织):

  • 鲁棒性:

-环境容差是系统处理不利环境事件或条件的能力。例如,自动陆地车辆包含多种类型的冗余传感器(如相机、激光雷达、雷达和超声波传感器)的一个原因是,传感器融合和人工智能软件可以在不利的天气条件下(如夜间、雾天、雨天和雪天)安全、准确地识别和分类道路对象。

-容错是“系统或组件在存在错误输入的情况下继续正常运行的能力。”容错包括系统检测、响应或从人类和外部系统的错误输入中恢复的能力。

-容错是“尽管存在……故障,系统、产品或组件仍按预期运行的程度”。容错包括系统防止、检测、响应或从故障中恢复的能力。故障被定义为:(1)“系统中的缺陷或系统的表示,如果执行/激活,可能会导致错误”;(2)“硬件设备或组件中的缺陷”;(3)“计算机程序中的错误步骤、过程或数据定义”。

-容错是系统检测、响应全部或部分故障或从中恢复的能力。故障是指系统执行所需功能的能力终止或无法在先前规定的限制内执行;与系统规范的外部可见偏差。

  • 安全性:

-事故容限是指系统检测、响应事故以及对资产造成的任何意外伤害并从中恢复的能力。

-危害容限是系统检测和响应危害存在的能力(如避免事故或限制事故造成的危害)。

  • 网络安全:

-网络攻击容忍度是系统保护其关键功能免受网络攻击伤害的能力。

-威胁容忍是系统检测和响应网络安全威胁和漏洞存在的能力(如通过降低成功攻击的可能性)。

  • 防篡改:

-篡改容差(反篡改)是指系统保护其关键能力免受篡改(即反向工程)危害的能力,篡改旨在导致关键程序信息(CPI)的泄露或修改,以及篡改漏洞。

  • 生存能力:

-物理攻击容忍度是系统保护其关键功能免受物理攻击伤害的能力。

-威胁容忍度是系统检测和响应威胁的能力(如飞机检测到导弹锁定和抛弹)。

  • 容量:

-过度负载容差是指系统保护其关键功能免受过度负载(如事务、命令和消息)损害的能力。

  • 长寿:

-随着系统物理部件的寿命达到或超过其设计极限,其故障概率增加。需要长运行寿命而无需维护的系统可以通过合并寿命控制来避免中断。例如,航天器可以包括抗辐射硬件,并通过选择性地关闭未使用的子系统来实现子系统休眠。

-过度老化容限是指系统检测、响应或恢复超过其设计限制的物理部件老化以及对资产造成的任何损害的能力。

  • 互操作性:

-故障通信容差是指系统保护其关键功能免受与外部系统通信丢失或降级损害的能力。

05

其他质量属性的韧性

系统韧性作为一种质量属性,受到其他质量属性的影响。除了上面讨论的次要质量属性外,韧性还受到以下因素的影响:

  • 适应性。可以使自身适应(例如通过重组、重新配置、负载平衡和旋转额外的虚拟机或容器)不断变化的条件的系统可能能够响应不利事件和条件以及它们可能造成的任何伤害,并从中恢复。
  • 可用性。具有高可用性的系统通常能够从不良事件中快速恢复。在不利条件下,尽管发生了不利事件,韧性系统仍需要保持其关键能力/服务的可用性。
  • 可维护性。如果系统支持纠正性维护,则系统在可恢复性方面具有更强的韧性。如果一个系统能够自我修复,而不是依赖于人工维护,则该系统被认为更具韧性。
  • 性能。检测方面的高韧性会降低吞吐量和响应时间方面的性能,这对于硬实时网络物理系统可能是不可接受的。
  • 可靠性。低水平的可靠性会导致大量故障和失效,这就需要与故障和容错相关的更高级别的恢复能力(检测、响应和恢复)。在不利条件下,尽管发生了不利事件,韧性系统仍需要保持其关键能力/服务的可靠性。
  • 可修复性。可以自我修复的系统(例如,通过自动更换某些子系统或线路可更换单元)可以在不良事件后更好地恢复。

06

总结与预告

本文阐明了系统韧性如何关联其他密切相关的质量属性。下一篇(第三篇)文章将介绍系统韧性需求,包括其子类型和示例;第四篇文章将涵盖支持不良事件和条件的检测、反应和恢复的韧性特征。

敬请期待。

相关文章:

系统韧性研究(2)|系统韧性如何关联其他质量属性?

对大多数人来说,如果一个系统在逆境中继续执行它的任务,那么它会被认为具有韧性。换句话说,尽管过度的压力或多或少都会导致系统中断,但如果系统依然能够正常运行并提供所需的能力,则可认为该系统具备韧性。 系统韧性…...

电脑桌面记事本便签软件哪个好?

很多人的电脑或者手机上都离不开一款好用的便签软件,使用便签软件可以帮助大家记事,提醒大家按时完成各项任务,但是自带的记事本便签软件不论从外观还是功能方面都有一定的欠缺,在使用过程中很容易耽误事情。 功能全面外观好看的…...

可视化(Visual) SQL初探

一、背景 在当今数字化时代,数据信息作为企业和组织的宝贵资源之一,如何挖掘其中的价值并帮助企业和组织个体决策,已然成为炙手可热的话题。数据分析作为其具体载体,是从数据中提取信息、洞察机遇、制定战略、做出决策的关键过程…...

多目标权重融合方式

1. 多目标学习在推荐系统的应用(MMOE/ESMM/PLE) - 知乎 ## combine loss ctr_log_var tf.get_variable(namectr_log_var,dtypetf.float32,shape(1,),initializertf.zeros_initializer() ) ysl_log_var tf.get_variable(nameysl_log_var,dtypetf.float32,shape(1,),initializ…...

软件工程与计算总结(二十)软件交付

软件交付是软件项目的结束阶段 ,标志着软件开发任务的完成——其作为一个分水岭,区分了软件开发与软件维护两个既连续又不同的软件产品生存状态~ 在经历连续的辛苦工作之后,开发人员在胜利曙光之前难免会忽视软件交付阶段的一些工作——在准…...

02 开闭原则

官方定义: 开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的,但对于修 改是封闭的。这意味着应该用抽象定义结构,用具体实现扩展细节,以此确保 软件系统开发和维护过程的可靠性。 通俗解释: 对扩展开放…...

LamdaUpdateWapper失效问题

因为入参是json的文本格式,结果ID多输入了一个空格直接修改返回条数为0。 比如ID入参在swagger中或前端入参:“412210293355454”,结果不小心为“ 412210293355454”, 而且几乎看不出来这个空格。 记住:事出原因必有妖…...

“权限之舞:Linux安全之道”

W...Y的主页😊 代码仓库分享💕 🍔前言: 在之前的Linux博客中,我们学习了基础的Linux指令,具体可以订阅一下博主的Linux专栏学习。当我们想进行递归删除文件时等等许多操作中,只有在root账号中…...

Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案

前言 开发界的小伙伴们对于Visual Studio Code开发环境来可以说非常熟悉了,但由于在Visual Studio Code官网的下载速度非常的慢,即便开了代理也是一样的很慢、甚至下载被中断,几乎不能下载。 解决方案 1、在Web浏览器上打开vscode官网&#…...

URL、域名和网址的区别

网址、域名和URL 都用于描述在互联网上定位资源的标识符,通常它们可以互换使用,但严格来说有区别: URL(Uniform Resource Locator):URL是统一资源定位符的缩写,它是一个包含地址信息的完整字符串…...

【oceanbase】centos7/kylinv10部署oceanbase(x86版本)

1. 修改系统​ vim /etc/sysctl.conf fs.file-max 102400 net.nf_conntrack_max 1024000 net.netfilter.nf_conntrack_max 1024000 2. 修改 ulimit 的 open file,系统默认的 ulimit 对文件打开数量的限制是 1024 vim /etc/security/limits.conf # 加入以下…...

论文导读 | 支持事务与图分析的图存储系统

事务系统保证了系统的数据一致性,确保事务更新的原子性或是不同事务之间的数据隔离性等在多线程并发环境下所必不可少的ACID特性。而在今天快速变化的商业环境下,诸如物流和供应链,金融风控和欺诈检测等场景都需要图分析系统提供对数据动态更…...

Vue3最佳实践 第八章 ESLint 与 测试 ( ESLint )

ESLint ​在所有的JavaScript 项目开发中我们都会接触到 ESLint 这个词,ESLint 是个什么样的组件会给为项目做些什么吗?ESLint 是一种检查语法错误以及代码是否按照预定规则编写的工具。ESLint 可以帮助开发者发现代码中潜在的错误。在Vue项目中Eslint一…...

【C++】命名空间和using namespace std的注意事项

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

修改51单片机中数组元素的值

在8051单片机中,code关键字用于将数据存储在ROM中。由于ROM是只读的,所以在运行时无法直接修改seven_seg数组中的值。 如果您想在main函数中修改seven_seg[1]的值为0xc0,您可以将seven_seg数组定义为可写的变量,而不是存储在ROM中…...

Ruby和面向对象技术

Ruby和许多极为流行的编程语言都是面向对象的。多数的面向对象编程语言,每个对象都是一个样例或者既定类的实例以及独立对象的行为。 一、创建一个通用对象 创建一个通用对象 obj Object.new定义通用对象的行为 def obj.talk puts "I am an object"p…...

C++11常用新特性——可变参数模板

可变参数模板 C11中,可变参数模板是一个非常强大的特性,它允许函数和类模板接受任意数量和类型的参数,这为类型的安全编程提供了更广泛的灵活性。下面我将详细介绍这一新特性。 基础概念: 可变参数模板允许你传递多个类型和数量…...

SpringCloud-Seata

一、介绍 (1)实现分布式事务 (2)解决Spring只支持单机事务 (3)事务ID TC(事务协调者) TM(事务管理者) RM(资源管理者)...

java击球小游戏运行代码

创建一个图形化的小游戏通常需要使用Java图形库,例如Swing或JavaFX。下面是一个使用JavaFX创建的简单的图形化小游戏示例,其中一个小球会在窗口内移动,你需要点击小球以增加得分: import javafx.application.Application; import…...

Hadoop面试题+详解

20道面试题及详细解答! 1.说说什么是结构化数据、非结构化数据和半结构化数据 结构化数据、非结构化数据和半结构化数据是根据数据的组织结构和格式来划分的不同类型的数据。 结构化数据:结构化数据是按照预定义的数据模型进行组织和存储的数据。它通常…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...