新四季網

一種基於插件的數據模型動態加載的方法

2023-04-29 16:34:16 3

一種基於插件的數據模型動態加載的方法
【專利摘要】一種基於插件的數據模型動態加載的方法,首先定義數據模型節點的描述結構,然後將數據模型節點編譯成動態庫,當TR098服務進程檢測到新插件時,加載新插件,外部進程對步驟S3中加載的數據節點進行添加,修改,刪除,讀取操作時,由TR069服務進程負責執行添加,修改,刪除,讀取節點實例,並調用對應的回調函數執行具體的功能。本發明將數據模型的描述和TR098服務進程分離,將數據模型的描述編譯成動態庫,以插件的形式存在,在TR098服務進程中動態加載插件,從而實現系統的高度可擴展性和維護性。
【專利說明】一種基於插件的數據模型動態加載的方法
【技術領域】
[0001]本發明涉及一種基於插件的數據模型動態加載的方法,尤其涉及一種基於插件的TR098協議中數據模型動態加載的方法。
【背景技術】
[0002]CWMP (CPE WAN Management Protocol,CPE 廣域網管理協議)是由 DSL (DigitalSubscriber's Line,數字用戶線路)論壇發起開發的技術規範之一,編號為TR-069,所以又被稱為TR-069協議。它提供了對下一代網絡中家庭網絡設備進行管理配置的通用框架、消息規範、管理方法和數據模型。
[0003]目前市場上對於TR069數據模型的管理方式大部分都是預先定義數據模型節點的描述文件,然後將數據模型節點描述文件編譯進TR069服務進程。這種方式的實現比較簡單,但如果以後需要增加新的數據模型節點,則必須重新編譯整個TR098服務進程,對於網絡設備來說,就可能需要升級設備的軟體,這就增加了維護成本,不容易擴展。

【發明內容】

[0004]本發明提供一種基於插件的數據模型動態加載的方法,將數據模型的描述編譯成動態庫,在TR098服務進程中動態加載插件,實現了系統的高度可擴展性和維護性。
[0005]為了達到上述目的,本發明提供一種基於插件的數據模型動態加載的方法,該方法包含以下步驟:
步驟S1、定義數據模型節點的描述結構;
所述的數據模型節點的描述結構包含節點路徑,節點名稱,節點屬性,節點參數,節點的回調函數;
步驟S2、將步驟SI中的數據模型節點編譯成動態庫,等待加載;
步驟S3、TR098服務進程檢測新插件,加載新插件;
步驟S4、外部進程對步驟S3中加載的數據節點進行添加,修改,刪除,讀取操作時,由TR069服務進程負責執行添加,修改,刪除,讀取節點實例,並調用對應的回調函數執行具體的功能。
[0006]所述的步驟SI中,所述的回調函數包含:
load Handle:當該節點插件被加載時,執行的回調函數; unload Handle:當該節點插件卸載時候,執行的回調函數; add Handle:添加該節點實例時,執行的回調函數; edit Handle:編輯該節點實例時,執行的回調函數; read Handle:讀取該節點實例時,執行的回調函數; delete Handle:刪除該節點實例時,執行的回調函數。
[0007]所述的數據模型節點的參數描述數組param List包含如下參數:
參數名稱; 參數屬性標誌;
參數類型;
參數的默認值,如果參數沒有顯示設置,那麼參數的值為默認值。
[0008]只有數據模型被實例化時才會調用的回調函數包含以下函數: add Handle:當節點被創建時,調用該函數,在該函數中執行初始化;
edit Handle:當節點被編輯時,調用該函數,該函數是節點功能生效的主要函數,當節點的參數值改變後會調用該函數,在該函數中根據參數值執行具體的功能;
read Handle:當節點被讀取時,調用該函數來更新參數值,對於一些狀態相關的節點尤其需要;
delete Handle:當一個節點被刪除時,調用該函數。
[0009]本發明將數據模型的描述和TR098服務進程分離,將數據模型的描述編譯成動態庫,以插件的形式存在,在TR098服務進程中動態加載插件,從而實現系統的高度可擴展性和維護性。
【專利附圖】

【附圖說明】
[0010]圖1是本發明的流程圖。
【具體實施方式】
[0011]以下根據圖1具體說明本發明的較佳實施例。
[0012]如圖1所示,本發明提供一種基於插件的數據模型動態加載的方法,該方法包含以下步驟:
步驟1、定義數據模型節點的參數描述數組;
所述的節點參數描述數組為param List,該數組中參數的個數為param Num ;
所述的數據模型節點的參數描述數組包含如下參數: name:參數名稱; flag:參數屬性標誌; type:參數類型;
default Vaule:參數的默認值,如果參數沒有顯示設置,那麼參數的值為默認值;
步驟2、編寫節點的回調函數;
插件被加載後,並不會調用步驟2中編寫的回調函數,只有數據模型被實例化時才會調用步驟2中的回調函數;
所述的回調函數包含以下函數:
add Handle:當節點被創建時,調用該函數,在該函數中執行初始化;edit Handle:當節點被編輯時,調用該函數,該函數是節點功能生效的主要函數,當節點的參數值改變後會調用該函數,在該函數中根據參數值執行具體的功能;
read Handle:當節點被讀取時,調用該函數來更新參數值,對於一些狀態相關的節點尤其需要;
delete Handle:當一個節點被刪除時,調用該函數;
步驟3、定義數據模型節點的描述結構; 所述的數據模型節點的描述結構包含節點路徑,節點名稱,節點屬性,節點參數,節點的回調函數,具體如下:
path:描述了節點的路徑; name:描述了節點的名稱; flag:描述了節點的屬性,例如讀寫屬性等; param List:即為步驟I中定義的節點參數描述數組; param Num:是步驟I中節點參數的個數; load Handle:當該節點插件被加載時,執行的回調函數; unload Handle:當該節點插件卸載時候,執行的回調函數; add Handle:添加該節點實例時,執行的回調函數,即步驟2中對應的回調函數; edit Handle:編輯該節點實例時,執行的回調函數,即步驟2中對應的回調函數; read Handle:讀取該節點實例時,執行的回調函數,即步驟2中對應的回調函數; delete Handle:刪除該節點實例時,執行的回調函數,即步驟2中對應的回調函數; 一個文件中可以定義多個節點的描述信息,將步驟3中定義的所有節點的節點描述 結構信息存放到一個數組中,名稱為Object Notes Desc,該數組中的節點個數為Object Notes Num ;
步驟4、將步驟3中的數據模型節點編譯成動態庫,等待加載;
步驟5、TR098服務進程檢測新插件,加載新插件;
由於插件以動態庫形式存在,可以調用相應的接口函數加載插件;
例如Iinux中調用dlopen函數(Linux的庫函數,打開一個動態庫)加載插件,然後根據返回的句柄調用dlsym函數(Linux的庫函數,獲取動態庫中某個符號的地址)獲取名稱為Object Notes Desc的節點描述數組,獲取該數組中描述的節點和參數信息後,便可以加載這些信息;
步驟6、外部進程對步驟5中加載的數據節點進行添加,修改,刪除,讀取等操作時,由TR069服務進程負責執行添加,修改,刪除,讀取節點等實例,並調用對應的回調函數執行具體的功能。
[0013]本發明將數據模型的描述和TR098服務進程分離,將數據模型的描述編譯成動態庫,以插件的形式存在,在TR098服務進程中動態加載插件,從而實現系統的高度可擴展性和維護性。
[0014]儘管本發明的內容已經通過上述優選實施例作了詳細介紹,但應當認識到上述的描述不應被認為是對本發明的限制。在本領域技術人員閱讀了上述內容後,對於本發明的多種修改和替代都將是顯而易見的。因此,本發明的保護範圍應由所附的權利要求來限定。
【權利要求】
1.一種基於插件的數據模型動態加載的方法,其特徵在於,該方法包含以下步驟: 步驟S1、定義數據模型節點的描述結構; 所述的數據模型節點的描述結構包含節點路徑、節點名稱、節點屬性、節點參數和節點的回調函數; 步驟S2、將步驟SI中的數據模型節點編譯成動態庫,等待加載; 步驟S3、TR098服務進程檢測新插件,加載新插件; 步驟S4、外部進程對步驟S3中加載的數據節點進行添加,修改,刪除,讀取操作時,由TR069服務進程負責執行添加,修改,刪除,讀取節點實例,並調用對應的回調函數執行具體的功能。
2.如權利要求1所述的基於插件的數據模型動態加載的方法,其特徵在於,所述的步驟SI中,所述的回調函數包含: load Handle:當該節點插件被加載時,執行的回調函數; unload Handle:當該節點插件卸載時候,執行的回調函數; add Handle:添加該節點實例時,執行的回調函數; edit Handle:編輯該節點實例時,執行的回調函數; read Handle:讀取該節點實例時,執行的回調函數; delete Handle:刪除該節點實例時,執行的回調函數。
3.如權利要求2所述的基於插件的數據模型動態加載的方法,其特徵在於,所述的數據模型節點的參數描述數組param List包含如下參數: 參數名稱; 參數屬性標誌; 參數類型; 參數的默認值,如果參數沒有顯示設置,那麼參數的值為默認值。
4.如權利要求2所述的基於插件的數據模型動態加載的方法,其特徵在於,只有數據模型被實例化時才會調用的回調函數包含以下函數: add Handle:當節點被創建時,調用該函數,在該函數中執行初始化;edit Handle:當節點被編輯時,調用該函數,該函數是節點功能生效的主要函數,當節點的參數值改變後會調用該函數,在該函數中根據參數值執行具體的功能; read Handle:當節點被讀取時,調用該函數來更新參數值,對於一些狀態相關的節點尤其需要; delete Handle:當一個節點被刪除時,調用該函數。
【文檔編號】G06F9/445GK103761136SQ201410063854
【公開日】2014年4月30日 申請日期:2014年2月25日 優先權日:2014年2月25日
【發明者】匡昌勝 申請人:上海斐訊數據通信技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀