Loading

软件架构实践阅读笔记3

因为在学习质量属性相关知识,所以我选择对本书的第五章进行阅读,了解实现质量属性的各种战术。同时作为对以前知识的回顾。

可用性战术

错误检测:广泛用于识别错误的3个战术是命令/响应(ping/echo)、 心跳和异常。

命令/响应。一个组件发出一个命令,并希望在预定义的时间内收到一个来自审查组件的响应。可以把该战术用在共同负责某项任务的一组组件内。 客户机也可以使用这种战术。

心跳(dead man计时器)。在这种情况下,一个组件定期发出一个心跳消息,另一个组件收听该信息。如果心跳失败,则假定最初的组件失败,并通知错误纠正组件。心跳还可以传递数据。

异常。识别错误的一个方法就是遇到了异常,当识别出了第4章所讨论的错误类中的某一个时,就会出现异常。该异常处理程序通常在引入该异常的相同进程中执行。

错误恢复:错误恢复由准备恢复和修复系统两部分组成。

表决。运行在冗余处理器上的每个进程都具有相等的输入,它们计算发送给表决者的一个简单的输出值。如果表决者检测到单处理器的异常行为,那么,就中止这一行为。

主动冗余(热重启)。所有的冗余组件都以并行的方式对事件做出响应。因此,它们都处在相同的状态。仅使用一个组件的响应(通常是做出响应的第一个组件),丢弃其余组件的响应。错误发生时,使用该战术的系统的停机时间通常是几毫秒,因为备份是最新的,所以恢复所需要的时间就是切换时间。

被动冗余(暖重启/双冗余/三冗余)。一个组件(主要的)对事件做出响应,并通知其他组件(备用的)必须进行的状态更新。当错误发生时,在继续提供服务前,系统必须首先确保备用状态是最新的。

备件。备用件是计算平台配置用于更换各种不同的故障组件。

shadow操作。以前出现故障的组件可以在短时间内以“shadow模式"运行,以确保在恢复该组件之前, 模仿工作组件的行为。

检查点/回滚。检查点就是记录所创建的一致状态, 或者是定期进行,或者是对具体事件做出响应。

错误预防:从服务中删除。事务。进程监视器

可修改性战术:

局部化修改:

维持语义的一致性。语义的一致性指的是模块中 责任之间的关系。目标是确保所有这些责任都能够协同工作,不需要过多地依赖其他模块。该目标是通过选择具有语义一致性的责任来实现的。

预期期望的变更。

泛化该模块。使一个模块更通用能够使它根据输入计算更广泛的功能。

限制可能的选择。

防止连锁反应;推迟绑定时间;

性能战术:

资源需求:提高计算效率。减少计算开销。管理事件率。控制采样频率。限制执行时间。限制队列大小

资源管理:引入并发。维持数据或计算的多个副本。增加可用资源。

资源仲裁

安全性战术:

抵抗攻击:身份验证。用户授权。数据机密性。维护完整性。限制暴露信息。限制访问

检测攻击

从攻击中恢复

可测试性战术:可测试性战术的目标是允许在完成软件开发的一个增量后,较轻松地对软件进行测试

易用性战术:

运行时战术:维持任务/用户/系统的一个模型

设计时战术:将用户接口与应用的其余部分分离

posted @ 2020-06-12 19:37  李旭2018  阅读(150)  评论(0编辑  收藏  举报