劉合兵 林鄧偉
摘要:目前的網(wǎng)絡(luò)管理在系統(tǒng)的可靠性、伸縮性、靈活性等方面存在諸多不足,該文以JADE為平臺(tái)研究了智能網(wǎng)絡(luò)管理系統(tǒng)的模型構(gòu)建。
關(guān)鍵詞:AGENT;JADE;建模
中圖分類號(hào):TP18文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)22-0000-00
計(jì)算機(jī)技術(shù)和通信技術(shù)的快速發(fā)展使計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)和規(guī)模日趨復(fù)雜,逐漸趨向于大規(guī)模、異質(zhì)(不同功能、不同協(xié)議、不同拓?fù)浣Y(jié)構(gòu))網(wǎng)絡(luò)互聯(lián)的復(fù)雜結(jié)構(gòu),組網(wǎng)技術(shù)越來越靈活,網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)終端的種類越來越多樣化。但是,網(wǎng)絡(luò)管理體系結(jié)構(gòu)仍然以集中式結(jié)構(gòu)為主,不能很好地適應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)的發(fā)展需求。因此,借助于AGENT技術(shù)在JADE平臺(tái)上建構(gòu)網(wǎng)絡(luò)管理系統(tǒng),使管理模型結(jié)構(gòu)靈活,對(duì)于單個(gè)網(wǎng)絡(luò)資源具有一定的獨(dú)立性,而對(duì)于系統(tǒng)整體來說具有更好的系統(tǒng)擴(kuò)展性。
1 網(wǎng)絡(luò)管理系統(tǒng)
網(wǎng)絡(luò)管理是一項(xiàng)保證成功運(yùn)行網(wǎng)絡(luò)和商業(yè)活動(dòng)的關(guān)鍵因素。網(wǎng)絡(luò)管理保證網(wǎng)絡(luò)上所提供的服務(wù)能穩(wěn)定地運(yùn)行,并能控制操作成本[1]。網(wǎng)絡(luò)管理保證了所有網(wǎng)絡(luò)資源得到有效的配置,提高網(wǎng)絡(luò)的實(shí)用性以及恰當(dāng)?shù)姆?wù)質(zhì)量,保證信息和網(wǎng)絡(luò)的安全性。不同的網(wǎng)絡(luò)管理目的,有多種不同類的系統(tǒng)可使用,以便幫助網(wǎng)絡(luò)管理專業(yè)人士每天管理和操作網(wǎng)絡(luò)及服務(wù)[2]。每個(gè)系統(tǒng)可包括一個(gè)或多個(gè)功能,但任意一個(gè)單一的方案都不可能完全解決所有的網(wǎng)絡(luò)管理需求。每個(gè)系統(tǒng)可能包括一種或幾種功能。
網(wǎng)絡(luò)管理包含五部分:網(wǎng)絡(luò)性能管理、網(wǎng)絡(luò)設(shè)備和應(yīng)用配置管理、網(wǎng)絡(luò)利用和計(jì)費(fèi)管理、網(wǎng)絡(luò)設(shè)備和應(yīng)用故障管理以及安全管理[3]。ISO建立了一套完整的網(wǎng)絡(luò)管理模型,其中包含了以上五部分的概念性定義:
性能管理:衡量及利用網(wǎng)絡(luò)性能,實(shí)現(xiàn)網(wǎng)絡(luò)性能監(jiān)控和優(yōu)化。網(wǎng)絡(luò)性能變量包括網(wǎng)絡(luò)吞吐量、用戶響應(yīng)次數(shù)和線路利用。
配置管理:監(jiān)控網(wǎng)絡(luò)和系統(tǒng)配置信息,從而可以跟蹤和管理各種版本的硬件和軟件元素的網(wǎng)絡(luò)操作。
計(jì)費(fèi)管理:衡量網(wǎng)絡(luò)利用、個(gè)人或小組網(wǎng)絡(luò)活動(dòng),主要負(fù)責(zé)網(wǎng)絡(luò)使用規(guī)則和帳單等。
故障管理:負(fù)責(zé)監(jiān)測、日志、通告用戶,(一定程度上可能)自動(dòng)解決網(wǎng)絡(luò)問題,以確保網(wǎng)絡(luò)的高效運(yùn)行,這是因?yàn)楣收峡赡芤鹜C(jī)時(shí)間或網(wǎng)絡(luò)退化等。故障管理在ISO網(wǎng)絡(luò)管理單元中是使用最為廣泛的一個(gè)部分。
安全管理:控制網(wǎng)絡(luò)資源訪問權(quán)限,從而不會(huì)導(dǎo)致網(wǎng)絡(luò)遭到破壞。只有被授權(quán)的用戶才有權(quán)訪問敏感信息。
常見的網(wǎng)絡(luò)管理協(xié)議主要有由IETF定義的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)。遠(yuǎn)程監(jiān)控(RMON)是SNMP的擴(kuò)展協(xié)議;另一種是由ISO定義的通用管理信息協(xié)議(CMIP)。典型地,網(wǎng)絡(luò)管理系統(tǒng)包括兩部分:探測器 Probe(或代理),主要負(fù)責(zé)收集眾多網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù);控制臺(tái)Console,主要負(fù)責(zé)集合并分析探測器收集的數(shù)據(jù),提取有用信息和報(bào)告。
目前的網(wǎng)絡(luò)管理系統(tǒng)常用的結(jié)構(gòu)如圖1所示:
這是一種集中式管理結(jié)構(gòu),SNMP代理提供SNMP的訪問響應(yīng)功能。管理站點(diǎn)通過訪問MI庫來得知網(wǎng)絡(luò)資源的狀況,通過對(duì)MIB庫的分析,管理整個(gè)網(wǎng)絡(luò)。該結(jié)構(gòu)中各站點(diǎn)需要通過管理站點(diǎn)及管理員對(duì)自己的站點(diǎn)進(jìn)行管理,而管理站點(diǎn)分析網(wǎng)絡(luò)現(xiàn)狀的依據(jù)只有各個(gè)被管理站點(diǎn)的MIB庫,MIB庫中可以讀取的數(shù)據(jù)又是有限的,管理站點(diǎn)對(duì)他的訪問所要花費(fèi)的時(shí)間也比較多,管理的功能和性能都比較差,因此,系統(tǒng)的可用性和健壯性都比較差,管理站點(diǎn)的負(fù)載較重,管理站點(diǎn)一旦出現(xiàn)問題勢必會(huì)影響整個(gè)網(wǎng)絡(luò)系統(tǒng)。
2 JADE架構(gòu)
JADE(Java Agent DEvelopment Framework)即基于JAVA語言的Agent開發(fā)框架,是由TILAB開發(fā)的開放源代碼的自由軟件。JADE是一種面向Agent的開發(fā)工具,可Java和FIPA環(huán)境下運(yùn)行,由一個(gè)Agent開發(fā)平臺(tái)和一系列工具包組成,這些工具包可為多Agent系統(tǒng)的架構(gòu)提供最基本的支持。JADE完全是用JAVA語言實(shí)現(xiàn)的,當(dāng)前要求的最低的JAVA版本是1.4[5]。
JADE是一個(gè)開放和分布式的軟件,它非常適合開發(fā)基于分布式并且系統(tǒng)中存在著主體間交互的系統(tǒng)。作為一種中間件,JADE提供了很多Agent基礎(chǔ)類以及調(diào)試和配置Agent的工具,包括一套圖形界面工具來管理和監(jiān)控Agent的配置參數(shù)和狀態(tài)。JADE為MAS系統(tǒng)提供了以下功能:(1)Agent管理系統(tǒng)(Agent Management System,簡稱AMS),負(fù)責(zé)控制平臺(tái)內(nèi)Agent的活動(dòng)、生存周期及外部應(yīng)用程序與平臺(tái)的交互,規(guī)范Agent在平臺(tái)上用獨(dú)一無二的名字來標(biāo)識(shí);(2)目錄服務(wù)器(Directory Facilitator,簡稱DF),負(fù)責(zé)對(duì)平臺(tái)內(nèi)的Agent提供黃頁服務(wù),注冊(cè)服務(wù)類型以供查找;(3)消息傳送系統(tǒng),也稱為Agent交流通道(Agent Communication Channel,簡稱ACC),控制平臺(tái)內(nèi)或不同平臺(tái)之間的消息傳輸、消息編碼、消息解析等。
為了保證Agent的分布式計(jì)算和協(xié)作機(jī)制,Jade構(gòu)建行為池(Behaviour Pool)來存儲(chǔ)所有添加的Behaviour,這些Behaviour呈隊(duì)列排列,按照進(jìn)入行為池的順序依次被調(diào)用。Behaviour方法被調(diào)用時(shí),首先執(zhí)行Action方法,然后判斷Done函數(shù)返回的布爾值,如果為真則將Behaviour移出行為池,繼續(xù)下一個(gè)Behaviour的執(zhí)行。Jade提供了這樣一個(gè)基類,其他Agent所需要做的是重載setup,action,done,takeDown這幾個(gè)方法來實(shí)現(xiàn)特定的功能模塊[6]。
3 網(wǎng)絡(luò)管理系統(tǒng)設(shè)計(jì)
現(xiàn)行的計(jì)算機(jī)網(wǎng)絡(luò)管理存在的主要現(xiàn)象是缺乏智能性,靈活行差,可靠性差,管理活動(dòng)受限,管理效率低下。將AGENT技術(shù)引入網(wǎng)絡(luò)管理系統(tǒng),借助于AGENT的特性改變網(wǎng)絡(luò)管理系統(tǒng)結(jié)構(gòu)的現(xiàn)狀。當(dāng)網(wǎng)絡(luò)將要發(fā)生擁塞時(shí),AGENT可預(yù)見性使系統(tǒng)在這之前采取相關(guān)的行動(dòng),避免擁塞的發(fā)生。在每個(gè)網(wǎng)絡(luò)設(shè)備上建立各自我管理的網(wǎng)絡(luò)管理AGENT,這樣各個(gè)網(wǎng)絡(luò)設(shè)備都擁有各自獨(dú)立的管理機(jī)制,又可以與其它網(wǎng)絡(luò)管理agent進(jìn)行交互協(xié)作,協(xié)同處理擁塞和故障以解決整個(gè)網(wǎng)絡(luò)的狀態(tài)。各網(wǎng)絡(luò)管理AGENT無法解決自身問題時(shí),可以協(xié)同其他AGENT解決也能在無法解決時(shí)提交網(wǎng)絡(luò)管理總AGENT,由網(wǎng)絡(luò)管理員來進(jìn)行響應(yīng)解決。
網(wǎng)絡(luò)設(shè)備包括路由器、交換機(jī)、服務(wù)器和工作站等硬件設(shè)施,針對(duì)每個(gè)網(wǎng)絡(luò)硬件設(shè)備建立獨(dú)立的網(wǎng)絡(luò)設(shè)備管理AGENT負(fù)責(zé)相應(yīng)網(wǎng)絡(luò)資源的本地控制和管理等,根據(jù)地理環(huán)境或使用局域范圍建立協(xié)同AGENT,協(xié)同AGENT負(fù)責(zé)網(wǎng)絡(luò)局域內(nèi)的各個(gè)網(wǎng)絡(luò)管理AGENT之間的協(xié)同管理網(wǎng)絡(luò)管理總AGENT負(fù)責(zé)統(tǒng)一管理所有網(wǎng)絡(luò)管理AGENT,網(wǎng)絡(luò)管理總AGENT同時(shí)也是網(wǎng)絡(luò)管理員和系統(tǒng)之間的交互接口。網(wǎng)絡(luò)管理系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)如圖2所示。
網(wǎng)絡(luò)管理AGENT:負(fù)責(zé)對(duì)單個(gè)的網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)督,在網(wǎng)絡(luò)設(shè)備狀態(tài)發(fā)生改變時(shí),向網(wǎng)絡(luò)管理總AGENT發(fā)出事件信號(hào),如果是引起故障發(fā)生的事件,先有網(wǎng)絡(luò)管理AGENT自己根據(jù)本地資源信息判斷是否問題根源所在,并且進(jìn)行自我排除,如無法自我排除則通知給協(xié)同AGENT。網(wǎng)絡(luò)管理員根據(jù)網(wǎng)絡(luò)運(yùn)行的情況,將會(huì)適當(dāng)?shù)禺a(chǎn)生一些管理策略,通過與總控制器之間進(jìn)行人機(jī)交互,使得總控制器掌握了管理策略,并用形式化的描述發(fā)布出去,各個(gè)本地控制器在時(shí)鐘事件的觸發(fā)下,更新了管理策略。網(wǎng)絡(luò)管理AGENT的邏輯圖如圖3所示。
協(xié)同Agent:負(fù)責(zé)對(duì)管理任務(wù)進(jìn)行推理和分解,管理區(qū)域范圍內(nèi)的網(wǎng)絡(luò)資源。接收區(qū)域內(nèi)的各個(gè)網(wǎng)絡(luò)設(shè)備的管理AGENT提交的故障事件,進(jìn)行各網(wǎng)絡(luò)設(shè)備協(xié)同分析解決故障。如果無法解決,則上交網(wǎng)絡(luò)管理總AGENT。
網(wǎng)絡(luò)管理總Agent:負(fù)責(zé)對(duì)網(wǎng)絡(luò)系統(tǒng)異常情況的產(chǎn)生機(jī)制以及對(duì)異常情況的處理機(jī)制進(jìn)行部署。監(jiān)控整個(gè)網(wǎng)絡(luò)的性能和負(fù)責(zé)網(wǎng)絡(luò)設(shè)備的配置,接收各個(gè)網(wǎng)絡(luò)管理AGENT提交的局域范圍內(nèi)無法協(xié)調(diào)解決的問題,在整個(gè)系統(tǒng)范圍內(nèi)進(jìn)行資源調(diào)配解決。該AGENT還向網(wǎng)絡(luò)管理員提供管理系統(tǒng)的界面。網(wǎng)絡(luò)管理員根據(jù)網(wǎng)絡(luò)運(yùn)行情況,制定管理策略,通過與網(wǎng)絡(luò)管理總AGENT之間進(jìn)行人機(jī)交互。網(wǎng)絡(luò)管理總AGENT將管理員的管理策略轉(zhuǎn)化成具體的信息發(fā)布給各網(wǎng)絡(luò)管理AGENT,有必要的話也傳播給各個(gè)協(xié)同AGENT。各網(wǎng)絡(luò)管理AGENT在時(shí)鐘事件的觸發(fā)下,按照接收到的信息進(jìn)行對(duì)相應(yīng)的網(wǎng)絡(luò)管理AGENT進(jìn)行管理策略的更新,從而保證整個(gè)網(wǎng)絡(luò)系統(tǒng)的功能和性能。
4 系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)是主要開發(fā)工具包括JDK,JSP,JADE。本系統(tǒng)采用Tomcat5.5作為運(yùn)行時(shí)的服務(wù)器,Tomcat可以提供JSP服務(wù)器的功能同時(shí)也支持Servlet。
在JADE平臺(tái)中,建立一個(gè)完成特定任務(wù)的Agent需要使用jade.core包中兩個(gè)重要的類,即Agent類和Behaviour類[7]。Agent類定義了JADE系統(tǒng)中Agent的公共基類,提供了收發(fā)消息,Agent的生存期狀態(tài)管理等方法。開發(fā)Agent就是設(shè)計(jì)一個(gè)繼承jade.core.Agent的類,設(shè)計(jì)Agent的行為實(shí)現(xiàn)特定的功能。Agent的狀態(tài)有8個(gè),包括初始(AP_INITIATED) 、活動(dòng) (AP_ACTIVE) 、懸掛(AP_SUSPENDED) 、等待(AP_WAITING) 、已刪除(AP_DELETED) 、遷移 (AP_TRANSIT) 、克隆(AP_COPY) 、離開(AP_GONE) 。只有在AP_ACTIVE 狀態(tài)下,Agent 的行為才能被執(zhí)行。
Behaviour類:Agent提供的每個(gè)功能/服務(wù)是通過一個(gè)或多個(gè)行為實(shí)現(xiàn)的。在定義行為類時(shí)需要定義action()方法和done()方法(循環(huán)行為CyclicBehaviour沒有done()方法)。當(dāng)線程進(jìn)入action()方法運(yùn)行時(shí),占用CPU直到action()方法返回,才能將CPU讓給其它行為。對(duì)于單個(gè)步驟執(zhí)行時(shí)間較長的操作,應(yīng)該將其分解成一些子操作,Agent行為的線程總是從action()開始運(yùn)行,使用一個(gè)開關(guān)語句每次執(zhí)行其中的一個(gè)子操作,這樣可以避免影響其它任務(wù)的并行執(zhí)行。當(dāng)done()方法返回true 時(shí),行為的action()方法不再執(zhí)行。
5 結(jié)束語
本文對(duì)網(wǎng)絡(luò)管理系統(tǒng)的建模進(jìn)行了研究,使用了JADE開發(fā)架構(gòu)。JADE架構(gòu)提供了構(gòu)造多Agent系統(tǒng)的機(jī)制,使Agent的執(zhí)行和通信實(shí)現(xiàn)變的更加容易,為Agent技術(shù)和JADE平臺(tái)的融合進(jìn)行了應(yīng)用研究,系統(tǒng)只是實(shí)現(xiàn)了網(wǎng)絡(luò)管理部分功能,網(wǎng)絡(luò)管理系統(tǒng)的完善、網(wǎng)絡(luò)的安全性還有待于進(jìn)一步的研究。
參考文獻(xiàn)
[1] 岑賢道.網(wǎng)絡(luò)管理協(xié)議及應(yīng)用開發(fā)[M].北京:清華大學(xué)出版社,1998:1-215.
[2] Kahani M,Beadle H W.Decentralised Approaches Network Management[J].Communications Review.ACM SIGCOMM,1997(3):36-47.
[3] 郭軍.網(wǎng)絡(luò)管理[M].北京:北京郵電大學(xué)出版社,2001.
[4] 沈潔,許有志,羅建利.基于MAS的本體在企業(yè)知識(shí)管理中的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(11):2963-2965.
[5] Bellifemine F,Caire G,Poggi A,et al.JADE A White Paper[Z].2003.
[6] Tutorial for beginners[EB/OL].http://jade.tilab.com/JADEProgramming Tutorial for beginners.pdf.