航天真空热试验测控平台可靠性保障技术探讨

2015-12-23 01:07熊叶青张树东
计算机工程与设计 2015年2期
关键词:软件可靠性测控集群

熊叶青,张树东,韦 冰

(首都师范大学 信息工程学院,北京100048)

0 引 言

航天活动中的测控任务等关键业务量的增长和对服务质量要求的提高,高可靠性、高可用性和易维护性日益成为航天测控系统的设计目标。而软件可靠性已变得越来越重要,特别是对于安全关键和任务关键的系统尤其如此。航天器组件日趋复杂化,高可靠性和高自动化的真空热试验是保证航天器组件质量的重要环节之一。其测控平台主要承担着航天器真空热试验时的温度测量、空间外热流模拟、航天器温度控制等关键任务。高可靠的测控平台,是航天器在地面成功实现各类空间环境试验不可或缺的,对掌握航天器的环境适应性,保证航天器质量,确保航天活动正确进行具有重要作用。从提高软件的可靠性角度出发,针对测控平台的实时性特点,本文提出了一种分布式四层架构模型,该模型遵循高内聚低耦合的原则,在测控系统中具有广泛地适用性。

1 可靠性技术的研究

目前软件可靠性技术主要可以划分成三类:避错技术,排错技术和容错技术[1]。通常软件错误需要经历软件错误,软件缺陷,软件故障和软件失效这一过程才能最终导致软件功能的部分或全部失效[2]。因此,在软件设计阶段,我们应从软件源头入手,减少软件错误的产生;同时,一旦错误产生,应该在演变过程中设置不同的屏障,防止错误的蔓延和扩展。

1.1 避错技术

避错技术是指采用正确的设计和质量控制方法尽量避免把故障引进系统以及尽量减少各模块的失效率,它主要采用设计方法学来使得软件尽可能的无错。因此,避错技术通常包括软件说明书设计,软件结构设计,模块设计,健壮性设计,编程风格等可靠性设计。

(1)软件结构设计。软件结构设计分为系统结构设计和程序结构设计。前者是把大而复杂的软件系统分解成子系统,主要有分层抽象法,模式驱动法,领域驱动法等;后者的任务侧重于定义程序的全部模块、模块间的优先结构及模块间的接口关系。

(2)模块化设计。模块化设计中,系统模块化分解后,各个模块之间的耦合度是影响模块独立性,即影响避错设计的一个重要因素。在软件开发过程中应该严格遵守高内聚、低耦合的软件设计原则。文中利用模块化设计方案对基于DSP的无人机导航系统软件进行实现,提高了系统的实时性,可继承性和维护性[3]。

(3)健壮性设计。健壮性设计主要是使系统能够抵御各种外界干扰,防止错误输入和错误操作等不确定性因素造成系统错误,如.net数据验证技术、正则表达式等都能够对非法输入进行分类处理,阻止错误向系统内部转移,起到屏蔽软件错误的作用。

避错技术是提高系统可靠性的第一道防线,在软件错误演变过程中起着减少软件错误的重要作用。文中提出了一种软件故障诊断过程框架,将软件故障检测、故障定位、故障排除等活动集成在一起,把这种框架设计用于实际的软件故障诊断,验证了其有效性.避错设计在系统软件设计中合理运用对提高系统可靠性具有重要的应用[4]。

1.2 排错技术

排错技术的使用能够大幅度地提高软件的可靠性,但当软件系统很复杂时,很难通过计算机语言用形式化的方法把它们合理地表达出来,因此需要采用查错,纠错等手段,排除系统错误。

(1)软件测试技术:软件测试的目的在于发现程序中的错误,尽可能提高代码的正确性和健壮性。可靠性测试过程中搜集到的测试数据是评估软件可靠性水平的重要依据。常用错误密度、出错率和缺陷指数等指标来确定系统是否进行了足够的测试。设测试时间周期T 内,第i次代码测试发现的错误数为ni,则总错误数为NT=∑ini;错误密度 (nd)表示每千行源代码 (kLOC)的错误率,则有nd=NT/kLOC;出错率 (nr)表示每单位时间内的出错数,则nr=NT/T,缺陷指数 (nq)表示错误的严重程度。测试过程中每次发现的错误,我们可以区分为严重错误、中等错误和轻度错误三类,并分别赋予不同的错误权重w1,w2,w3。设第i次测试的错误数ni中,发现的严重错误数是hi,中间错误数是mi,轻度错误数是li,则该次测试的缺陷指数定义为pi=(w1×hi+w2×mi+w3×li)/ni。若考虑软件生命周期各个阶段的权重,设第i次测试的阶段权重为qi,则在测试时间周期T 内的缺陷指数是:Nq=∑i(qi×pi)/kLOC。

测试过程中对这些可靠性测试指标的确定,不仅有利于评估软件可靠性水平,同时有利于建立软件可靠性模型对软件可靠性进行预测。

(2)软件可靠性模型:通过软件测试,我们可以获得系统的错误数据、失效数据、缺陷数据等,结合这些数据,有助于软件可靠性模型的建立。

软件可靠性模型是软件可靠性定量评估技术的核心,能够帮助我们对软件可靠性进行测试、评价、估测及验证。Martin等提出了基于模型开发和自动化验证的方法,该方法符合欧洲标准ECSS-E-ST-40C系列,适合航空航天领域中安全性至关重要的软件开发和测试[5]。Long等利用软件可靠性增长模型跟踪和预测软件可靠性增长用于提高软件质量[6]。

(3)故障检测技术:故障检测是容错的前提和基础。我国针对某一号卫星的可靠性专门设计了智能故障诊断系统,该系统采用XML语言对任务失效准则进行描述,不仅能准确地判断故障,同时能提供故障趋势警告,帮助故障检测人员实施正确的对策[7]。

航天系统依赖于硬件和软件的组合,许多软件测试方法专注于源代码,却忽略了由硬件故障或异常所引发的软件错误。Wu J讨论了一般性的 “硬件故障—软件异常—系统故障”的流程,并阐述了有关软硬件故障检测的方法[8]。Yan Zhang等以DFT 理论为背景,对几种硬件故障算法进行了仿真,分析、比较了它们在提高可靠性方面的优缺点[9]。

1.3 容错技术

借助避错、排错技术不可能使系统完全不存在错误或缺陷,因此软件容错技术成为提高系统可靠性的关键所在。软件容错技术是指系统在发生错误的情况下,仍能不中断系统正确、稳定地运行。其基本思想是冗余技术,即在一个部件上并联相同的备份部件,当该部件发生故障时,备份部件取代故障部件。目前,主要的容错技术有RAID 技术,全冗余双机热备技术,容灾备份技术,集群技术等,此外还有一些在特定环境下使用的USP监控系统技术等。

(1)RAID 技术。RAID 是一个硬盘组,具有较高的存储性能和数据备份功能。当数据发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障数据的安全性。

(2)全冗余双机热备技术。该方法利用心跳信息在主备服务器之间相互传递状态信息的方法,实现备用服务器对主服务器的不断监听,同时通过同步数据备份技术实现主备服务器中数据的一致性。

(3)容灾备份。容灾备份是在本地和相隔较远的异地,建立2套或多套功能相同的系统,互相之间通过健康状态监视和功能切换,利用地理上的分散性来保证关键业务和数据对于灾难性事件的抵御和恢复能力。

(4)集群。高可靠性集群,当集群中其计算机出现故障时,在故障机上运行的任务可以自动由其它运行正常的计算机接替,使整个集群的服务仍然可以正常运行。章宏灿等人利用基于Markov模型的集群RAID5构建可靠性存储系统,提高了系统重构速率和可靠性[10]。

2 分布式系统的可靠性设计

2.1 系统模型

在航天、航空、军事等领域的工业应用中,计算机群经常需要与各类设备进行通信,实现控制、测量、管理等功能。在通用的三层结构模型的基础上,进一步融合设备层,将形成图1所示的四层分布式系统结构模型。该模型由展现层、业务层、数据层、设备控制层构成。各层之内仍然保持高度内聚,层次之间则通过松耦合接口和密集消息交互。

图1 四层架构模型

基于上述抽象的四层分布式系统模型,能够根据不同的业务需求形成不同的分布式应用系统。航天器真空热试验平台利用设备层对温度的控制、测量、管理实现对航天器组件的热流模拟等达到对航天器组件进行真空热试验的目的,它符合上述的四层分布式系统模型,是一个典型的基于四层模型的分布式应用实例。下面对其各层的详细设计进行展开介绍。

2.2 设备控制层设计

设备控制层直接与设备进行通信,对设备进行控制和管理。借鉴文献 [8]中对软硬件实时监控的思想,补充以智能诊断的功能,在设备控制层设计了智能代理,实现对设备的智能诊断、自动检测等功能。

智能代理主要由能够完成实时对设备的各种状态信息的采集、处理的监测程序和利用人工智能推理机制、领域专家知识、装备管理信息等对故障能够进行分析、比较、判断、反馈的故障诊断程序组成。

监测程序通过命令、设备寄存器等方式完成对实时信号、状态的采集、处理,监控人员也可在本地对设备进行监测和控制。监测程序采集的状态信息会在数据库中进行存储,作为运行历史数据为以后分析、设备维护、可靠性预测提供依据;同时根据代理配置,数个周期之内的状态信息会在本地进行存储,有助于故障诊断系统迅速从本地获取数据进行分析、处理、诊断,从而减少系统的吞吐量,加快响应时间,提高系统的可靠性。

代理根据诊断结果生成指令对设备状态进行调控,同时向客户端反馈状态信息及诊断结果,并将其存入数据库中。若智能诊断系统无法对故障进行诊断,诊断系统会通过服务器向客户端推送相关信息,在领域专家的参与下,获得问题的解决方案对设备进行控制。

2.3 高可用数据库设计

数据层用于存储各类数据,其可靠性与系统的安全性、稳定性、持久性密切相关。测控平台绝大部分功能在处理各类数据,尤其是试验过程中产生的大量数据会存储到数据库中,供专家进行分析、评估、预测等,因此确保数据的完整性和可用性十分重要。

通常把集群分为高可用性集群、负载均衡集群和高性能集群[11]。常用的机器的稳定可用性可定义为A =MTTF/(MTTF +MTTR),其中MTTF 是机器的平均无故障时间,MTTR 是错误的平均修复时间。同样地,软件的可靠性也可以用错误出现和纠正的速率来表示。高可用集群的目的是减少服务中断时间,故障转移集群是其中一种。

当系统检测到故障时自动进行故障转移。即故障转移集群会停止当前的活动节点,根据转移策略,选择新节点,启动新的实例进程,对未完成的事务进行回滚。同时由于数据是存储在共享的SAN 上,在故障转移过程中并不需要数据复制,宕机时间也就只发生在故障转移时的短暂瞬间,这样就尽可能地提高了MTTF ,减小了MTTR ,从而使整个系统具有较高的可用性、可靠性。

文献 [7]中采用数据库集群的高可用设计实现卫星控制中心系统平台,使系统的高可用度提高了1.5 倍。SQL Server解决高可用性问题的方案之一是故障转移集群,故障转移集群具有明显的快速恢复,零数据丢失、自动故障转移的特性,能有效解决测控平台对实时采集、存储数据的功能需求。

2.4 负载均衡集群设计

业务服务层是连接设备控制层、数据层和展现层的桥梁,系统业务的复杂性等将使服务器面临服务超载、网络拥塞、数据信息量过大的挑战。提高单个服务器硬件的性能,并不能从根本上解决问题,因为单台服务器的性能是有限的[12]。

负载均衡集群是把大量的同一类型的并发访问,分担到多台节点设备上分别处理,提高系统的可靠性。为了应对日益复杂的各类航天空间环境试验,最大程度地保持最优服务质量。服务端模块采用负载均衡技术,其负载均衡体系结构如图2所示。

图2 服务端模块负载均衡体系结构

当服务器接收到外界的请求,负载均衡器会根据监控获取集群里各后台服务器的健康状况和权重,将客户端的请求根据加权最小连接度算法把请求发送给处理能力强,任务少的后台服务器。设计的主、备负载均衡器,与集中式负载均衡相比,能解决其只能集中处理所有的负载服务,不能分发所有客户请求这个系统瓶颈问题,有效防止产生单点故障,提高系统的可靠性。

设备控制层的智能代理和数据层的高可用数据库都是部署在图2中的真实服务器上,这些都要求系统具有较高的可用性。负载均衡体技术能够实现当某台服务器出现障碍时,负载均衡器可以立刻分配其它的应用服务器并由该应用服务器继续提供服务,使得服务器集群具有一定的容错性、可用性,能从错误中恢复过来。

2.5 展现层设计

展现层是人机交互的接口,它位于系统的最外层,主要接受用户的请求,用数据、图、表的形式向用户返回,并为客户端提供应用程序的访问。

客户端需要不断接收服务端发送给客户端以及用户给服务端的重要数据。在实际应用中,由于系统的复杂性、人为的误操作等均可导致客户端关闭、停止工作。为了解决因客户端程序关闭不能及时接收服务层数据,造成数据延时、丢失的不一致性问题,我们在展现层设计了基于操作系统服务的服务代理模块。

该模块的存在可以在客户端崩溃后,继续维持与服务的会话,接收服务端的重要数据,在一定程度上维持了数据的完整性。据统计,代理模块能够对实时系统的可靠性提高约10%。在服务代理中,对接收的数据进行本地化保存,因此加载数据无需通过网络访问远程数据库,极大提高了数据分析模块在数据加载方面的速度。

服务代理的设计可以避免由于系统资源问题和低级操作错误带来的风险,在一定程度上保障程序运行的可靠性,但也并非绝对安全。当计算机需要重启时,服务代理必须重启而仍可能会导致数据丢失。因此,在客户端的下层额外设计了在服务重新联机时的数据同步机制。

3 结束语

测控平台系统在四层架构模型的基础上,引入智能代理的诊断和检测、数据库容错、服务器集群和基于操作系统服务的服务代理等软件可靠性技术,使其在软件错误演变过程中对错误进行规避、排除、纠正和容错,加快了系统的响应时间,使系统具有伸缩性、可靠性。文献 [13,14]中着重从测控平台的功能需求对系统结构进行模块化划分,使计算节点之间具有较高程度的耦合,相邻两层之间在对外服务上具有依赖性。相比而言本文利用基于构件技术的可靠性设计方法,其结构是松散分布式的,具有部署灵活、通信方便、扩展性强等优点。该模型不仅适用于航天测控平台系统,同时也适用于温度、分布式等测控系统,适用性广。

[1]JIN Ping,ZHANG Xiaochun.Airborne software reliability design based on DO-178B [J].Software,2012,33 (6):44-47(in Chinese).[金平,章晓春.基于DO-178B的机载软件可靠性设计 [J].软件,2012,33 (6):44-47.]

[2]CHEN Jianwei.Research of four-tier design method of software reliability [J].Industry and Mine Automation,2010,36(11):80-83 (in Chinese).[陈建伟.四级阶梯式软件可靠性设计方法研究 [J].工矿自动化,2010,36 (11):80-83.]

[3]SU Shaoliang,YAN Jianguo,LYongyin.A modularized software design for UAV navigation system based on DSP [J].Electronic Design Engineering,2013,21 (16):79-82 (in Chinese).[苏少良,闫建国,吕永银.某无人机导航控制系统模块化设计 [J].电子设计工程,2013,21 (16):79-82.]

[4]SHAN Jinhui,XU Kejun,WANG Ji.A kind of software faults diagnosing framework [J].Chinese Journal of Computers,2011,34 (2):372-373 (in Chinese). [单锦辉,徐克俊,王戟.一种软件故障诊断过程框架 [J].计算机学报,2011,34 (2):372-373.]

[5]Martin L,Schatalov M,Hagner M,et al.A methodology for model-based development and automated verification of software for aerospace systems [C]//Aerospace Conference.IEEE,2013:1-19.

[6]Long E A,Gullo L,Nikora A P.Applying software reliability growth models to DOD systems[C]//IEEE 23rd International Symposium on Software Reliability Engineering Workshops,2012:27-36.

[7]SHANG Huiping,JIA Ying,ZHENG Huiying.Design and implementation of high availability SCC system platform [J].Journal of Spacecraft TT&C Technology,2010,29 (1):17-21 (in Chinese).[尚慧萍,贾颖,郑慧英.卫星控制中心系统平台的高可用设计与实现[J].飞行器测控学报,2010,29 (1):17-21.]

[8]Wu J.Stress testing software to determine fault tolerance for hardware failure and anomalies [C]//IEEE Autotestcon,2012:294-298.

[9]Zhang Y,Guan Y,Wang G.Analysis and comparison of fault simulation [C]//International Symposium on Intelligent Ubiquitous Computing and Education.IEEE,2009:503-506.

[10]ZHANG Hongcan,XUE Wei.Reliability analysis of cluster RAID5storage system [J].Journal of Computer Research and Development,2010,47 (4):727-735 (in Chinese).[章宏灿,薛巍.集群RAID5存储系统可靠性分析 [J].计算机研究与发展,2010,47 (4):727-735.]

[11]WU Dong,GAO Jiaqiong.The research and deployment failover clustering technology [J].Information & Communications,2013,27 (5):25-25 (in Chinese). [巫 冬,高加琼.故障转移群集技术研究与部署 [J].信息通信,2013,27 (5):25-25.]

[12]LIU Chang,WANG Yirong.The software architecture design of measurement and control system in vacuum thermal tests [J].Spacecraft Environment Engineering,2010,27 (3):324-327(in Chinese).[刘畅,王奕荣.真空热试验测控软件系统架构设计[J].航天器环境工程,2010,27 (3):324-327.]

[13]XU Yingxue,CHEN Jinming,WANG Yirong.The software platform for analysis,test and evaluation of spacecraft vacuum thermal environment adaptability [J].Spacecraft Environment Engineering,2013,30 (4):370-374 (in Chinese).[徐英学,陈金明,王奕荣.航天器真空热环境适应性试验分析及评价软件平台 [J].航天器环境工程,2013,30 (4):370-374.]

猜你喜欢
软件可靠性测控集群
海上小型无人机集群的反制装备需求与应对之策研究
基于LabWindows/CVI与TekVISA的Tek示波器远程测控软件设计
软件可靠性工程综合应用建模技术研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
基于现代测控技术及其应用分析
向着新航程进发——远望7号测控船首航记录
数控系统软件可靠性设计与故障分析技术
基于USB2.0协议的通用测控通信接口设计