首页 > 其他分享 >系统韧性研究(3)| 工程系统韧性要求

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

时间:2023-11-01 17:31:44浏览次数:24  
标签:需求 要求 工程 系统 韧性 逆境 属性

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

系统韧性研究(3)| 工程系统韧性要求_系统功能_02

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

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

系统韧性研究(3)| 工程系统韧性要求_互操作性_03

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

01

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

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

系统韧性研究(3)| 工程系统韧性要求_安全控制_04

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

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

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

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

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

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

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

02

都有哪些类型的要求?

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

方法1:无重叠

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

系统韧性研究(3)| 工程系统韧性要求_互操作性_05

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

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

方法2:双重需求类型

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

系统韧性研究(3)| 工程系统韧性要求_系统功能_06

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

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

方法3:衍生需求

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

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

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

系统韧性研究(3)| 工程系统韧性要求_互操作性_07

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

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

03

需求工程(Engineering)过程

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

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

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

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

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

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

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

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

系统韧性研究(3)| 工程系统韧性要求_安全控制_08

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

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

总结与预告

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

敬请期待。

系统韧性研究(3)| 工程系统韧性要求_互操作性_09

标签:需求,要求,工程,系统,韧性,逆境,属性
From: https://blog.51cto.com/u_15605878/8130432

相关文章

  • 如何开始开发一个跑腿App系统?
    1.确定需求和功能规划开始开发之前,需明确系统所需的基本功能,包括用户注册、登录、下单、配送员匹配、订单跟踪等。这些功能需要在系统设计之初明确。2.技术选型选择适合的技术栈。前端可以使用框架如React、Vue.js,后端可选择Node.js、Python等。数据库方面可选用MySQL、MongoDB等......
  • 保障体系系统包括哪些内容
    智慧华盛恒辉保障体系是指一系列相互联系的制度、政策和措施,旨在保障社会成员的基本权利和福利,维护社会稳定和公平。保障体系通常由政府、企业、社会组织和个人共同参与,包括社会保险、社会救助、社会福利、医疗卫生、教育、住房、就业等各个方面。第一名华盛恒辉科技有限公......
  • 数维图组态编辑器 低代码快速构建智慧油库系统
    前言收发和储存原油、汽油、煤油、柴油、溶剂油、润滑油和重油等整装、散装油品的独立或企业附属的仓库或设施称为油库。油库是协调原油生产、原油加工、成品油供应和化工原材料供应的纽带,是国家协调原油生产、原油加工、成品油和化工原材料供应的纽带,是国家石油储备和供应的基地,对......
  • Django实战项目-学习任务系统-自定义URL拦截器
    接着上期代码框架,6个主要功能基本实现,剩下的就是细节点的完善优化了。首先增加URL拦截器,你不会希望没有登录用户就可以进入用户主页各种功能的,所以增加URL拦截器可以解决这个问题。Django框架本身也有URL拦截器,但是因为本系统用户模型跟Django框架本身用户模型不匹配,所以没有用,......
  • 「直播回放」使用 PLC + OPC + TDengine,快速搭建烟草生产监测系统
    在烟草工业场景里,多数设备的自动控制都是通过PLC可编程逻辑控制器来实现的,PLC再将采集的数据汇聚至OPC服务器。传统的PISystem、实时数据库、组态软件等与OPC相连,提供分析、可视化、报警等功能,这类系统存在一些问题:收费是按照测点数进行的,价格昂贵,而且需要有商务谈判才......
  • 开源物流管理系统——【2】货运管理
    将近一周的时间过去了,又到了周三,能写第二篇博客,心里还是挺兴奋的。更新的太频繁,时间上不允许,毕竟手边也有工作要做;再者也不利于细节体验的打磨。尽管依然有不少未考虑到的地方,但不妨先来看下效果:本次更新的内容主要是创建并完善货运管理模块,细节如下:1.自动运单编号生成与校验2.......
  • Go开发工程师入门到项目实战 Google架构师联合大厂架构师出品
    01|Go语言课程介绍蔡超Mobvista技术副总裁兼首席架构师,前亚马逊(中国)首席软件架构师本节内容你好,我是蔡超,目前在Mobvista担任技术副总裁兼首席架构师。在加入Mobvista前,我也曾在亚马逊,惠普等公司担任过首席软件架构师。我是从小学四年级开始学习计算机编程的,并一直从事......
  • (STM32)中断系统和外部中断
    中断系统:是执行和管理中断的逻辑结构外部中断:是众多能产生中断的外设之一中断:指的是中断源(中断通道),中断产生CPU暂停正在执行程序,去执行中断程序,然后返回。提高效率F1系列的STM32有68个中断源,不同系列需要看手册EXTI(外部中断)、TIM、ADC、USART、SPI、I2C、RTC等多个外设都会......
  • ZEGO 即构科技首发适配鸿蒙系统的 Express SDK 1.0 版本
    ​ 2019年8月,华为在开发者大会上正式发布鸿蒙系统。HarmonyOS鸿蒙系统是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持......
  • 网工内推 | 运维工程师,熟悉主流云平台,六险一金,RHCE优先
    01中核核信招聘岗位:数据中心运维工程师职责描述:1、负责云平台及数据中心基础设施的日常运维工作,提前发现云平台稳定性问题,确保问题及时发现并处理,提升客户核心业务的稳定性;2、负责数据中心基础设施设备运行状态监控和定期巡查工作,对设备健康检查、优化调试,提出改进建议,能在日常......