摘要:隨著網絡技術的迅猛發展,網絡管理技術的相關研究也越來越得到廣泛重視,傳統的集中式管理方法在可擴展性、可靠性、靈活性方面存在一定的不足。基于移動Agent的分布式網絡管理方案很好地解決這些問題。該文設計了基于移動Agent的分布式網絡管理系統模型——MADNMS,詳細闡述了其核心拓撲算法,并對算法的性能進行了分析。
關鍵詞:移動Agent;網絡管理;拓撲算法
中圖分類號:TP393文獻標識碼:A 文章編號:1009-3044(2010)05-1085-03
Based on Mobile Agent Technology Network Management System
SUN Jie
(Xiaozhuang University, Nanjing 211171, China)
Abstract: With the rapid development of network technology, the research on the technology of network management is paid more and more attention to. Existing centralized network management frameworks suffer from problems such as insufficient scalability, reliability, and flexibility. The distributed network management system based on mobile agents can overcome these problems. This paper proposes a distributed network management system based on mobile agents MADNMS, details its topology algorithm, and gives a research on the efficiency of the algorithm.
Key words: Mobile Agent;Network Management;Topology Algorithm
網絡管理系統作為計算機網絡體系的重要組成部分,對保證計算機網絡正常高效運行,為用戶提供令人滿意的服務起著關鍵性作用,其管理能力和自身性能直接影響著網絡的運行效率。
隨著計算機網絡規模和技術的不斷發展,傳統的SNMP集中式管理模式開始暴露出諸多弊端,已經越來越不能適應規模快速增長中的網絡網管的需求,新型的分布式網絡管理逐漸成為研究熱點。移動Agent因為其具有移動性、自治性、智能性等優點,在分布式網絡管理系統中得到的廣泛的應用[3]。
1 基于移動Agent的分布式網絡管理系統——MADNMS
本文設計了一個基于移動Agent技術的分布式網絡管理系統MADNMS(Mobile Agent based Distributed Network Management System)。系統體系結構如圖1所示。
用戶使用標準瀏覽器實現對網絡的管理。HTTP引擎由嵌入在管理站的Web服務器負責提供。Web服務器負責向客戶端瀏覽器提供的代碼有兩個來源:一個是由網管開發人員定制,主要負責客戶端瀏覽器界面;另一個則來自應用服務器提供的網管操作的結果。Web服務器還負責將用戶通過瀏覽器提交的網管要求傳遞給應用服務器。
應用服務器接收并分析傳遞來的用戶網管請求后從移動Agent數據庫中定制并生成相應的移動Agent。此外應用服務器負責接收來自被管理設備的移動Agent,讀取并處理其攜帶的網管數據,將其中一些數據存儲到網管分布式數據庫中,并生成腳本代碼將結果傳遞給Web服務器。
分布式數據庫存貯了被管理網絡的拓撲信息以及網絡的其他重要信息。網絡拓撲信息是整個系統的基石,它向用戶提供了描述操作對象的描述手段。同時它存儲的網絡重要信息可以用來實現廣域網的分布式管理平臺。基于移動Agent網絡拓撲算法將在下文具體說明。
移動Agent經過移動Agent平臺進行相應的處理后被派遣出去執行網管功能。Agent經過網絡傳送到被管理節點,被管節點上的移動Agent平臺接收該Agent,移動Agent平臺根據相應的算法要求對Agent進行處理,如轉發、復制或者銷毀等。移動Agent平臺提供執行環境使得Agent攜帶的代碼被執行以完成網管功能,然后將執行結果存貯于該Agent中。移動Agent根據事先安排的算法可以繼續遷移到下一個被管節點,也可以遷移回網管站。
本系統中的被管理節點除了移動Agent平臺外,還包括了傳統SNMP/CMIP的靜態代理和管理信息庫,它們依然執行傳統的功能。移動Agent通過與靜態代理的交互實現對管理信息庫信息的讀寫。為了提高效率,在被管理節點設計了一個分布式數據庫,移動Agent把從靜態代理那里獲得常用的和訪問頻繁的網管信息使用SQL語句存儲到該數據庫中,這樣可以提高執行效率。
從網管功能來看,網絡管理的所有功能必須建立在實現網絡拓撲圖的前提下。從技術角度來看,基于移動Agent的網絡拓撲包括了基于移動Agent網絡管理的所有基本操作,如移動Agent的派生,遷移、復制、銷毀等。出于以上的原因,MADNMS的拓撲算法是本系統實現的重點和難點。
2 MADNMS的拓撲算法
2.1 算法系統模型
系統的網絡模型描述如下:
1)該網絡模型是由網絡節點和連接這些節點的鏈路組成的圖狀結構。
2)每一個節點具有唯一性的標識符ID(如IP地址)并提供移動Agent運行平臺、可讀寫的數據區以及數據讀寫和加鎖接口。該數據區存儲了以下內容:錯誤!未找到引用源。該節點的狀態字,分別為1和“visited”,當節點狀態字為1時,代表該節點未被發現Agent訪問,稱這樣的節點為處女節點;當節點狀態字為“visited”,代表該節點已被發現Agent訪問。錯誤!未找到引用源。與該節點關聯的所有鏈路在該節點處的狀態字。此類狀態字有“uproad” 和1,其含義在具體算法中進行介紹。初始狀態下這些狀態字狀態為1。錯誤!未找到引用源。與該節點關連的鏈路數f;錯誤!未找到引用源。該節點及其鄰接節點的標識信息ID。
3)移動Agent之間可以交換信息。Agent交換信息的某一個時刻瞬時是單向的,即只允許一個Agent訪問另外一個Agent數據。
4)雙向鏈路理想狀態下雙向傳輸速度相等,但是每段鏈路速度并不要求相等。
5)網管站可以是網絡中的任意一個節點。
根據移動Agent的特點,將網絡拓撲算法分為三部分,一部分是網絡拓撲的發現,設計了發現Agent ,通過發現Agent對被管理網絡的洪泛,實現網絡節點的快速發現;另一部分則是將拓撲信息送至網管站,網管站端的應用服務器利用拓撲信息生成網絡拓撲圖,針對這項功能,設計了報告Agent;最后一部分是網管站接受報告Agent生成網絡拓撲的算法。
2.2 發現Agent的算法
為了保證拓撲發現的快速性,在MADNMS系統的拓撲發現中設計了一種受控制的洪泛法,具體描述如下。
1)發現Agent到達節點m后,將m的數據區加鎖;
2)如果m的狀態字為“visited”, 發現Agent將數據區解鎖后注銷。否則發現Agent
將節點狀態字設為“visited”,將到達鏈路j在m端狀態字設為“uproad”;
3)發現Agent衍生出一個報告Agent,報告Agent讀取m及其鄰接節點的ID,并遷移至管理站駐留節點(報告Agent遷移算法在后文中介紹);
4)如果f=1,發現Agent執行解鎖并注銷。否則發現Agent復制f-2個發現Agent;
5)發現Agent隨機選取j外的f-1條鏈路i,將復制出的f-2個發現Agent沿除i和j外f-2條鏈路派遣出去;
6)發現Agent執行解鎖后從鏈路i遷移,轉步驟2)。
此算法的實質是將網絡的拓撲圖結構轉成了樹結構,樹的根即為網管站駐留節點。節點之間的父子關系由連接節點的鏈路狀態確定,當一段鏈路的兩端的狀態字分別為1和“upstream”,則端狀態字為1,節點為父節點。由于算法采用了洪泛特性,代價很小,而且算法對洪泛的規模進行了限制,所以具有很好的穩健性。
2.3 報告Agent的算法
1)節點n出現報告Agent后,報告Agent首先將n的數據區加鎖;
2)如果報告Agent在節點n衍生,則報告Agent收集n及其鄰接節點的ID,否則轉步驟3);
3)報告Agent檢查n將其攜帶的拓撲信息交付給網管站,判斷n是否為網管站駐留節點。如果n是網管駐留節點,則解鎖n的數據區后注銷,否則轉步驟4);
4)找到在n端狀態字為“uproad”的鏈路i;
5)報告Agent解鎖n的數據區,沿鏈路i上行至下一節點。轉步驟1)。
本算法中,當一個發現Agent到達一個處女節點,它立刻衍生出一個報告Agent。報告Agent攜帶該節點及其鄰接節點的ID信息回到網管站。報告Agent返回到NMS的路由機制由upstream鏈路提供的信息實現。
2.4 網管站獲得拓撲信息的算法
網管站接收報告Agent后,首先將報告Agent攜帶的拓撲信息存儲到拓撲數據庫。網管站為了確認網絡拓撲信息是否被收集,檢查數據庫中的所有節點是否被報告Agent發現。如果發現節點都被報告Agent發現,則管理站可以生成網絡拓撲圖。此處設計了一個計數器用來統計數據庫中尚未被發現Agent發現節點的數目。網管站每次接受發現Agent時負責更新計數器的內容,算法如下。
1)NMS將未訪問節點計數器清零并向駐留節點派遣一個發現Agent。
2)NMS等待接受報告Agent。當一個報告Agent到達后,NMS讀取其攜帶的拓撲信息。此時該拓撲信息有兩部分:一部分為節點ID;另一部分為該節點鄰接的節點ID。節點ID為已訪問節點,鄰接節點ID為未訪問ID。
3)NMS更新未訪問節點計數器。如果計數器為0,則算法中止,否則則轉步驟2)。
2.5 算法性能分析
定義圖G(V,E),其中V={v0,v1,v2,…,vn-1}為圖G的節點集合,E={e0,e1,e2,…,em}為圖G的邊集合。不失一般性,取v0為NMS駐留節點。使用上述可控制洪泛法遍歷圖G,結果為一棵以v0為根的生成樹。其中標示為upstream的邊為樹的邊,此樹表示為T(v0,V,E'),其中E'={e1,e2,…,en-1}為E的子集且ei ,其中I=1,2,…,m-1為連接節點vi與其父節點的邊。定義U={v1,v2,…,vk}為生成樹T的葉子節點集合。K為生成樹T的葉子節點數;
Ci:路徑ei上發送一個字節的代價;
Si:從節點vi 發送一個字節的消息到節點v0的代價;
di:節點vi的拓撲信息的字節數;
h:傳輸協議包頭字節數;
md:發現Agent的代碼段字節數;
mr:報告Agent的代碼段字節數。
算法的代價相應分為發現Agent算法的代價和報告Agent的代價兩部分。
1)發現Agent算法的代價
根據算法,生成樹T的每個節點都需要通過被發送的一個發現Agent,所以發現T中每個節點的代價為。除此之外還要排除E-E'的邊。對于一條這樣的邊,到達該邊兩端節點的發現Agent需要向對方發送一個發現Agent,這樣,所有非生成樹的邊需要被兩個發現Agent經過。排除這些邊的代價為,所以發現代價Cd為
\\2)報告Agent算法的代價
報告Agent代價就是報告Agent攜帶網絡拓撲消息遷移到NMS的代價。可以將其分為兩部分:一部分代價是由于包頭和報告Agent代碼段引起的;另一部分代價則是由拓撲信息的長度引起的,第一部分的代價是相同的為
在快速算法中,發現Agent每到達一個處女節點,都會發送一個報告Agent,所以,總共衍生了n個報告Agent,考慮到NMS駐留節點不會引起發送代價,所以由包頭和報告Agent代碼引起的代價為
3)算法總代價
綜合式(1)-式(3)可得該拓撲快速算法的代價為
2.6 小結
本算法的一大有點是避免了管理站給每個被管理節點發送Agent,管理站只要向巡游列表中的第一個節點發送Agent即可。設想,當被管節點之間的網絡是高速和廉價的,而管理站和被管節點之間的網絡是慢速和昂貴的,那么Agent在被管節點之間移動可以大大降低網絡開銷。另一方面,也可以減少網管站的工作,避免成為性能上的瓶頸。
3 結束語
移動Agent獨特的對象傳遞思想和卓越的特性給分布式計算乃至開放系統帶來了極大的革新。但在移動Agent平臺互操作性、安全性和容錯性等方面還應加強,而且在實際應用中與傳統分布式技術相比,只有在網絡繁忙時,移動Agent才能體現出較大的性能優勢[4]。
移動Agent技術在分布式網絡管理中的應用仍處于研究階段,仍存在許多問題和不足有待解決,但其應用前景廣闊,有很高的使用價值和研究意義。
本文創新點:本文介紹了基于移動Agent的分布式網絡管理系統——MADNMS,對系統的結構和工作原理作了詳細的闡述。對系統的核心拓撲算法作了重點的闡述,并對算法性能進行了評估。
參考文獻:
[1] Stanley M T Y, Hong Va L, Antonio S. Distributed agent environment: application and performance[J].Information Science,2003,154(5):5-21.
[2] 黃煙波,余鷹.基于移動代理的分布式網絡管理系統的研究[J].微計算機信息,2006:11-3,154-156.
[3] 彭志娟,王汝傳.基于移動代理的分布式網絡管理研究[J].江蘇通信技術,2006,22(4):6-10.
[4] 劉明,蘇彥,肖剛.基于移動代理技術的網管結構設計[J].空軍工程大學學報,2005.6(4);59-62.
[5] 張云勇.移動Agent及其應用[M].北京:清華大學出版社,2003,9.