《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 網(wǎng)元層故障管理模塊的軟件可靠性設(shè)計技術(shù)

網(wǎng)元層故障管理模塊的軟件可靠性設(shè)計技術(shù)

2009-10-12
作者:張崇明1, 汪春梅1, 潘 峰

  摘? 要: 以移動交換系統(tǒng)網(wǎng)元層故障管理模塊為例,介紹了實時系統(tǒng)的軟件設(shè)計中,在保證系統(tǒng)實時性的前提下,提高軟件系統(tǒng)可靠性的軟件設(shè)計技術(shù),。

  關(guān)鍵詞: 網(wǎng)元? 移動交換系統(tǒng)? 實時系統(tǒng)? 可靠性? 故障管理

?

  典型的GSM/CDMA移動通信網(wǎng)由交換分系統(tǒng)、基站分系統(tǒng)和大量移動用戶終端三大部分組成,。其中,交換分系統(tǒng)也稱為移動交換系統(tǒng)(MSS),由移動交換中心(MSC),、歸屬位置寄存器(HLR),、被訪位置寄存器(VLR)、設(shè)備識別寄存器(EIR),、鑒權(quán)中心(AUC),、短消息中心(SMSC)等諸多網(wǎng)絡(luò)元素(Network Element,簡稱為網(wǎng)元)和操作維護中心(OMC)構(gòu)成。交換分系統(tǒng)是移動通信系統(tǒng)的控制交換中心,也是移動網(wǎng)與其他通信網(wǎng)的接口,。交換分系統(tǒng)中任何一個網(wǎng)絡(luò)元素出現(xiàn)故障都有可能對整個移動通信系統(tǒng)產(chǎn)生嚴重影響,。在交換分系統(tǒng)中,操作維護中心和各網(wǎng)元實體上的故障管理模塊是網(wǎng)元層網(wǎng)絡(luò)管理系統(tǒng)的一個重要組成部分。本文以移動交換系統(tǒng)網(wǎng)元層故障管理模塊為例,介紹在實時系統(tǒng)的軟件設(shè)計過程中,在保證系統(tǒng)實時性的前提下,提高軟件系統(tǒng)可靠性的一些軟件設(shè)計技術(shù),。

1? 故障管理模塊概述

  故障管理模塊在交換分系統(tǒng)中所處的位置如圖1所示,。  

  故障管理模塊存在于OMC和各網(wǎng)元實體之上,。OMC上的故障管理模塊一般設(shè)計為客戶端/服務(wù)器(C/S)結(jié)構(gòu),其實現(xiàn)的功能包括:故障信息的持久性保存(一般是寫入數(shù)據(jù)庫),、故障信息的顯示、網(wǎng)元機架圖的顯示等,。網(wǎng)元上的故障管理模塊負責(zé)收集各業(yè)務(wù)進程和控制進程產(chǎn)生的故障信息,經(jīng)過處理后把這些故障信息轉(zhuǎn)發(fā)到OMC,。故障信息也稱為告警消息。一條告警消息在C++中表現(xiàn)為一個具體的對象,包括告警發(fā)生時間,、恢復(fù)時間,、發(fā)生位置、具體內(nèi)容和流水號等若干屬性,。

  故障管理模塊是監(jiān)控交換分系統(tǒng)是否正常工作的主要工具,是電信運營商非常重視的一個軟件模塊,。電信運營商對故障管理功能的最基本的要求就是:實時準確,不漏警,不虛警。為了達到這個要求,故障管理模塊的設(shè)計必須在保證實時性的基礎(chǔ)上,確保故障信息的準確無誤,。

2?網(wǎng)元上故障管理模塊的設(shè)計和實現(xiàn)

  交換分系統(tǒng)中的各種網(wǎng)元實體(如MSC,、HLR等)都是典型的分布式實時系統(tǒng),一般由若干個模塊構(gòu)成。交換分系統(tǒng)中的設(shè)備都要求全年24小時不間斷工作,所以每個模塊都采用了主機備用冗余的設(shè)計,。網(wǎng)元中故障管理模塊的結(jié)構(gòu)示意圖如圖2所示,。每個模塊都有主用和備用2個模塊處理機(MP),2個模塊處理機同時處于工作狀態(tài)。備用MP只和主用MP通信,負責(zé)備份主用MP中的重要數(shù)據(jù),。一旦主用MP發(fā)生故障,備用MP可以在不中斷業(yè)務(wù)的情況下迅速地轉(zhuǎn)為主用工作狀態(tài),。

?

?

  從圖中可以看出,故障管理模塊同時運行在主用和備用MP中,。故障管理模塊在MP中用3個進程實現(xiàn)。

  (1)告警收集進程:收集各業(yè)務(wù)進程和單板控制進程產(chǎn)生的告警信息,進行必要的格式轉(zhuǎn)換等數(shù)據(jù)預(yù)處理工作,然后把處理后的告警信息放入當(dāng)前告警列表和消息發(fā)送隊列,。當(dāng)前告警列表存儲在MP內(nèi)存中的一個數(shù)據(jù)緩沖區(qū),。主用和備用MP中的告警數(shù)據(jù)緩沖區(qū)總是處于一致狀態(tài)。

  (2)告警發(fā)送進程:主要的任務(wù)是將告警發(fā)送隊列中的告警消息發(fā)送到OMC上的故障管理模塊,。

  (3)告警同步進程:主要完成網(wǎng)元和OMC之間告警消息的周期性同步,、斷鏈同步處理以及主用和備用MP之間的周期性同步和倒換同步處理。該進程是實現(xiàn)不漏警,、不虛警要求的重要機制,。

3?OMC中故障管理模塊的設(shè)計和實現(xiàn)

  OMC設(shè)計為C/S結(jié)構(gòu)。故障管理模塊同時存在于客戶端和服務(wù)器上,分別用不同的應(yīng)用進程實現(xiàn),。服務(wù)器上的故障管理模塊實現(xiàn)的功能有:保存告警信息到數(shù)據(jù)庫;轉(zhuǎn)發(fā)告警信息到上一級的網(wǎng)絡(luò)管理中心;轉(zhuǎn)發(fā)告警信息到客戶端;處理客戶端的數(shù)據(jù)庫操作請求和參數(shù)修改請求;控制告警箱等,。客戶端的故障管理模塊實現(xiàn)的功能有:最新告警的實時顯示;歷史告警的查詢和打印;告警屏蔽設(shè)定和解除;機架圖的實時顯示;人機命令界面等,。

在C/S結(jié)構(gòu)的系統(tǒng)中,服務(wù)器處于核心地位,服務(wù)器端的故障管理進程要確保能長時間正常工作,。在OMC系統(tǒng)中,可以使用看門狗機制監(jiān)控故障管理進程??撮T狗實際上是一個錯誤監(jiān)控程序,可以用一個高優(yōu)先級的應(yīng)用進程來實現(xiàn),。看門狗進程定時向故障管理進程發(fā)送握手消息,故障管理進程收到此消息后會立刻發(fā)回一個確認消息,。如果在一段時間內(nèi)收不到故障管理進程的響應(yīng),看門狗進程就認為故障管理進程發(fā)生異常,。此時看門狗進程就會殺掉并重新啟動故障管理進程,使故障管理進程恢復(fù)正常運行狀態(tài)。

4?使用定時同步機制保證故障信息的準確性

  從用戶使用的角度看,故障管理模塊必須保證2種信息的準確性:機架圖和活動告警,。機架圖是對網(wǎng)元上各種單板位置和狀態(tài)的直觀顯示,。網(wǎng)元有無故障,用戶通過查看OMC客戶端上的機架圖就能一目了然。

  為了確保機架圖顯示的實時性,可以把機架圖在內(nèi)存中按線形結(jié)構(gòu)存儲,。例如一個機架由7層機框組成,每層機框有27個板位,該機架在內(nèi)存中就可以用2個長度為27×7的一維數(shù)組表示:aRackState[189]和aRackType[189],。aRackState[189]是表示單板狀態(tài)的數(shù)組,aRackType[189]是表示單板類型的數(shù)組,二者結(jié)合就是完整的機架圖信息。OMC和網(wǎng)元上的故障管理模塊都在各自的內(nèi)存中維護機架圖數(shù)組,。OMC中維護內(nèi)存機架圖數(shù)組的目的在于保證客戶端界面上的機架圖顯示能很好地實時刷新,并且還便于和網(wǎng)元中的機架圖數(shù)組保持數(shù)據(jù)同步,。網(wǎng)元中的內(nèi)存機架圖數(shù)組由網(wǎng)元上的告警進程和控制進程共同維護。數(shù)組中的信息和網(wǎng)元中的內(nèi)存數(shù)據(jù)庫保持一致,其數(shù)據(jù)是高度可靠的,。為了保證OMC和網(wǎng)元的機架圖數(shù)組的數(shù)據(jù)一致性,需要引入定時同步機制確保二者的數(shù)據(jù)完全相同,。

  最簡單的同步辦法是每隔一定時間把OMC上的機架圖數(shù)組發(fā)送到網(wǎng)元上,由網(wǎng)元上的告警同步進程逐字節(jié)地比較OMC和網(wǎng)元機架圖數(shù)組的異同。由于1個網(wǎng)元可能由10個以上的機架構(gòu)成,而同步間隔一般都是若干秒,因此在很短的時間里把很多數(shù)組傳來傳去對底層通信系統(tǒng)的總體性能會有一定影響,。

  本系統(tǒng)采用的辦法是比較OMC和網(wǎng)元機架圖數(shù)組的校驗和,。同步過程由OMC上的故障管理進程發(fā)起,該進程計算出OMC上的機架圖數(shù)組的校驗和,然后把該校驗和發(fā)送到網(wǎng)元上的告警同步進程。網(wǎng)元上的告警同步進程收到該校驗和后,立刻計算出本機內(nèi)存中的機架圖數(shù)組的校驗和,然后比較這2個校驗和的值,。如果這2個值不一致,說明前,、后臺機架圖不一致,網(wǎng)元上的告警同步進程就把本機內(nèi)存中的機架圖數(shù)組發(fā)送到OMC,OMC中的機架圖數(shù)組隨即得到更新,。

  計算校驗和的算法采用了16位循環(huán)冗余校驗CRC(Cycle Redundancy Check)算法。它可以對一個數(shù)據(jù)塊進行校驗,是一種高效的差錯控制方法,。16位CRC算法能夠檢查出所有的單位錯,、雙位錯、奇位數(shù)錯及小于等于16位的突發(fā)性錯,還能檢查出17位突發(fā)性錯的99.997%,大于等于18位突發(fā)性錯的99.998%,。如此高的可靠性,可以滿足用戶對機架圖準確性的嚴格要求,。

  活動告警是指當(dāng)前沒有恢復(fù)的,、正在發(fā)生的告警,。其同步過程與機架圖類似,此處不再展開討論。

5?持續(xù)改善軟件設(shè)計與開發(fā)質(zhì)量

  前面介紹的主備冗余,、定時同步和看門狗機制都不同程度地提高了故障管理模塊的可靠性,但這些機制并不能完全確保不漏警,、不虛警。網(wǎng)元中的每個模塊處理機都是一個運行在PSOS,、VxWorks等實時操作系統(tǒng)之上的大型實時系統(tǒng),。MP上運行著大量的應(yīng)用進程,軟件故障不可避免地存在其中。相當(dāng)比例的漏警,、虛警事故與硬件無關(guān),而是由業(yè)務(wù)模塊和故障管理模塊中的軟件錯誤導(dǎo)致,所以提高軟件設(shè)計質(zhì)量和開發(fā)質(zhì)量是進一步提高故障管理模塊可靠性的重要手段,。

  提高軟件系統(tǒng)設(shè)計質(zhì)量和開發(fā)質(zhì)量的途徑是多樣的,例如使用設(shè)計模式優(yōu)化軟件結(jié)構(gòu)、在開發(fā)過程中進行單元測試等,。對于已經(jīng)完成開發(fā)的軟件,使軟件質(zhì)量獲得持續(xù)改善的重要手段是代碼重構(gòu),。不漏警、不虛警是比較苛刻的要求,。要達到這個目標需要故障管理模塊設(shè)計者不懈努力,。

參考文獻

1? 梁振軍,梁波.計算機網(wǎng)絡(luò)教程.北京:海洋出版社,1991

2? 鄭宗漢.實時系統(tǒng)軟件基礎(chǔ).北京:清華大學(xué)出版社,2003

3? Subramanian M.Network Management:Principles and Practice.Addison Wesley Longman,2000

4? Fowler M.Refactoring:Improving the Design of Existing?Code.Addison Wesley Longman,2000

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。