浙江大学王灿的《软件体系结构》课程PPT,第六节、性能、安全性、可测试性、易用性

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个增量 开发完成 控制可 测试性 的战术 错误被检测

两类用于提高可测试性的战术

输入/输出 (1)

管理测试的输入和输出的战术包括

记录/回放

捕获跨接口的信息并将其作为测试专用软件的输入
组件 从这里捕获信息 组件

将接口与实现分离

允许实现的替代,以支持各种测试目的 通过替代某个系统组件,来实现对系统剩余部分的测试
从攻击中恢复

从攻击中恢复的战术包括

恢复系统和数据

使用前面提过的可用性战术 备份、被动冗余、检查点 维持审计记录


攻击者识别

审计记录是应用到系统中的数据的所有事务和识别信息的一 个副本 追踪攻击者的操作、支持不可否认性 支持系统恢复 需要以可靠方式进行维护
安全性战术层次结构
安全性 抵抗攻击 检测攻击 从攻击中恢复
攻击
对用户进行身份验证 对用户进行授权 维护数据的机密性 维护完整性 限制暴露的信息 限制访问
入侵检测
恢复
识别
系统检 测、抵 抗或从攻 击中恢复
查看可用性
审计记录
可测试性战术

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

测试在系统开发成本中占很高比例,可在构架设计 时可测试性往往得不到足够的关注 管理测试的输入和输出 内部监视
在时间 限制内 生成响应
安全系统的六个方面

系统的安全性包括提供以下六方面特征




不可否认性-交易不能被交易的任何一方所 否认 保密性-未经授权不能访问数据或服务 完整性-按计划来提交数据或服务的属性 保证-交易的各方应该使他们说声称的人 可用性-系统可用于合法的用途(没DOS) 审核-系统在内部跟踪活动,跟踪级别足以 对活动进行重构
队列 响应
响应时间

当一个事件到达时,它要么被处理,要么因为 某些原因被阻塞起来

响应时间=资源消耗时间+阻塞时间 一般资源包括:处理器,数据存储,网络带宽,内 存等 系统相关资源:


资源消耗时间


分配给当前进程的缓冲区 临界区(必须串行访问)
阻塞时间

引起阻塞的原因:

资源竞争


通常,更多的事件将导致更多的资源竞争,从而导致更长 的阻塞时间 这同时也依赖于竞争仲裁机制 资源离线、组件故障或其他原因都会导致资源不可用 等待其他计算结果或需要与其他计算结果同步
用户请求 控制易用 性的战术 为用户提供适当 的反馈和协助

两类易用性战术

运行时战术 (1)

人机交互中,根据操作中采取主动的一方以及交互方式, 可以分为 用户主动-用户发布请求,引导与系统的交互

命令行,事件处理的图形用户界面(GUI)

系统主动-系统引导用户,通常是要求用户Байду номын сангаас响应输入 混合主动-上述两者的结合
c1 c4 c5 c2 系统 c3
输入/输出 (2)

特化访问路线/接口

具有特化的测试接口允许通过测试工具并独立于其 正常操作,来捕获或指定组件的变量值
组件 组件 一个有着常规接口,提供所 需功能的组件
一个有着特化接口的组件
内部监视

内部监视器

组件可以维持状态、性能负载、容量、安全性或其 他可通过接口访问的信息,这些信息通过特定的接 口以内部监视器的形式进行提供
安全性战术

安全性战术可以分为三个组

抵挡攻击

(就像锁上你的门) (房中放个运动传感器) (给你的房子投保)
控制性能 的战术

检测攻击


从攻击中恢复

攻击
系统检测、抵抗 或从攻击中恢复
抵抗攻击 (1)

对用户身份进行验证

保证进行访问的用户或远程计算机的确是它说声称的用户或 计算机


例如:用户发出请求,开始安装程序(用户主动),系统使用 向导、进度条等手段引导用户(系统主动)

用户主动 构架师列举系统的责任,对用户命令作出响应

比如:对于“取消”命令的支持要求系统监听事件、释放资源、 通知相关组件...
运行时战术 (2)

系统主动

系统通过维持响应的模型来预测自身的行为或用户的意图 维持一个任务的模型

维护完整性

数据按期望的方式提供(没有被修改)

校验、哈希值 数字签名技术
抵抗攻击 (3)

限制暴露的信息

攻击者通常利用暴露的某个弱点来攻击主机上的所 有数据和服务 通过设计服务在主机上的分配,使得每个主机上只 有受限的服务,来提高安全性 防火墙(消息源、目的地端口)


限制访问

有时不可能仅将访问权限给已知的消息源,比如一个 公共网站
运行时战术
用户请求
支持用户主动 分离用户接口
支持系统主动
为用户提 供适当的 反馈和 协助
取消 撤销 聚合 重用
用户模型 系统模型 任务模型
战术和构架模式

战术是构架师用来达成质量属性的手段 战术是设计时的基本块,构架模式和样式就是 由这些基本块组成。构架模型由以下几个因素 确定



一组元素类型 描述元素相互关系的拓扑布局 一组语义限制 一组交互机制
实现质量属性 (2)
性能战术

性能和响应时间相关

等待时间、期限、吞吐量、抖动、缺失率、数据丢 失… 在一个时间限制内为一个时间产生响应
事件到达 控制性能 的战术

性能战术的目标

在时间限 制内生成 的响应
一个事件的处理顺序
转换 队列 某个组件产生一个消息
组件
组件
消息 队列
……
组件
中间处理结果
……

保持数据或计算的多个副本


引入并发


资源仲裁 (1)


当存在资源竞争时,就必须对资源进行调度; 调度策略包括两部分:分配优先级和分派 常用的调度策略

先进先出 固定优先级调度

为每个请求资源的源分配一个特定的优先级,并按该 优先级顺序分配资源

语义重要性 时限单调 速率单调
资源仲裁 (2)

提高了组件活动的内部可视性
可测试性策略层次结构
可测试性
管理输入输出
内部监视
一个增量 开发完成
错误被检测 记录/回放 将接口与实现分离 特化访问路线/接口 内部监视器
易用性战术

易用性关注的是

用户完成期望任务的难易程度 系统为用户提供的支持种类 运行时-在系统运行的时候采取行动支持易用性 设计时-考虑界面设计的频繁修改的特性

动态优先级调度

轮转

动态对请求进行排序

时限最早优先

根据具有最早的时限时间的挂起请求来分配优先级

静态调度

离线确定抢占点和资源分配的次序
性能战术层次结构
性能 资源需求 资源管理 资源仲裁
事件 到达
提高计算效率 减少计算开销 管理事件率 控制取样频率
引入并发 维持多个副本 增加可用资源
调度策略
密码 一次性密码 数字证书 生物识别

对用户进行授权

保证经过身份验证的用户有权访问和修改数据或服务 可以通过权限管理或角色管理对访问进行控制
抵抗攻击 (2)

维护数据的机密性

防止对数据进行未授权的访问 一般通过对数据和通讯链路进行某种形式的加密



对称密钥:DES->AES 公钥加密:RSA SSL(安全套接层) VPN(虚拟专用网)

DMZ(解除管理区)-处于Internet和内部防火墙 之间
检测攻击

对攻击可以进行人工检测或者是使用IDS(入 侵检测系统)

IDS通常通过对比网络通信模式和数据库中存储的 历史攻击模式来确定攻击

比如DOS(拒绝服务攻击)的检测

通常必须对数据包进行过滤,以进行比较。可以根 据协议、TCP标记、有效负荷大小、源或目的地地 址及端口号进行过滤

维持关于任务的信息,用于确定上下文,从而了解用户要做 什么,并提供协助 维持关于用户的信息,确定用户对系统的了解,用户在期望 的响应时间方面的行为以及偏好 维持关于系统的信息,确定期望的系统行为,以便为用户提 供适当反馈。比如:预测完成当前操作需要的时间

维持一个用户的模型


维持一个系统的模型


资源的可用性


对其他计算的依赖性

资源需求 (1)

事件流是资源需求的源头,需求的两个相关部 分

事件请求某个资源的频率 每个请求消耗资源的多少

通过减少处理一个事件流的所需资源来减少等 待时间

提高计算效率 减少计算开销

比如:使用JAVA RMI减少通信需求 减少使用中间件
资源需求 (2)
设计时战术

用户界面是系统中修改最频繁的部分,使用响 应的可修改性战术,将用户接口与系统的其他 部分分开,可以支持对用户界面的更好的修改

局部化所期望的变更 文档-视图框架 模型-视图-控制器 表现-抽象-控制 ...

支持将用户接口分离的软件构架模式



易用性战术层次结构
易用性
设计时战术

通过减少所处理事件的数量来减少等待时间

管理事件率

降低取样频率,减少到达系统的事件 对已到达的事件进行采样处理,可能导致请求丢失

控制采样频率


控制资源的使用

限制执行时间

限制多少执行时间内对时间作出反应

限制队列大小
资源管理战术

增加可用资源

使用更快的处理器 额外的处理器 额外的内存 减少资源竞争,比如:客户机,cache 通过并行处理请求来减少阻塞时间,比如使用多线 程 这种案例中,负载均衡非常重要
相关文档
最新文档