软件系统架构实践应对质量属性(1).ppt

上传人:仙人指路1688 文档编号:2770244 上传时间:2023-02-24 格式:PPT 页数:96 大小:2.04MB
返回 下载 相关 举报
软件系统架构实践应对质量属性(1).ppt_第1页
第1页 / 共96页
软件系统架构实践应对质量属性(1).ppt_第2页
第2页 / 共96页
软件系统架构实践应对质量属性(1).ppt_第3页
第3页 / 共96页
软件系统架构实践应对质量属性(1).ppt_第4页
第4页 / 共96页
软件系统架构实践应对质量属性(1).ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《软件系统架构实践应对质量属性(1).ppt》由会员分享,可在线阅读,更多相关《软件系统架构实践应对质量属性(1).ppt(96页珍藏版)》请在三一办公上搜索。

1、软件系统架构实践,中国信息化培训中心2013年 6月,课 程 目 录,四、系统架构之六大战术,(一)影响软件架构的因素(二)理解质量属性(三)质量属性战术应对,(三)质量属性战术应对,1、可用性战术2、可修改性战术3、性能战术4、安全性战术5、可测试性战术6、易用性战术,战术介绍,质量需求指定了软件的响应,以实现业务目标战术(tactics)影响质量属性响应的设计决策构架策略(architectural strategy)战术的集合构架模式(architectural pattern)以某种方式将战术打包在一起,质量属性战术,是什么使一个设计具有了可移植性?一个设计有了高性能,而另一个设计具备

2、了可集成性?实现这些质量属性依赖于基本的设计决策战术战术就是影响质量属性响应控制的设计决策可用性战术可修改性战术性能战术安全性战术可测试性战术易用性战术战术的集合称为“构架设计策略”,可用性战术目标,可用性战术将会阻止错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能,可用性战术分类,维持可用性的方法包括:错误检测用来检测故障的某种类型的健康监视自动恢复检测到故障时某种类型的恢复错误预防阻止错误演变为故障,可用性战术分类,可用性战术总结,错误检测,错误检测包括以下3个战术信号/响应(ping/echo):一个组件发出一个信号,并希望在预定义的时间内收到一个来自审查

3、组件的响应,该战术可以用在共同负责某项任务的一组组件内这种战术采用组件主动询问方式,就好像我们在课堂上点名一样,必须要求学生回答,错误检测,心跳(heartbeat):一个组件定期发出一个心跳信息,另一个组件收听该信息。心跳还可用于传递数据这种方式监视组件采用被动方式,就好像领导听取员工汇报工作这两种战术在不同的进程中进行操作,错误检测,异常(exceptions):异常处理程序通常将错误在语义上转换为可以被处理的形式,异常通常与引入异常的程序在同一个进程中比如:if(x=0)throwException(),错误恢复表决,有6种错误恢复的战术表决(voting):运行在冗余处理器上的每个进程

4、都具有相等的输入,它们计算的值都发给表决者,表决者发现异常则终止进程表决算法包括“多数规则”、“首选组件”等该方法用于纠正算法的错误操作或处理器的故障,通常用在控制系统中,表决,冗余处理器,表决者组件,输入值,输出值,用一定的表决算法进行表决;多数规则或首选组件,如果检测到单处理器的异常行为,则终止它或重起它。,错误恢复主动冗余,主动冗余(Active redundancy):所有的冗余组件都以并行的方式对事件做出响应,它们的状态都相同,但每次只使用一个组件的响应而丢弃其余组件的响应主动冗余通常用在客户机/服务器的配置中,在这种配置中,即使发生错误,也可在极短的时间,通常为几毫秒内恢复,比如门

5、户网站采取的策略,主动冗余(热重启),同时响应,使用第一个组件的响应,处在相同的状态,切换,错误恢复被动冗余,3.被动冗余(passive redundancy):主组件对事件做出响应,并通知其它备用组件必须进行的状态更新。这样,主/从组件的状态是一致的被动冗余通常用在控制系统中,恢复时间一般在几秒内在被动冗余中,主组件负责状态同步,被动冗余(暖重启),备份,Old data,New data,错误恢复备件,备件(spare):备件是计算平台配置用于更换各种不同的故障组件。出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化备件通常用在备用客户机工作站,恢复时间一般在几分钟内,错

6、误恢复重新引入,Shadow操作:出现故障的组件可以以“Shadow模式”运行,这样可以在系统恢复前模仿工作组件的行为状态再同步(State resynchronization):主动和被动冗余战术要求所恢复的组件在重新提供服务前更新其状态,错误恢复重新引入,检查点/回滚(Checkpoint/rollback):检查点就是记录所创建的一致状态,遇到故障,可以使用上次正确的检查点状态比如,Windows操作系统的以上一次正常运行的配置启动,高可用性解决方案,现状及问题随着计算机在社会各个领域的广泛使用,人们已习惯于计算机系统带来的便捷和高效率,但计算机系统也非常脆弱,它会受各种因素的影响,如硬

7、件系统本身的故障,电源故障,病毒,自然 灾害或人为的恶意破坏,都会导致系统无法正常运行。现有很多系统均是单主机工作环境,任何一个单点故障,都会影响企业业务的正常运转,而且产生很多不良后果。,我们认为,解决该问题的关键,就是采用高可用性的群集解决方案。在一个承担关键业务的计算中心,采用多台主机共享一套存储设备存储业务数据,主机之间通过物理连接形成一定的相互联系,与相应的群集软件配合,可以实现如下功能:当整套系统中出现任何一个单点故障,都有相应的冗余部件代替发挥相应的功能,从而保证业务的正常进行,在此过程中的物理设备和应用软件的切换都不会被前端用户所察觉。,解决方案,虚拟服务器,错误预防,从服务中

8、删除(removal from service):该战术从操作中删除了系统的一个组件,以执行某些活动来防止预期发生的故障,比如重新启动备用组件阻止当前组件的内存泄漏,错误预防,事务(transactions):事务是指绑定几个有序的步骤,以能够立刻撤销这个绑定,可以使用事务来防止任何数据受到影响进程监视器(process monitor):监视进程中存在的错误,如果发现错误,则删除该执行进程,并为该进程创建一个新的实例,“系统可用性”质量目标与保障手段,30,(三)质量属性战术应对,1、可用性战术2、可修改性战术3、性能战术4、安全性战术5、可测试性战术6、易用性战术,可修改性战术,可修改性战

9、术的目标是控制实现、测试和部署变更的时间和成本,可修改性战术分类,可修改性战术可以分为3类:局部化修改目标是减少由某个变更直接影响的模块的数量防止连锁反应目标是限制对局部化的模块的修改,以防止对某个模块的修改间接地影响到其他模块延迟绑定时间目标是控制部署时间并允许非开发人员进行修改,可修改性战术分类,局部化修改(localize modifications),该组战术的目标是在设计时为模块分配责任,以把预期的变更限制在一定的范围内预期期望的变更(expected changes):根据语义一致性原则,预测期望变更的战术并不关心模块责任的一致性,而是关心将变更的影响最小化,局部化修改(local

10、ize modifications),维持语义一致性(semantic coherence):语义一致性是模块中责任之间的关系,目标是确保所有这些责任都能够协同工作,不需要过多地依赖其它模块,即这组模块的内聚性维持语义一致性的子战术就是“抽象通用服务”,通过专门的模块提供通用服务通常被视做支持重用,比如设计数学函数sin(x)为通用函数,局部化修改(localize modifications),泛化模块(Generalize the module):使一个模块更通用能够使他根据输入计算更广泛的功能;模块越通用越有可能通过调整语言而非修改模块来进行请求变更限制选择参数(Limit possib

11、le options):限制可能的选择将会降低这些修改所造成的影响,比如我们将可选择的处理器或操作系统限定在一定的范围内,防止连锁反应(prevent ripple effects),连锁反应修改某个模块却影响到其他并没有被修改的模块,我们必须修改所有相关模块(直接影响和间接影响)才能够实现我们的变更目标依赖关系如果我们根据某种需要修改模块A,那么也必须修改模块B,我们就说模块B依赖于模块A,防止连锁反应(prevent ripple effects),在应用程序中打开Excel m_Excel_App=new _Application();m_Excel_Workbooks=new Work

12、books();:CLSIDFromProgID(LExcel.Application,依赖关系(dependencies),语法:数据类型和签名一致语义:数据和服务所表达的意思一致顺序:B模块需要使用A的结果A的一个接口身份必须与B的假定一致A的位置必须与B的假定一致A提供的服务/数据的质量必须与B的一致A的存在是B正常执行的前提A的资源行为,与B的假定应该一致,防止连锁反应的战术,信息隐藏(Hide information):目的是将变更隔离在一个模块内,防止变更扩散维持现有接口(Maintain existing interfaces):如果B依赖于A的一个接口的名字和签名,则维持该接口

13、及其语法能够使B保持不变。实现该战术的模式:2.1 添加接口(adding interfaces)2.2 添加适配器(adding adapter)2.3 提供一个占位程序A(providing a stub A),防止连锁反应的战术,限制通信路径(Restrict communication paths):限制与一个给定的模块共享数据的模块,包括生产和使用该模块的数据,防止连锁反应的战术,使用仲裁者(Use an intermediary):在A与B之间插入一个仲裁者,以管理A与B之间依赖的相关活动。仲裁者可以是:4.1 数据(语法):如存储库4.2 服务(语法):桥、调停者、策略、代理和工

14、厂模式都提供把服务的语法从一种形式转换为另一种形式4.3 A的接口的身份4.4 A的位置4.5 A的资源行为或有A控制的资源4.5 A的存在,推迟绑定时间(defer binding time),推迟绑定时间支持部署时间及允许非开发人员修改可以在各个时间把决策绑定到执行系统中,在运行时绑定意味着系统已经为该绑定做好了准备,并且完成了所有的测试和分配步骤推迟绑定时间还能够使最终用户或系统管理员进行设置,或提供影响行为的输入,推迟绑定时间(defer binding time),很多推迟绑定时间的战术的目的是在载入时或运行时产生影响运行时注册(Runtime registration):即插即用的

15、操作配置文件(Configuration files):启动时设置参数多态(Polymorphism):允许方法调用的后期绑定组件更换(Component replacement):允许载入时间绑定遵守已定义的协议(Adherence to defined protocols):允许独立进程的运行时绑定,“系统可修改”质量目标与保障手段,46,(三)质量属性战术应对,1、可用性战术2、可修改性战术3、性能战术4、安全性战术5、可测试性战术6、易用性战术,性能战术(Performance Tactics),性能战术的目标是对一定的时间限制内到达系统的事件生成一个响应,这些事件可以是消息到达、定时

16、器到时,系统状态的变化,性能战术的目标,性能战术分类,性能战术包括3个分类:资源需求分析影响性能的资源因素资源管理提高资源的应用效率资源仲裁解决资源的争用,性能战术分类图,影响响应时间的两个因素,资源消耗(Resource consumption):资源包括CPU、数据存储、网络通信带宽和内存等;资源消耗是指实际需要耗费的时间资源消耗包括:每个事件都要经过一定的处理序列;某种形式的数据转换;根据某个算法进行处理,资源消耗举例,图像处理消耗资源,包括我们进行的加、减、乘、除的数量,耗费的内存等,影响响应时间的两个因素,闭锁时间(Blocked time):由于资源争用、资源不可用或长时间计算导致

17、事件无法处理,这是指计算机可能等待的时间2.1 资源争用2.2 资源的可用性2.3 对其他计算的依赖(Dependency on other computation):必须等待其他计算机的结果,比如,显示图像的FFT处理结果,首先要完成FFT处理,然后才能显示,资源争用造成等待时间,资源争用(Contention for resources):争用同一个资源造成临界区访问,资源不可用造成等待时间,资源可用性(Availability of resources):由于组件故障或其他原因造成资源不可用,资源需求(resource demand),事件流是需求的源需求的两个特性:资源流中事件之间的时

18、间间隔每个请求所消耗的资源,资源需求战术(1),减少处理一个事件流所需要的资源提高计算效率,如改进关键算法比如,在我们进行数据查找时,采用二分查找法可以大大减少查找时间减少计算开销比如保存上次计算的结果,资源需求战术(2),减少所处理事件的数量管理事件率,减少需求比如,视频显示,你可以采用50帧/秒,也可采用25帧/秒显示控制采样频率,不同采样率下同一段胃肠蠕动信号波形,资源需求战术(3),控制资源的使用限制执行时间比如,我们读取硬件数据,要求必须在指定的最长时间内返回限制队列大小,控制处理事件数量比如,限制消息队列的大小,不接受过多的事件涌入,资源管理(Resource management

19、),我们可以通过资源管理减少响应时间引入并发(Introduce concurrency):通过并行处理,减少闭锁时间维持数据或计算的多个副本(Maintain multiple copies):维持副本可以减少相同的计算增加可用资源(Increase available resources):比如增加CPU速度、增加内存等,资源仲裁(Resource arbitration),当存在资源争用时,必须对资源进行调度,以使资源协调一致的运行,以减少闭锁时间调度的标准包括:最佳的资源使用、请求的重要性,最小化所使用资源的数量,使等待时间最少等,资源仲裁的分类(1),先进先出,同等看待每个资源固定优

20、先级,事先为某个事件分配优先级,分配的策略为:语义重要性(semantic importance)时限时间单调(deadline monotonic)速率单调(rate monotonic),资源仲裁的分类(2),动态优先级:运行时分配优先级,分配的策略为:轮转(round robin)时限时间最早优先(earliest deadline first)静态调度:系统非运行时确定资源的分配顺序,“系统性能”质量目标与保障手段,64,(三)质量属性战术应对,1、可用性战术2、可修改性战术3、性能战术4、安全性战术5、可测试性战术6、易用性战术,安全性(Security Tactics),安全性战术

21、包括抵抗攻击的战术、检测攻击的战术和从攻击从恢复的战术,安全性战术的目标,安全性战术分类图,抵抗攻击(Resisting attacks),对用户进行身份验证(Authenticate users):保证用户的合法身份,如口令、密码,生物识别对用户进行授权(Authorize users):限制用户的使用权限,IBM计算机的指纹口令,抵抗攻击(Resisting attacks),维护数据的机密性(Maintain data confidentiality):对传输数据进行加密维护数据的完整性(Maintain integrity):对数据提供检验防止暴露的信息(Limit exposure)

22、限制访问(Limit access),检测攻击(Detecting attacks),检测攻击的工作方式通常是将网络通信模式与数据库中已知攻击的历史记录进行对比入侵检验一般需要对数据包进行过滤,以进行比较入侵检验必须有检测攻击的传感器,并且可以存贮事件到数据库中,供以后数据分析使用,入侵检测技术举例,从攻击中恢复,从攻击中恢复的战术包括与恢复状态相关的战术和识别攻击者相关的战术与恢复状态相关的战术与可用性一致,如冗余,但主要是对密码、访问控制列表和用户资料数据进行冗余,从攻击中恢复,用于识别攻击者的战术是“维持审计追踪”审计追踪就是应用到系统中的数据的所有事物和识别信息的一个副本,可以使用它来

23、识别攻击者的操作,支持认可和系统恢复,Windows系统的日志,“系统安全性”质量目标与保障手段,身份验证,最常用的方式是:用户ID和密码的方 式(缺点:用户ID和密码经常 被盗或偶然泄漏),对于Internet业务交易,使用CA证书,由第三权威机构方提供的网上交易安全认证机制。,其它生物检测:指纹检测,虹膜检测,声音,面部特征,对用户进行授权,对于不同身份的用户,设置不同的交易权限。,数据加密技术,常用的方针有:线路加密和端对端加密两种。在线路上而不考虑信源与信宿,是对保密信息通过各线路采用不同的加密密钥提供安全保护。信息由发送者端通过专用的加密软件,采用某种加密技术对所发送文件进行加密,把

24、明文(也即原文)加密成密文(加密后的文件,这些文件内容是一些看不懂的代码),然后进入TCP/IP数据包封装穿过互联网,当这些信息一旦到达目的地,将由收件人运用相应的密钥进行解密,使密文恢复成为可读数据明文。,相关技术,防火墙:“防火墙”是一种形象的说法,它其实就是一个把互联网与内部网(通常这局域网或城域网)隔开的屏障。它是一种由计算机硬件和软件的组合,使互联网与内部网之间建立起一个安全网关(scurity gateway),从而保护内部网免受非法用户的侵入。,防火墙,(三)质量属性战术应对,1、可用性战术2、可修改性战术3、性能战术4、安全性战术5、可测试性战术6、易用性战术,可测试性(Tes

25、tability Tactics),可测试性战术的目标是允许在完成软件开发的一个增量后,轻松地对软件进行测试。测试的目标是发现错误,可测试性战术的目标,可测试性战术分类图,输入/输出(Input/Output),记录/回放(Record/playback):记录/回放是指将捕获跨接口的信息,并将其作为测试专用软件的输入。将接口与实现分离(Separate interface from implementation):将接口与实现分离允许实现的代替。占位实现允许在缺少被占位组件时,对系统的剩余部分进行测试特化访问路线/接口:具有特化的测试接口允许通过测试工具并独立于其正常操作,来捕获或指定组件变

26、量的值,内部监视(Internal monitoring),组件可以根据内部状态实现战术,以支持测试过程内部监视器(Built-in monitors):组件可以维持状态、性能负载、容量、安全性或其他可通过接口访问的信息。当监视状态被激活时可以记录事件,(三)质量属性战术应对,1、可用性战术2、可修改性战术3、性能战术4、安全性战术5、可测试性战术6、易用性战术,易用性(Usability Tactics),易用性与用户完成期望任务的难易程度以及系统为用户提供的支持种类有关,易用性战术的目标,易用性战术分类图,运行时战术(Runtime tactics),通过为用户提供关于系统正在做什么的反馈

27、,以及为用户提供发出基于易用性命令的能力来增强易用性,如帮助、撤销、取消等用户主动系统主动混合主动,系统主动战术,系统主动性战术就是那些确定系统用来预测其自身行为或用户意图的模型的战术,它必须依赖关于用户的某些信息比如Word软件进行实时地拼写检查,系统主动战术(1),维持任务的一个模型:任务模型用于确定上下文,了解用户的意图,如完成任务进度,系统主动战术(2),维持用户的一个模型:确定用户对系统的了解,特定的用户界面或汉字输入的词组,系统主动战术(3),维持系统的一个模型:确定了期望的系统行为,以便为用户提供适当的反馈,例如提示功能,进度条的使用等,“系统易用性”质量目标与保障手段,提问,说明有哪些类的可用性战术在可修改性战术中如何防止连锁反应在性能战术中如何控制资源需求,谢谢大家!,Questions or comments?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号