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