是什么
可靠性指软件在异常情况下或在被非法、非常规使用时维持自身功能的能力。
可靠性体现在容错和健壮性这两个方面。
-
容错
容错指软件发生故障时仍保持正常运行的能力。它保证软件能在异常情况下正常运行,并在内部完成故障的修复工作。
修复完成后,软件需要继续或从头开始执行异常位置的操作。比如分布式系统在发生通信异常时会先暂时切断连接,等问题修复完成后再重新连接,恢复软件的运行。
-
健壮性
健壮性是保护软件不受非正常使用方式或非法输入影响的能力。具备该能力后,不论什么样的使用方式,软件都能准确迁移至系统定义的状态。
健壮性值保证软件能迁移至系统定义的状态,并不要求软件修复或重新执行引发异常的处理。
为什么
软件对可靠性的需求是不尽相同的。
比如大规模系统或关键的业务系统就不允许出现中断服务的情况,就算缩减功能,也要持续提供服务。
而供个人使用的软件就不需要如此强大的持续性了。相较于在危险状态下继续提供服务,这类软件大多选择保存数据重新启动。
因此,在设计软件架构时,我们要先明确软件对可靠性的需求。
怎么做
从容错的观点出发,我们可以让软件架构存在内部冗余(双重冗余等)。也可以采用故障弱化的设计,在软件发生故障时缩减软件提供的功能,只保留关键功能,保证处理继续运行。
从健壮性的观点出发,我们可以采用故障安全的设计,在发生故障时剥离发生故障的部分。也可以采用故障保护的设计,保证软件在用户进行了错误操作的情况下也能安全运行,避免故障发生。
版权声明:本文为u012069234原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。