- 相關(guān)推薦
研究管理代理與監控模塊通信設計
摘要:詳細介紹了面向應用軟件的網(wǎng)絡(luò )監控系統中管理代理和監控模塊通信的設計與實(shí)現過(guò)程。包括管理信息存儲的優(yōu)化設計、內存映射文件的存儲數據結構設計、監控指令轉發(fā)技術(shù)、內存映射文件的通信方式、同步機制應用等。通過(guò)內存映射文件方式存儲管理信息,高效地完成了收集各應用程序實(shí)例的監控信息任務(wù),并實(shí)現了監控信息的存儲、共享和監控模塊與管理代理間實(shí)時(shí)信息交換的功能。?關(guān)鍵詞:優(yōu)化存儲;內存文件映射;消息機制;同步機制?
隨著(zhù)網(wǎng)絡(luò )規模增大,網(wǎng)絡(luò )結構及網(wǎng)絡(luò )應用日漸復雜,傳統的物理安全技術(shù)和措施已經(jīng)不足以保證信息系統的安全,因此網(wǎng)絡(luò )管理系統作為網(wǎng)絡(luò )安全運行的保證,其重要性越來(lái)越突出。為了提高計算機網(wǎng)絡(luò )信息安全,許多相關(guān)的網(wǎng)絡(luò )安全產(chǎn)品被開(kāi)發(fā),但大多是基于網(wǎng)絡(luò )硬件設備,如路由器、集線(xiàn)器、交換機等,而對網(wǎng)絡(luò )應用軟件的研究和開(kāi)發(fā)相對較少[1~4]。為了保證網(wǎng)絡(luò )環(huán)境中的應用程序正常高效地運行,筆者設計了基于SNMP的ASNMS(Application Software Net Monitoring System,網(wǎng)絡(luò )應用軟件監控系統)。該系統選擇運行于網(wǎng)絡(luò )環(huán)境中的應用程序為研究對象[5,6]。?
1網(wǎng)絡(luò )應用軟件監控系統(ASNMS)簡(jiǎn)介?
ASNMS的主要監控目標是網(wǎng)絡(luò )中的應用軟件,通過(guò)及時(shí)獲取軟件中重要變量值(如系統配置、狀態(tài)指示等),從而及時(shí)了解整個(gè)網(wǎng)絡(luò )中應用程序的狀態(tài),并且還可以通過(guò)管理站點(diǎn)對各受控站點(diǎn)中的應用程序進(jìn)行控制操作,提高整個(gè)網(wǎng)絡(luò )和應用系統的安全性。?該網(wǎng)絡(luò )應用軟件監控系統主要有三個(gè)模塊[5,6]:?
(1)管理站點(diǎn)主程序。該程序在管理站點(diǎn)上運行。通過(guò)該程序,管理站點(diǎn)可以使用UDP/IP協(xié)議與管理范圍內的所有受控站點(diǎn)進(jìn)行通信,收集網(wǎng)絡(luò )應用程序的監控信息,并下發(fā)各種控制命令。?
(2)管理代理。每一個(gè)受控站點(diǎn)上運行一個(gè)管理代理程序(有且僅有一個(gè))。管理代理是系統的通信中心。一方面通過(guò)內存映射文件與受控站點(diǎn)上的各應用程序實(shí)例進(jìn)行通信,收集各應用程序實(shí)例的監控信息;另一方面通過(guò)UDP協(xié)議與管理站點(diǎn)通信,發(fā)送受控站點(diǎn)的管理信息以及轉發(fā)管理站點(diǎn)的控制信息。?
。3)監控模塊。該模塊是供軟件開(kāi)發(fā)人員使用的一個(gè)通用接口模塊。它負責從受控應用程序中獲取監控信息,發(fā)送到管理站點(diǎn),并且也能接收從管理代理轉發(fā)的管理站點(diǎn)命令,對受控應用程序執行一定的控制操作。從結構上來(lái)看,監控模塊附屬于受控應用程序,但它以單獨的線(xiàn)程形式存在。
?
2管理信息存儲的設計?
為了監控模塊工作的需要,同時(shí)為了能更方便地將監控信息傳送給管理代理,監控模塊需要將監控信息以一定的形式存儲起來(lái)。監控模塊監控的目標是應用程序中的變量。由于現在軟件開(kāi)發(fā)大多使用的是面向對象的方法,在其程序中各種變量是有層次結構關(guān)系的,這一點(diǎn)必須在監控信息中體現出來(lái)[7]。監控信息從邏輯上看應該是以樹(shù)的形式存在,并且存儲的是各種變量的信息,而變量的長(cháng)度是不相同的,在這棵樹(shù)中各個(gè)節點(diǎn)的空間大小有可能不相同。由此看來(lái),無(wú)論是從存儲內容上還是從邏輯結構上看,監控信息的存儲結構均是相對較為復雜的。下面三種設計方案可以滿(mǎn)足這樣的要求:?
(1)在監控模塊內存空間內生成一棵二叉樹(shù)。這是最常規的存儲方法。在此情況下,只需要設計一個(gè)較為合理的樹(shù)結構,二叉樹(shù)就能直接存儲在監控模塊的內存空間中,訪(fǎng)問(wèn)方便。同時(shí)因為在許多語(yǔ)言中均有任意類(lèi)型的數據類(lèi)型,由此可以將不同數據類(lèi)型的數據方便地存儲在一種數據結構中。但是由于這棵樹(shù)存在于監控模塊的內存空間中,不方便管理代理程序對其讀取,監控模塊還需要通過(guò)一定的方法將該樹(shù)傳送給管理代理[4,7]。?
優(yōu)點(diǎn):實(shí)現簡(jiǎn)單,監控模塊可以很方便地對其進(jìn)行讀寫(xiě)操作。?
缺點(diǎn):不方便管理代理程序對監控信息讀取,需要使用其他方法將信息傳送給管理代理。?
(2)將監控信息存儲在磁盤(pán)文件中。為了解決管理代理和監控模塊共享監控信息的問(wèn)題,監控模塊可以將監控信息存儲為磁盤(pán)文件形式。在此情況下,需要設計一套完整合理的文件空間使用策略,保證能夠完整地存儲監控信息。由于在Windows程序中采用了虛擬內存策略,不同應用程序內存空間是不同的,即使某應用程序獲取了另一個(gè)程序中的某個(gè)指針,也不能正確地訪(fǎng)問(wèn)到其數據。在對變量值進(jìn)行存儲時(shí),一定要注意不能存儲有關(guān)變量的指針信息,而應該想辦法存儲其中變量的實(shí)際數據[8]。同時(shí)因為是將監控信息存儲于磁盤(pán)上,需要采取一定的措施盡量避免出現垃圾文件的情況,同時(shí)還要防止在工作狀態(tài)下用戶(hù)有意或無(wú)意地修改、刪除該文件。?
優(yōu)點(diǎn):多個(gè)程序可以方便地共享數據。?
缺點(diǎn):實(shí)現較復雜,容易產(chǎn)生垃圾文件,容易泄漏和丟失監控信息。?
(3)將監控信息存儲在內存文件映射中。這是對方案(2)的改進(jìn)。方案(2)將監控信息存儲于磁盤(pán)文件中,由此使得容易產(chǎn)生垃圾文件、容易泄漏和丟失監控信息。那么如果將監控信息直接存儲在內存當中呢?采用內存映射文件是一個(gè)很好的解決辦法。應用程序在需要時(shí)在內存中開(kāi)辟一定的空間存儲數據,當應用程序關(guān)閉后,由于操作系統的內存管理機制,內存文件將自動(dòng)被回收,安全性高。但是在生成內存映射文件時(shí),必須要指定文件的大小,此時(shí)如果處理不當將可能出現存儲空間不夠用的情況[4,8]。?
優(yōu)點(diǎn):多個(gè)程序可以方便地共享數據,數據不易泄漏,安全性高。?
缺點(diǎn):實(shí)現較復雜,必須指定文件大小,處理不當可能出現空間不夠用的情況。?
綜合三種方案,方案(3)是最合適的。只要指定足夠的文件大小,它不僅滿(mǎn)足監控模塊存儲管理信息的需要,信息安全性高,同時(shí)可方便地實(shí)現監控模塊與管理代理之間實(shí)時(shí)信息交換功能,從而解決它們之間的通信問(wèn)題! 3管理代理與監控模塊通信的設計?
3.1管理代理與監控模塊間通信?
通信包括系統初始化連接建立、命令轉發(fā)和自定義消息。?
(1)系統初始化連接建立。管理代理隨受控站點(diǎn)啟動(dòng)后,必須接收各個(gè)應用程序實(shí)例的監控模塊的注冊信息,與監控模塊建立初始連接。?
(2)命令轉發(fā)。管理代理接收到管理站點(diǎn)發(fā)送的UDP報文后,先識別該報文是發(fā)送給哪個(gè)監控模塊的,然后通過(guò)Windows消息形式發(fā)送給指定的監控模塊。?
(3)管理代理與監控模塊之間約定一系列自定義消息,并向Windows注冊,保證雙方能夠正確地通過(guò)自定義消息進(jìn)行通信。?
3.2監控信息的收集與組織?
在受控站點(diǎn)上,管理代理與多個(gè)應用程序實(shí)例的監控模塊之間是通過(guò)內存映射文件進(jìn)行通信的。監控信息存儲在內存映射文件中。?
(1)監控信息收集就是對監控模塊對應的內存映射文件進(jìn)行遍歷。通過(guò)遍歷獲得最新的被監控應用程序的狀態(tài)、監控變量的值等。?
(2)監控信息收集時(shí),需提供有效的同步機制,防止管理代理與監控模塊同時(shí)訪(fǎng)問(wèn)同一個(gè)監控信息文件時(shí)出錯
【研究管理代理與監控模塊通信設計】相關(guān)文章:
智能光模塊通信系統設計11-22
軌道交通監控系統聯(lián)動(dòng)模塊設計論文11-20
基于VB的分布式監控系統通信設計03-18
ERP中的物流模塊研究12-04
通信電源的運行管理與應用研究03-18