朱進
摘 要: 智能手機系統軟件目前競爭激烈,對系統可靠性要求較高,Message(短信/彩信)系統是手機軟件中較重要的一個部分,其系統可靠性對整個手機軟件的可靠性起到很重要的作用。以Message系統為例,探討了針對可靠性的常用技術在智能手機系統開發過程中的運用,包括容錯設計,檢測技術,降低復雜度設計。通過可靠性技術的運用,使得Message系統以高可靠性圓滿完成。由此可見,系統可靠性技術較能適用于此類周期短,系統可靠性要求高的智能手機項目,以及一些移動互聯網軟件項目,其實用前景較好。
關鍵詞: 系統可靠性; 容錯設計; 檢測技術; 降低復雜度設計; Message
中圖分類號:TP311.5 文獻標志碼:A 文章編號:1006-8228(2014)06-30-02
0 引言
我單位從事的是智能手機系統項目的架構與研發工作,產品面向國外。目前,手機軟件競爭非常激烈,新技術的市場期比較短,如果手機軟件不穩定,可靠性差,將導致市場逐步喪失。Message系統是整個手機軟件系統中非常重要的部分,它的可靠性直接影響到整個手機軟件平臺的穩定性和可靠性。在Message系統的開發過程中,我們特別加強了系統可靠性技術在開發中的運用。
1 系統可靠性理論概述
系統可靠性是指系統在規定的條件下和規定的時間內完成規定功能的能力[1]。影響系統可靠性的主要因素有:運行環境(系統可靠性的定義是相對于運行環境的);軟件內部結構(內部結構越復雜,包含的缺陷數可能越多);軟件的開發方法和開發環境;軟件的可靠性投入等。
以下是幾種系統可靠性常用的技術。
⑴ 容錯設計技術。對于軟件失效后果特別嚴重的場合,可采用容錯設計方法。常用的軟件容錯技術有恢復塊設計,N版本程序設計和冗余設計[2]?;謴蛪K設計就是選擇一組操作作為容錯設計單元,從而把普通的程序塊變成恢復塊。一個恢復塊中包含若干功能相同,設計差異的程序塊,每一時刻有一個程序塊處于運行狀態,一旦某程序塊出現故障,則備份程序塊予以替換。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.
[2] 王仲生.智能容錯技術及應用[M].國防工業出版社,2002.
[3] 何國偉.軟件可靠性[M].國防工業出版社,2003.
[4] (美)Doron A.Peled著,王林章等譯.軟件可靠性方法[M].機械工業出
版社,2012.
[5] 張友生,王勇.系統架構設計師教程(第二版)[M].電子工業出版社,
2009.