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