陸明祥
(蘇州工業職業技術學院,215104)
網絡故障管理是為了使網絡能夠保持正常穩定的運行,在互聯網時代,一旦網絡出現問題就給人們的生活帶來很大不便,這就迫切需要我們采用合理的故障管理方法,及時發現故障并能夠快速解決。因此,研究如何通過網絡故障管理確保網絡正常運行,提高網絡的可靠性具有十分重要的現實和社會意義。
隨著網絡規模的日益擴大和網絡復雜性的增強,傳統的網絡故障管理方法已難以適應大規模的網絡管理。人工智能專家系統、數據挖掘、遺傳算法、神經網絡和agent 技術逐漸被引入到網絡故障管理中[1-3]。在實際使用的故障管理智能化方法中,存在著一些不足之處,主要表現為:通用性差,移植性不強;動態數據利用不平衡;學習能力差。
人工免疫算法具備多樣性、學習能力強、自適應調整,Agent具備自主性、交互性、推理能力等特點,兩者結合恰好可以彌補上面的一些不足。同時,使用Agent 技術的能夠將復雜的網絡分解為幾個子網絡,提高網絡故障管理效率。
在前面介紹理論的基礎上,我們提出了一個基于免疫 agent的網絡故障管理模型。下面對這個模型進行詳細分析。
免疫 Agent 網絡模型的工作原理是,當網絡發生故障的時候,搜集故障信息,然后經過一定的處理后,以抗原的形式提交到本地 agent,本地 agent 首先在本地知識庫進行搜索,看是否存在與抗原相匹配的故障類型,如果存在,那么輸出故障信息,同時發送匹配成功的激勵信號;否則發送協助信號,請求其他agent協助解決,其他 agent 接收到幫助信號以后,到自己agent 中的知識庫就行搜索,看是否存在相匹配的信息,如果存在,則將匹配到的故障類型發送給本地 agent,否則將故障信息交由人工解決。免疫 agent 模型如圖3.1 所示。
模型的運行是不斷進行迭代的協同進化過程。每進行一次故障數據信息的診斷,模型就完成一次迭代過程。每一次迭代中,Agent 之間會進行信息的交互,在迭代過程中每一個agent 的知識庫(也就是抗體集)會不斷的進行更新,因而故障診斷能力會不斷的增強,整個過程是始終是處于動態變化。
移動agent 由六種不同功能的agent 組成。下面對每種agent 功能進行詳細介紹。
2.1.1.信息采集agent
信息采集是進行故障診斷的前提。信息采集agent 主要是對網絡主機及所屬子網絡上的原始數據進行收集,然后將收集到的原始數據保存,然后進行一些預處理 (如分析數據傳輸采用的協議、丟包率等),為故障診斷準備好數據信息。
2.1.2 故障診斷 agent
故障診斷agent 是整個系統的核心。一個故障診斷 agent通常只包含相對有限、獨立的故障檢測方法,提供對某一具體類型的數據分析服務,因此它的檢測能力是非常有限的。故障診斷agent 根據本身的責任,它會主動發送請求給相關的信息采集agent,然后對返回的信息進行分析,得出診斷結論。如果存在無法識別的異常,故障診斷 agent會將數據源信息、實際診斷方法、故障參數等信息作為本地存儲,發送給決策 agent 做下一步處理。
2.1.3 通信 agent
所謂的通信 agent 就是負責網絡 agent 之間的相互通信。每個局域網都有一個通信 agent 而且是唯一,局域網內的agent 之間必須通過通信agent 才能進行交互,否則不能直接通信。通信agent 本身并不具備執行診斷任務的能力,是為其他agent 服務的。
2.1.4 決策 agent
系統在故障診斷過程中可能遇到各種問題,如數據采集不完整、領域知識不完備等,這些因素增加了檢測結果的不確定性。對于比較簡單的任務而言,決策 agent 也許不是必需的,但是如果任務比較復雜,根據單一故障特征并不能確定問題的所在,此時決策agent 就發揮作用了。如果無法得出明確的診斷結論,這個時候決策agent 會將診斷信息發送給系統管理agent,請求人工處理,處理完成后,將處理信息添加到知識庫中,以備將來使用,這也就是學習過程。
2.1.5 知識管理agent(知識庫)
知識管理agent 主要功能是存儲相關領域的基本原理、專家的經驗知識以及一些實際案例等,信息數據也是專家知識庫的重要部分。知識庫的內容為各種故障的診斷提供了必需的知識。知識管理agent 主要是維護、搜索、轉換知識庫中的知識,包括協調全局、本地知識庫的管理的同步和關聯,負責知識庫中知識的更新與學習。
2.1.6 系統管理agent
系統管理agent 是整個系統正常運行的保障,主要職責是負責 agent 的創建、掛起、注銷等,并為各個agent 提供信息搜索功能。系統管理agent 中還為診斷任務聯盟提供信息存儲功能。
2.1.7 故障診斷中抗體庫算法設計
在整個系統中,故障診斷是系統中的最重要部分,而故障診斷的核心是抗體庫。本文基于免疫原理的設計了一種高效的算法,具體描述如下。
(1)初始種群,根據待解決問題的具體要求,隨機產生數量為N 的個體。
(2)根據專家知識和經驗建立本地知識庫,本地知識庫包含的一系列的抗體集。
(3)本地知識庫接收其它Agent 的疫苗,然后進行知識庫的更新,形成新的抗體集。
(4)抗原傳感器采集一定范圍內的信息數據。
(5)如果判斷采集到的信息數據可能會存在異常,則發送協助解決信息給當前免疫Agent,處于等待狀態并保持免疫耐受,轉步驟(8)。
信息數據與本地知識庫抗體進行匹配,如果匹配成功,那么表明本地知識庫內有對應的解決方案(即存在抗體),然后進行免疫應答。
(6)將此抗體模式作為疫苗,發送刺激信號給其它相關免疫Agent,然后可以作為經驗給其它免疫Agent 解決類似問題。
(7)進入下一階段,轉到步驟(3)。
(8)若免疫Agent 返回的信息是繼續等待,那么繼續保持免疫耐受,并轉到步驟(7);若其它免疫Agent 返回經驗知識作為參考,那么轉到步驟(5),并且學習參考經驗知識并保存,然后對本地知識庫進行更新,提供給下次免疫答復。
實際的操作過程中,我們首先需要定義網絡狀態和實體,網絡故障具體表現在網絡實體的某些的屬性值的超出了允許的范圍,然后系統就可以獲取網絡運行時的信息,對這些信息進行預處理,將其轉換成具體問題的求解,最后將此問題求解方案通過一定的形式轉化成免疫算子,用于生成種群中的個體。

傳統的網絡故障管理一般采用的是集中式的管理,但是隨著網絡規模的擴大,網絡變的越來越復雜,集中式管理的缺點也逐漸暴露。目前的集中式管理模式大多通過遠程代理進行網絡信息的檢測,這種模式必須由管理者發出消息,因此缺少自主性,而且容易造成網絡帶寬的閑置。
基于免疫Agent 的智能故障管理系統,能較好的地解決這些缺點,擺脫了依賴管理員和遠程代理進行檢測的被動方式。移動Agent 能實現對本地網絡的主動檢測。另外,網絡故障管理中引入移動Agent 增強了故障診斷能力,能對故障進行自動修復。若移動Agent 自身處理不了,立即將提取故障信息發送給系統管理agent,系統管理agent 會在最短的時間內給出故障診斷結果,然后發送給移動Agent,進行修復處理。
本文提出的基于免疫agent 的網絡故障管理智能化系統,相對于傳統的網絡故障管理,具有更好的靈活性和主動性,具有更高的效率和決策能力。我們將免疫算法和Agent 結合運用到網絡故障管理中,可以對一些不完整的信息進行處理,提高了網絡管理智能化水平,特別適合于分布式的大型復雜網絡,能更好地、更快的發現解決了網絡中存在各種問題。
[1]王偉,蘆東昕,唐 英.基于專家系統的網絡故障管理系統的設計[J].計算機工程與設計,2005,26(11):3031-3033.
[2]王洪元,史國棟等.數據挖掘技術在故障診斷中的應用[J].江蘇石油化工學院學報,2001,13(4):42-44.
[3]戴忠健,蘇利敏.基于遺傳算法的網絡故障診斷專家系統的設計與實現[J].北京理工大學學報,2005,25(1):38-40.
[4]劉韜,王耀才,王致杰.一種基于人工免疫系統的聚類算法[J].計算機工程與應用,2004(19):82~84.
[5]王汝傳,徐小龍,黃海平.智能 agent 及其在信息網絡中的應用[M].北京郵電大學出版社,2006.