專利名稱:一種基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電信領(lǐng)域中的網(wǎng)管系統(tǒng)對(duì)象管理技術(shù)領(lǐng)域,具體說(shuō)是一種基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法。
背景技術(shù):
在電信領(lǐng)域中的網(wǎng)管系統(tǒng)中,為了實(shí)現(xiàn)對(duì)物理設(shè)備(即真實(shí)的網(wǎng)絡(luò)設(shè)備)的管理和業(yè)務(wù)數(shù)據(jù)的配置,需要在網(wǎng)管系統(tǒng)中創(chuàng)建與物理設(shè)備對(duì)應(yīng)的邏輯網(wǎng)管對(duì)象(即物理設(shè)備在網(wǎng)管系統(tǒng)中虛擬的邏輯對(duì)象,下面簡(jiǎn)稱為“對(duì)象”)。通過這些與物理設(shè)備對(duì)應(yīng)的對(duì)象實(shí)現(xiàn)網(wǎng)管系統(tǒng)對(duì)物理設(shè)備的管理、監(jiān)控、業(yè)務(wù)配置等功能。網(wǎng)管系統(tǒng)中的一個(gè)對(duì)象對(duì)應(yīng)一個(gè)實(shí)體的物理設(shè)備,對(duì)象就是網(wǎng)管系統(tǒng)上對(duì)物理設(shè)備的抽象,并且每個(gè)對(duì)象都會(huì)用一個(gè)全局唯一的ID來(lái)進(jìn)行標(biāo)識(shí);在網(wǎng)管系統(tǒng)中用對(duì)象配置數(shù)據(jù)來(lái)描述物理設(shè)備的基本屬性信息(比如對(duì)象類型、對(duì)象地址等),每個(gè)物理設(shè)備在網(wǎng)管系統(tǒng)中對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)都不一樣,并且對(duì)象配置數(shù)據(jù)中的關(guān)鍵數(shù)據(jù)將決定該對(duì)象的功能(比如不同類型的網(wǎng)元具有不同的業(yè)務(wù)功能)。對(duì)于物理設(shè)備來(lái)說(shuō)了除了基本屬性信息外,更重要的還有業(yè)務(wù)配置功能和對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)的配置(業(yè)務(wù)配置數(shù)據(jù)),在網(wǎng)管系統(tǒng)中需要通過對(duì)與物理設(shè)備對(duì)應(yīng)的對(duì)象進(jìn)行操作來(lái)完成對(duì)物理設(shè)備的業(yè)務(wù)配置功能和業(yè)務(wù)預(yù)配置功能(所謂業(yè)務(wù)預(yù)配置是將業(yè)務(wù)配置數(shù)據(jù)已經(jīng)在網(wǎng)管上生成好了,還沒有真正下發(fā)給物理設(shè)備,可以在批量完成多個(gè)設(shè)備的業(yè)務(wù)預(yù)配置數(shù)據(jù)后,最后批量下發(fā)給設(shè)備)。所以,在網(wǎng)管系統(tǒng)中,對(duì)象以及對(duì)象配置數(shù)據(jù)是其他功能的基礎(chǔ),所有對(duì)物理設(shè)備的操作或?qū)I(yè)務(wù)數(shù)據(jù)的配置都需要建立在這些對(duì)象的基礎(chǔ)之上。在實(shí)際的工程應(yīng)用中,對(duì)象配置數(shù)據(jù)的修改操作不會(huì)非常頻率,大部分時(shí)間是對(duì)對(duì)象配置數(shù)據(jù)的訪問,并且在進(jìn)行對(duì)象訪問(讀對(duì)象配置數(shù)據(jù)操作)時(shí),為了有較快的響應(yīng)速度,對(duì)并發(fā)性有非常高的要求。尤其在管理容量很大、設(shè)備上報(bào)數(shù)據(jù)(如告警數(shù)據(jù))比較頻繁的情況下,對(duì)對(duì)象的訪問需要支持多線程同時(shí)并發(fā),并且需要有比較高的對(duì)象查找或比較的效率。在實(shí)現(xiàn)物理設(shè)備的管理、監(jiān)控和業(yè)務(wù)數(shù)據(jù)的配置時(shí),為了提高對(duì)象查找或比較的效率,根據(jù)對(duì)象的邏輯關(guān)系和層次結(jié)構(gòu),在網(wǎng)管系統(tǒng)中對(duì)對(duì)象的管理,一般都是采用在內(nèi)存中作為共享數(shù)據(jù)以樹形結(jié)構(gòu)緩沖對(duì)象配置數(shù)據(jù),對(duì)象的查找或遍歷將在內(nèi)存中完成,從而可以達(dá)到比較高的執(zhí)行效率。然而,內(nèi)存中共享的對(duì)象配置數(shù)據(jù)在對(duì)象配置時(shí)需要實(shí)時(shí)更新,為了保證內(nèi)存中共享的對(duì)象配置數(shù)據(jù)的線程安全性,需要給內(nèi)存中共享的對(duì)象配置數(shù)據(jù)的讀、寫操作進(jìn)行多線程同步,但進(jìn)行對(duì)象寫操作時(shí)因?yàn)樾枰獙?duì)象配置數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中(對(duì)象配置數(shù)據(jù)存庫(kù)),需要消耗比較長(zhǎng)的時(shí)間,如果對(duì)象寫操作和對(duì)象讀操作共享同一份內(nèi)存中共享的對(duì)象配置數(shù)據(jù),對(duì)象配置數(shù)據(jù)的修改會(huì)大大的降低對(duì)象訪問的效率。為了實(shí)現(xiàn)內(nèi)存中共享的對(duì)象配置數(shù)據(jù)的線程安全性,可以采用如下的一些方案
41.對(duì)象寫操作與對(duì)象讀操作共享同一份內(nèi)存中的對(duì)象配置數(shù)據(jù),通過全局互斥鎖或全局讀寫鎖來(lái)保證內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性。這種方式可以保證內(nèi)存中共享的對(duì)象配置數(shù)據(jù)的線程安全性,但存在如下的缺點(diǎn)
1)因?yàn)閷?duì)象的讀寫操作是互斥的,并發(fā)程度不高,執(zhí)行的效率比較低。因?yàn)閷?duì)象寫操作與對(duì)象讀操作都需要對(duì)內(nèi)存中共享的對(duì)象配置數(shù)據(jù)加鎖互斥來(lái)保證多線程安全,在操作用戶比較多,對(duì)象配置修改比較頻繁時(shí),尤其是在大數(shù)據(jù)量或復(fù)雜操作中,對(duì)象配置數(shù)據(jù)存庫(kù)消耗的時(shí)間較長(zhǎng),導(dǎo)致鎖占用的時(shí)間也會(huì)比較長(zhǎng),將大大降低了對(duì)象訪問的效率。2)需要對(duì)外暴露全局鎖,在函數(shù)重用時(shí)容易導(dǎo)致遞歸加鎖,如果是使用讀寫鎖,因讀寫鎖中寫鎖優(yōu)先的特性,還容易導(dǎo)致死鎖或者讀鎖“餓死”的問題。3)如果是使用全局互斥鎖,對(duì)象讀操作都會(huì)互斥,效率將會(huì)更低。2.對(duì)象寫操作與對(duì)象讀操作共享同一份內(nèi)存中的對(duì)象配置數(shù)據(jù),對(duì)內(nèi)存中共享的對(duì)象配置數(shù)據(jù)加細(xì)粒度的自定義對(duì)象讀寫鎖,即自定義對(duì)象操作的鎖類型,在對(duì)象訪問過程中記錄操作對(duì)象的加鎖類型,在對(duì)對(duì)象進(jìn)行操作之前先獲取到對(duì)象操作的權(quán)限,這種方式即可以保證內(nèi)存中共享的對(duì)象配置數(shù)據(jù)的線程安全性,也可以無(wú)關(guān)對(duì)象的對(duì)象寫操作和對(duì)象讀操作的高并發(fā)性。但也存在如下的問題
1)因?yàn)樾枰獞?yīng)用使用自定義的對(duì)象讀寫鎖,而對(duì)象加鎖的順序難達(dá)成一致,容易形成死鎖,所以必須有比較復(fù)雜的算法來(lái)檢測(cè)死鎖,并且在檢測(cè)到死鎖發(fā)生時(shí),至少需要放棄掉一個(gè)操作來(lái)解除死鎖場(chǎng)景。2)應(yīng)用需要對(duì)自定義的鎖機(jī)制有比較深入的理解,否則很容易導(dǎo)致錯(cuò)誤的加鎖。3)因?yàn)槿菀讟?gòu)成死鎖場(chǎng)景,對(duì)對(duì)象操作的處理不支持嵌套,也很難重用。4)對(duì)對(duì)象進(jìn)行對(duì)象寫操作時(shí),也不允許對(duì)操作對(duì)象相關(guān)的對(duì)象進(jìn)行對(duì)象訪問,對(duì)對(duì)象訪問的效率也會(huì)有一定的影響。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,針對(duì)目前網(wǎng)管系統(tǒng)中對(duì)象管理的需求,通過將對(duì)象的讀、寫操作進(jìn)行分離保證了讀、寫操作不相互影響,對(duì)象訪問模塊與對(duì)象配置模塊中的對(duì)象配置數(shù)據(jù)通過可靠的增量對(duì)象配置上報(bào)通知進(jìn)行同步,解決了對(duì)象配置修改過程中因?qū)ο笈渲脭?shù)據(jù)持久化到數(shù)據(jù)庫(kù)效率較低而導(dǎo)致對(duì)象配置數(shù)據(jù)訪問帶來(lái)的效率問題。為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是
一種基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于網(wǎng)管系統(tǒng)對(duì)對(duì)象的讀、寫操作進(jìn)行分離,分別由對(duì)象訪問模塊與對(duì)象配置模塊來(lái)實(shí)現(xiàn),并且在內(nèi)存中存儲(chǔ)有兩塊各自獨(dú)立的、分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù),保證對(duì)對(duì)象的對(duì)象配置數(shù)據(jù)的讀、寫操作之間不會(huì)相互影響,
所述分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù)之間通過可靠的增量對(duì)象配置上報(bào)通知進(jìn)行同步;
對(duì)象訪問模塊中,實(shí)現(xiàn)讀對(duì)象配置數(shù)據(jù)操作的處理,所述讀對(duì)象配置數(shù)據(jù)操作包括對(duì)象配置數(shù)據(jù)的查詢、遍歷,實(shí)現(xiàn)接收對(duì)象配置模塊發(fā)送的可靠的增量對(duì)象配置上報(bào)通知,并根據(jù)可靠的增量對(duì)象配置上報(bào)通知同步更新對(duì)象配置數(shù)據(jù)的處理,保證內(nèi)存中與對(duì)象訪問模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)與內(nèi)存中與對(duì)象配置模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)一致;
對(duì)象配置模塊中,實(shí)現(xiàn)寫對(duì)象配置數(shù)據(jù)操作的處理,所述寫對(duì)象配置數(shù)據(jù)操作包括對(duì)象配置數(shù)據(jù)的增加、刪除、修改,實(shí)現(xiàn)將寫對(duì)象配置數(shù)據(jù)操作后增量的對(duì)象配置數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中持久化,同時(shí)給對(duì)象訪問模塊發(fā)送可靠的增量對(duì)象配置上報(bào)通知,所述可靠的增量對(duì)象配置上報(bào)通知中包括寫對(duì)象配置數(shù)據(jù)操作后增量的對(duì)象配置數(shù)據(jù)。在上述技術(shù)方案的基礎(chǔ)上,對(duì)象訪問模塊在初始化時(shí),先從對(duì)象配置模塊獲取到對(duì)象配置數(shù)據(jù)的對(duì)象配置數(shù)據(jù)版本基線,并緩沖該版本基線,然后從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)進(jìn)行緩沖,這樣對(duì)象訪問模塊與對(duì)象配置模塊具有相同的數(shù)據(jù)源和相同的對(duì)象配置變化版本基線。在上述技術(shù)方案的基礎(chǔ)上,用流水號(hào)遞增的方式來(lái)表示對(duì)象配置數(shù)據(jù)變化的版本基線。在上述技術(shù)方案的基礎(chǔ)上,在可靠的增量對(duì)象配置上報(bào)通知中包含對(duì)象配置變化版本基線和增量的對(duì)象配置數(shù)據(jù),
對(duì)象訪問模塊在接收到可靠的增量對(duì)象配置上報(bào)通知后,先回復(fù)對(duì)象配置模塊該通知已接收到,然后根據(jù)可靠的增量對(duì)象配置上報(bào)通知中的版本基線確定是否有數(shù)據(jù)丟失或重復(fù)上報(bào),如果有重復(fù)上報(bào),則直接丟棄,如果有數(shù)據(jù)丟失,則需要重新初始化內(nèi)存中的對(duì)象配置數(shù)據(jù),只有正常的數(shù)據(jù)才更新到內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)和本地的對(duì)象配置變化版本基線,并將該通知轉(zhuǎn)發(fā)給所有客戶端。在上述技術(shù)方案的基礎(chǔ)上,在對(duì)象訪問模塊更新內(nèi)存中的對(duì)象配置數(shù)據(jù)時(shí),需要給內(nèi)存中的對(duì)象配置數(shù)據(jù)加寫鎖來(lái)保護(hù)內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性。在上述技術(shù)方案的基礎(chǔ)上,對(duì)象訪問模塊給客戶端提供按條件獲取對(duì)象配置數(shù)據(jù)的接口和查詢、遍歷對(duì)象配置數(shù)據(jù)的接口,
在查詢、遍歷對(duì)象配置數(shù)據(jù)時(shí),需要給內(nèi)存中的對(duì)象配置數(shù)據(jù)加讀鎖來(lái)保護(hù)內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性。在上述技術(shù)方案的基礎(chǔ)上,對(duì)象配置模塊初始化時(shí),從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)中關(guān)鍵的對(duì)象配置屬性進(jìn)行緩沖作為內(nèi)存中的對(duì)象配置數(shù)據(jù),為對(duì)象配置修改時(shí),進(jìn)行數(shù)據(jù)校驗(yàn)提供快速查找或比較的接口。在上述技術(shù)方案的基礎(chǔ)上,對(duì)象配置模塊提供增量的對(duì)象配置修改接口,完成對(duì)象配置數(shù)據(jù)的增加、刪除、修改操作,并將增量的對(duì)象配置數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中,同時(shí)也更新緩沖中的對(duì)象配置數(shù)據(jù),保持內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)與數(shù)據(jù)庫(kù)中的對(duì)象配置數(shù)據(jù)的一致性,包括以下的步驟
1)、根據(jù)客戶端下發(fā)的對(duì)象配置數(shù)據(jù),校驗(yàn)對(duì)象配置數(shù)據(jù)參數(shù)的完整性和合法性;
2)、將合法的增量對(duì)象配置數(shù)據(jù)按照業(yè)務(wù)處理邏輯處理后,持久化到數(shù)據(jù)庫(kù)中;
3)、將增量的對(duì)象配置數(shù)據(jù)更新到內(nèi)存中進(jìn)行緩沖,維護(hù)好緩沖中對(duì)象配置數(shù)據(jù)之間的關(guān)系。在上述技術(shù)方案的基礎(chǔ)上,對(duì)象配置模塊在對(duì)象配置數(shù)據(jù)修改完成后,上報(bào)可靠的增量對(duì)象配置數(shù)據(jù)改變通知,在確認(rèn)對(duì)象訪問模塊已接收到該通知后才上報(bào)下一條增量對(duì)象配置數(shù)據(jù)改變通知,否則,重復(fù)上報(bào),以確保通知可靠上報(bào)。本發(fā)明所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,針對(duì)目前網(wǎng)管系統(tǒng)中對(duì)象管理的需求,通過將對(duì)象的讀、寫操作進(jìn)行分離保證了讀、寫操作不相互影響,對(duì)象的讀操作由對(duì)象訪問模塊處理,對(duì)象的寫操作由對(duì)象配置模塊處理,且對(duì)象訪問模塊與對(duì)象配置模塊內(nèi)存中的對(duì)象配置數(shù)據(jù)各自獨(dú)立,即內(nèi)存中存儲(chǔ)有兩塊各自獨(dú)立的、且分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù),分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù)之間通過可靠的增量對(duì)象配置上報(bào)通知進(jìn)行數(shù)據(jù)同步,解決了對(duì)象配置修改過程中因?qū)ο笈渲脭?shù)據(jù)持久化到數(shù)據(jù)庫(kù)效率較低而導(dǎo)致對(duì)象配置數(shù)據(jù)訪問帶來(lái)的效率問題。本發(fā)明所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,提高了共享數(shù)據(jù)并發(fā)訪問 (讀、寫)時(shí)的安全性和高并發(fā)性,尤其是在“讀操作多,寫操作少”的場(chǎng)景中可以大大提高對(duì)象訪問(讀對(duì)象配置數(shù)據(jù)操作)的效率。
本發(fā)明有如下附圖
圖1本發(fā)明的總體方案示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法中,網(wǎng)管系統(tǒng)對(duì)對(duì)象的讀、 寫操作進(jìn)行分離,分別由對(duì)象訪問模塊與對(duì)象配置模塊來(lái)實(shí)現(xiàn),并且在內(nèi)存中存儲(chǔ)有兩塊各自獨(dú)立的、分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù),保證對(duì)對(duì)象的對(duì)象配置數(shù)據(jù)的讀、寫操作之間不會(huì)相互影響,
所述分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù)之間通過可靠的增量對(duì)象配置上報(bào)通知進(jìn)行同步(實(shí)時(shí)同步);
對(duì)象訪問模塊中,實(shí)現(xiàn)讀對(duì)象配置數(shù)據(jù)(內(nèi)存中與對(duì)象訪問模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)) 操作的處理,所述讀對(duì)象配置數(shù)據(jù)操作包括對(duì)象配置數(shù)據(jù)的查詢、遍歷,實(shí)現(xiàn)接收對(duì)象配置模塊發(fā)送的可靠的增量對(duì)象配置上報(bào)通知,并根據(jù)可靠的增量對(duì)象配置上報(bào)通知同步更新對(duì)象配置數(shù)據(jù)的處理,保證內(nèi)存中與對(duì)象訪問模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)與內(nèi)存中與對(duì)象配置模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)一致;
對(duì)象配置模塊中,實(shí)現(xiàn)寫對(duì)象配置數(shù)據(jù)(內(nèi)存中與對(duì)象配置模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)) 操作的處理,所述寫對(duì)象配置數(shù)據(jù)操作包括對(duì)象配置數(shù)據(jù)的增加、刪除、修改,實(shí)現(xiàn)將寫對(duì)象配置數(shù)據(jù)操作后增量的對(duì)象配置數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中持久化(增加、刪除、修改后引起的變更了的對(duì)象配置數(shù)據(jù)統(tǒng)稱為增量的對(duì)象配置數(shù)據(jù)),同時(shí)給對(duì)象訪問模塊發(fā)送可靠的增量對(duì)象配置上報(bào)通知,所述可靠的增量對(duì)象配置上報(bào)通知中包括寫對(duì)象配置數(shù)據(jù)操作后增量的對(duì)象配置數(shù)據(jù),對(duì)象訪問模塊接收到這些上報(bào)通知后,會(huì)將對(duì)象訪問模塊內(nèi)存中的對(duì)象配置數(shù)據(jù)同步修改,保證對(duì)象訪問模塊與對(duì)象配置模塊之間對(duì)象配置數(shù)據(jù)的一致性和完整性。通過該方法可以保證網(wǎng)管系統(tǒng)中對(duì)象配置數(shù)據(jù)讀寫的可靠性、安全性、高并發(fā)性。如圖1所示,本發(fā)明所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,將對(duì)象讀、寫操作進(jìn)行分離后,分別由對(duì)象訪問模塊和對(duì)象配置模塊來(lái)實(shí)現(xiàn)。
對(duì)象訪問模塊在初始化時(shí),先從對(duì)象配置模塊獲取到對(duì)象配置數(shù)據(jù)的對(duì)象配置數(shù)據(jù)版本基線(用流水號(hào)遞增的方式來(lái)表示對(duì)象配置數(shù)據(jù)變化的版本基線),并緩沖該版本基線,然后從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)進(jìn)行緩沖,這樣對(duì)象訪問模塊與對(duì)象配置模塊具有相同的數(shù)據(jù)源和相同的對(duì)象配置變化版本基線。在可靠的增量對(duì)象配置上報(bào)通知中包含對(duì)象配置變化版本基線和對(duì)象配置數(shù)據(jù) (增量的對(duì)象配置數(shù)據(jù)),對(duì)象訪問模塊在接收到可靠的增量對(duì)象配置上報(bào)通知后,先回復(fù)對(duì)象配置模塊該通知已接收到,然后根據(jù)可靠的增量對(duì)象配置上報(bào)通知中的版本基線確定是否有數(shù)據(jù)丟失或重復(fù)上報(bào),如果有重復(fù)上報(bào),則直接丟棄,如果有數(shù)據(jù)丟失,則需要重新初始化內(nèi)存中的對(duì)象配置數(shù)據(jù),只有正常的數(shù)據(jù)(無(wú)數(shù)據(jù)丟失、無(wú)重復(fù)上報(bào)的)才更新到內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)和本地的對(duì)象配置變化版本基線,并將該通知轉(zhuǎn)發(fā)給所有客戶端。在對(duì)象訪問模塊更新內(nèi)存中的對(duì)象配置數(shù)據(jù)時(shí),需要給內(nèi)存中的對(duì)象配置數(shù)據(jù)加寫鎖來(lái)保護(hù)內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性。這樣對(duì)象訪問模塊中,內(nèi)存中的對(duì)象配置數(shù)據(jù)的互斥僅僅限制在對(duì)象配置數(shù)據(jù)更新的時(shí)刻。對(duì)象訪問模塊給客戶端提供按條件獲取對(duì)象配置數(shù)據(jù)的接口和查詢、遍歷對(duì)象配置數(shù)據(jù)的接口。在查詢、遍歷對(duì)象配置數(shù)據(jù)時(shí),需要給內(nèi)存中的對(duì)象配置數(shù)據(jù)加讀鎖來(lái)保護(hù)內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性,根據(jù)讀寫鎖的特性(讀與讀是不互斥的),在獲取內(nèi)存中的對(duì)象配置數(shù)據(jù)時(shí)相互之間是不互斥的,僅僅在有對(duì)象數(shù)據(jù)更新時(shí)才會(huì)有互斥,并且因?yàn)閷?duì)象配置數(shù)據(jù)的更新時(shí)不需要校驗(yàn)參數(shù)的完整性和合法性以及數(shù)據(jù)庫(kù)操作等復(fù)雜的業(yè)務(wù)邏輯處理,只需要更新緩沖中的數(shù)據(jù),效率非常高,所以,對(duì)象配置數(shù)據(jù)的更新對(duì)對(duì)象配置數(shù)據(jù)訪問的效率幾乎沒有影響。對(duì)象配置模塊初始化時(shí),從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)中關(guān)鍵的對(duì)象配置屬性進(jìn)行緩沖作為內(nèi)存中的對(duì)象配置數(shù)據(jù),為對(duì)象配置修改時(shí),進(jìn)行數(shù)據(jù)校驗(yàn)提供快速查找或比較的接口。對(duì)象配置模塊提供增量的對(duì)象配置修改接口,完成對(duì)象配置數(shù)據(jù)的增加、刪除、修改操作,并將增量的對(duì)象配置數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中,同時(shí)也更新緩沖中的對(duì)象配置數(shù)據(jù), 保持內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)與數(shù)據(jù)庫(kù)中的對(duì)象配置數(shù)據(jù)的一致性,包括以下的步驟
1)、根據(jù)客戶端下發(fā)的對(duì)象配置數(shù)據(jù),校驗(yàn)對(duì)象配置數(shù)據(jù)參數(shù)的完整性和合法性;
2)、將合法的增量對(duì)象配置數(shù)據(jù)按照業(yè)務(wù)處理邏輯處理后,持久化到數(shù)據(jù)庫(kù)中;
3)、將增量的對(duì)象配置數(shù)據(jù)更新到內(nèi)存中進(jìn)行緩沖,維護(hù)好緩沖中對(duì)象配置數(shù)據(jù)之間的關(guān)系。對(duì)象配置模塊在對(duì)象配置數(shù)據(jù)修改完成后,上報(bào)可靠的增量對(duì)象配置數(shù)據(jù)改變通知,在確認(rèn)對(duì)象訪問模塊已接收到該通知后才上報(bào)下一條增量對(duì)象配置數(shù)據(jù)改變通知,否則,重復(fù)上報(bào),以確保通知可靠上報(bào)。綜上所述,實(shí)現(xiàn)本發(fā)明,可以按以下步驟執(zhí)行
Al、對(duì)象訪問模塊初始化時(shí),從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)緩沖到內(nèi)存中作為共享數(shù)據(jù),給與對(duì)象相關(guān)的其他功能(比如獲取對(duì)象配置數(shù)據(jù)) 進(jìn)行訪問。A2、對(duì)象訪問模塊接受并處理對(duì)象配置模塊的增量對(duì)象配置數(shù)據(jù)改變通知,更新緩沖中共享的對(duì)象配置數(shù)據(jù),然后將該通知轉(zhuǎn)發(fā)給所有的網(wǎng)管界面和需要使用對(duì)象配置數(shù)
8據(jù)的網(wǎng)管其他后臺(tái)模塊(比如告警模塊)。A3、對(duì)象訪問模塊對(duì)外提供獲取對(duì)象配置數(shù)據(jù)接口,對(duì)內(nèi)提供按條件查詢、遍歷對(duì)象配置數(shù)據(jù)的接口。A4、對(duì)象配置模塊初始化時(shí),從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)緩沖到內(nèi)存中作為共享數(shù)據(jù),為對(duì)象配置進(jìn)行數(shù)據(jù)校驗(yàn)時(shí),提供快速對(duì)象查找或?qū)ο髮傩员容^接口。A5、對(duì)象配置模塊提供增量的對(duì)象配置數(shù)據(jù)改變接口,完成對(duì)象配置數(shù)據(jù)的增、 刪、改操作,并將增量的對(duì)象配置數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中,同時(shí)也更新緩沖中的對(duì)象配置數(shù)據(jù),保持內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)與數(shù)據(jù)庫(kù)中的對(duì)象配置數(shù)據(jù)的一致性。A6、對(duì)象配置模塊在對(duì)象配置數(shù)據(jù)修改完成后,上報(bào)可靠的增量對(duì)象配置數(shù)據(jù)改變通知,通過該可靠通知保證對(duì)象訪問模塊中對(duì)象配置數(shù)據(jù)與對(duì)象配置模塊中對(duì)象配置數(shù)據(jù)的一致性和完整性。其中步驟A5包括以下步驟
A51、對(duì)象配置模塊根據(jù)客戶端下發(fā)的對(duì)象配置數(shù)據(jù),檢驗(yàn)對(duì)象配置數(shù)據(jù)的完整性和合法性,如果數(shù)據(jù)不完整或不合法,將直接返回給客戶端相應(yīng)的錯(cuò)誤提示;
A52、將合法的增量對(duì)象配置數(shù)據(jù)按照相應(yīng)的業(yè)務(wù)邏輯處理后,持久化到數(shù)據(jù)庫(kù)中,如果數(shù)據(jù)庫(kù)持久化失敗,將直接返回給客戶端相應(yīng)的錯(cuò)誤提示; A53、將增量的對(duì)象配置數(shù)據(jù)更新到內(nèi)存中進(jìn)行緩沖。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用于限制本發(fā)明,凡在本發(fā)明精神和原則之內(nèi)所做的任何修改、等同替換和改進(jìn)等,均含于本發(fā)明的保護(hù)范圍之內(nèi)。本說(shuō)明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于網(wǎng)管系統(tǒng)對(duì)對(duì)象的讀、 寫操作進(jìn)行分離,分別由對(duì)象訪問模塊與對(duì)象配置模塊來(lái)實(shí)現(xiàn),并且在內(nèi)存中存儲(chǔ)有兩塊各自獨(dú)立的、分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù),保證對(duì)對(duì)象的對(duì)象配置數(shù)據(jù)的讀、寫操作之間不會(huì)相互影響,所述分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù)之間通過可靠的增量對(duì)象配置上報(bào)通知進(jìn)行同步;對(duì)象訪問模塊中,實(shí)現(xiàn)讀對(duì)象配置數(shù)據(jù)操作的處理,所述讀對(duì)象配置數(shù)據(jù)操作包括對(duì)象配置數(shù)據(jù)的查詢、遍歷,實(shí)現(xiàn)接收對(duì)象配置模塊發(fā)送的可靠的增量對(duì)象配置上報(bào)通知,并根據(jù)可靠的增量對(duì)象配置上報(bào)通知同步更新對(duì)象配置數(shù)據(jù)的處理,保證內(nèi)存中與對(duì)象訪問模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)與內(nèi)存中與對(duì)象配置模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)一致;對(duì)象配置模塊中,實(shí)現(xiàn)寫對(duì)象配置數(shù)據(jù)操作的處理,所述寫對(duì)象配置數(shù)據(jù)操作包括對(duì)象配置數(shù)據(jù)的增加、刪除、修改,實(shí)現(xiàn)將寫對(duì)象配置數(shù)據(jù)操作后增量的對(duì)象配置數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中持久化,同時(shí)給對(duì)象訪問模塊發(fā)送可靠的增量對(duì)象配置上報(bào)通知,所述可靠的增量對(duì)象配置上報(bào)通知中包括寫對(duì)象配置數(shù)據(jù)操作后增量的對(duì)象配置數(shù)據(jù)。
2.如權(quán)利要求1所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于對(duì)象訪問模塊在初始化時(shí),先從對(duì)象配置模塊獲取到對(duì)象配置數(shù)據(jù)的對(duì)象配置數(shù)據(jù)版本基線,并緩沖該版本基線,然后從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)進(jìn)行緩沖,這樣對(duì)象訪問模塊與對(duì)象配置模塊具有相同的數(shù)據(jù)源和相同的對(duì)象配置變化版本基線。
3.如權(quán)利要求2所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于用流水號(hào)遞增的方式來(lái)表示對(duì)象配置數(shù)據(jù)變化的版本基線。
4.如權(quán)利要求2所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于在可靠的增量對(duì)象配置上報(bào)通知中包含對(duì)象配置變化版本基線和增量的對(duì)象配置數(shù)據(jù),對(duì)象訪問模塊在接收到可靠的增量對(duì)象配置上報(bào)通知后,先回復(fù)對(duì)象配置模塊該通知已接收到,然后根據(jù)可靠的增量對(duì)象配置上報(bào)通知中的版本基線確定是否有數(shù)據(jù)丟失或重復(fù)上報(bào),如果有重復(fù)上報(bào),則直接丟棄,如果有數(shù)據(jù)丟失,則需要重新初始化內(nèi)存中的對(duì)象配置數(shù)據(jù),只有正常的數(shù)據(jù)才更新到內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)和本地的對(duì)象配置變化版本基線,并將該通知轉(zhuǎn)發(fā)給所有客戶端。
5.如權(quán)利要求4所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于在對(duì)象訪問模塊更新內(nèi)存中的對(duì)象配置數(shù)據(jù)時(shí),需要給內(nèi)存中的對(duì)象配置數(shù)據(jù)加寫鎖來(lái)保護(hù)內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性。
6.如權(quán)利要求4所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于對(duì)象訪問模塊給客戶端提供按條件獲取對(duì)象配置數(shù)據(jù)的接口和查詢、遍歷對(duì)象配置數(shù)據(jù)的接口,在查詢、遍歷對(duì)象配置數(shù)據(jù)時(shí),需要給內(nèi)存中的對(duì)象配置數(shù)據(jù)加讀鎖來(lái)保護(hù)內(nèi)存中的對(duì)象配置數(shù)據(jù)的線程安全性。
7.如權(quán)利要求1所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于對(duì)象配置模塊初始化時(shí),從數(shù)據(jù)庫(kù)中加載持久化的對(duì)象配置數(shù)據(jù),并將加載的對(duì)象配置數(shù)據(jù)中關(guān)鍵的對(duì)象配置屬性進(jìn)行緩沖作為內(nèi)存中的對(duì)象配置數(shù)據(jù),為對(duì)象配置修改時(shí),進(jìn)行數(shù)據(jù)校驗(yàn)提供快速查找或比較的接口。
8.如權(quán)利要求7所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于對(duì)象配置模塊提供增量的對(duì)象配置修改接口,完成對(duì)象配置數(shù)據(jù)的增加、刪除、修改操作,并將增量的對(duì)象配置數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中,同時(shí)也更新緩沖中的對(duì)象配置數(shù)據(jù),保持內(nèi)存中緩沖的對(duì)象配置數(shù)據(jù)與數(shù)據(jù)庫(kù)中的對(duì)象配置數(shù)據(jù)的一致性,包括以下的步驟1)、根據(jù)客戶端下發(fā)的對(duì)象配置數(shù)據(jù),校驗(yàn)對(duì)象配置數(shù)據(jù)參數(shù)的完整性和合法性;2)、將合法的增量對(duì)象配置數(shù)據(jù)按照業(yè)務(wù)處理邏輯處理后,持久化到數(shù)據(jù)庫(kù)中;3)、將增量的對(duì)象配置數(shù)據(jù)更新到內(nèi)存中進(jìn)行緩沖,維護(hù)好緩沖中對(duì)象配置數(shù)據(jù)之間的關(guān)系。
9.如權(quán)利要求7所述的基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,其特征在于對(duì)象配置模塊在對(duì)象配置數(shù)據(jù)修改完成后,上報(bào)可靠的增量對(duì)象配置數(shù)據(jù)改變通知,在確認(rèn)對(duì)象訪問模塊已接收到該通知后才上報(bào)下一條增量對(duì)象配置數(shù)據(jù)改變通知,否則,重復(fù)上報(bào),以確保通知可靠上報(bào)。
全文摘要
本發(fā)明涉及一種基于操作分離的網(wǎng)管系統(tǒng)對(duì)象管理方法,網(wǎng)管系統(tǒng)對(duì)對(duì)象的讀、寫操作進(jìn)行分離,分別由對(duì)象訪問模塊與對(duì)象配置模塊來(lái)實(shí)現(xiàn),并且在內(nèi)存中存儲(chǔ)有兩塊各自獨(dú)立的、分別對(duì)應(yīng)于對(duì)象訪問模塊與對(duì)象配置模塊的對(duì)象配置數(shù)據(jù),保證對(duì)象配置數(shù)據(jù)的讀、寫操作不會(huì)相互影響,內(nèi)存中的兩塊對(duì)象配置數(shù)據(jù)之間通過可靠的增量對(duì)象配置上報(bào)通知進(jìn)行同步,保證內(nèi)存中與對(duì)象訪問模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)與內(nèi)存中與對(duì)象配置模塊對(duì)應(yīng)的對(duì)象配置數(shù)據(jù)一致。本發(fā)明所述的對(duì)象管理方法,提高了共享數(shù)據(jù)并發(fā)訪問(讀、寫)時(shí)的安全性和高并發(fā)性,尤其是在“讀操作多,寫操作少”的場(chǎng)景中可以大大提高對(duì)象訪問(讀對(duì)象配置數(shù)據(jù)操作)的效率。
文檔編號(hào)H04L12/24GK102412985SQ20111033831
公開日2012年4月11日 申請(qǐng)日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者尹永勝, 張利兵, 張勇, 朱春燕, 鄒昊 申請(qǐng)人:烽火通信科技股份有限公司