摘 要: 研究了多主體智能故障管理模型的結(jié)構(gòu)及系統(tǒng)構(gòu)成并給出了模型功能的實現(xiàn)。
關(guān)鍵詞: 主體 智能 故障管理 模型
隨著網(wǎng)絡(luò)規(guī)模的不斷擴大,網(wǎng)絡(luò)的維護和操作變得相當(dāng)復(fù)雜。如何保證網(wǎng)絡(luò)安全、穩(wěn)定和可靠地運行,一直是網(wǎng)絡(luò)管理領(lǐng)域的熱門研究課題。
故障管理是網(wǎng)絡(luò)管理體系結(jié)構(gòu)的一個重要組成部分,主要包括檢測、隔離、確定故障因素、糾正故障等功能。設(shè)立故障管理的目標(biāo)是提高網(wǎng)絡(luò)可用性,降低網(wǎng)絡(luò)停機次數(shù)并迅速修復(fù)故障。作為高速骨干網(wǎng)絡(luò)上運行的T比特路由器,對它進(jìn)行故障管理,以便在路由器發(fā)生故障時及時進(jìn)行修復(fù),避免影響網(wǎng)絡(luò)的使用。
大規(guī)模匯聚接入路由器(ACR)系統(tǒng)中包括多個設(shè)備,而各個設(shè)備又是相互關(guān)聯(lián)的,一個設(shè)備的故障同時可能會引起另外一個或多個設(shè)備故障的發(fā)生,從而可能會導(dǎo)致整個網(wǎng)絡(luò)癱瘓。傳統(tǒng)的故障管理方法只能對單設(shè)備故障進(jìn)行有效的管理,對多設(shè)備的關(guān)聯(lián)故障不能及時地進(jìn)行診斷及恢復(fù),不能保證網(wǎng)絡(luò)的正常運行。
1 與現(xiàn)有故障管理技術(shù)" title="故障管理技術(shù)">故障管理技術(shù)的比較
目前,研究故障診斷" title="故障診斷">故障診斷的方法主要有兩種類型:專家系統(tǒng)方法和人工神經(jīng)網(wǎng)絡(luò)" title="人工神經(jīng)網(wǎng)絡(luò)">人工神經(jīng)網(wǎng)絡(luò)方法。專家系統(tǒng)是在宏觀功能上模擬人的知識推理能力,是以邏輯推理為基礎(chǔ)模擬人類思維的符號主義人工智能方法,它是基于邏輯演繹的,對知識的處理所模擬的是人的邏輯思維機制。人工神經(jīng)網(wǎng)絡(luò)則是在微觀上模擬人的認(rèn)識能力,是以連接結(jié)構(gòu)為基礎(chǔ),通過模擬人類大腦結(jié)構(gòu)來模擬人類形象思維,它是基于集體計算的,對知識的處理所模擬的是人的邏輯思維機制。智能故障管理的研究一般集中在專家系統(tǒng)上,然而它不能適應(yīng)新的或不完備的數(shù)據(jù),不能處理概率問題,這使它很難應(yīng)用于大型動態(tài)網(wǎng)絡(luò)。
現(xiàn)有的智能故障管理技術(shù)主要有以下三個缺點:
(1)目前智能故障管理的研究主要集中在專家系統(tǒng)上,不能適應(yīng)新的或不完備的數(shù)據(jù),很難應(yīng)用于大型動態(tài)網(wǎng)絡(luò)。
(2)故障診斷的專家系統(tǒng)主要采用一種技術(shù),實際應(yīng)用范圍較窄。
(3)主要進(jìn)行故障診斷,不支持故障自動恢復(fù)。
主體(Agent)是指能在動態(tài)的多" title="的多">的多Agent領(lǐng)域采取靈活、自治活動的計算機實體,智能Agent是具有實時處理多維信息、相互作用和能有效傳遞信念、意圖等智能的自治的軟件實體。它具有智能性、自治性、靈活性、開放性、適應(yīng)性、協(xié)作性和推理機制等特性。
智能Agent的內(nèi)部行為表現(xiàn)為:通信管理器接收外部環(huán)境的信息,由推理機根據(jù)這些信息和Agent狀態(tài),進(jìn)行分析和理解,形成與其他Agent相一致的協(xié)同工作方式,并按該方式及自身能力(知識水平等),執(zhí)行相關(guān)的動作,形成Agent新的狀態(tài),由此而進(jìn)一步引起新的Agent推理活動。智能Agent的活動行為是主動進(jìn)行的,Agent的推理機每隔一時間片都要檢測通信狀態(tài)和自身狀態(tài),以確定其推理活動的趨勢。
同傳統(tǒng)的故障管理技術(shù)相比,智能Agent故障管理模型具有下面三個優(yōu)點:
(1)將多Agent技術(shù)應(yīng)用于復(fù)雜故障診斷領(lǐng)域,對診斷任務(wù)辨識、分解,綜合利用各Agent的內(nèi)部診斷機制,通過各Agent間的交互、協(xié)作,對故障進(jìn)行診斷,使故障診斷技術(shù)能應(yīng)用于大型動態(tài)網(wǎng)絡(luò)及各種復(fù)雜設(shè)備。
(2)各診斷Agent間綜合利用多種智能故障技術(shù),以便能對多數(shù)故障進(jìn)行診斷。
(3)通過故障診斷結(jié)果,增加故障恢復(fù)模塊,對故障進(jìn)行自動恢復(fù)。
2 智能故障管理的模型
2.1 故障管理流程
故障管理主要包括故障發(fā)現(xiàn)、故障診斷和故障恢復(fù)三個部分。故障管理的流程如圖1所示。
2.2 智能故障管理的自動機模型
智能故障管理的狀態(tài)機模型如圖2所示。
模型用BNF形式化表示如下:
?。碱I(lǐng)域經(jīng)驗知識>∷=<領(lǐng)域經(jīng)驗知識頭><領(lǐng)域經(jīng)驗知識體>
?。碱I(lǐng)域經(jīng)驗知識頭>∷=<領(lǐng)域經(jīng)驗知識名>[<經(jīng)驗知識代碼>][<知識庫名>][<說明表>]
?。碱I(lǐng)域經(jīng)驗知識體>∷=IF{<前提條件><運算符>}+THEN<結(jié)論>
?。记疤釛l件>∷=項、變量或用戶定義的表達(dá)式名
?。歼\算符>∷=AND|OR
?。冀Y(jié)論>∷=表達(dá)式
這一描述完全揭示了模型的三級信息形式,即模型的用戶視圖、概念結(jié)構(gòu)和可運行實體。
3 智能Agent框架結(jié)構(gòu)
依據(jù)智能Agent的內(nèi)部行為表現(xiàn),為完成故障的實時監(jiān)控、診斷及恢復(fù)功能,采用圖3所示的結(jié)構(gòu)來構(gòu)成智能Agent,內(nèi)部結(jié)構(gòu)采用統(tǒng)一模式來描述。
通過上述定義可知,Agent是具有特定領(lǐng)域知識和問題求解能力,能自主工作和具有協(xié)作交互能力的智能實體,具有知識、模型和數(shù)據(jù)處理能力,基于Agen的語言L而進(jìn)行多Agent間復(fù)合問題求解規(guī)劃過程。Agent可由各Web節(jié)點組合而成,具有很好的可擴展性和通用性。
4 智能Agent系統(tǒng)構(gòu)成
模型結(jié)構(gòu)構(gòu)成如圖4所示。
下面對結(jié)構(gòu)中的相關(guān)部分進(jìn)行簡要的介紹:
(1)通信接口" title="通信接口">通信接口
通信接口有兩個功能:輸入信息處理、系統(tǒng)輸出表示。主要功能是把輸入信息轉(zhuǎn)變?yōu)橄鄳?yīng)的知識查詢與操縱語言KQML(Knowledge Query and Manipulation Language)消息格式進(jìn)行發(fā)送,同時還負(fù)責(zé)顯示系統(tǒng)的處理結(jié)果或信息。通信接口的設(shè)計要注意應(yīng)用重用性。
(2)信息獲取Agent
故障信息管理不只是一個簡單的集中式數(shù)據(jù)庫和知識庫,而且信息的格式也可能不同,因此信息的獲取就顯得非常重要。信息獲取Agent封裝了信息的存取過程,通過KQML與外界交互信息,內(nèi)部采用JDBC、ODBC等方式存取信息。
(3)任務(wù)管理Agent
任務(wù)管理Agent主要包括信息預(yù)處理、任務(wù)分解及任務(wù)控制等。
信息預(yù)處理主要是信息的過濾、分類和關(guān)聯(lián)。
信息過濾,是指將采集到的故障信息根據(jù)定義的規(guī)則進(jìn)行過濾,去除無關(guān)的告警信息的動作。廣義地,可以指從多個告警中過濾出少數(shù)告警的任何動作。
信息分類,是指將告警信息按照告警等級進(jìn)行分類,根據(jù)告警信息的等級及策略優(yōu)先級決定處理的順序。
信息關(guān)聯(lián),是指從大量的告警信息中發(fā)現(xiàn)頻繁出現(xiàn)的項集模式知識,通過剔除不必要和不相關(guān)的信息,提高信息的語義表達(dá),幫助找出產(chǎn)生事件的真正問題或條件。
任務(wù)分解的原則是診斷子任務(wù)目標(biāo)明確,并且使子任務(wù)間的耦合盡量少,以簡化完成子任務(wù)的診斷Agent之間的協(xié)作和通信。一般來說,在高層(粗粒度上)多采用結(jié)構(gòu)分解,而底層(細(xì)粒度上)多采用故障分解,這與人們一般的診斷思路相一致。這種綜合分解可以一直進(jìn)行到設(shè)備某個基本結(jié)構(gòu)的一個明確的故障問題。這種目標(biāo)明確的診斷子任務(wù)稱為診斷活動。診斷活動與一般的診斷子任務(wù)的區(qū)別是診斷活動包含明確的故障診斷操作。對診斷領(lǐng)域問題進(jìn)行分布式任務(wù)分解,將得到一個層次結(jié)構(gòu)清晰的診斷任務(wù)樹。
當(dāng)某故障問題的診斷可能或必須通過多個診斷Agent協(xié)作完成時,必須考慮多個診斷Agent間的協(xié)調(diào)與合作問題。對于某診斷任務(wù),各個診斷Agent具有不同的性能。因此須選擇耗費系統(tǒng)資源最少、診斷效果最好的診斷Agent來完成診斷任務(wù)。這就是診斷Agent的協(xié)調(diào)問題。量化診斷Agent診斷性能是解決Agent間協(xié)調(diào)問題的關(guān)鍵。另外,對于復(fù)雜的故障論斷問題須基于多Agent的思想,將其分解并運用多種故障診斷方法協(xié)同完成,這就是多診斷Agent間的使用問題。為了完成共同診斷任務(wù)而合作的診斷Agent的集體形成一個診斷Agent聯(lián)盟。這要求每個Agent對其他Agent的功能、效率有較詳細(xì)的了解。因此,在設(shè)計時要把其他Agent的資料放在Agent的數(shù)據(jù)庫內(nèi),并且Agent自身能夠根據(jù)實際情況對數(shù)據(jù)庫進(jìn)行修改,根據(jù)這些資料選擇合作對象。
(4)診斷Agent
診斷Agent實現(xiàn)各種具體的分析和診斷算法。包含F(xiàn)FTr Agent、小波分析Agent、時序模型Agent等分析方法以及神經(jīng)網(wǎng)絡(luò)Agent、遺傳算法Agent、專家系統(tǒng)Agent等智能診斷模型。診斷Agent同時對知識庫進(jìn)行管理。
(5)用戶界面Agent
用戶界面Agent的主要功能是代替?zhèn)鹘y(tǒng)智能決策系統(tǒng)中的問題與人機交互系統(tǒng)來與用戶進(jìn)行交互。它采用一種間接管理風(fēng)格。在基于該模型的系統(tǒng)中,用戶只需給出大概的指導(dǎo)即可以控制系統(tǒng)的運行,而無須顯式地告訴計算機具體的行為。由于Agent本身具有面向目標(biāo)(即能夠展現(xiàn)出一種導(dǎo)向目標(biāo)的行為)和協(xié)作性(可協(xié)商)的特點,因此它可以針對不同用戶進(jìn)行不同的處理。用戶界面Agent可以針對不同的用戶進(jìn)行個性化處理,從而能夠適應(yīng)于特定用戶的特定行為。當(dāng)它能夠確定用戶在某個特定的情況下將如何作出反應(yīng)時,它就開始替代或者幫助用戶完成相應(yīng)的任務(wù)。
(6)故障恢復(fù)Agent
根據(jù)診斷Agent給出的診斷結(jié)果及方法對故障進(jìn)行恢復(fù),可通過自動恢復(fù)腳本或POST方法實現(xiàn)。
(7)系統(tǒng)功能的實現(xiàn)
面向Agent的軟件機制是設(shè)計各應(yīng)用領(lǐng)域的多Agent的軟件技術(shù)基礎(chǔ),包括面向Agent的分布式軟件協(xié)議(CORBA、COM/DCOM)、Agent間的通信語言KQML、面向Agent的開發(fā)環(huán)境平臺以及面向Agent的程序設(shè)計(AOP)等。
系統(tǒng)可采用CORBA來實現(xiàn)診斷Agent間的通信,CORBA的平臺無關(guān)性和語言無關(guān)性對多Agent智能故障診斷及恢復(fù)的實現(xiàn)至關(guān)重要,不考慮操作系統(tǒng)和編程語言的差異將大大減輕系統(tǒng)開發(fā)的工作量。
KQML是用來實現(xiàn)各Agent交互的消息格式和消息處理協(xié)議。它使得Agent能夠和其他的Agent以及Agent所運行的環(huán)境進(jìn)行知識和信息的交換。它提供了一套標(biāo)準(zhǔn)的Agent通信原語,從而使得使用這種語言的Agent之間都可以進(jìn)行交流和共享信息。KQML定義了一種Agent之間傳遞信息的標(biāo)準(zhǔn)語法和動作。這些動作主要是從Speech Act理論中演化出來的,例如tell、perform、reply等。雖然還有其他Agent通信語言,但為了保證系統(tǒng)將來的兼容性,故選擇KQML作為通信語言。另外,KQML與Agent間的具體通信方式(如采用的協(xié)議和網(wǎng)絡(luò)的具體形式)無關(guān),所以KQML可以有很多種實現(xiàn)方法(如通過TCP/IP或電子郵件實現(xiàn))。
故障診斷Agent的知識庫建立和維護采用Visual Prolog開發(fā)平臺,系統(tǒng)的知識庫主要是通過人工方式建立的,故障診斷Agent可對知識庫進(jìn)行修改和添加。
在傳統(tǒng)智能故障管理的基礎(chǔ)上,結(jié)合Agent技術(shù),提出了多Agent智能故障管理模型,并給出了其實現(xiàn)方法。該方法克服了傳統(tǒng)故障管理方法的許多不足,大大提高了大規(guī)模匯聚接入路由器的設(shè)備及網(wǎng)絡(luò)的性能,保證了網(wǎng)絡(luò)的正常運行。
參考文獻(xiàn)
1 聶勤務(wù).分布式智能故障診斷模型的MAS實現(xiàn)研究[J].計算機工程與應(yīng)用,2004;(30)