软件体系结构课件_(第八课)质量属性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
命令/响应
心跳 异常
可以用层级形式组织 在不同进程 中操作 和命令/响应战术的区别是?
在一个进程中操作
什么是异常?
异常是对程序接口隐含假设的一种违反
例如:
Public
class void Transfer (Account from, Account to, Decimal amount)
质量属性
Review(复习)
几种常见的质量属性:
可用性 可修改性 性能 安全性 可测试性 易用性

可用性
和系统故障及其后果有关的质量属性 定义:?

平均正常工作时间 (平均正常工作时间 平均修复时间)
理解?
可理解为计算机在任一时刻正常工作的概率。
在何时需要强调可用性?
行初始化。(定期设置持久设备的系统状态 的检查点,并记录持久设备的所有状态变化 能够使备件设置为适当的状态)
备件
一般用于硬件/操作系统的解决方案
定期设置持久设备的系统状态的检查点,并记录持久设备 的所有状态变化能够使备件设置为适当的状态
状态记录
重启 出现故障
重新引入
Shadow操作
以前出现故障的组件可以在短时间

我们认为,解决该问题的关键,就是采用高可用
性的群集解决方案。在一个承担关键业务的计算 中心,采用多台主机共享一套存储设备存储业务 数据,主机之间通过物理连接形成一定的相互联 系,与相应的群集软件配合,可以实现如下功能: 当整套系统中出现任何一个单点故障,都有相应 的冗余部件代替发挥相应的功能,从而保证业务 的正常进行,在此过程中的物理设备和应用软件 的切换都不会被前端用户所察觉。
双机就绪模式

在这种模式下,两个主机都作为主服务器,共享自 己的磁盘阵列,各自承担一部分服务。例如服务器 A在执行应用A, 服务器B在执行应用B, 两个主机在 正常情况下各自独立运行自己的应用,两个主机同 时又都作为对方的待机服务器,通过心跳线监控对 方的状态。一旦某一服务器宕机,另一台服务器就 承担所有的服务,为所有的客户服务。即一旦服务 器A发生故障,服务器B马上接管服务器A上原来的 应用;或者服务器B发生故障,服务器A马上接管 服务器B上原来的应用,这是一种互为冗余的模式。
异常处理机制的好处
不必在异常出现的地方捕获或检测它们,这
会极大的简化编码工作,我们不必为每一个 可能失败的语句添加错误监测和校正代码。
错误恢复战术
错误恢复战术
表决
主动冗余 被动冗余 备件 Shadow操作 状态再同步 检查点/回滚
表决
冗余组件
输入值
输出值 表决者 组件 冗余组件
Transfer方法接受两个Account对象和一个Decimal数值,改值表 示在两个账号之间转账的数额。
调用该方法,会有一些很明显的假设: From参数指向一个有效的Account ,并且该帐户的余额大于指定的转账金额; 但从该方法的原型中不清楚:Amount必须是一个正数? 若from和to参数指向了同一个账号会发生什么?在同一个账户内进行转帐是否合法? 如果amount参数超出了类设计者设定的范围怎么办? 转账金额为0合法吗?
主机和备机是相对而言的,也就是说两者可
以各自负责某些服务及应用,两者可以互为 备份,即active/active模式。这样,既可以 提高系统的可靠性、冗余度,又可以充分利 用硬件资源。
多种冗余模式
中标普华高可用服务器系统提供了多种冗余
模式 :
双机在线待机模式 双机就绪模式 三主机模式
冗余处理器
用一定的表决算法进 行表决;多数规则或 首选组件
冗余组件
如果检测到单处理器的异常行为,则终止它或重起它。
主动冗余(热重启)

处在相同的状 态
同时响应
切换
使用第一个组件的响应
被动冗余(暖重启)
Old data
New data
备份
备件
一般用于硬件/操作系统的解决方案
重新启动为适当的软件配置,并对其状态进
高可用性集群系统解决方案
系统由主机A及备份机B组成,二者之间通过
一根心跳线相连(可以通过串口或以太网 口),共享一个磁盘阵列。由主机A对外提 供服务,备机B则通过心跳线来监测主机A, 一旦主机A出现故障(如电源失效、主要部 件失效、启动盘失效等导致系统发生故障), 备机B可以把主机上的所有资源接管过来, 从而继续对外提供服务。
双机在线待机模式

在这种模式下,一个服务器作为主服务器。正常情 况下其承担所有的服务。另外一台 服务器作为待机 服务器,正常情况下除了监控主服务器的状态,不 进行其他的操作。一旦主服务器宕机,待机服务器 就接手工作,成为新的主服务器。客户仍然可以拥 有同样的服务器IP地址、NFS、数据、数据库及其 他……实际上是在完成同一个功能应用,安装在主 机上的软件通过心跳线来实时监测对方的运行状态, 一旦正在工作的主机A因为各种硬件故障导致系统 发生故障,主机B立即投入工作。
} Catch } Finally{ }
该块中的代码ቤተ መጻሕፍቲ ባይዱ确保要执行的代码
(Exception){
异常处理实例





Void ReadData(String pathname){ FileStream fs=null; Try{ fs=new FileStream(pathname,Filemode.Open); …. } Catch (overflowException){ //存放overflowException异常的处理代码 } Finally{ if(fs!=null) fs.Close(); //确保文件被关闭 } }
这个属性对于一些安全性非常关键的系统是
十分重要的
一般会采用某种形式的“冗余”
可用性战术
相关概念:
错误
故障
可被观察到
可用性战术阻止错误发展成故障; 或者把错误的影响限制在一定范围内,从而使修复成为可能。
可用性战术
错误 所屏蔽的错误或所作 的修复
可用性战术
检测错误
错误恢复
错误检测战术
状态再同步
检查点/回滚
内以“Shadow模式”运行,以确保 在恢复该组件之前,模仿工作组件的 行为。
一般用于主动/被动冗余
当冗余组件失败时 ,可以在纠正该组 件后将其再次引入
在执行的程序中设置若干测试点, 在每个测试点上检查输出结果。当 测试程序检测出错误时,就认为正 在执行的程序是一个错误运行的系 统,这段程序要被重新执行,即程 序的回滚。
解决方案

虚拟服务器
错误预防战术
从服务中删除
事务 进程监视器
质量属性
通常应确定变更涉 及几个模块;时间、 资金预算
可修改性:有关变更的成本问题。 性能:与事件发生时,系统将要耗费多长时
间进行响应有关。 安全性:衡量系统在向合法用户提供服务的 同时,阻止非授权使用的能力。 可测试性:通过测试揭示软件缺陷的容易程 度。 易用性:对用户来说,完成某个期望任务的 容易程度和系统提供的用户支持的种类。
理想的情况:
异常处理机制
设计人员完全考虑了上述假设,并将它们写在设计文档中,开发人员据此可以 高效开发出代码
实际情况:
文档中对上述假设考虑不全,代码因此也未对相应情况处理; 在程序运行时才发现存在违例的情况;
?一个程序如何通知调用它
的程序它所作的假设被违反了呢?
答案是:抛出异常
异常处理
Try{
三主机模式
在这种模式中,待机服务器C同时监控主服
务器A与B的状态。一旦服务器A或B宕机, 服务器C将承担其服务,为客户服务。这种 系统结构既保证了系统的安全运行,又保证 了系统资源合理利用。
惠普高可用性解决方案
现状及问题 随着计算机在社会各个领域的广泛使用,人们已习 惯于计算机系统带来的便捷和高效率,但计算机系 统也非常脆弱,它会受各种因素的影响,如硬件系 统本身的故障,电源故障,病毒,自然 灾害或人为 的恶意破坏,都会导致系统无法正常运行。现有很 多系统均是单主机工作环境,任何一个单点故障, 都会影响企业业务的正常运转,而且产生很多不良 后果。
相关文档
最新文档