朱進(jìn)
摘 要: 智能手機(jī)系統(tǒng)軟件目前競(jìng)爭(zhēng)激烈,對(duì)系統(tǒng)可靠性要求較高,Message(短信/彩信)系統(tǒng)是手機(jī)軟件中較重要的一個(gè)部分,其系統(tǒng)可靠性對(duì)整個(gè)手機(jī)軟件的可靠性起到很重要的作用。以Message系統(tǒng)為例,探討了針對(duì)可靠性的常用技術(shù)在智能手機(jī)系統(tǒng)開(kāi)發(fā)過(guò)程中的運(yùn)用,包括容錯(cuò)設(shè)計(jì),檢測(cè)技術(shù),降低復(fù)雜度設(shè)計(jì)。通過(guò)可靠性技術(shù)的運(yùn)用,使得Message系統(tǒng)以高可靠性圓滿完成。由此可見(jiàn),系統(tǒng)可靠性技術(shù)較能適用于此類周期短,系統(tǒng)可靠性要求高的智能手機(jī)項(xiàng)目,以及一些移動(dòng)互聯(lián)網(wǎng)軟件項(xiàng)目,其實(shí)用前景較好。
關(guān)鍵詞: 系統(tǒng)可靠性; 容錯(cuò)設(shè)計(jì); 檢測(cè)技術(shù); 降低復(fù)雜度設(shè)計(jì); Message
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)06-30-02
0 引言
我單位從事的是智能手機(jī)系統(tǒng)項(xiàng)目的架構(gòu)與研發(fā)工作,產(chǎn)品面向國(guó)外。目前,手機(jī)軟件競(jìng)爭(zhēng)非常激烈,新技術(shù)的市場(chǎng)期比較短,如果手機(jī)軟件不穩(wěn)定,可靠性差,將導(dǎo)致市場(chǎng)逐步喪失。Message系統(tǒng)是整個(gè)手機(jī)軟件系統(tǒng)中非常重要的部分,它的可靠性直接影響到整個(gè)手機(jī)軟件平臺(tái)的穩(wěn)定性和可靠性。在Message系統(tǒng)的開(kāi)發(fā)過(guò)程中,我們特別加強(qiáng)了系統(tǒng)可靠性技術(shù)在開(kāi)發(fā)中的運(yùn)用。
1 系統(tǒng)可靠性理論概述
系統(tǒng)可靠性是指系統(tǒng)在規(guī)定的條件下和規(guī)定的時(shí)間內(nèi)完成規(guī)定功能的能力[1]。影響系統(tǒng)可靠性的主要因素有:運(yùn)行環(huán)境(系統(tǒng)可靠性的定義是相對(duì)于運(yùn)行環(huán)境的);軟件內(nèi)部結(jié)構(gòu)(內(nèi)部結(jié)構(gòu)越復(fù)雜,包含的缺陷數(shù)可能越多);軟件的開(kāi)發(fā)方法和開(kāi)發(fā)環(huán)境;軟件的可靠性投入等。
以下是幾種系統(tǒng)可靠性常用的技術(shù)。
⑴ 容錯(cuò)設(shè)計(jì)技術(shù)。對(duì)于軟件失效后果特別嚴(yán)重的場(chǎng)合,可采用容錯(cuò)設(shè)計(jì)方法。常用的軟件容錯(cuò)技術(shù)有恢復(fù)塊設(shè)計(jì),N版本程序設(shè)計(jì)和冗余設(shè)計(jì)[2]。恢復(fù)塊設(shè)計(jì)就是選擇一組操作作為容錯(cuò)設(shè)計(jì)單元,從而把普通的程序塊變成恢復(fù)塊。一個(gè)恢復(fù)塊中包含若干功能相同,設(shè)計(jì)差異的程序塊,每一時(shí)刻有一個(gè)程序塊處于運(yùn)行狀態(tài),一旦某程序塊出現(xiàn)故障,則備份程序塊予以替換。N版本程序設(shè)計(jì)的核心是通過(guò)設(shè)計(jì)出多個(gè)模塊和不同版本,對(duì)于相同初始條件和相同輸入的操作結(jié)果進(jìn)行多數(shù)表決(防止因其中某一軟件模塊/版本的故障而提供了錯(cuò)誤的服務(wù),以實(shí)現(xiàn)軟件容錯(cuò))[3]。冗余設(shè)計(jì)的思路來(lái)源于硬件系統(tǒng),但有所不同,軟件冗余設(shè)計(jì)技術(shù)是采用多種不同路徑,不同算法或不同實(shí)現(xiàn)方法的模塊或系統(tǒng)作為備份,在出現(xiàn)故障時(shí)進(jìn)行替換維持系統(tǒng)的正常運(yùn)行。
⑵ 檢測(cè)技術(shù)。在無(wú)須在線容錯(cuò)或不能采用冗余設(shè)計(jì)技術(shù)的部分,但又有較高可靠性要求時(shí),一般采用檢測(cè)性設(shè)計(jì),在軟件出現(xiàn)故障后能及時(shí)發(fā)現(xiàn)并報(bào)警[4]。但其明顯的缺點(diǎn)是不能自動(dòng)解決故障,如果沒(méi)有人工干預(yù),最終將導(dǎo)致系統(tǒng)不能正常運(yùn)行。
⑶ 降低復(fù)雜度設(shè)計(jì)。軟件復(fù)雜性與軟件可靠性有密切的關(guān)系。軟件復(fù)雜性是產(chǎn)生軟件缺陷的重要根源[5]。降低復(fù)雜度設(shè)計(jì)的思想就是在保證實(shí)現(xiàn)軟件功能的基礎(chǔ)上,簡(jiǎn)化軟件結(jié)構(gòu)。
2 軟件可靠性技術(shù)在Message系統(tǒng)中的應(yīng)用
在Message系統(tǒng)中,與軟件可靠性相關(guān)的有這幾個(gè)部分:Message的接收,Message的發(fā)送,附件的添加,接收附件的保存,Message大批量刪除等。下面分別說(shuō)明。
⑴ Message的接收。Message的接收分為兩種,一種是短信的接收,另一種是彩信的接收。短信的接收時(shí)間非常短,系統(tǒng)能在極短的時(shí)間內(nèi)收到短信到達(dá)的消息,隨后進(jìn)行系統(tǒng)處理。因而其原始可靠性比較好。而彩信的接收時(shí)間比較長(zhǎng),且與彩信容量成正比,在收到彩信到達(dá)的消息后,還有一個(gè)相對(duì)較長(zhǎng)時(shí)間的下載過(guò)程。所以,對(duì)于Message的接收,可靠性設(shè)計(jì)主要集中在彩信接收這方面。彩信接收的成功與否,與移動(dòng)網(wǎng)絡(luò)有很大關(guān)系。如果當(dāng)前網(wǎng)絡(luò)信號(hào)不好,則很有可能導(dǎo)致接收失敗。而移動(dòng)網(wǎng)絡(luò)并非屬于我們的范圍,因此,可靠性設(shè)計(jì)主要集中在Message系統(tǒng)本身。無(wú)線網(wǎng)絡(luò)上的數(shù)據(jù),在未下載之前,Message系統(tǒng)是無(wú)法知道的,因此,不宜采用冗余技術(shù)。我們選擇了檢測(cè)技術(shù)。如果因?yàn)槟承┰驅(qū)е虏市沤邮帐?,系統(tǒng)將給出提示,由用戶選擇是重新下載,還是放棄。
⑵ Message的發(fā)送。Message的發(fā)送,同樣分為彩信的發(fā)送和短信的發(fā)送。短信的發(fā)送時(shí)間較短,可靠性好,而彩信的發(fā)送則時(shí)間比較長(zhǎng),容易產(chǎn)生不穩(wěn)定因素。對(duì)于Message系統(tǒng),彩信發(fā)送在可靠性方面的錯(cuò)誤主要是數(shù)據(jù)丟失,在整個(gè)手機(jī)系統(tǒng)中,數(shù)據(jù)丟失的原因較多,為此,我們選用容錯(cuò)設(shè)計(jì)技術(shù)中的冗余技術(shù)。對(duì)于較大附件,采用備份保存,即使發(fā)送失敗,仍然可以得到完整的數(shù)據(jù),繼續(xù)發(fā)送。
⑶ 附件的添加。當(dāng)要發(fā)送彩信時(shí),需要添加附件。附件的總大小必須小于300K。如果附件超過(guò)300K,必須進(jìn)行縮減。如果圖片面積比較大時(shí),也必須對(duì)面積進(jìn)行縮減。這一系列的算法,如果太過(guò)復(fù)雜,勢(shì)必導(dǎo)致添加附件的時(shí)間過(guò)長(zhǎng),進(jìn)而導(dǎo)致不穩(wěn)定因素增加,出現(xiàn)附件添加失敗的情況,這將破壞文件(文件讀寫操作進(jìn)行到一般時(shí)被迫異常中斷)。通過(guò)分析,我們決定采用兩種可靠性技術(shù):一是容錯(cuò)設(shè)計(jì)技術(shù)中的冗余技術(shù),二是降低復(fù)雜度設(shè)計(jì)。
對(duì)于冗余技術(shù),可適當(dāng)增加附件的備份,當(dāng)文件被破壞時(shí),可使用備份的文件進(jìn)行替代;對(duì)于降低軟件復(fù)雜度,是針對(duì)附件或圖片的縮減算法,使算法簡(jiǎn)單,不穩(wěn)定因素減少。
⑷ 接收附件的保存。當(dāng)收到彩信時(shí),用戶可以選擇其附件進(jìn)行保存。同樣,保存算法耗時(shí)不宜過(guò)長(zhǎng),否則,也會(huì)使不穩(wěn)定因素增加。因此,我們決定采用降低復(fù)雜度設(shè)計(jì)。
⑸ Message大批量刪除。當(dāng)系統(tǒng)存儲(chǔ)的Message量非常大時(shí)(對(duì)于我們的系統(tǒng),大于800條),刪除過(guò)程將顯得相對(duì)長(zhǎng)一點(diǎn)。在這里,經(jīng)過(guò)分析,我們采用容錯(cuò)設(shè)計(jì)技術(shù)中的恢復(fù)塊設(shè)計(jì)。當(dāng)某一刪除程序出現(xiàn)故障時(shí),則備份的刪除程序進(jìn)行替代運(yùn)行。
⑹ 對(duì)于開(kāi)發(fā)工具和環(huán)境而言,我們選擇可靠性較高的Java語(yǔ)言,在Ubuntu Linux系統(tǒng)環(huán)境下進(jìn)行開(kāi)發(fā)。
3 結(jié)束語(yǔ)
本系統(tǒng)中通過(guò)可靠性技術(shù)的運(yùn)用,使得Message子系統(tǒng)在可靠性較高的情況下圓滿完成??煽啃约夹g(shù)的運(yùn)用極大地縮短了同類項(xiàng)目的開(kāi)發(fā)周期,節(jié)約了項(xiàng)目研發(fā)成本,增強(qiáng)了市場(chǎng)競(jìng)爭(zhēng)力。由此可見(jiàn),系統(tǒng)可靠性技術(shù)在智能手機(jī)Message開(kāi)發(fā)過(guò)程中運(yùn)用,較適用于此類周期短,技術(shù)要求高的智能手機(jī)項(xiàng)目,以及一些移動(dòng)互聯(lián)網(wǎng)軟件項(xiàng)目,其實(shí)用前景較高。但是,在該系統(tǒng)中也存在一些不足之處,例如,一些恢復(fù)塊的設(shè)計(jì)功能太過(guò)簡(jiǎn)單,有的不能完全替代恢復(fù);冗余的數(shù)據(jù)量有時(shí)候過(guò)大,影響系統(tǒng)性能等。對(duì)于這些不足之處,有待于在未來(lái)的項(xiàng)目中進(jìn)行改進(jìn)。
參考文獻(xiàn):
[1] 趙靖,王延斌,曲立平,史長(zhǎng)亭.軟件可靠性工程[M].西北工業(yè)大學(xué)出版
社,2011.
[2] 王仲生.智能容錯(cuò)技術(shù)及應(yīng)用[M].國(guó)防工業(yè)出版社,2002.
[3] 何國(guó)偉.軟件可靠性[M].國(guó)防工業(yè)出版社,2003.
[4] (美)Doron A.Peled著,王林章等譯.軟件可靠性方法[M].機(jī)械工業(yè)出
版社,2012.
[5] 張友生,王勇.系統(tǒng)架構(gòu)設(shè)計(jì)師教程(第二版)[M].電子工業(yè)出版社,
2009.