版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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
4、种错误恢复的战术 表决(voting):运行在冗余处理器上的每个进程都具有相等的输入,它们计算的值都发给表决者,表决者发现异常则终止进程 表决算法包括“多数规则”、“首选组件”等 该方法用于纠正算法的错误操作或处理器的故障,通常用在控制系统中,表决,冗余处理器,表决者 组件,输入值,输出值,用一定的表决算法进 行表决;多数规则或 首选组件,如果检测到单处理器的异常行为,则终止它或重起它。,错误恢复主动冗余,主动冗余(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):监视进程中存在的错误,如果发现错误,则删除该执行进程,并为该进程创建一个新的实例,“系统可用性”质量目标与保障手段,(三)质量属性战术应对,1、可用性战术
9、2、可修改性战术 3、性能战术 4、安全性战术 5、可测试性战术 6、易用性战术,可修改性战术,可修改性战术的目标是控制实现、测试和部署变更的时间和成本,可修改性战术分类,可修改性战术可以分为3类: 局部化修改目标是减少由某个变更直接影响的模块的数量 防止连锁反应目标是限制对局部化的模块的修改,以防止对某个模块的修改间接地影响到其他模块 延迟绑定时间目标是控制部署时间并允许非开发人员进行修改,可修改性战术分类,局部化修改(localize modifications ),该组战术的目标是在设计时为模块分配责任,以把预期的变更限制在一定的范围内 预期期望的变更(expected changes
10、):根据语义一致性原则,预测期望变更的战术并不关心模块责任的一致性,而是关心将变更的影响最小化,局部化修改(localize modifications ),维持语义一致性(semantic coherence ):语义一致性是模块中责任之间的关系,目标是确保所有这些责任都能够协同工作,不需要过多地依赖其它模块,即这组模块的内聚性 维持语义一致性的子战术就是“抽象通用服务”,通过专门的模块提供通用服务通常被视做支持重用,比如设计数学函数sin(x)为通用函数,局部化修改(localize modifications ),泛化模块(Generalize the module ):使一个模块更通用
11、能够使他根据输入计算更广泛的功能;模块越通用越有可能通过调整语言而非修改模块来进行请求变更 限制选择参数(Limit possible options ):限制可能的选择将会降低这些修改所造成的影响,比如我们将可选择的处理器或操作系统限定在一定的范围内,防止连锁反应(prevent ripple effects),连锁反应修改某个模块却影响到其他并没有被修改的模块,我们必须修改所有相关模块(直接影响和间接影响)才能够实现我们的变更目标 依赖关系如果我们根据某种需要修改模块A,那么也必须修改模块B,我们就说模块B依赖于模块A,防止连锁反应(prevent ripple effects),在应用程
12、序中打开Excel m_Excel_App = new _Application(); m_Excel_Workbooks = new Workbooks(); :CLSIDFromProgID(LExcel.Application, ,依赖关系(dependencies ),语法:数据类型和签名一致 语义:数据和服务所表达的意思一致 顺序:B模块需要使用A的结果 A的一个接口身份必须与B的假定一致 A的位置必须与B的假定一致 A提供的服务/数据的质量必须与B的一致 A的存在是B正常执行的前提 A的资源行为,与B的假定应该一致,防止连锁反应的战术,信息隐藏(Hide information )
13、:目的是将变更隔离在一个模块内,防止变更扩散 维持现有接口(Maintain existing interfaces ):如果B依赖于A的一个接口的名字和签名,则维持该接口及其语法能够使B保持不变。实现该战术的模式: 2.1 添加接口(adding interfaces) 2.2 添加适配器(adding adapter) 2.3 提供一个占位程序A(providing a stub A),防止连锁反应的战术,限制通信路径(Restrict communication paths ):限制与一个给定的模块共享数据的模块,包括生产和使用该模块的数据,防止连锁反应的战术,使用仲裁者(Use an
14、intermediary ):在A与B之间插入一个仲裁者,以管理A与B之间依赖的相关活动。仲裁者可以是: 4.1 数据(语法):如存储库 4.2 服务(语法):桥、调停者、策略、代理和工厂模式都提供把服务的语法从一种形式转换为另一种形式 4.3 A的接口的身份 4.4 A的位置 4.5 A的资源行为或有A控制的资源 4.5 A的存在,推迟绑定时间(defer binding time),推迟绑定时间支持部署时间及允许非开发人员修改 可以在各个时间把决策绑定到执行系统中,在运行时绑定意味着系统已经为该绑定做好了准备,并且完成了所有的测试和分配步骤 推迟绑定时间还能够使最终用户或系统管理员进行设置
15、,或提供影响行为的输入,推迟绑定时间(defer binding time),很多推迟绑定时间的战术的目的是在载入时或运行时产生影响 运行时注册(Runtime registration):即插即用的操作 配置文件(Configuration files):启动时设置参数 多态(Polymorphism):允许方法调用的后期绑定 组件更换(Component replacement ) :允许载入时间绑定 遵守已定义的协议(Adherence to defined protocols) :允许独立进程的运行时绑定,“系统可修改”质量目标与保障手段,(三)质量属性战术应对,1、可用性战术 2、可
16、修改性战术 3、性能战术 4、安全性战术 5、可测试性战术 6、易用性战术,性能战术(Performance Tactics ),性能战术的目标是对一定的时间限制内到达系统的事件生成一个响应,这些事件可以是消息到达、定时器到时,系统状态的变化,性能战术的目标,性能战术分类,性能战术包括3个分类: 资源需求分析影响性能的资源因素 资源管理提高资源的应用效率 资源仲裁解决资源的争用,性能战术分类图,影响响应时间的两个因素,资源消耗(Resource consumption):资源包括CPU、数据存储、网络通信带宽和内存等;资源消耗是指实际需要耗费的时间 资源消耗包括:每个事件都要经过一定的处理序列
17、;某种形式的数据转换;根据某个算法进行处理,资源消耗举例,图像处理消耗资源,包括我们进行的加、减、乘、除的数量,耗费的内存等,影响响应时间的两个因素,闭锁时间(Blocked time ):由于资源争用、资源不可用或长时间计算导致事件无法处理,这是指计算机可能等待的时间 2.1 资源争用 2.2 资源的可用性 2.3 对其他计算的依赖(Dependency on other computation ):必须等待其他计算机的结果,比如,显示图像的FFT处理结果,首先要完成FFT处理,然后才能显示,资源争用造成等待时间,资源争用(Contention for resources ):争用同一个资源
18、造成临界区访问,资源不可用造成等待时间,资源可用性(Availability of resources ):由于组件故障或其他原因造成资源不可用,资源需求(resource demand),事件流是需求的源 需求的两个特性: 资源流中事件之间的时间间隔 每个请求所消耗的资源,资源需求战术(1),减少处理一个事件流所需要的资源 提高计算效率,如改进关键算法 比如,在我们进行数据查找时,采用二分查找法可以大大减少查找时间 减少计算开销 比如保存上次计算的结果,资源需求战术(2),减少所处理事件的数量 管理事件率,减少需求 比如,视频显示,你可以采用50帧/秒,也可采用25帧/秒显示 控制采样频率,
19、不同采样率下同一段胃肠蠕动信号波形,资源需求战术(3),控制资源的使用 限制执行时间 比如,我们读取硬件数据,要求必须在指定的最长时间内返回 限制队列大小,控制处理事件数量 比如,限制消息队列的大小,不接受过多的事件涌入,资源管理(Resource management),我们可以通过资源管理减少响应时间 引入并发(Introduce concurrency ):通过并行处理,减少闭锁时间 维持数据或计算的多个副本(Maintain multiple copies ):维持副本可以减少相同的计算 增加可用资源(Increase available resources ):比如增加CPU速度、增
20、加内存等,资源仲裁(Resource arbitration),当存在资源争用时,必须对资源进行调度,以使资源协调一致的运行,以减少闭锁时间 调度的标准包括:最佳的资源使用、请求的重要性,最小化所使用资源的数量,使等待时间最少等,资源仲裁的分类(1),先进先出,同等看待每个资源 固定优先级,事先为某个事件分配优先级,分配的策略为: 语义重要性(semantic importance) 时限时间单调(deadline monotonic) 速率单调(rate monotonic),资源仲裁的分类(2),动态优先级:运行时分配优先级,分配的策略为: 轮转(round robin ) 时限时间最早优
21、先(earliest deadline first ) 静态调度:系统非运行时确定资源的分配顺序,“系统性能”质量目标与保障手段,(三)质量属性战术应对,1、可用性战术 2、可修改性战术 3、性能战术 4、安全性战术 5、可测试性战术 6、易用性战术,安全性(Security Tactics ),安全性战术包括抵抗攻击的战术、检测攻击的战术和从攻击从恢复的战术,安全性战术的目标,安全性战术分类图,抵抗攻击(Resisting attacks),对用户进行身份验证(Authenticate users ):保证用户的合法身份,如口令、密码,生物识别 对用户进行授权(Authorize users
22、 ):限制用户的使用权限,IBM计算机的指纹口令,抵抗攻击(Resisting attacks),维护数据的机密性(Maintain data confidentiality ):对传输数据进行加密 维护数据的完整性(Maintain integrity ):对数据提供检验 防止暴露的信息(Limit exposure ) 限制访问(Limit access ),检测攻击(Detecting attacks),检测攻击的工作方式通常是将网络通信模式与数据库中已知攻击的历史记录进行对比 入侵检验一般需要对数据包进行过滤,以进行比较 入侵检验必须有检测攻击的传感器,并且可以存贮事件到数据库中,供以
23、后数据分析使用,入侵检测技术举例,从攻击中恢复,从攻击中恢复的战术包括与恢复状态相关的战术和识别攻击者相关的战术 与恢复状态相关的战术与可用性一致,如冗余,但主要是对密码、访问控制列表和用户资料数据进行冗余,从攻击中恢复,用于识别攻击者的战术是“维持审计追踪” 审计追踪就是应用到系统中的数据的所有事物和识别信息的一个副本,可以使用它来识别攻击者的操作,支持认可和系统恢复,Windows系统的日志,“系统安全性”质量目标与保障手段,身份验证,最常用的方式是:用户ID和密码的方 式(缺点:用户ID和密码经常 被盗或偶然泄漏),对于Internet业务交易,使用CA证书, 由第三权威机构方提供的网上
24、交易安 全认证机制。,其它生物检测:指纹检测,虹膜检测,声音, 面部特征,对用户进行授权,对于不同身份的用户,设置不同的交易权限。,数据加密技术,常用的方针有:线路加密和端对端加密两种。 在线路上而不考虑信源与信宿, 是对保密信息通过各线路采用不同的加密密钥提供安全保护。 信息由发送者端通过专用的加密软件,采用某种加密技术对所发送文件进行加密,把明文(也即原文)加密成密文(加密后的文件,这些文件内容是一些看不懂的代码), 然后进入TCP/IP数据包封装穿过互联网, 当这些信息一旦到达目的地, 将由收件人运用相应的密钥进行解密, 使密文恢复成为可读数据明文。,相关技术,防火墙: “防火墙”是一种
25、形象的说法, 它其实就是一个把互联网与内部网(通常这局域网或城域网)隔开的屏障。 它是一种由计算机硬件和软件的组合, 使互联网与内部网之间建立起一个安全网关( scurity gateway), 从而保护内部网免受非法用户的侵入。,防火墙,(三)质量属性战术应对,1、可用性战术 2、可修改性战术 3、性能战术 4、安全性战术 5、可测试性战术 6、易用性战术,可测试性(Testability Tactics ),可测试性战术的目标是允许在完成软件开发的一个增量后,轻松地对软件进行测试。测试的目标是发现错误,可测试性战术的目标,可测试性战术分类图,输入/输出(Input/Output),记录/回放(Record/playback ):记录/回放是指将捕获跨接口的信息,并将其作为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国数字人民币跨境支付系统对接难点
- 2026东南亚新兴市场费托蜡进口替代机遇与本土化生产障碍报告
- 2025中国心力衰竭诊断与治疗指南
- 2025新中医药剂师资格考试必考题集试题及答案
- 2026中国华能宁夏能源有限公司新能源分公司校园招聘笔试模拟试题及答案解析
- 2026届上海市浦东新区川沙中学十校联考最后历史试题含解析
- 2026年税务师考试经典真题回顾
- 内镜诊疗室隐患排查评估整治技术指南(2025年版)
- 2026年建筑工程生产实习报告(5000字)
- 电气工作负责人岗位职责说明
- 工业区物业服务手册
- 知道网课智慧树《哲学导论(湖南师范大学)》章节测试答案
- 从苦难中开出永不凋谢的花 -《春望》《石壕吏》《茅屋为秋风所破歌》群诗整合教学
- JBT 3341-2024 蓄电池托盘堆垛车(正式版)
- 天津市基坑倾斜桩无支撑支护技术规程
- GJB9001C质量保证大纲
- DB37∕T 3487-2019 山东省钢质内河浮桥承压舟建造规
- 中铁二局 综合投资报告
- 近代物理实验指导书
- 人文地理学课件
- LY/T 2837-2017云南松抚育技术规程
评论
0/150
提交评论