999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

管理信息存儲與傳輸優化設計

2008-01-01 00:00:00林立新蔣新華施榮華
計算機應用研究 2008年4期

摘要:詳細介紹了面向應用軟件的網絡監控系統管理信息存儲與傳輸優化設計過程,包括三種存儲設計方案及其優缺點的比較,內存映射文件的存儲數據結構設計,三種可逆轉換規則的分析與比較以及根據優化的可逆轉換規則設計的二叉樹遍歷和恢復算法等。通過優化的存儲與傳輸設計,實時、高效地完成了監控信息的傳輸與交換。

關鍵詞:優化存儲; 內存文件映射; 可逆轉換規則; 二叉樹遍歷算法; 二叉樹恢復算法

中圖分類號:TP393文獻標志碼:A

文章編號:1001-3695(2008)04-1111-03

0引言

隨著網絡規模的增大,網絡結構及網絡應用日漸復雜,傳統的物理安全技術和措施已經不足以保證信息系統的安全了,因此網絡管理系統作為網絡安全運行的保證,其重要性越來越突出。為了提高計算機網絡信息安全,許多相關的網絡安全產品被開發,但大多是基于網絡硬件設備,如路由器、集線器、交換機等,而對網絡應用軟件的研究和開發相對較少[1,2]。為了保證網絡環境中的應用程序正常高效地運行,筆者設計了基于簡單網絡管理協議(simple network management protocol,SNMP)的網絡應用軟件監控系統(application software net monitoring system,ASNMS)。該系統選擇運行于網絡環境中的應用程序為研究對象[3,4],對SNMP中MIB

(management information base,管理信息庫)信息和協議數據單元進行擴充,實現了對網絡中運行的應用程

序類中成員變量和成員函數的監控。

1網絡應用軟件監控系統

網絡應用軟件監控系統的主要監控目標是網絡中的應用軟件,通過及時獲取軟件中重要變量值(如系統配置、狀態指示等),從而及時了解整個網絡中應用程序的狀態,并且還可以通過管理站點對各受控站點中的應用程序進行控制操作,提高整個網絡和應用系統的安全性。

該網絡應用軟件監控系統主要有三個模塊[4]:

a)管理站點主程序。該程序在管理站點上運行。通過該程序,管理站點可以使用UDP/IP協議與管理范圍內的所有受控站點進行通信,收集網絡應用程序的監控信息,并下發各種控制命令。

b)管理代理。每一個受控站點上運行一個管理代理程序(有且僅有一個)。管理代理是系統的通信中心。一方面,通過內存映射文件與受控站點上的各應用程序實例進行通信,收集各應用程序實例的監控信息;另一方面,通過UDP協議與管理站點通信,發送受控站點的管理信息以及轉發管理站點的控制命令。

c) 監控模塊。該模塊是供軟件開發人員使用的一個通用接口模塊。它負責從受控應用程序中獲取監控信息,發送到管理站點,并且也能接收從管理代理轉發的管理站點命令,對受控應用程序執行一定的控制操作。從結構上來看,監控模塊附屬于受控應用程序,但它以單獨的線程形式存在。

2管理信息存儲的設計

2.1存儲設計方案比較與選擇

為了監控模塊工作的需要,同時為了能更方便地將監控信息傳送給管理代理,監控模塊需要將監控信息以一定的形式存儲起來,監控模塊監控的目標是應用程序中的變量。由于現在軟件開發大多使用的是面向對象的方法,在其程序中各種變量是有層次結構關系的,這一點必須在監控信息中體現出來。監控信息從邏輯上看應該是以樹的形式存在的。并且因為存儲的是各種變量的信息,而變量的長度是不相同的,在這棵樹中各個節點的空間大小有可能也不相同。由此看來,無論是從存儲內容上還是從邏輯結構上看,監控信息的存儲結構都是相對較為復雜的。筆者認為下面三種設計方案可以滿足這樣的要求:

a)在監控模塊內存空間中生成一棵二叉樹。

這是最常規的存儲方法。在此情況下,只需要設計一個較為合理的樹結構,二叉樹就能直接存儲在監控模塊的內存空間中,訪問方便。同時因為在許多語言中都有任意類型的數據類型,由此可以將不同數據類型的數據方便地存儲在一種數據結構中[5]。由于這棵樹存在于監控模塊的內存空間中,不方便管理代理程序對

其讀取,監控模塊還需要通過一定的方法將該樹傳送給管理代理。其優點是實現簡單,監控模塊可以很方便地對其進行讀寫操作;其缺點是不方便管理代理程序對監控信息讀取,需要使用其他方法將信息傳送給管理代理。

b)將監控信息存儲在磁盤文件中。

為了解決管理代理和監控模塊共享監控信息的問題,監控模塊可以將監控信息存儲為磁盤文件形式。在此情況下,需要設計一套完整合理的文件空間使用策略,保證能夠完整地存儲監控信息。由于在Windows程序中采用了虛擬內存策略,不同應用程序內存空間是不同的,即使某應用程序獲取了另一個程序中的某個指針,也不能正確地訪問到其數據[6]。由此,在對變量值進行存儲時,一定要注意不能存儲有關變量的指針信息,而應該想辦法存儲其中變量的實際數據。同時因為是將監控信息存儲于磁盤上,因此需要采取一定的措施盡量避免出現垃圾文件的情況,同時還要防止在工作狀態下用戶有意或無意地修改、刪除該文件。其優點是多個程序可以方便地共享數據;其缺點是實現較復雜,容易產生垃圾文件,容易泄漏和丟失監控信息。

c)將監控信息存儲在內存文件映射中。

這是對方案二的改進。方案二將監控信息存儲于磁盤文件中,由此使得容易產生垃圾文件、容易泄漏和丟失監控信息。如何將監控信息直接存儲在內存中呢?采用內存文件映射是一個解決的好辦法,應用程序在需要時在內存中開辟一定的空間存儲數據。當應用程序關閉后,由于操作系統的內存管理機制,內存文件將自動被回收,安全性高。但是在生成內存映射文件時,必須要指定文件的大小,此時如果處理不當將可能出現存儲空間不夠用的情況。其優點是多個程序可以方便地共享數據,數據不易泄漏,安全性高;其缺點是實現較復雜,必須指定文件大小,處理不當可能出現空間不夠用的情況。

綜合三種方案,筆者認為方案三是最合適的。只要指定足夠的文件大小,它不僅滿足監控模塊存儲管理信息的需要,信息安全性高,同時可方便地實現監控模塊和管理代理間實時信息交換的功能。

2.2內存映射文件存儲數據結構設計

為了能存儲完整的變量結構信息,可將監控信息的邏輯存儲結構設計為如圖1所示。在監控信息的邏輯結構中存在兩種結構指針,橫向指針表示父子關系,縱向指針表示兄弟關系,由此而構成了一棵二叉樹。

在圖1所示結構中,由于不同變量類型存儲大小不同,從而導致二叉樹中各個節點的大小不統一。為了方便地進行存儲空間管理,同時又能準確完整地記錄如上變量結構信息,筆者設計了一套內存映射文件的存儲數據結構。其基本思想是將數據本身與數據間的邏輯關系分開進行處理[6],每次根據實際使用的需要在文件空閑空間中分配相應大小的空間,并在該空間的起始位置生成一個空間信息記錄。其中包括存放的變量類型、變量大小、變量指針、結構指針等數據信息。此外還包括了該空間的地址、前后相鄰區域地址、本空間大小等空間管理信息。真正的記錄數據實體存放在該空間信息記錄之后的剩余空間中(剩余空間的大小可以是不同的)。文件的存儲結構如圖2所示。

由圖2可以看出,在監控信息存儲文件中,所有的存儲空間都是前后緊連著的,通過空間信息記錄可以得知某區域的大小以及是否正在被使用,這樣能夠方便地進行空間分配和回收工作。又因為在空間信息記錄中存在變量結構指針,因而通過空間信息記錄也能方便地訪問到數據間的邏輯結構關系。

3管理信息傳輸的設計

3.1可逆轉換規則的分析與比較

ASNMS設計中,管理信息庫MIB的組織方式采取類似于SNMP的管理信息組織方式,對于MIB中管理對象的存儲采用二叉樹的存儲方式。在管理站點與管理代理、管理代理與監控模塊間通信過程中,都要用到將整個MIB進行傳輸,可能是同一機器進程間傳輸,也可能是不同機器間網絡傳輸。要對二叉樹進行正確傳輸,必須將二叉樹以特定的規則轉換成一個線性序列,將這個線性序列傳輸到目的地后,再按照特定規則的逆規則將這一線性序列重新生成一棵與原來一樣的二叉樹。轉換規則的選擇有很多,只要這個規則可逆就可以了。一般所用的二叉樹遍歷方法(如前序遍歷、中序遍歷、后序遍歷等)雖然可以將二叉樹轉換成線性結構,但這些方法都是不可逆的,即無法從線性結構再恢復到原來的二叉樹形式,因此無法使用。

下面介紹三種可逆轉換規則:

a)將二叉樹以兩種不同的遍歷方式(如后序遍歷和中序遍歷)遍歷后的線性結果進行傳送,在目的地利用這兩種遍歷方式,將線性結果恢復成原來的二叉樹。這種方式的不利之處在于將遍歷結果傳送了兩次。一般情況下,MIB的信息量均比較大,傳送其遍歷結果需要占據比較大的網絡帶寬[7],傳送兩次所帶來的浪費是相當可觀的,勢必影響系統的效率。

b)將二叉樹按照滿二叉樹的形式補足節點,再按照層次從二叉樹的根開始逐層遍歷到樹葉節點。一般情況下,MIB樹都不是很規則[8],要補足成滿二叉樹形式所造成的浪費也很大。

c)由于ASNMS的MIB中管理對象節點在內存中時,要么是度為2的節點,要么就是葉子節點,可將二叉樹以一種遍歷方式進行遍歷(如前序遍歷、中序遍歷、后序遍歷等),但在遍歷時對葉子節點加上空節點信息,在目的地根據空節點信息將遍歷結果恢復成原來的二叉樹形式。這種方案是用于傳輸MIB監控信息較優的可逆轉換規則。簡單的例子如圖3所示:根據二叉樹遍歷算法,由(a)二叉樹可以得到(b)的線性序列,根據二叉樹恢復算法,可以將(b)的線性序列恢復成(a)的二叉樹。采用這種方法,對網絡帶寬和存儲空間的浪費都比較小,效率得到了提高。

3.2三種可逆轉換規則算法空間復雜度的比較

具有n個節點的完全二叉樹,一定有(n+1)/2個葉子節點。若采用第一種可逆轉換規則算法,那么需要占用2n個非空節點的存儲空間;若采用第三種可逆轉換規則算法,只需要占用n個非空節點,以及(n+1)個空節點的存儲空間,而空節點所占用的存儲空間遠遠小于非空節點所占用的存儲空間。因此,第三種算法比第一種算法至少會節省n/2個非空節點的存儲空間。

具有n個節點的單枝二叉樹,只有一個葉子節點。若采用第二種可逆轉換規則算法,那么需要占用n個非空節點,以及(2n-n-1)個空節點的存儲空間;若采用第三種可逆轉換規則算法,只需要占用n個非空節點,以及兩個空節點的存儲空間。因此,第三種算法比第二種算法節省了(2n-n-3)個空節點的存儲空間。

由以上分析得出,采用第三種算法比前兩種算法幾乎節省n/2個節點的存儲空間,傳送一棵二叉樹的遍歷結果,幾乎節省一半的網絡帶寬。

3.3二叉樹的遍歷算法

根據優化的可逆轉換規則設計的二叉樹遍歷算法如下:

//遍歷二叉樹

CString CMCWnd::MibTreeToString()

{CString string=\"\";

//二叉樹復位

MibTree .Reset();

//遞歸訪問二叉樹,并將訪問結構記錄在string中

VisitTree(MibTree .GetNode(),string);

//返回結構string——遍歷后形成的線性結構

return string;}

//遞歸訪問函數,node是要訪問的二叉樹的根節點

void CMCWnd::VisitTree(BTreeNode *node,CString string)

{ //將訪問到的二叉樹節點的名字加入線性結構中

string=string+node->GetMember().Name;

if (node->GetLChild()!=NULL)

//訪問節點的左子樹

VisitTree(node->GetLChild(),string);

else

//添加空節點信息

string=string+\"*\";

if (node->GetRChild()!=NULL)

//訪問節點的右子樹

VisitTree(node->GetRChild(),string);

else

//添加空節點信息

string=string+\"*\";}

3.4二叉樹的恢復算法

根據優化的可逆轉換規則設計的二叉樹恢復算法如下:

//恢復二叉樹

void CMCWnd::StringToMib(CString string)

{int length=string .GetLength();

int num=0;

//二叉樹清空

MibTree .Empty();

//遞歸建立二叉樹

CreateTree(\"\" ,string.GetBuffer

(string.GetLength()) ,num ,length);}

/*遞歸建立二叉樹函數,path所要創建的二叉樹的根節點的哈夫曼路徑*/

//str為線性數組,num為當前所訪問的線性數組元素的下標

//length為線性數組的長度

void CMCWnd::CreateTree(CString path,char *str,int num,int length)

{ if(num

if(str[num]!=′*′)

{ //加入新節點,新節點的名字是str[num],哈夫曼路徑為path

MibTree.InsertNode(path,str[num]);

num++;

//加入左子樹

CreateTree(path+\"0\",str,num,length);

//加入右子樹

CreateTree(path+\"1\",str,num,length);}

}

4結束語

1)在對SNMP中MIB信息和協議數據單元擴充的基礎上,設計并實現了面向應用軟件的網絡監控系統。該系統提供了對應用程序類中成員變量和成員函數的監控功能。

2)詳細介紹了網絡應用軟件監控系統中管理信息存儲與傳輸的優化設計過程。其中包括:a)三種存儲設計方案(在監控模塊內存空間中生成一棵二叉樹、將監控信息存儲在磁盤文件中、將監控信息存儲在內存文件映射中)及其優缺點的比較;b)內存映射文件的存儲數據結構設計;c)三種可逆轉換規則的分析與比較;d)根據優化的可逆轉換規則設計的二叉樹遍歷和恢復算法等。

3)通過優化的存儲與傳輸設計,實時、高效地完成了監控信息的傳輸與交換。

參考文獻:

[1]唐亞哲,張鵬,李增智,等.DIINMS分布智能網絡管理系統的設計與實現[J].小型微型計算機系統,2002,23(8):926-929.

[2]HUNTER, PHILIP. Integrated security and network management remain elusive[J]. Network Security, 2004,10(6):15-16.

[3]林立新,蔣新華,陳特放.網絡監控原理及實現[J].計算機工程,2004,30(7):92-94.

[4]COMER D E, STEVENS D L.用TCP/IP進行網際互聯2卷:設計、實現與內核[M].趙剛,林瑤,蔣慧,等譯.北京:電子工業出版社,2001.

[5]MARK A, MILLER P E.用SNMP管理互聯網絡[M].晏明峰,李靜,晏峻峰,譯.3版.北京:中國水利水電出版社,2001:63-204.

[6]唐浩,王振興,聶劍威.基于消息服務器的路由器網絡管理[J].計算機應用研究,2005,22(11):169-170.

[7]董文莉,孟洛明.基于XML和消息隊列的網絡管理信息交互方案[J].計算機應用研究,2005,22(8):24-26.

[8]FREY J, TANNENBAUM T, LIVNY M, et al. Condor-G: a computation management agent for multi-institutional grids[C]//Proc of the 10th International Symposium on High Performance Distributed Computing(HPDC-10). San Francisco:IEEE Press,2001:55-63.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 97视频在线观看免费视频| 最新国产精品第1页| 成人午夜视频免费看欧美| 免费国产高清视频| 久久国产精品电影| 国产精品播放| av在线手机播放| 日本午夜网站| 五月天福利视频| 久久久精品国产亚洲AV日韩| 亚洲国产成人精品一二区| 久久黄色毛片| 亚洲午夜综合网| 亚洲国产日韩在线成人蜜芽| 国产H片无码不卡在线视频| 国产欧美日韩专区发布| 欧美a级完整在线观看| 欧美在线三级| 亚州AV秘 一区二区三区| 日本一区二区三区精品国产| 国产成人高清亚洲一区久久| 在线观看国产小视频| 国产精品网拍在线| 国产乱人伦精品一区二区| 直接黄91麻豆网站| 中文字幕久久波多野结衣| 国产一区二区免费播放| 国产成人无码AV在线播放动漫| 欧美日韩动态图| 亚洲精品图区| 亚洲人成网7777777国产| 国产免费人成视频网| 国产亚洲欧美在线专区| 日本在线国产| 国产欧美日韩视频怡春院| 中文字幕亚洲精品2页| 亚洲AⅤ永久无码精品毛片| 亚洲AⅤ综合在线欧美一区| 国产91在线|日本| 91国内在线视频| 日韩免费成人| 伊人成人在线| 国产不卡一级毛片视频| 欧美日一级片| 伊人大杳蕉中文无码| 欧美黄网在线| 国产日韩精品欧美一区灰| 日本国产精品| 日本欧美精品| 国外欧美一区另类中文字幕| 国产性爱网站| 日韩123欧美字幕| 欧美精品亚洲日韩a| 国产大片黄在线观看| 亚洲国产精品日韩av专区| 欧美日韩一区二区在线播放| 中文字幕欧美日韩高清| 久久特级毛片| 亚洲天堂视频网| 久久国产免费观看| 国产成人综合久久| a在线亚洲男人的天堂试看| 国产日韩精品欧美一区喷| 国产性生大片免费观看性欧美| 国产日韩av在线播放| 色精品视频| 97se亚洲综合不卡| 亚洲天堂视频网站| 波多野结衣一区二区三区88| 成人国产免费| 91 九色视频丝袜| 欧美视频在线播放观看免费福利资源| 久久午夜夜伦鲁鲁片不卡| 999精品在线视频| 久久国语对白| 国产精品香蕉在线| 国产成人调教在线视频| 国内精品久久久久久久久久影视| 女人18毛片一级毛片在线 | 日韩第八页| 国产91小视频| 国产主播喷水|