摘 要:在分布式组件过程中使用容错策略,能够显著提高信息系统的工作可靠性。本文基于提高系统容错能力的视角,阐述引入容错技术的组件式软件系统的开发与应用。
关键词:组件开发;分布式系统;容错应用
1.引言
随着信息技术的发展与应用逐步深入,越来越多的信息系统采用基于 B/S 结构的分布式结构,由此带来的网络安全问题与软件健壮性等问题变得不容忽视。信息系统只有准确、可靠地在可以接受的时间内提供服务,才能提高效率,避免损失。组件技术应用能够显著提升软件系统可靠性,本文基于提高系统容错能力的视角,阐述引入容错技术的组件式的软件系统的应用。
2.组件开发的分布式系统的容错研究
如何在软件设计领域引入容错技术,使软件的容错性能得到显著提升,日益得到了开发者的关注。容错软件是有一定限度的,这是由于为了实现容错,就必须付出提升资源开销的代价。冗余设计是软件容错设计方法之一,例如可以通过增加校验位来提升通讯冗余,从而使数据传输质量得到提高。另一种软件容错的实现方法是引入类的封装/重用技术或软件模块,采用新开发技术平台和应用架构,使软件可靠性得到提高。
2.1基于组件开发的分布式系统的容错模型
本文所设计的基于组件开发的分布式系统的容错模型如图所示:
图:基于组件开发的分布式系统的容错模型
下面进行具体的阐述:
在容错价值策略中,设计者要针对很多软件系统技术方面的因素做出决定,具体包括网络构件的模式、软件系统的支持系统平台等等。在最初设计软件系统的时候,为帮助系统建立完善的容错策略,开发者应该对软件系统怎样实现系统的可靠性的问题进行充分论证,需要指出的是,论证的过程应当在软件的设计阶段完成,而不是在软件编写过程时考虑,应该提前将容错价值策略规划清楚。
在开发系统时,应当意识到,对原有数据的不断延伸就是软件系统的执行过程,数据冗余存在的原因正是由于在这之中包含重复使用的数据。为了提高数据查询效率,就有必要对软件系统结构体系进行改进。此外,应使所开发的系统具备一个包括信息结构、事务对象、技术结构、应用结构的完整的软件系统结构,同时也要具备 能够改变传统的技术发展生命周期的发展措施。
可知,容错设计能够促使软件开发采用面向组件技术等新技术,这些模式具有自动垃圾收集、单亲继承、自动进行内存管理和组件技术,可以有效地利用系统资源,防止程序误操作引起的错误并提高软件品质。
2.2软件系统容错调度基本算法
(1)容错任务调度模型的构建
将系统需要处理的任务用T表示,这些任务之间的关系是相互独立或松散耦合的,本文将这些任务定义为一个多元组,多元组的构成为:(r,d,f,i, a,l,s,p)。其中,任务 T 的执行时间以元素r表示,必须执行完成任务T的最晚时刻以元素d表示,任务功能类别以元素f表示,任务运行属性以元素i表示,任务分配的优先级别以元素a表示,任务调度的优先级别以元素l表示,任务运行状态以元素s表示,任务分配在处理机上运行以元素p表示。
在此基础上,构建一个二元组(W,Ts)来描述每一个处理机 P 的当前状态。以参数w表示处理机运行状态,包括三种状态:脱故障状态、就绪状态以及工作状态。以参数Ts 表示该处理机上被分配的实时任务集。
(2)容错调度算法的设计
本文引入的容错调度算法属于采用解决容错问题的软件方法,这种方法的最大优势在于,既提高系统的可靠性,又不必付出额外的硬件代价。
本文将容错调度实时算法命名为“需求后无容错算法”。这种算法的思路为:第一步,将按计算时间非增把集合中的实时任务进行排序;第二步,对这些实时任务的基版本采用最大计算时间优先调度算法进行调度;第三步,对这些实时任务的副版本使用最大计算时间优先调度改进的算法进行调度;第四步,对集合中的实时任务进行调度,具体方法为:首先以时间非增为基准,对集合中所有的实时任务执行排序工作,接下来对这些实时任务用最大计算时间优先调度算法进行调度。最大计算时间优先调度算法分为以下两个步骤:(1)单处理器上的任务分配算法;(2)任务调度算法。这个算法不要求任务的时限等于其周期,对于异构分布式实时系统,同时可以适用于同时存在有容错需求的任务和无容错需求的任务的情况。容错调度算法首先将集合中的实时任务按计算时间非增进行排序。然后采用最大计算时间优先调度算法(LPT)对这些实时任务的基版本进行调度。再使用改进的最大计算时间优先词度算法(ALPT)调度这些实时任务的副版本。最后调度集合中的实时任务。
3.结束语
本文的分布式开发组件使用了容错策略思想,能够显著提高信息系统的工作可靠性。基于组件开发的分布式系统的容错应用能够为在有限的成本下开发具备良好可靠性的软件系统提供途径,具有很好的理论价值和实践意义。
参考文献:
[1]唐胜群、唐涛洲,软件体系结构与组件软件工程,计算机工程,2008年,第24卷,第8期,pp.32-35
[2]邹逢兴,张湘平,计算机应用系统的故障诊断与可靠性技术基础,高等教育出版社,2009
[3]景涛、白成刚等,构件软件的测试问题综述,计算机工程与应用,2010年,第24期,pp.1-6
[4]庞莉萍NFRL:一种分布系统的实时容错调度算法,小型微型计算机系统,2008年3月,第3期,pp.222-223