论高可靠性系统中软件容错技术的应用
容错技术是当前计算机领域研究的热点之一,是提高整个系统可靠性的有效途径,许多重要行业(如航空、航天、电力、银行等)对计算机系统提出了高可靠、高可用、高安全的要求,用于保障系统的连续工作,当硬件或软件发生故障后,计算机系统能快速完成故障的定位与处理,确保系统正常工作。
对于可靠性要求高的系统,在系统设计中应充分考虑系统的容错能力。通常,在硬件配置上采用了冗余备份的方法,以便在资源上保证系统的可靠性。在软件设计上,主要考虑对错误(故障)的过滤、定位和处理,软件的容错算法是软件系统需要解决的关键技术,也是充分发挥硬件资源效率,提高系统可靠性的关键。
请围绕"高可靠性系统中软件容错技术的应用"论题,依次从以下3个方面进行论述:
①简述你参与设计和开发的、与容错相关的软件项目及你所承担的主要工作。
②具体论述你在设计软件时,如何考虑容错问题,采用了哪几种容错技术和方法。
③分析你所采用的容错方法是否达到系统的可靠性和实时性要求。
软件容错的主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性,保证整个计算机系统的正常运行。
软件容错技术主要有恢复块方法和N版本程序设计,另外还有防卫式程序设计等。
在进行本文的写作时,要注意以下几个方面:
①项目的概述,包括软件项目的功能与性能要求、软件整体结构、硬件环境描述:在项目中对容错的具体要求;所承担的工作内容。
②作为容错技术,主要考虑4种冗余:硬件冗余、软件冗余、信息冗余和时间冗余。但作为一个具体软件系统,往往会采用多种技术去实现,这里应给出具体实现方法。
③对自己采用的容错技术的结果进行系统的可靠性分析。主要说明以下几点:
通过容错技术实施,系统整个项目达到了几余度(如两余度、四余度、六余度)。
给出本软件的可靠性指标。
分析出软件容错的实时性指标,如恢复时间、重组合(或称重构)时间。
计算机控制系统的软件主要分为系统软件和应用软件,应用软件一般不需要用户设计,系统软件都要由用户自行编写,所以软件设计主要是系统软件设计。
嵌入式系统基本架构主要包括哪几部分?
答案:
基于软件架构的设计(ArchitectureBasedSoftwareDevelopment,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用(1)来描述软件架构,采用(2)来描述需求。
空白(2)处应选择() 软件系统架构
博学公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。如图12-6所示给出了该系统的简化示意图。表12-2描述了各种系统输入的含义。
公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。
在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。
架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、()和架构配置。
请详细阅读有关嵌入式软件架构设计方面的描述,回答问题1和问题2。
在嵌入式系统中,软件采用开放式架构已成为新的发展趋势。软件架构设计的优劣将直接影响软件的重用和移植能力。
某软件公司主要从事宇航领域的嵌入式软件研发工作。经二十多年的发展,其软件产品已被广泛应用于各种航天飞行器中。该公司积累了众多成熟软件,但由于当初没有充分考虑软件的架构,原有软件无法被再利用,为适应嵌入式软件技术发展需要,该公司决策层决定成立宇航嵌入式软件开放式架构研究小组,为公司完成开放式架构的定义与设计,确保公司软件资源能得到充分利用。研究小组查阅了大量的国外资料和标准,最终将研究重点集中在了SAEAS4893《通用开放式架构(GOA)框架》标准,图20-1给出了GOA定义的架构图。
阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题3。
博学公司欲针对Linux操作系统开发一个KWIC(Key Wordin Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序.子程序的架构风格,而李工则主张采用管道.过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。
阅读以下关于软件架构评估的说明,在答题纸上回答问题1和问题2。
某网上购物电子商务公司拟升级正在使用的在线交易系统,以提高用户网上购物在线支付环节的效率和安全性。在系统的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:
①正常负载情况下,系统必须在0.5秒内对用户的交易请求进行响应。
②信用卡支付必须保证99.999%的安全性。
③对交易请求处理时间的要求将影响系统的数据传输协议和处理过程的设计。
④网络失效后,系统需要在1.5分钟内发现错误并启用备用系统。
⑤需要在20人月内为系统添加一个新的CORBA中间件。
⑥交易过程中涉及到的产品介绍视频传输必须保证画面具有600×480的分辨率,20帧/秒的速率。
⑦更改加密的级别将对安全性和性能产生影响。
⑧主站点断电后,需要在3秒内将访问请求重定向到备用站点。
⑨假设每秒中用户交易请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的交易请求”这一要求是可以实现的。
⑩用户信息数据库授权必须保证99.999%可用。
11.目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性。12.更改Web界面接口必须在4人周内完成。
13.系统需要提供远程调试接口,并支持系统的远程调试。
在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了3个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。
论文:论信息系统的架构设计架构是信息系统的基石,对于信息系统项目的开发来说,一个清晰的架构是首要的。传统的开发过程可以划分为从概念直到实现的若干个阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。架构的建立应位于需求分析之后,软件设计之前。
请围绕“信息系统的架构设计”论题,分别从以下3个方面进行论述:
(1)简要叙述你参与分析和设计的信息系统(项目的背景、发起单位、目的、项目周期、交付的产品等),以及你在该项目中的工作。
(2)结合你的项目经历,论述在系统开发中,为什么要重视架构设计。详细讨论你是如何设计系统架构的(3)你的架构设计中还存在哪些问题?如何改进?
论文:论混合软件架构的设计
C/S架构将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。
B/S架构是随着Internet技术的兴起,对C/S架构的一种变化或者改进的结构。在B/S架构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。由于C/S架构和B/S架构各有其优点和缺点,可以适用在不同的应用场合,在某些场合中,可能把C/S架构和B/S架构混合进行设计,更能满足系统的需求,这些需要包括功能上的,也包括性能上的。
请围绕“混合软件架构的设计”论题,依次对以下3个方面进行论述。
(1)概要叙述你参与设计和开发的软件项目以及你所担任的主要工作。
(2)简要说明C/S架构和B/S架构的优点和缺点。
(3)详细说明C/S和B/S混合架构的实现方式,在你的系统中具体是如何实现这种混合架构的,这种设计有什么优点。
论文:论软件架构的选择与应用
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm)。对软件架构风格的研究和实践促进了对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。架构风格的不变部分使不同的系统可以共享同
一个实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地理解系统的架构。例如,如果某人把系统描述为C/S模式,则不必给出设计细节,我们立刻就会明白系统是如何组织和工作的。请围绕“软件架构的选择与应用”论题,依次对以下3个方面进行论述。
(1)概要叙述你参与设计和开发的软件项目以及你所担任的主要工作。
(2)详细论述你是如何根据项目的实际需要设计软件架构的,特别是如何选择多种不同的架构来实现系统的。
(3)分析你采用的架构所带来的效果,你的设计还存在哪些不足之处。
某软件公司开发一项基于数据流的软件,其系统的主要功能是对输入的数据进行多次分析、处理和加工,生成需要的输出数据。需求方对该系统的软件可靠性要求很高,要求系统能够长时间无故障运行。该公司将该系统设计交给王工负责。王工给出该系统的模块示意图如图12-18所示。王工解释:只要各个模块的可靠度足够高,失效率足够低,则整个软件系统的可靠性是有保证的。
李工对王工的方案提出了异议。李工认为王工的说法有两个问题:第一,即使每个模块的可靠度足够高,假设各个模块的可靠度均为0.99,但是整个软件系统模块之间全部采用串联,则整个软件系统的可靠度为0.99=0.96,即整个软件系统的可靠度下降明显;第二,软件系统模块全部采用串联结构,一旦某个模块失效,则意味着整个软件系统失效。
李工认为,应该在软件系统中采用冗余技术中的动态冗余或者软件容错的N版本程序设计技术,对容易失效或者非常重要的模块进行冗余设计,将模块之间的串联结构部分变为并联结构,来提高整个软件系统的可靠性。同时,李工给出了采用动态冗余技术后的软件系统模块示意图,如图12-19所示。
刘工建议,李工方案中M1和M4模块没有采用容错设计,但M1和M4发生故障有可能导致严重后果。因此,可以在M1和M4模块设计上采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。
注:假设各个模块的可靠度均为0.99
基于软件架构的设计(ArchitectureBasedSoftwareDevelopment,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用(1)来描述软件架构,采用(2)来描述需求。
空白(1)处应选择() 论高可靠性系统中软件容错技术的应用
容错技术是当前计算机领域研究的热点之一,是提高整个系统可靠性的有效途径,许多重要行业(如航空、航天、电力、银行等)对计算机系统提出了高可靠、高可用、高安全的要求,用于保障系统的连续工作,当硬件或软件发生故障后,计算机系统能快速完成故障的定位与处理,确保系统正常工作。
对于可靠性要求高的系统,在系统设计中应充分考虑系统的容错能力。通常,在硬件配置上采用了冗余备份的方法,以便在资源上保证系统的可靠性。在软件设计上,主要考虑对错误(故障)的过滤、定位和处理,软件的容错算法是软件系统需要解决的关键技术,也是充分发挥硬件资源效率,提高系统可靠性的关键。
请围绕"高可靠性系统中软件容错技术的应用"论题,依次从以下3个方面进行论述:
①简述你参与设计和开发的、与容错相关的软件项目及你所承担的主要工作。
②具体论述你在设计软件时,如何考虑容错问题,采用了哪几种容错技术和方法。
③分析你所采用的容错方法是否达到系统的可靠性和实时性要求。
免费的网站请分享给朋友吧