褚如龍
摘要:隨著信息技術(shù)的快速發(fā)展,人們對(duì)網(wǎng)絡(luò)的實(shí)時(shí)性和可靠性要求也越來越高。該文在python語言下,通過提取IA分布式系統(tǒng)的網(wǎng)絡(luò)監(jiān)測(cè)結(jié)果,依據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)的等級(jí)屬性,提出一種基于XML的網(wǎng)絡(luò)重組策略,實(shí)現(xiàn)在節(jié)點(diǎn)狀態(tài)突變的情況下的動(dòng)態(tài)網(wǎng)絡(luò)重組。實(shí)驗(yàn)證明,該策略能有效提高系統(tǒng)的應(yīng)變力,提高網(wǎng)絡(luò)的可靠性和實(shí)時(shí)性,保證網(wǎng)絡(luò)通信的正常進(jìn)行。
關(guān)鍵詞:XML;網(wǎng)絡(luò)重組;IA分布式系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)09-0032-03
Abstract: With the rapid development of information technology, the network demand for real-time and reliability are higher. This paper, after extracting the network monitoring result of IA distributed system, According to the class attribute of network node, proposed a network reconfiguration strategy based on XML by Python, Realized the dynamic network reconfiguration in case of node state mutation. The experimental is shown that, this strategy can effectively improve system flexibility, network reliability and real-time, to make sure that the network communication is normal.
Key words: XML; network reconfiguration; IA distributed system
隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)實(shí)時(shí)性和穩(wěn)定性的要求越來越高。當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)被銷毀或設(shè)備故障時(shí), 故障管理雖然是偵測(cè)和辨別網(wǎng)絡(luò)故障的重要部分, 但是在提高網(wǎng)絡(luò)利用率方面, 網(wǎng)絡(luò)重組顯得更為有效。通過網(wǎng)絡(luò)重組技術(shù),能對(duì)網(wǎng)絡(luò)進(jìn)行動(dòng)態(tài)重組以快速重構(gòu)網(wǎng)絡(luò), 保證網(wǎng)絡(luò)通信的正常進(jìn)行。
XML是由萬維網(wǎng)協(xié)會(huì)(W3C)設(shè)計(jì),特別為Web應(yīng)用服務(wù)的SGML的一個(gè)重要分支,是一種中介標(biāo)示語言,可提供描述結(jié)構(gòu)化資料的格式,被設(shè)計(jì)用來描述數(shù)據(jù)的語言。XML提供了一種獨(dú)立的運(yùn)行程序的方法來共享數(shù)據(jù),它是用來自動(dòng)描述信息的一種新的標(biāo)準(zhǔn)語言,它能使計(jì)算機(jī)通信把Internet的功能由信息傳遞擴(kuò)大到人類其他多種多樣的活動(dòng)中去。利用XML,Web設(shè)計(jì)人員不僅能創(chuàng)建文字和圖形,而且還能構(gòu)建文檔類型定義的多層次、相互依存的系統(tǒng)、數(shù)據(jù)樹、元數(shù)據(jù)、超鏈接結(jié)構(gòu)和樣式表。
本文在python語言下,通過對(duì)IA分布式系統(tǒng)的網(wǎng)絡(luò)監(jiān)測(cè)結(jié)果的提取,以網(wǎng)絡(luò)節(jié)點(diǎn)的等級(jí)屬性為依據(jù),提出一種基于XML的網(wǎng)絡(luò)重組策略,實(shí)現(xiàn)在節(jié)點(diǎn)狀態(tài)突變的情況下的動(dòng)態(tài)網(wǎng)絡(luò)重組。實(shí)驗(yàn)證明,該策略能有效提高系統(tǒng)的應(yīng)變力,提高網(wǎng)絡(luò)的可靠性和實(shí)時(shí)性。
1 IA分布式系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
本文提出的策略在一個(gè)由 Python 語言構(gòu)建的 IA 分布式網(wǎng)絡(luò)系統(tǒng)中實(shí)現(xiàn)。系統(tǒng)主要由 3個(gè)部分構(gòu)成,可以表示為:{A,S,N}。其中A指由各個(gè)功能IA組成的IA系統(tǒng),各IA能自由地在各網(wǎng)絡(luò)節(jié)點(diǎn)之間遷移并通過通信和協(xié)作完成任務(wù),各IA具有不能的功能,如網(wǎng)絡(luò)監(jiān)測(cè)、消息封裝、數(shù)據(jù)加密、數(shù)據(jù)解密、網(wǎng)絡(luò)重組等。S是n個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)組合,是各IA駐留的平臺(tái)所在。N是連接各網(wǎng)絡(luò)節(jié)點(diǎn)、確保各 IA 移動(dòng)的網(wǎng)絡(luò)。
系統(tǒng)網(wǎng)絡(luò)分為一級(jí)網(wǎng)絡(luò)、二級(jí)網(wǎng)絡(luò)、三級(jí)網(wǎng)絡(luò),固定的3層結(jié)構(gòu),每層網(wǎng)絡(luò)的節(jié)點(diǎn)分別稱一級(jí)節(jié)點(diǎn)、二級(jí)節(jié)點(diǎn)、三級(jí)節(jié)點(diǎn)。隸屬關(guān)系為:一個(gè)一級(jí)節(jié)點(diǎn)支下?lián)碛幸欢〝?shù)量的二級(jí)節(jié)點(diǎn),這些二級(jí)節(jié)點(diǎn)在系統(tǒng)正常情況下,僅從屬于確定的一級(jí)節(jié)點(diǎn);一個(gè)二級(jí)節(jié)點(diǎn)支下也擁有一定數(shù)量的三級(jí)節(jié)點(diǎn),這些三級(jí)節(jié)點(diǎn)在系統(tǒng)正常情況下,僅從屬于確定的二級(jí)節(jié)點(diǎn)。
另外,系統(tǒng)根據(jù)網(wǎng)絡(luò)層次的高低來確定節(jié)點(diǎn)的等級(jí),節(jié)點(diǎn)的等級(jí)越高,擁有的權(quán)限也就越大,一級(jí)節(jié)點(diǎn)>二級(jí)節(jié)點(diǎn)>三級(jí)節(jié)點(diǎn)。從圖1的可以看出,自上而下,高級(jí)節(jié)點(diǎn)管理低級(jí)節(jié)點(diǎn),自下而上,低級(jí)節(jié)點(diǎn)接受高級(jí)節(jié)點(diǎn)的任務(wù),一級(jí)網(wǎng)絡(luò)內(nèi)的一級(jí)節(jié)點(diǎn)擁有最高的網(wǎng)絡(luò)權(quán)限,它能夠管理并分配任務(wù)給其支下的二級(jí)和三級(jí)節(jié)點(diǎn)。二級(jí)網(wǎng)絡(luò)的二級(jí)節(jié)點(diǎn),首先是從屬于確定的一級(jí)節(jié)點(diǎn),同時(shí)又擁有其支下的三級(jí)節(jié)點(diǎn)。三級(jí)節(jié)點(diǎn)權(quán)限最低,它接受直接從屬的二級(jí)節(jié)點(diǎn)及一級(jí)節(jié)點(diǎn)的任務(wù)分配,此為對(duì)于一級(jí)網(wǎng)絡(luò)和二級(jí)網(wǎng)絡(luò),系統(tǒng)又設(shè)置了管理節(jié)點(diǎn),負(fù)責(zé)維護(hù)管理同一網(wǎng)絡(luò)層中的其它節(jié)點(diǎn)。
2 基于XML的網(wǎng)絡(luò)重組策略
系統(tǒng)利用XML的特性,建立XML的通信機(jī)制,并將節(jié)點(diǎn)數(shù)據(jù)用XML形式保存,形成自定義命名規(guī)則與重組規(guī)則,實(shí)現(xiàn)基于XML的網(wǎng)絡(luò)重組策略。
2.1 網(wǎng)絡(luò)重組規(guī)則
考慮到網(wǎng)絡(luò)節(jié)點(diǎn)的銷毀問題,系統(tǒng)設(shè)置了相關(guān)的節(jié)點(diǎn)等級(jí)重組規(guī)則。
1)當(dāng)一級(jí)節(jié)點(diǎn)被銷毀、不存在時(shí),系統(tǒng)設(shè)置了兩種重組規(guī)則。
首先對(duì)在一級(jí)節(jié)點(diǎn)所從屬的二級(jí)節(jié)點(diǎn)中設(shè)置一個(gè)“power_”+self.belong 的屬性,根據(jù)屬性值的大小,判斷二級(jí)節(jié)點(diǎn)替代一級(jí)節(jié)點(diǎn)的順序。因此當(dāng)一級(jí)節(jié)點(diǎn)被銷毀時(shí),系統(tǒng)將自動(dòng)根據(jù)“power_”+self.belong 的屬性值尋找替代一級(jí)節(jié)點(diǎn)的二級(jí)節(jié)點(diǎn),使具有一級(jí)節(jié)點(diǎn)權(quán)限,這個(gè)二級(jí)節(jié)點(diǎn)一般為二級(jí)網(wǎng)絡(luò)的管理節(jié)點(diǎn),它負(fù)責(zé)管理二級(jí)網(wǎng)絡(luò)。在這種情況下,此二級(jí)節(jié)點(diǎn)將管理從屬于原一級(jí)節(jié)點(diǎn)的所有節(jié)點(diǎn)。
其次,當(dāng)一級(jí)節(jié)點(diǎn)支下已沒有二級(jí)節(jié)點(diǎn)存在時(shí),即此時(shí)所有從屬于一級(jí)節(jié)點(diǎn)的二級(jí)節(jié)點(diǎn)都被銷毀,系統(tǒng)將通過判斷所有一級(jí)節(jié)點(diǎn)的“power”屬性值大小,從一級(jí)節(jié)點(diǎn)中尋找能夠替代此一級(jí)節(jié)點(diǎn)的一級(jí)節(jié)點(diǎn)。
2)當(dāng)網(wǎng)絡(luò)中某二級(jí)節(jié)點(diǎn)被銷毀、不存在時(shí),系統(tǒng)也設(shè)置了三種替代規(guī)則。
當(dāng)此節(jié)點(diǎn)是二級(jí)網(wǎng)絡(luò)的管理節(jié)點(diǎn)時(shí),根據(jù) “power_”+self.belong 的屬性值尋找替代此二級(jí)節(jié)點(diǎn)的新二級(jí)管理節(jié)點(diǎn),將從屬于此它的三級(jí)節(jié)點(diǎn)轉(zhuǎn)到新二級(jí)管理節(jié)點(diǎn)支下,這些三級(jí)節(jié)點(diǎn)將由新的二級(jí)管理節(jié)點(diǎn)接手。
當(dāng)此節(jié)點(diǎn)不是二級(jí)網(wǎng)絡(luò)的管理節(jié)點(diǎn)時(shí),從屬于它的三級(jí)節(jié)點(diǎn)由二級(jí)網(wǎng)絡(luò)的管理節(jié)點(diǎn)接手。
當(dāng)此節(jié)點(diǎn)時(shí)二級(jí)網(wǎng)絡(luò)的唯一節(jié)點(diǎn)是,即系統(tǒng)不能再找出第二個(gè)此一級(jí)分支下的二級(jí)節(jié)點(diǎn),此時(shí)所剩下的都是三級(jí)節(jié)點(diǎn),它們將都直接從屬于一級(jí)節(jié)點(diǎn)管理。
3)當(dāng)網(wǎng)絡(luò)中的某三級(jí)節(jié)點(diǎn)被銷毀時(shí),直接刪除。
2.2 網(wǎng)絡(luò)命名規(guī)則
由于系統(tǒng)中各節(jié)點(diǎn)的IP 地址將是固定的,因此從對(duì)節(jié)點(diǎn)IP 的分析中,系統(tǒng)就能自動(dòng)判定節(jié)點(diǎn)的等級(jí)也能確保節(jié)點(diǎn)名字的唯一,具體規(guī)則如下:
1) 系統(tǒng)設(shè)置用IP地址的第三位數(shù)字來判別此節(jié)點(diǎn)為一級(jí)節(jié)點(diǎn)或非一級(jí)節(jié)點(diǎn),例如當(dāng)IP第三位數(shù)字為0時(shí),判定此節(jié)點(diǎn)為一級(jí)節(jié)點(diǎn),否則,判為非一級(jí)節(jié)點(diǎn)。
2)在判定某節(jié)點(diǎn)為非一級(jí)節(jié)點(diǎn)后,從IP地址第四位數(shù)字來判別此節(jié)點(diǎn)為二級(jí)節(jié)點(diǎn)或三級(jí)節(jié)點(diǎn),例如當(dāng)節(jié)點(diǎn)IP第三位數(shù)字為150,我們?cè)O(shè)置位150分支的節(jié)點(diǎn),當(dāng)IP第四位數(shù)字位為1時(shí),則說明它是二級(jí)節(jié)點(diǎn);當(dāng)?shù)谒奈粩?shù)字位不為1時(shí),則說明它是三級(jí)節(jié)點(diǎn),并從屬于150分支的二級(jí)節(jié)點(diǎn)。
3)在判斷了節(jié)點(diǎn)IP之后,根據(jù)判定結(jié)果,給節(jié)點(diǎn)命名,一級(jí)節(jié)點(diǎn)命名為“l(fā)evel_0_120”、“l(fā)evel_0_121”……“l(fā)evel_0_129”,二級(jí)節(jié)點(diǎn)命名為“l(fā)evel_1_150”、“l(fā)evel_1_151”……“l(fā)evel_1_159”,三級(jí)節(jié)點(diǎn)命名為“l(fā)evel_2_150_2”、“l(fā)evel_2_150_3”……“l(fā)evel_2_150_254”,……“l(fā)evel_2_159_254”。
4)設(shè)置各節(jié)點(diǎn)的ID,由節(jié)點(diǎn)IP 的最后兩位組成,每位數(shù)規(guī)定寫成3位數(shù)字。如IP 為168.157.153.6。它的ID則為“153006”
5)設(shè)置二級(jí)節(jié)點(diǎn)升級(jí)為一級(jí)節(jié)點(diǎn)的次序。在這里我們直接根據(jù)第三位IP 數(shù)字的大小排序,例如150~159,依次從大到小。用“power_”+self.belong屬性來表示、從0~10。
6)設(shè)置一級(jí)節(jié)點(diǎn)接管另一一級(jí)節(jié)點(diǎn)的次序。在這里直接根據(jù)第四位IP數(shù)字的大小排序,用“power”屬性來表示。
創(chuàng)建的節(jié)點(diǎn)關(guān)系文件如圖2,成樹狀xml。
2.3 網(wǎng)絡(luò)重組設(shè)計(jì)
根據(jù)以上規(guī)則,系統(tǒng)利用python語言設(shè)計(jì)了基于XML的動(dòng)態(tài)網(wǎng)絡(luò)重組策略。系統(tǒng)中網(wǎng)絡(luò)監(jiān)測(cè)IA在執(zhí)行監(jiān)測(cè)功能時(shí),通過讀取XML地址文件提取節(jié)點(diǎn)信息,如某一節(jié)點(diǎn)狀態(tài)發(fā)生突變,XML地址文件必須第一時(shí)間獲知并處理該節(jié)點(diǎn),以提高系統(tǒng)應(yīng)變力。本文提出的網(wǎng)絡(luò)重組策略,利用網(wǎng)絡(luò)監(jiān)測(cè)IA傳回的監(jiān)測(cè)數(shù)據(jù),結(jié)合XML地址文件,以及各節(jié)點(diǎn)本事的屬性,實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)的快速重組。此處以一級(jí)節(jié)點(diǎn)重組為例,具體代碼如上。
3 基于XML的網(wǎng)絡(luò)重組演示
網(wǎng)絡(luò)節(jié)點(diǎn)的等級(jí)限制了節(jié)點(diǎn)的權(quán)限,其網(wǎng)絡(luò)中任一節(jié)點(diǎn)都有其無可取代的功能,特別是處在一級(jí)網(wǎng)絡(luò)和二級(jí)網(wǎng)絡(luò)的節(jié)點(diǎn),它們具有管理、調(diào)用從屬節(jié)點(diǎn)的功能。當(dāng)一級(jí)節(jié)點(diǎn)被銷毀時(shí),二級(jí)節(jié)點(diǎn)中“power_”+self.belong屬性為1的節(jié)點(diǎn)將代替一級(jí)節(jié)點(diǎn)執(zhí)行對(duì)整個(gè)網(wǎng)絡(luò)的管理,替代權(quán)限以“power_”+self.belong屬性依此類推。
當(dāng)二級(jí)節(jié)點(diǎn)被銷毀時(shí),且它在二級(jí)節(jié)點(diǎn)中“power”屬性位1的節(jié)點(diǎn),那么它的三級(jí)節(jié)點(diǎn)將由“power”屬性位2的二級(jí)節(jié)點(diǎn)指揮,依此類推知道最后的二級(jí)節(jié)點(diǎn)。
實(shí)驗(yàn)1:如網(wǎng)路中二級(jí)節(jié)點(diǎn)“192.168.150.1”被銷毀,由于它是二級(jí)網(wǎng)絡(luò)的管理節(jié)點(diǎn),它的三級(jí)節(jié)點(diǎn)將從屬于“power_”+self.belong屬性位“2”的二級(jí)節(jié)點(diǎn)“192.168.151.1”,并且二級(jí)節(jié)點(diǎn)“192.168.151.1”成為二級(jí)網(wǎng)絡(luò)新的管理節(jié)點(diǎn)。運(yùn)行結(jié)果如下XML樹形結(jié)構(gòu)所示:
實(shí)驗(yàn)2:在例1的基礎(chǔ)上,當(dāng)一級(jí)節(jié)點(diǎn)“192.168.0.120”被銷毀時(shí),二級(jí)節(jié)點(diǎn)的 “power_”+self.belong屬性為2的節(jié)點(diǎn)“192.168.151.1”將升級(jí)為一級(jí)節(jié)點(diǎn) ,如下所示,同時(shí)此支下沒有二級(jí)節(jié)點(diǎn)了,所有的三級(jí)節(jié)點(diǎn)都從屬于新升級(jí)的二級(jí)節(jié)點(diǎn)下。
實(shí)驗(yàn)3:在例2的基礎(chǔ)上,一旦新生為一級(jí)節(jié)點(diǎn)的二級(jí)節(jié)點(diǎn)“192.168.151.1”也被銷毀時(shí),此支下再也沒有能代替一級(jí)節(jié)點(diǎn)的節(jié)點(diǎn)存,系統(tǒng)將把從屬于此支下的所有三級(jí)節(jié)點(diǎn)歸屬于“power”屬性值最大的一級(jí)節(jié)點(diǎn),如下所示,原本從屬于一級(jí)節(jié)點(diǎn)“192.168.0.120”的三級(jí)節(jié)點(diǎn)都已經(jīng)歸屬到“power”屬性為2的一級(jí)節(jié)點(diǎn)“192.168.0.121”上了。
實(shí)驗(yàn)4:網(wǎng)路中二級(jí)節(jié)點(diǎn)“192.168.164.1”被銷毀,它的三級(jí)節(jié)點(diǎn)“192.168.164.17”、“192.168.164.15”將從屬于“power_”+self.belong 屬性最大的二級(jí)管理節(jié)點(diǎn)“192.168.160.1”,如下:
實(shí)驗(yàn)5:當(dāng)三級(jí)節(jié)點(diǎn)“192.168.154.95”被銷毀時(shí),直接刪除。如下所示,二級(jí)節(jié)點(diǎn)“l(fā)evel_1_154”下已沒有從屬的三級(jí)節(jié)點(diǎn)。
4 總結(jié)
本文在IA分布式網(wǎng)絡(luò)系統(tǒng)中,利用python語言良好的系統(tǒng)兼容性,通過提取網(wǎng)絡(luò)監(jiān)測(cè)IA的監(jiān)測(cè)數(shù)據(jù),結(jié)合XML地址文件,以及節(jié)點(diǎn)的等級(jí)屬性,提出一種基于XML的網(wǎng)絡(luò)重組策略,當(dāng)系統(tǒng)節(jié)點(diǎn)狀態(tài)突變時(shí),迅速進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)重組。實(shí)驗(yàn)證明,該策略能有效提高網(wǎng)絡(luò)的可靠性,以最快的速度保證網(wǎng)絡(luò)的正常通信。
參考文獻(xiàn):
[1] 吳芳, 趙知?jiǎng)牛?葉學(xué)義.基于Python 的IA分布式系統(tǒng)[J]. 計(jì)算機(jī)工程,2009,35(19):283-285.
[2] 吳芳, 趙知?jiǎng)牛?葉學(xué)義.基于IA 的動(dòng)態(tài)網(wǎng)絡(luò)監(jiān)測(cè)[J]. 計(jì)算機(jī)工程,2009, 35(13):75-77.
[3] 馬軍煜, 吳芳, 葉學(xué)義.基于IA分布式網(wǎng)絡(luò)系統(tǒng)的可信監(jiān)測(cè)算法[J]. 電聲技術(shù), 2009,33(9): 39-41.
[4] Wu fang, Zhao zhijin, ye xueyi. A New Dynamic Network Monitoring Based on IA,2008 IEEE.