嵌入式系統(tǒng)對象管理的裝置及方法
【專利摘要】本發(fā)明公開了一種嵌入式系統(tǒng)對象管理的裝置及方法,涉及對象管理領(lǐng)域,該裝置包括業(yè)務(wù)處理單元、對象管理單元和系統(tǒng)上下文處理單元,業(yè)務(wù)處理單元用于:調(diào)用對象管理單元的接口完成相應(yīng)的功能:動態(tài)的創(chuàng)建和刪除對象以維護(hù)對象樹;獲取需要的對象的索引,根據(jù)對象索引調(diào)用相應(yīng)的對象操作模塊來設(shè)置/獲取對象的屬性值;對象管理單元包括對象管理初始化模塊、對象屬性注冊模塊、對象創(chuàng)建/刪除模塊、對象查找模塊、對象屬性值存取模塊。本發(fā)明能提高不同系統(tǒng)之間的可復(fù)用性和可擴(kuò)展性,保證對象的擴(kuò)展與對象功能的實現(xiàn)互不影響,節(jié)省硬件存儲資源,提高軟件的開發(fā)效率。
【專利說明】嵌入式系統(tǒng)對象管理的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及對象管理領(lǐng)域,特別是涉及一種嵌入式系統(tǒng)對象管理的裝置及方法?!颈尘凹夹g(shù)】
[0002]在嵌入式系統(tǒng)中,為了實現(xiàn)對物理實體和邏輯實體的管理和業(yè)務(wù)數(shù)據(jù)的配置,需要在嵌入式系統(tǒng)中創(chuàng)建與物理實體和邏輯實體對應(yīng)的邏輯對象。通過這些邏輯對象實現(xiàn)網(wǎng)元管理系統(tǒng)對物理設(shè)備的管理、監(jiān)控、業(yè)務(wù)配置等功能。嵌入式系統(tǒng)中的一個對象對應(yīng)一個物理實體或者邏輯實體,每個對象都用一個全局唯一的標(biāo)識符來標(biāo)識,用對象的配置數(shù)據(jù)來描述對象的屬性信息,其中關(guān)鍵的屬性信息決定了對象的功能,對物理實體和邏輯實體的操作都建立在這些對象的基礎(chǔ)之上。現(xiàn)有的絕大多數(shù)嵌入式設(shè)備,其設(shè)備的形態(tài)結(jié)構(gòu)是不同的,對應(yīng)的對象類型、對象層次以及對象數(shù)目也不相同,同時設(shè)備支持的功能也是不同的,由此對象的屬性信息以及對屬性信息的操作也不相同。如何對這些不同的對象進(jìn)行統(tǒng)一并且高效的管理則顯得尤為必要。
[0003]假定對應(yīng)某種對象類型T,系統(tǒng)包含N個對象,分別表示為01;02,…,On,記作〈(V
O2,…,0N>,而類型為T的對象具有M項屬性信息,分別表示為D1, D2,…,Dm,由于對象的功能體現(xiàn)在對象的屬性信息上,因此假定系統(tǒng)具有M項功能,M、N均為大于2的正整數(shù)。目前的實現(xiàn)方法一般是按照功能來劃分對象的存儲和操作,例如:一個功能模塊將對象〈01;
O2,…,0N>與某一項屬性信息D1綁定在一起,另一個功能模塊將對象〈01; O2,…,0N>與其另外兩項屬性信息D2和D3綁定在一起。這樣對于每項屬性信息,其對象的存儲,屬性信息的存儲以及屬性信息的操作也不相同,從而造成對象的管理不統(tǒng)一。假定用Si(i=l,2,...,Μ)表示對象與屬性信息的存儲,則對于屬性信息Di,其所有對象存儲的數(shù)據(jù)可以記作SjDi,<01;02,…,0N>),這種方`式與網(wǎng)元管理系統(tǒng)是對應(yīng)的,因為網(wǎng)元管理系統(tǒng)都是以功能項來劃分的。
[0004]由于屬性信息是分散存儲的,不同的屬性信息中會包含著相同的對象信息,例如存儲屬性信息Di和Dj都包含了對象數(shù)據(jù)〈01; 02,...,(),>,因此對象信息存在著重復(fù)存儲。從軟件開發(fā)的角度來說,如果不同的屬性信息劃分到不同的軟件開發(fā)人員來實現(xiàn),軟件開發(fā)人員除了關(guān)注對象功能的邏輯實現(xiàn)外,還需要關(guān)注對象的存儲、讀取等操作細(xì)節(jié)。如果預(yù)先沒有規(guī)定對象的存儲方式,則還可能造成對象的存儲是不一致的。
[0005]另一方面,當(dāng)對象〈01; O2,…,0N>發(fā)生變化后,例如:對象類型、對象層次、對象在每個層次中的編號或者對象數(shù)目發(fā)生變化,則涉及到該類型對象本身的操作以及該對象的所有屬性信息的存儲Si都可能發(fā)生變化。例如:對象創(chuàng)建、刪除、校驗、讀取、拷貝、遷移等操作,從而造成系統(tǒng)的通用性和擴(kuò)展性不高,軟件的可復(fù)用性低。
[0006]在實際應(yīng)用中,對于同一系列的設(shè)備,具有相同類型的對象其功能通常是相同的,即屬性信息是相同的,而對象信息會發(fā)生變化,例如:對象層次、對象數(shù)目發(fā)生變化。設(shè)計軟件架構(gòu)時,希望相同的功能模塊能夠直接復(fù)用,對象本身的變化與對象屬性信息的變化可以分離開來。[0007]以PON (Passive Optical Network,無源光網(wǎng)絡(luò))系統(tǒng)的設(shè)備為例,存在著多種形態(tài)結(jié)構(gòu)的設(shè)備,包括盒式設(shè)備、插卡式設(shè)備、多個分布式設(shè)備級聯(lián)后的設(shè)備等等,同時設(shè)備內(nèi)部也存在著不同的對象,例如在EPON (Ethernet Passive Optical Network,以太網(wǎng)無源光網(wǎng)絡(luò))/GP0N (Gigabit-Capable Passive Optical Network,吉比特?zé)o源光網(wǎng)絡(luò))系統(tǒng)下,管理的對象為:子框、OLT (Optical Line Terminal,光線路終端)板卡、OLT PON端口、ONU (Optical Network Unit,光網(wǎng)絡(luò)單元)、ONU端口等等,不同形態(tài)的設(shè)備板卡數(shù)目不同。而在 WDM (Wavelength Division Multiplexing,波分復(fù)用)-TDM (Time DivisionMultiplexing,時分多路復(fù)用)P0N系統(tǒng)中,用戶可以通過分路器共享一對波長,由具有多波長光源的OLT進(jìn)行資源調(diào)度。因此管理的對象還需要增加以波長劃分的邏輯通道對象。當(dāng)采用現(xiàn)有EP0N/GP0N系統(tǒng)中的對象管理方法移植到WDM-TDM PON系統(tǒng)中時,相應(yīng)的對象需要增加一個層次,造成修改的工作量巨大,非常繁復(fù),并且修改后會對以前的對象安全性有很大影響。
[0008]從另一個角度來說,0LT、ONU的形態(tài)非常多,而按照相應(yīng)的技術(shù)要求,它們所要求提供的外部接口和功能都是相同的,因此不同形態(tài)的0LT、ONU需要最大化的共享相同的功能模塊。
[0009]綜上所述,現(xiàn)有的對象管理方法存在對象信息不易擴(kuò)展、對象信息冗余存儲、對象屬性信息訪問接口不一致、可能造成數(shù)據(jù)不一致的缺陷。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的是為了克服上述【背景技術(shù)】的不足,提供一種嵌入式系統(tǒng)對象管理的裝置及方法,能提高不同系統(tǒng)之間的可復(fù)用性和可擴(kuò)展性,保證對象的擴(kuò)展與對象功能的實現(xiàn)互不影響,同時節(jié)省硬件存儲資源,提高軟件的開發(fā)效率。
[0011]本發(fā)明提供一種嵌入式系統(tǒng)對象管理的裝置,包括業(yè)務(wù)處理單元、對象管理單元和系統(tǒng)上下文處理單元,其中:
[0012]所述業(yè)務(wù)處理單元,用于:調(diào)用對象管理單元的接口完成相應(yīng)的功能:動態(tài)的創(chuàng)建和刪除對象以維護(hù)對象樹;獲取需要的對象的索引,根據(jù)對象索引調(diào)用相應(yīng)的對象操作模塊來設(shè)置/獲取對象的屬性值;
[0013]所述對象管理單元包括對象管理初始化模塊、對象屬性注冊模塊、對象創(chuàng)建/刪除模塊、對象查找模塊、對象屬性值存取模塊;
[0014]所述對象管理初始化模塊,用于:完成對象管理信息的初始化,包括對象屬性注冊表的空間分配、對象Hash查找表的建立、屬性Hash查找表的建立;
[0015]所述對象屬性注冊模塊,用于:提供統(tǒng)一的注冊接口,以便對象管理單元之外的其它單元完成向?qū)ο蠊芾韱卧淖?,即業(yè)務(wù)處理單元將系統(tǒng)內(nèi)的屬性信息加入到相應(yīng)的對象樹節(jié)點上,注冊的內(nèi)容參考屬性注冊表,對象屬性通過相應(yīng)的接口注銷;
[0016]所述對象創(chuàng)建/刪除模塊,用于:根據(jù)輸入的對象索引創(chuàng)建對象、刪除對象,創(chuàng)建對象時,根據(jù)屬性注冊表中的內(nèi)容分配對象空間,建立父對象與子對象之間的關(guān)系,并且初始化對象屬性信息為默認(rèn)值;刪除對象時,釋放對象的屬性信息,拆除父對象與子對象之間的關(guān)系并且釋放對象;
[0017]所述對象查找模塊,用于:將對象的統(tǒng)一標(biāo)識轉(zhuǎn)換為字符串形式,以字符串作為關(guān)鍵值進(jìn)行Hash查找;
[0018]所述對象屬性值存取模塊,用于:提供統(tǒng)一的接口,對對象的屬性值進(jìn)行存取、設(shè)置;
[0019]所述系統(tǒng)上下文處理單元,用于:將設(shè)備配置參數(shù)進(jìn)行模板化處理,負(fù)責(zé)系統(tǒng)設(shè)備規(guī)格和參數(shù)導(dǎo)入,提供基礎(chǔ)數(shù)據(jù)模板和狀態(tài)給對象管理單元使用。
[0020]在上述技術(shù)方案的基礎(chǔ)上,所述對象創(chuàng)建/刪除模塊,還用于:當(dāng)子對象與其父對象之間具有固定的從屬關(guān)系時,創(chuàng)建父對象的同時需要創(chuàng)建子對象,并建立它們之間的連接關(guān)系。
[0021]在上述技術(shù)方案的基礎(chǔ)上,所述對象創(chuàng)建/刪除模塊,還用于:當(dāng)子對象與其父對象之間沒有固定的從屬關(guān)系時,通過特定的事件觸發(fā)它們之間建立和解除從屬關(guān)系。
[0022]在上述技術(shù)方案的基礎(chǔ)上,所述對象查找模塊按照系統(tǒng)支持的對象層次數(shù)目,對象類型以及每個對象層次用一定的字節(jié)來編碼,將這些編碼后的字節(jié)形成字符串作為Hash表的索引。
[0023]本發(fā)明還提供一種基于上述裝置的嵌入式系統(tǒng)對象管理的方法,包括以下步驟:
[0024]S1、對象管理單元初始化,完成對象管理信息的初始化,包括對象屬性注冊表的空間分配、對象Hash查找表的建立、屬性Hash查找表的建立;
[0025]S2、對象屬性注冊模塊提供統(tǒng)一的注冊接口,注冊的信息包括屬性、屬性類型、屬性所支持的對象類型、屬性值所需要分配的空間大小、屬性缺省值獲取接口、屬性配置保存接口 ;
[0026]S3、業(yè)務(wù)處理單元調(diào)用對象屬性注冊模塊提供的統(tǒng)一的注冊接口,完成向?qū)ο蠊芾韱卧淖裕?br>
[0027]S4、業(yè)務(wù)處理單元根據(jù)功能要求,按照其業(yè)務(wù)處理邏輯,確定對應(yīng)的操作,直至業(yè)務(wù)處理單元的功能完成;
[0028]S5、業(yè)務(wù)處理單元判斷是否存在對對象的操作,如果是,則轉(zhuǎn)到步驟S6 ;如果否,則轉(zhuǎn)到步驟S8 ;
[0029]S6、業(yè)務(wù)處理單元判斷對對象的操作是否滿足下面四種情形之一:Ca)對象創(chuàng)建;
(b)對象刪除;(c)對象存??;(d)對象查找;如果滿足四種情形之一,則轉(zhuǎn)到步驟S7 ;否則轉(zhuǎn)到步驟S8 ;
[0030]S7、依據(jù)四種情形,分別執(zhí)行對象的相關(guān)操作:
[0031]Ca)對象創(chuàng)建:當(dāng)業(yè)務(wù)處理單元完成板卡授權(quán)、ONU授權(quán)等功能時,其對對象的操作為對象創(chuàng)建,對象創(chuàng)建/刪除模塊采取遞歸的方式創(chuàng)建對象以及具有固定從屬關(guān)系的所有子對象,步驟如下:
[0032]步驟101、申請相應(yīng)的對象鎖;
[0033]步驟102、通過對象Hash表查找對象是否存在,如果存在,則轉(zhuǎn)到步驟111 ;如果不存在,則轉(zhuǎn)到步驟103 ;
[0034]步驟103、分配對象節(jié)點,轉(zhuǎn)到步驟104 ;
[0035]步驟104、分配對象的Hash表節(jié)點并插入到Hash表,轉(zhuǎn)到步驟105 ;
[0036]步驟105、設(shè)置對象的固定屬性和固定屬性的屬性值,固定屬性和固定屬性的屬性值從系統(tǒng)上下文處理單元中獲取,轉(zhuǎn)到步驟106 ;[0037]步驟106、根據(jù)屬性注冊表初始化對象的屬性值,轉(zhuǎn)到步驟107 ;
[0038]步驟107、判斷該對象是否是根節(jié)點對象,如果是,則轉(zhuǎn)到步驟109,否則轉(zhuǎn)到步驟108 ;
[0039]步驟108、設(shè)置其父對象的子對象列表等數(shù)據(jù),轉(zhuǎn)到步驟109 ;
[0040]步驟109、判斷是否有子對象,如果有子對象,則轉(zhuǎn)到步驟110 ;如果沒有子對象,則轉(zhuǎn)到步驟111 ;
[0041]步驟110、根據(jù)子對象信息再次調(diào)用本創(chuàng)建對象處理流程,返回步驟101 ;
[0042]步驟111:釋放相應(yīng)的對象鎖;
[0043](b)對象刪除:當(dāng)業(yè)務(wù)處理單元要完成板卡去授權(quán)、ONU去授權(quán)等功能時,其對對象的操作為對象刪除,對象創(chuàng)建/刪除模塊采取遞歸的方式刪除對象以及該對象具有固定從屬關(guān)系的所有子對象,步驟如下:
[0044]步驟201、申請相應(yīng)的對象鎖;
[0045]步驟202、通過對象Hash表查找對象是否存在,如果存在,則轉(zhuǎn)到步驟203 ;如果不存在,轉(zhuǎn)到步驟208 ;
[0046]步驟203、判斷該對象是否有子對象,如果有子對象,則轉(zhuǎn)到步驟204 ;如果沒有子對象,則轉(zhuǎn)到步驟205 ;
[0047]步驟204、將子對象作為索引遞歸調(diào)用本刪除對象處理流程,轉(zhuǎn)到步驟205 ;
[0048]步驟205、刪除對象下的各個屬性,轉(zhuǎn)到步驟206 ;
[0049]步驟206、設(shè)置其父對象的子對象列表信息,轉(zhuǎn)到步驟207 ;
[0050]步驟207、刪除該對象在Hash表中的節(jié)點,轉(zhuǎn)到步驟208 ;
[0051]步驟208、釋放相應(yīng)的對象鎖;
[0052](C)對象存取的流程如下:
[0053]步驟301、申請相應(yīng)的對象鎖;
[0054]步驟302、通過對象Hash表查找對象是否存在,如果存在,則轉(zhuǎn)到步驟303 ;如果不存在,則轉(zhuǎn)到步驟305 ;
[0055]步驟303、判斷屬性是否存在,如果存在,則轉(zhuǎn)到步驟304 ;如果不存在,則轉(zhuǎn)到步驟 305 ;
[0056]步驟304、獲取/設(shè)置對象對應(yīng)的屬性值緩沖區(qū)中的內(nèi)容,轉(zhuǎn)到步驟305 ;
[0057]步驟305、釋放相應(yīng)的對象鎖;
[0058](d)對象查找的流程如下:
[0059]步驟401、申請相應(yīng)的對象鎖;
[0060]步驟402、通過對象Hash表查找該對象是否存在,如果存在,則轉(zhuǎn)到步驟403 ;如果不存在,則轉(zhuǎn)到步驟407 ;
[0061]步驟403、判斷該對象是否滿足查找條件,如果滿足,則轉(zhuǎn)到步驟404 ;如果不滿足,則轉(zhuǎn)到步驟407 ;
[0062]步驟404、將滿足查找條件的對象放入返回的對象列表中,轉(zhuǎn)到步驟405 ;
[0063]步驟405、判斷該對象是否存在子對象,如果存在,則轉(zhuǎn)到步驟406 ;如果不存在,則轉(zhuǎn)到步驟407 ;
[0064]步驟406、遍歷遞歸該對象下的所有子對象,返回步驟402 ;[0065]步驟407、釋放相應(yīng)的對象鎖;
[0066]S8、判斷業(yè)務(wù)處理單元的所有功能是否完成,如果全部完成,則循環(huán)結(jié)束;如果沒有完成,則返回步驟S4,處理業(yè)務(wù)處理單元的下一次操作。
[0067]在上述技術(shù)方案的基礎(chǔ)上,所述對象采用統(tǒng)一的可擴(kuò)展標(biāo)識,該標(biāo)識涵蓋了對象類型、對象所具有的層次數(shù)目以及對象在每個層次中的編號,對象的標(biāo)識也表示對象的索弓I,對象的各類操作均使用該對象標(biāo)識,即對象索引。
[0068]在上述技術(shù)方案的基礎(chǔ)上,所述對象的標(biāo)識中的每一條記錄項標(biāo)識了一個對象信息,具體包括下面三個參數(shù):
[0069](I) Type,對象類型;
[0070](2) Level,對象層次;
[0071](3) Addr,指向每層對象編號的指針,具體的層數(shù)由參數(shù)level對象層次來確定。
[0072]在上述技術(shù)方案的基礎(chǔ)上,所述對象按照層次關(guān)系組織成樹形結(jié)構(gòu),樹中的每個節(jié)點表示一個對象,所述節(jié)點包括下面五個參數(shù):
[0073](I) Objld,指向?qū)ο蟮闹羔?,其類型為對象統(tǒng)一標(biāo)識;
[0074](2) Father,指向父對象的指針;
[0075](3) Number,子對象的數(shù)目;
[0076](4) SonList,指向子對象鏈表,鏈表的數(shù)目即為子對象的數(shù)目Number ;
[0077](5) AttrList,指向?qū)ο髮傩孕畔⒌逆湵怼?br>
[0078]在上述技術(shù)方案的基礎(chǔ)上,所述對象屬性信息包括屬性和屬性值,所述屬性用來指明對象的特性,屬性值指明屬性的存儲數(shù)據(jù),所述鏈表中的每個屬性通過屬性注冊表來定義,每個屬性均有相應(yīng)的信息指向?qū)傩灾档拇鎯^(qū)域。
[0079]在上述技術(shù)方案的基礎(chǔ)上,所述屬性注冊表中的每一條記錄項標(biāo)識了一條屬性的注冊信息,至少包括下面六個參數(shù):
[0080](I) attr,屬性;
[0081](2) attrType,屬性類型,標(biāo)識該屬性是固有屬性還是可變屬性,可變屬性包括配置屬性和狀態(tài)屬性;
[0082](3) objType,該屬性所支持的對象類型列表;
[0083](4) size,單個對象使用該屬性時所需要分配的空間大?。?br>
[0084](5) getDefaultValueFunc,獲取屬性缺省值的接口 ;
[0085](6) saveFunc,保存屬性值的接口,當(dāng)設(shè)備的配置需要存儲到非易失的隨機(jī)訪問存儲器NVRAM時,如果需要按照對象來存儲或者僅存儲部分對象的屬性信息時,使用該接口。
[0086]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點如下:
[0087]本發(fā)明將對象信息與對象屬性信息從邏輯上分離開來,將對象信息以樹形結(jié)構(gòu)組織并進(jìn)行集中管理,并提供對象操作的統(tǒng)一接口,同時對象屬性信息通過注冊的方式掛接到對象管理系統(tǒng)中,對象管理系統(tǒng)提供屬性信息操作的統(tǒng)一接口,而不必關(guān)注具體的屬性信息,具有很強(qiáng)的通用性,因此對象信息與對象屬性信息可以支持任意方式的擴(kuò)展,能夠提高不同系統(tǒng)之間的可復(fù)用性和可擴(kuò)展性,保證對象的擴(kuò)展與對象功能的實現(xiàn)互不影響,解決現(xiàn)有方法中存在的對象信息不易擴(kuò)展、對象信息冗余存儲、對象屬性信息訪問接口不一致并且可能造成數(shù)據(jù)不一致的缺陷,軟件開發(fā)人員可以更好的專注業(yè)務(wù)邏輯的實現(xiàn)而不必關(guān)注對對象本身的各類操作,同時還能節(jié)省硬件存儲資源,提高軟件的開發(fā)效率。此外,本發(fā)明還具有很好的并發(fā)性,能夠提高數(shù)據(jù)的安全性,滿足嵌入式設(shè)備大批量、并行、可靠安
全的配置管理。
【專利附圖】
【附圖說明】
[0088]圖1是本發(fā)明實施例中嵌入式系統(tǒng)對象管理的裝置的結(jié)構(gòu)框圖。
[0089]圖2是本發(fā)明實施例中嵌入式系統(tǒng)對象管理的方法的流程圖。
[0090]圖3是插卡式OLT系統(tǒng)的對象樹的結(jié)構(gòu)框圖。
[0091]圖4是對象統(tǒng)一標(biāo)識定義的結(jié)構(gòu)示意圖。
[0092]圖5是對象樹的節(jié)點定義的結(jié)構(gòu)示意圖。
[0093]圖6是對象創(chuàng)建的流程圖。
[0094]圖7是對象刪除的流程圖。
[0095]圖8是對象屬性值獲取/設(shè)置的流程圖。
[0096]圖9是對象查找的流程圖。
【具體實施方式】
[0097]下面結(jié)合附圖及具體實施例對本發(fā)明作進(jìn)一步的詳細(xì)描述。
[0098]參見圖1所示,本發(fā)明實施例提供一種嵌入式系統(tǒng)對象管理的裝置,包括業(yè)務(wù)處理單元、對象管理單元和系統(tǒng)上下文處理單元,其中:
[0099]業(yè)務(wù)處理單元,用于:調(diào)用對象管理單元的接口完成相應(yīng)的功能:動態(tài)的創(chuàng)建和刪除對象以維護(hù)對象樹;獲取需要的對象的索引,根據(jù)對象索引調(diào)用相應(yīng)的對象操作模塊來設(shè)置/獲取對象的屬性值;
[0100]對象管理單元包括對象管理初始化模塊、對象屬性注冊模塊、對象創(chuàng)建/刪除模塊、對象查找模塊、對象屬性值存取模塊,其中:
[0101]對象管理初始化模塊,用于:完成對象管理信息的初始化,包括對象屬性注冊表的空間分配、對象Hash查找表的建立、屬性Hash查找表的建立等;
[0102]對象屬性注冊模塊,用于:提供統(tǒng)一的注冊接口,以便對象管理單元之外的其它單元完成向?qū)ο蠊芾韱卧淖?,即業(yè)務(wù)處理單元將系統(tǒng)內(nèi)的屬性信息加入到相應(yīng)的對象樹節(jié)點上,注冊的內(nèi)容參考屬性注冊表,對象屬性也可以通過相應(yīng)的接口注銷;
[0103]對象創(chuàng)建/刪除模塊,用于:根據(jù)輸入的對象索引創(chuàng)建對象、刪除對象,創(chuàng)建對象時,根據(jù)屬性注冊表中的內(nèi)容分配對象空間,建立父對象與子對象之間的關(guān)系,并且初始化對象屬性信息為默認(rèn)值;刪除對象時,釋放對象的屬性信息,拆除父對象與子對象之間的關(guān)系并且釋放對象;當(dāng)子對象與其父對象之間具有固定的從屬關(guān)系時,如業(yè)務(wù)板卡與其對應(yīng)的端口,這種情況下,創(chuàng)建父對象的同時需要創(chuàng)建子對象,并建立它們之間的連接關(guān)系;當(dāng)子對象與其父對象之間沒有固定的從屬關(guān)系時,通過特定的事件觸發(fā)它們之間建立和解除從屬關(guān)系,例如=PON系統(tǒng)的ONU授權(quán)配置,在創(chuàng)建了 ONU對象的同時,ONU對象和OLT系統(tǒng)的某個板卡的PON端口對象之間就建立了從屬關(guān)系,ONU去授權(quán)操作則解除了上述從屬關(guān)系;
[0104]對象查找模塊,用于:將對象的統(tǒng)一標(biāo)識轉(zhuǎn)換為字符串形式,以字符串作為關(guān)鍵值進(jìn)行Hash查找。采用Hash查找的目的是為了提高查找對象以及每個對象屬性列表的效率,Hash查找的算法可以針對不同的系統(tǒng)采用不同的算法。在本發(fā)明實施例中,可以按照系統(tǒng)支持的對象層次數(shù)目,對象類型以及每個對象層次用一定的字節(jié)來編碼,將這些編碼后的字節(jié)形成字符串作為Hash表的索引。盡管對象存儲是樹形結(jié)構(gòu)的,但是本發(fā)明沒有考慮按照樹形結(jié)構(gòu)來查找,主要原因是考慮到樹的查找需要從根開始,然后逐級的進(jìn)行子樹查找,當(dāng)設(shè)備的層次較多時,查找的效率較低,為此本發(fā)明考慮使用Hash查找的方法,Hash查找是扁平化的,可以按照實際的對象數(shù)目動態(tài)占用Hash表,同時對系統(tǒng)空間資源的要求較小。
[0105]對象屬性值存取模塊,用于:提供統(tǒng)一的接口,對對象的屬性值進(jìn)行存取、設(shè)置,由于對象采用了統(tǒng)一的集中管理方式,其它單元訪問對象的操作接口也可以統(tǒng)一。
[0106]系統(tǒng)上下文處理單元,用于:將設(shè)備配置參數(shù)進(jìn)行模板化處理,負(fù)責(zé)系統(tǒng)設(shè)備規(guī)格和參數(shù)導(dǎo)入,提供基礎(chǔ)數(shù)據(jù)模板和狀態(tài)給對象管理單元使用。
[0107]參見圖2所示,本發(fā)明實施例提供一種嵌入式系統(tǒng)對象管理的方法,包括以下步驟:
[0108]S1、對象管理單元初始化,完成對象管理信息的初始化,包括對象屬性注冊表的空間分配、對象Hash查找表的建立、屬性Hash查找表的建立等;
[0109]S2、對象屬性注冊模塊提供統(tǒng)一的注冊接口,注冊的信息包括屬性、屬性類型、屬性所支持的對象類型、屬性值所需要分配的空間大小、屬性缺省值獲取接口、屬性配置保存接口等;
[0110]S3、業(yè)務(wù)處理單元調(diào)用對象屬性注冊模塊提供的統(tǒng)一的注冊接口,完成向?qū)ο蠊芾韱卧淖裕?br>
[0111]S4、業(yè)務(wù)處理單元根據(jù)功能要求,按照其業(yè)務(wù)處理邏輯,確定對應(yīng)的操作,直至業(yè)務(wù)處理單元的功能完成;
[0112]S5、業(yè)務(wù)處理單元判斷是否存在對對象的操作,如果是,則轉(zhuǎn)到步驟S6 ;如果否,則轉(zhuǎn)到步驟S8 ;
[0113]S6、業(yè)務(wù)處理單元判斷對對象的操作是否滿足下面四種情形之一:(a)對象創(chuàng)建;(b)對象刪除;(c)對象存?。?d)對象查找;如果滿足四種情形之一,則轉(zhuǎn)到步驟S7 ;否則轉(zhuǎn)到步驟S8 ;
[0114]S7、依據(jù)四種情形,分別執(zhí)行對象的相關(guān)操作;
[0115]S8、判斷業(yè)務(wù)處理單元的所有功能是否完成,如果全部完成,則循環(huán)結(jié)束;如果沒有完成,則返回步驟S4,處理業(yè)務(wù)處理單元的下一次操作。
[0116]圖3示出了一種插卡式OLT系統(tǒng)的典型管理對象的結(jié)構(gòu),OLT系統(tǒng)的管理對象可以組織成一棵對象樹,樹的每個節(jié)點都表示一個對象,樹中的每個結(jié)點都有編號,從根到每個葉子結(jié)點都有唯一的路徑,其根節(jié)點為OLT系統(tǒng)這個對象,根節(jié)點下的子對象為板卡對象,板卡對象的子對象則為PON端口對象,以此類推等。圖3所示的OLT系統(tǒng)僅為一種示例,本領(lǐng)域技術(shù)人員完全可以對對象的層次以及每個層次的數(shù)量及布局采用其他合理的設(shè)置形式,本發(fā)明的目的是對于樹形的對象實現(xiàn)統(tǒng)一的對象管理,而不在于對象的具體結(jié)構(gòu)。
[0117]本發(fā)明實施例中的對象采用統(tǒng)一的可擴(kuò)展標(biāo)識,該標(biāo)識涵蓋了對象類型、對象所具有的層次數(shù)目以及對象在每個層次中的編號,該標(biāo)識是可以任意擴(kuò)展的。對象的標(biāo)識也表示了對象的索引,對象的各類操作均使用該對象標(biāo)識,即對象索引。
[0118]圖4示出了對象統(tǒng)一標(biāo)識的定義,標(biāo)識中的每一條記錄項標(biāo)識了一個對象信息,具體包括下面三個參數(shù):
[0119](I) Type,對象類型;
[0120](2) Level,對象層次;
[0121](3) Addr,指向每層對象編號的指針,具體的層數(shù)由參數(shù)level對象層次來確定。
[0122]對象按照層次關(guān)系組織成樹形結(jié)構(gòu),樹中的每個節(jié)點表示一個對象,圖5示出了對象樹的節(jié)點定義,具體包括下面五個參數(shù):
[0123](I) Objld,指向?qū)ο蟮闹羔?,其類型為圖4所示的對象統(tǒng)一標(biāo)識;
[0124](2) Father,指向父對象的指針,圖5示出了子對象I的父對象;
[0125](3) Number,子對象的數(shù)目;
[0126](4) SonList,指向子對象鏈表,鏈表的數(shù)目即為子對象的數(shù)目Number ;
[0127](5) AttrList,指向?qū)ο髮傩孕畔⒌逆湵?,對象屬性信息包括屬性和屬性值,其中屬性用來指明對象的特性,屬性值指明屬性的存儲?shù)據(jù)等。參見圖5所示,鏈表中的每個屬性通過表1所示的屬性注冊表來定義,每個屬性均有相應(yīng)的信息指向?qū)傩灾档拇鎯^(qū)域。
[0128]表1示出了屬性注冊表的定義,圖中的每一條記錄項標(biāo)識了一條屬性的注冊信息,至少包括下面六個參數(shù):
[0129](l)attr,屬性;
[0130](2) attrType,屬性類型,標(biāo)識該屬性是固有屬性還是可變屬性,其中可變屬性又包括配置屬性,狀態(tài)屬性等;
[0131](3) objType,該屬性所支持的對象類型列表;
[0132](4) size,單個對象使用該屬性時所需要分配的空間大??;
[0133](5) getDefaultValueFunc,獲取屬性缺省值的接口 ;
[0134](6)saveFunc,保存屬性值的接口,當(dāng)設(shè)備的配置需要存儲到NVRAM(Non-VolatileRandom Access Memory,非易失的隨機(jī)訪問存儲器)時,如果需要按照對象來存儲或者僅存儲部分對象的屬性信息時可以使用該接口。
[0135]表1、對象屬性注冊信息的定義表
[0136]
【權(quán)利要求】
1.一種嵌入式系統(tǒng)對象管理的裝置,其特征在于:包括業(yè)務(wù)處理單元、對象管理單元和系統(tǒng)上下文處理單元,其中: 所述業(yè)務(wù)處理單元,用于:調(diào)用對象管理單元的接口完成相應(yīng)的功能:動態(tài)的創(chuàng)建和刪除對象以維護(hù)對象樹;獲取需要的對象的索引,根據(jù)對象索引調(diào)用相應(yīng)的對象操作模塊來設(shè)置/獲取對象的屬性值; 所述對象管理單元包括對象管理初始化模塊、對象屬性注冊模塊、對象創(chuàng)建/刪除模塊、對象查找模塊、對象屬性值存取模塊; 所述對象管理初始化模塊,用于:完成對象管理信息的初始化,包括對象屬性注冊表的空間分配、對象Hash查找表的建立、屬性Hash查找表的建立; 所述對象屬性注冊模塊,用于:提供統(tǒng)一的注冊接口,以便對象管理單元之外的其它單元完成向?qū)ο蠊芾韱卧淖?,即業(yè)務(wù)處理單元將系統(tǒng)內(nèi)的屬性信息加入到相應(yīng)的對象樹節(jié)點上,注冊的內(nèi)容參考屬性注冊表,對象屬性通過相應(yīng)的接口注銷; 所述對象創(chuàng)建/刪除模塊,用于:根據(jù)輸入的對象索引創(chuàng)建對象、刪除對象,創(chuàng)建對象時,根據(jù)屬性注冊表中的內(nèi)容分配對象空間,建立父對象與子對象之間的關(guān)系,并且初始化對象屬性信息為默認(rèn)值;刪除對象時,釋放對象的屬性信息,拆除父對象與子對象之間的關(guān)系并且釋放對象; 所述對象查找模塊,用于:將對象的統(tǒng)一標(biāo)識轉(zhuǎn)換為字符串形式,以字符串作為關(guān)鍵值進(jìn)行Hash查找; 所述對象屬性值存取模塊,用于:提供統(tǒng)一的接口,對對象的屬性值進(jìn)行存取、設(shè)置; 所述系統(tǒng)上下文處理單元,用于:將設(shè)備配置參數(shù)進(jìn)行模板化處理,負(fù)責(zé)系統(tǒng)設(shè)備規(guī)格和參數(shù)導(dǎo)入,提供基礎(chǔ)數(shù)據(jù)模板和狀態(tài)給對象管理單元使用。
2.如權(quán)利要求1所述的嵌入式系統(tǒng)對象管理的裝置,其特征在于:所述對象創(chuàng)建/刪除模塊,還用于:當(dāng)子對象與其父對象之間具有固定的從屬關(guān)系時,創(chuàng)建父對象的同時需要創(chuàng)建子對象,并建立它們之間的連接關(guān)系。
3.如權(quán)利要求1所述的嵌入式系統(tǒng)對象管理的裝置,其特征在于:所述對象創(chuàng)建/刪除模塊,還用于:當(dāng)子對象與其父對象之間沒有固定的從屬關(guān)系時,通過特定的事件觸發(fā)它們之間建立和解除從屬關(guān)系。
4.如權(quán)利要求1至3中任一項所述的嵌入式系統(tǒng)對象管理的裝置,其特征在于:所述對象查找模塊按照系統(tǒng)支持的對象層次數(shù)目,對象類型以及每個對象層次用一定的字節(jié)來編碼,將這些編碼后的字節(jié)形成字符串作為Hash表的索引。
5.基于權(quán)利要求1至4中任一項所述裝置的嵌入式系統(tǒng)對象管理的方法,其特征在于,包括以下步驟: .51、對象管理單元初始化,完成對象管理信息的初始化,包括對象屬性注冊表的空間分配、對象Hash查找表的建立、屬性Hash查找表的建立; .52、對象屬性注冊模塊提供統(tǒng)一的注冊接口,注冊的信息包括屬性、屬性類型、屬性所支持的對象類型、屬性值所需要分配的空間大小、屬性缺省值獲取接口、屬性配置保存接Π ; .53、業(yè)務(wù)處理單元調(diào)用對象屬性注冊模塊提供的統(tǒng)一的注冊接口,完成向?qū)ο蠊芾韱卧淖?;S4、業(yè)務(wù)處理單元根據(jù)功能要求,按照其業(yè)務(wù)處理邏輯,確定對應(yīng)的操作,直至業(yè)務(wù)處理單元的功能完成; S5、業(yè)務(wù)處理單元判斷是否存在對對象的操作,如果是,則轉(zhuǎn)到步驟S6;如果否,則轉(zhuǎn)到步驟S8 ; S6、業(yè)務(wù)處理單元判斷對對象的操作是否滿足下面四種情形之一:(a)對象創(chuàng)建;(b)對象刪除;(c)對象存?。?d)對象查找;如果滿足四種情形之一,則轉(zhuǎn)到步驟S7 ;否則轉(zhuǎn)到步驟S8 ; S7、依據(jù)四種情形,分別執(zhí)行對象的相關(guān)操作: (a)對象創(chuàng)建:當(dāng)業(yè)務(wù)處理單元完成板卡授權(quán)、ONU授權(quán)等功能時,其對對象的操作為對象創(chuàng)建,對象創(chuàng)建/刪除模塊采取遞歸的方式創(chuàng)建對象以及具有固定從屬關(guān)系的所有子對象,步驟如下: 步驟101、申請相應(yīng)的對象鎖; 步驟102、通過對象Hash表查找對象是否存在,如果存在,則轉(zhuǎn)到步驟111 ;如果不存在,則轉(zhuǎn)到步驟103 ; 步驟103、分配對象節(jié)點,轉(zhuǎn)到步驟104 ; 步驟104、分配對象的Hash表節(jié)點并插入到Hash表,轉(zhuǎn)到步驟105 ; 步驟105、設(shè)置對象的固定屬性和固定屬性的屬性值,固定屬性和固定屬性的屬性值從系統(tǒng)上下文處理單元中獲取,轉(zhuǎn)到步驟106 ; 步驟106、根據(jù)屬性注冊表初始化對象的屬性值,轉(zhuǎn)到步驟107 ; 步驟107、判斷該對象是否是根節(jié)點對象,如果是,則轉(zhuǎn)到步驟109,否則轉(zhuǎn)到步驟108 ; 步驟108、設(shè)置其父對象的子對象列表等數(shù)據(jù),轉(zhuǎn)到步驟109 ; 步驟109、判斷是否有子對象,如果有子對象,則轉(zhuǎn)到步驟110 ;如果沒有子對象,則轉(zhuǎn)到步驟111 ; 步驟110、根據(jù)子對象信息再次調(diào)用本創(chuàng)建對象處理流程,返回步驟101 ; 步驟111:釋放相應(yīng)的對象鎖; (b)對象刪除:當(dāng)業(yè)務(wù)處理單元要完成板卡去授權(quán)、ONU去授權(quán)等功能時,其對對象的操作為對象刪除,對象創(chuàng)建/刪除模塊采取遞歸的方式刪除對象以及該對象具有固定從屬關(guān)系的所有子對象,步驟如下: 步驟201、申請相應(yīng)的對象鎖; 步驟202、通過對象Hash表查找對象是否存在,如果存在,則轉(zhuǎn)到步驟203 ;如果不存在,轉(zhuǎn)到步驟208 ; 步驟203、判斷該對象是否有子對象,如果有子對象,則轉(zhuǎn)到步驟204 ;如果沒有子對象,則轉(zhuǎn)到步驟205 ; 步驟204、將子對象作為索引遞歸調(diào)用本刪除對象處理流程,轉(zhuǎn)到步驟205 ; 步驟205、刪除對象下的各個屬性,轉(zhuǎn)到步驟206 ; 步驟206、設(shè)置其父對象的子對象列表信息,轉(zhuǎn)到步驟207 ; 步驟207、刪除該對象在Hash表中的節(jié)點,轉(zhuǎn)到步驟208 ; 步驟208、釋放相應(yīng)的對象鎖; (C)對象存取的流程如下:步驟301、申請相應(yīng)的對象鎖; 步驟302、通過對象Hash表查找對象是否存在,如果存在,則轉(zhuǎn)到步驟303 ;如果不存在,則轉(zhuǎn)到步驟305 ; 步驟303、判斷屬性是否存在,如果存在,則轉(zhuǎn)到步驟304 ;如果不存在,則轉(zhuǎn)到步驟.305 ; 步驟304、獲取/設(shè)置對象對應(yīng)的屬性值緩沖區(qū)中的內(nèi)容,轉(zhuǎn)到步驟305 ; 步驟305、釋放相應(yīng)的對象鎖; Cd)對象查找的流程如下: 步驟401、申請相應(yīng)的對象鎖; 步驟402、通過對象Hash表查找該對象是否存在,如果存在,則轉(zhuǎn)到步驟403 ;如果不存在,則轉(zhuǎn)到步驟407 ; 步驟403、判斷該對象是否滿足查找條件,如果滿足,則轉(zhuǎn)到步驟404 ;如果不滿足,則轉(zhuǎn)到步驟407 ; 步驟404、將滿足查找條件的對象放入返回的對象列表中,轉(zhuǎn)到步驟405 ; 步驟405、判斷該對象是否存在子對象,如果存在,則轉(zhuǎn)到步驟406 ;如果不存在,則轉(zhuǎn)到步驟407 ; 步驟406、遍歷遞歸該對象下的所有子對象,返回步驟402 ; 步驟407、釋放相應(yīng)的對象鎖; S8、判斷業(yè)務(wù)處理單元的所有功能是否完成,如果全部完成,則循環(huán)結(jié)束;如果沒有完成,則返回步驟S4,處理業(yè)務(wù)處理單元的下一次操作。
6.如權(quán)利要求5所述的嵌入式系統(tǒng)對象管理的方法,其特征在于:所述對象采用統(tǒng)一的可擴(kuò)展標(biāo)識,該標(biāo)識涵蓋了對象類型、對象所具有的層次數(shù)目以及對象在每個層次中的編號,對象的標(biāo)識也表示對象的索引,對象的各類操作均使用該對象標(biāo)識,即對象索引。
7.如權(quán)利要求6所述的嵌入式系統(tǒng)對象管理的方法,其特征在于:所述對象的標(biāo)識中的每一條記錄項標(biāo)識了一個對象信息,具體包括下面三個參數(shù): (1)Type,對象類型; (2)Level,對象層次; (3)Addr,指向每層對象編號的指針,具體的層數(shù)由參數(shù)level對象層次來確定。
8.如權(quán)利要求5所述的嵌入式系統(tǒng)對象管理的方法,其特征在于:所述對象按照層次關(guān)系組織成樹形結(jié)構(gòu),樹中的每個節(jié)點表示一個對象,所述節(jié)點包括下面五個參數(shù): (1)Objld,指向?qū)ο蟮闹羔?,其類型為對象統(tǒng)一標(biāo)識; (2)Father,指向父對象的指針; (3)Number,子對象的數(shù)目; (4)SonList,指向子對象鏈表,鏈表的數(shù)目即為子對象的數(shù)目Number ; (5)AttrList,指向?qū)ο髮傩孕畔⒌逆湵怼?br>
9.如權(quán)利要求8所述的嵌入式系統(tǒng)對象管理的方法,其特征在于:所述對象屬性信息包括屬性和屬性值,所述屬性用來指明對象的特性,屬性值指明屬性的存儲數(shù)據(jù),所述鏈表中的每個屬性通過屬性注冊表來定義,每個屬性均有相應(yīng)的信息指向?qū)傩灾档拇鎯^(qū)域。
10.如權(quán)利要求9所述的嵌入式系統(tǒng)對象管理的方法,其特征在于:所述屬性注冊表中的每一條記錄項標(biāo)識了一條屬性的注冊信息,至少包括下面六個參數(shù): (1)attr,屬性; (2)attrType,屬性類型,標(biāo)識該屬性是固有屬性還是可變屬性,可變屬性包括配置屬性和狀態(tài)屬性; (3)objType,該屬性所支持的對象類型列表; (4)size,單個對象使用該屬性時所需要分配的空間大??; (5)getDefaultValueFunc,獲取屬性缺省值的接口 ; (6)saveFunc,保存屬性值的接口,當(dāng)設(shè)備的配置需要存儲到非易失的隨機(jī)訪問存儲器NVRAM時,如果需要按照對象`來存儲或者僅存儲部分對象的屬性信息時,使用該接口。
【文檔編號】G06F9/44GK103559032SQ201310528410
【公開日】2014年2月5日 申請日期:2013年10月31日 優(yōu)先權(quán)日:2013年10月31日
【發(fā)明者】曾顏, 周鳴 申請人:烽火通信科技股份有限公司