系统可靠性技术在智能手机Message开发过程中的应
中图分类号:TP311.5 文献标志码:A 文章编号:1006-8228(2014)06-30-02
0 引言
我单位从事的是智能手机系统项目的架构与研发工作,产品面向国外。目前,手机软件竞争非常激烈,新技术的市场期比较短,如果手机软件不稳定,可靠性差,将导致市场逐步丧失。Message系统是整个手机软件系统中非常重要的部分,它的可靠性直接影响到整个手机软件平台的稳定性和可靠性。在Message系统的开发过程中,我们特别加强了系统可靠性技术在开发中的运用。
1 系统可靠性理论概述
系统可靠性是指系统在规定的条件下和规定的时间内完成规定功能的能力[1]。影响系统可靠性的主要因素有:运行环境(系统可靠性的定义是相对于运行环境的);软件内部结构(内部结构越复杂,包含的缺陷数可能越多);软件的开发方法和开发环境;软件的可靠性投入等。
以下是几种系统可靠性常用的技术。
⑴ 容错设计技术。对于软件失效后果特别严重的场合,可采用容错设计方法。常用的软件容错技术有恢复块设计,N版本程序设计和冗余设计[2]。恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变成恢复块。一个恢复块中包含若干功能相同,设计差异的程序块,每一时刻有一个程序块处于运行状态,一旦某程序块出现故障,则备份程序块予以替换。N版本程序设计的核心是通过设计出多个模块和不同版本,对于相同初始条件和相同输入的操作结果进行多数表决(防止因其中某一软件模块/版本的故障而提供了错误的服务,以实现软件容错)[3]。冗余设计的思路来源于硬件系统,但有所不同,软件冗余设计技术是采用多种不同路径,不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换维持系统的正常运行。
⑵ 检测技术。在无须在线容错或不能采用冗余设计技术的部分,但又有较高可靠性要求时,一般采用检测性设计,在软件出现故障后能及时发现并报警[4]。但其明显的缺点是不能自动解决故障,如果没有人工干预,最终将导致系统不能正常运行。
⑶ 降低复杂度设计。软件复杂性与软件可靠性有密切的关系。软件复杂性是产生软件缺陷的重要根源[5]。降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构。
2 软件可靠性技术在Message系统中的应用
在Message系统中,与软件可靠性相关的有这几个部分:Message的接收,Message的发送,附件的添加,接收附件的保存,Message大批量删除等。下面分别说明。
⑴ Message的接收。Message的接收分为两种,一种是短信的接收,另一种是彩信的接收。短信的接收时间非常短,系统能在极短的时间内收到短信到达的消息,随后进行系统处理。因而其原始可靠性比较好。而彩信的接收时间比较长,且与彩信容量成正比,在收到彩信到达的消息后,还有一个相对较长时间的下载过程。所以,对于Message的接收,可靠性设计主要集中在彩信接收这方面。彩信接收的成功与否,与移动网络有很大关系。如果当前网络信号不好,则很有可能导致接收失败。而移动网络并非属于我们的范围,因此,可靠性设计主要集中在Message系统本身。无线网络上的数据,在未下载之前,Message系统是无法知道的,因此,不宜采用冗余技术。我们选择了检测技术。如果因为某些原因导致彩信接收失败,系统将给出提示,由用户选择是重新下载,还是放弃。
⑵ Message的发送。Message的发送,同样分为彩信的发送和短信的发送。短信的发送时间较短,可靠性好,而彩信的发送则时间比较长,容易产生不稳定因素。对于Message系统,彩信发送在可靠性方面的错误主要是数据丢失,在整个手机系统中,数据丢失的原因较多,为此,我们选用容错设计技术中的冗余技术。对于较大附件,采用备份保存,即使发送失败,仍然可以得到完整的数据,继续发送。
⑶ 附件的添加。当要发送彩信时,需要添加附件。附件的总大小必须小于300K。如果附件超过300K,必须进行缩减。如果图片面积比较大时,也必须对面积进行缩减。这一系列的算法,如果太过复杂,势必导致添加附件的时间过长,进而导致不稳定因素增加,出现附件添加失败的情况,这将破坏文件(文件读写操作进行到一般时被迫异常中断)。通过分析,我们决定采用两种可靠性技术:一是容错设计技术中的冗余技术,二是降低复杂度设计。
对于冗余技术,可适当增加附件的备份,当文件被破坏时,可使用备份的文件进行替代;对于降低软件复杂度,是针对附件或图片的缩减算法,使算法简单,不稳定因素减少。
⑷ 接收附件的保存。当收到彩信时,用户可以选择其附件进行保存。同样,保存算法耗时不宜过长,否则,也会使不稳定因素增加。因此,我们决定采用降低复杂度设计。
⑸ Message大批量删除。当系统存储的Message量非常大时(对于我们的系统,大于800条),删除过程将显得相对长一点。在这里,经过分析,我们采用容错设计技术中的恢复块设计。当某一删除程序出现故障时,则备份的删除程序进行替代运行。
⑹ 对于开发工具和环境而言,我们选择可靠性较高的Java语言,在Ubuntu Linux系统环境下进行开发。
3 结束语
本系统中通过可靠性技术的运用,使得Message子系统在可靠性较高的情况下圆满完成。可靠性技术的运用极大地缩短了同类项目的开发周期,节约了项目研发成本,增强了市场竞争力。由此可见,系统可靠性技术在智能手机Message开发过程中运用,较适用于此类周期短,技术要求高的智能手机项目,以及一些移动互联网软件项目,其实用前景较高。但是,在该系统中也存在一些不足之处,例如,一些恢复块的设计功能太过简单,有的不能完全替代恢复;冗余的数据量有时候过大,影响系统性能等。对于这些不足之处,有待于在未来的项目中进行改进。
参考文献:
[1] 赵靖,王延斌,曲立平,史长亭.软件可靠性工程[M].西北工业大学出版
社,2011.