專利名稱:用于內存數(shù)據(jù)庫內容變化實時通知業(yè)務的處理裝置的制作方法
技術領域:
本發(fā)明涉及通信領域,更具體而言,涉及一種用于內存4ft據(jù)庫 內容變化實時通知業(yè)務的處理裝置。
背景技術:
實時內存數(shù)據(jù)庫將數(shù)據(jù)對象存儲在內存中,所有的數(shù)據(jù)訪問及 操作都在內存中完成,所以大大提高了系統(tǒng)的性能,因此在通信、 控制等領域已被廣泛使用。實時內存數(shù)據(jù)庫的功能主要體現(xiàn)在兩個 方面 一是為業(yè)務提供數(shù)據(jù)配置信息,保證業(yè)務的正常運行;另一 個是相關數(shù)據(jù)配置變化后實時通知業(yè)務進行更新(即凄t據(jù)觸發(fā)), 保證業(yè)務與數(shù)據(jù)的 一致性。
數(shù)據(jù)觸發(fā)是指在配置修改同步到內存數(shù)據(jù)庫后,內存數(shù)據(jù)庫 進行同步前后的數(shù)據(jù)比較,當發(fā)現(xiàn)業(yè)務關心的內容變化后,實時通 知業(yè)務更新的過程。數(shù)據(jù)觸發(fā)的類型分為三種,單表記錄級內容變 化觸發(fā)、單表表級變化觸發(fā)及多表關聯(lián)觸發(fā)。
目前一般系統(tǒng)中內存數(shù)據(jù)庫內容變化實時通知業(yè)務的處理方 法有兩種 一種是建立主、備兩套內存表數(shù)據(jù)區(qū),正常運行時業(yè)務 使用主內存表數(shù)據(jù)區(qū)中數(shù)據(jù),數(shù)據(jù)同步時首先寫到備內存表數(shù)據(jù)區(qū) 中,待全部同步完成后,進4亍主備內存表數(shù)據(jù)區(qū)切換,此時進行主 備內存表數(shù)據(jù)區(qū)比較來完成三種數(shù)據(jù)觸發(fā)過程。然而,這種方法占用內存比較大,隨著數(shù)據(jù)庫表內容的增加,內存就會成倍增加,而 且對于同步過程的效率比較〗氐,實現(xiàn)流程及控制比較復雜。
另一種方法只有一個內存表數(shù)據(jù)區(qū),對于單表相關觸發(fā)使用在 數(shù)據(jù)同步過程中邊比較邊加栽的方法完成數(shù)據(jù)觸發(fā)過程,對于有多 個表關聯(lián)觸發(fā)需要考慮申請一個臨時數(shù)據(jù)區(qū)來保存同步前數(shù)據(jù),在 相關表加載完成后統(tǒng)一處理來通知業(yè)務變化消息。然而,這種方法 也存在缺陷,消息處理的順序以內存表的加栽順序為準,不易于控 制,設計時還需要考慮多個內存表的關系及加栽順序,多內存表間 的關聯(lián)不易于處理,有些觸發(fā)難以實現(xiàn)。
因此,人們需要一種內存數(shù)據(jù)庫內容變化實時通知業(yè)務的裝 置,以解決上述相關技術中的問題。
發(fā)明內容
本發(fā)明的目的就是提出 一 種既能節(jié)省內存空間,又能全面的考 慮各種情況下的數(shù)據(jù)觸發(fā)的通用裝置。
為實現(xiàn)上述目的,本發(fā)明提供了一種內存數(shù)據(jù)庫內容變化實時
通知業(yè)務的處理裝置,包括備份表創(chuàng)建模塊,用于在內存數(shù)據(jù)庫 中建立備份表,將內存數(shù)據(jù)庫的內存表數(shù)據(jù)庫的關聯(lián)關系表中或單 表記錄中業(yè)務關心的內容加載到備份表中;遍歷模塊,用于遍歷消
息注冊區(qū),查詢注冊到消息注冊區(qū)的消息相關的表本次同步有沒有
變化;觸發(fā)模塊,用于如沒有變化則繼續(xù)遍歷,否則根據(jù)消息類型 執(zhí)行來相應地利用備份表觸發(fā)實時通知業(yè)務,并相應地更新備份表。
根據(jù)本發(fā)明,備份表創(chuàng)建模塊還包括第一子加載模塊,用于 使單表記錄級變化通知類型直接從內存表中取得相應的信息加載 到備份表中;以及第二子加載模塊,用于使多表關聯(lián)變化通知類型
根據(jù)關鍵字從多表中獲取業(yè)務關心的數(shù)據(jù)組織為 一條記錄加栽到 備份表中。
根據(jù)本發(fā)明,該裝置還包括保存禁止模塊,用于將內存數(shù)據(jù) 庫的內存表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心的內容 保存于備份表中后,禁止再次同步及軟倒換;以及更新恢復模塊, 用于根據(jù)消息類型執(zhí)行來相應地利用備份表觸發(fā)實時通知業(yè)務,并 相應地更新備份表之后,恢復同步及軟倒換。
根據(jù)本發(fā)明的實施例,通過對備份表設置禁止再次同步及軟倒 換標志來禁止再次同步及軟倒換;以及通過對備份表設置恢復同步 及軟倒換標志來恢復同步及軟倒換。
并且,在消息注冊區(qū)中按照消息觸發(fā)順序登記具體消息與相關 的表關系。
此外,根據(jù)本發(fā)明,觸發(fā)模塊還用于如果消息類型是單表記 錄級變化通知類型,則從內存表中獲取相關信息與備份表中相應記 錄比較來觸發(fā)實時通知業(yè)務,并完成備份表的更新過程;如果消息 類型是單表級變化通知類型,直接根據(jù)注冊區(qū)中的消息名來觸發(fā)實 時通知業(yè)務;如果消息類型是多表關聯(lián)變化通知類型,則從多個關 聯(lián)表取出信息與備份表中相應記錄比較來觸發(fā)實時通知業(yè)務,并完 成備份表的更新過程。
根據(jù)本發(fā)明,該裝置還包括數(shù)據(jù)更新模塊,用于在業(yè)務收到內 存數(shù)據(jù)庫發(fā)送的觸發(fā)消息的情況下,直接更新數(shù)據(jù)或通過接口獲取 相關的凄t據(jù)來完成業(yè)務與內存數(shù)據(jù)庫中凄丈據(jù)一致的操作。
通過上述技術方案,本發(fā)明實現(xiàn)了如下技術效果
本發(fā)明既能節(jié)省內存空間、提高效率,又能全面的考慮各種情 況下的數(shù)據(jù)觸發(fā)過程及控制消息的發(fā)送順序,還將同步過程中的數(shù) 據(jù)加載與數(shù)據(jù)觸發(fā)完全獨立,使數(shù)據(jù)觸發(fā)的架構清晰,便于擴展。
本發(fā)明的其它特征和優(yōu)點將在隨后的i兌明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附 圖中所特別指出的結構來實現(xiàn)和獲得。
此處所i兌明的附圖用來提供對本發(fā)明的進一步理解,構成本申 請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并 不構成對本發(fā)明的不當限定。在附圖中
圖1示出了才艮據(jù)本發(fā)明實施例的內存凄丈據(jù)庫內容變化實時通知 業(yè)務的處理方法的流程圖2示出了才艮據(jù)本發(fā)明實施例的內存數(shù)據(jù)庫內容變化實時通知 業(yè)務的處理裝置的方沖匡圖3為根據(jù)本發(fā)明實施例的數(shù)據(jù)觸發(fā)進程的狀態(tài)躍遷圖4為才艮據(jù)本發(fā)明實施例的數(shù)據(jù)觸發(fā)進程的上電或備轉主流程 圖;以及
圖5為根據(jù)本發(fā)明實施例的數(shù)據(jù)同步程序實現(xiàn)流程圖。M實施方式
本發(fā)明提供了一種內存凄t據(jù)庫內容變化實時通知業(yè)務的處理
方法,如囝1所示,包才舌以下步驟
步驟S102,在內存數(shù)據(jù)庫中建立備份表,將內存數(shù)據(jù)庫的內存 表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心的內容加載到備 份表中,可在系統(tǒng)上電時建立備份表。
步驟S102可包括以下步驟對于單表記錄級變化通知類型直 接從內存表中取得相應的信息加載到備份表中;多表關聯(lián)變化通知 類型根據(jù)關鍵字從多表中獲取業(yè)務關心的數(shù)據(jù)組織為一條記錄加 載到備份表中。
步驟S104,遍歷消息注冊區(qū),查詢注冊到消息注冊區(qū)的消息相 關的表本次同步有沒有變化。
可在消息注冊區(qū)中按照消息觸發(fā)順序登記具體消息與相關的 表關系。
步驟S106,如沒有變化則繼續(xù)遍歷,否則4艮據(jù)消息類型執(zhí)4亍來 相應地利用備份表觸發(fā)實時通知業(yè)務,并相應地更新備份表。
步驟S106可包括以下步驟如果消息類型是單表記錄級變化 通知類型,則從內存表中獲取相關信息與備份表中相應記錄比較來 觸發(fā)實時通知業(yè)務,并完成備份表的更新過程;如果消息類型是單 表級變化通知類型,直接根據(jù)注冊區(qū)中的消息名來觸發(fā)實時通知業(yè) 務;如果消息類型是多表關聯(lián)變化通知類型,則從多個關聯(lián)表取出 信息與備份表中相應記錄比較來觸發(fā)實時通知業(yè)務,并完成備份表
的更新過程。
在上述的處理方法中,還可包括以下步驟將內存數(shù)據(jù)庫的內 存表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心的內容保存于 備份表中后,禁止再次同步及軟倒換;以及根據(jù)消息類型執(zhí)行來相 應地利用備份表觸發(fā)實時通知業(yè)務,并相應地更新備份表之后,恢 復同步及軟倒換。
可通過對備份表設置禁止再次同步及軟倒換標志來禁止再次 同步及軟倒換;以及通過對備份表設置恢復同步及軟倒換標志來恢 復同步及軟倒換。
在上述的處理方法中,還可包括以下步驟業(yè)務收到內存數(shù)據(jù) 庫發(fā)送的觸發(fā)消息,直接更新數(shù)據(jù)或通過接口獲取相關的數(shù)據(jù)來完 成業(yè)務與內存凄t據(jù)庫中數(shù)據(jù)一致的操作。
本發(fā)明還提供了 一種內存數(shù)據(jù)庫內容變化實時通知業(yè)務的處 理裝置200,包括
備份表創(chuàng)建才莫塊202,用于在內存數(shù)據(jù)庫中建立備份表,將內 存數(shù)據(jù)庫的內存表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心 的內容加載到備份表中,其中,備份表創(chuàng)建模塊202還包括第一 子加載模塊,用于使單表記錄級變化通知類型直接從內存表中取得 相應的信息加栽到備份表中;以及第二子加載模塊,用于使多表關 聯(lián)變化通知類型4艮據(jù)關4建字從多表中獲取業(yè)務關心的凄t據(jù)組織為 一條記錄加栽到備份表中;
遍歷才莫塊204,用于遍歷消息注冊區(qū),查詢注冊到消息注冊區(qū) 的消息相關的表本次同步有沒有變化;
以及觸發(fā)模塊206,用于如沒有變化則繼續(xù)遍歷,否則根據(jù)消 息類型執(zhí)行來相應地利用備份表觸發(fā)實時通知業(yè)務,并相應地更新 備份表,其中,觸發(fā)模塊206還用于如果消息類型是單表記錄級變化通知類型,則從內存表中獲取相關信息與備份表中相應記錄比較來觸發(fā)實時通知業(yè)務,并完成備份表的更新過程;如果消息類型 是單表級變化通知類型,直接根據(jù)注冊區(qū)中的消息名來觸發(fā)實時通 知業(yè)務;如果消息類型是多表關聯(lián)變化通知類型,則從多個關聯(lián)表
取出信息與備份表中相應記錄比較來觸發(fā)實時通知業(yè)務,并完成備 份表的更新過程。
此外,該裝置200還包括保存禁止模塊,用于將內存數(shù)據(jù)庫 的內存表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心的內容保 存于備份表中后,禁止再次同步及軟倒換;更新恢復模塊,用于根 據(jù)消息類型執(zhí)行來相應地利用備份表觸發(fā)實時通知業(yè)務,并相應地 更新備份表之后,恢復同步及軟倒換;以及數(shù)據(jù)更新模塊,用于在 業(yè)務收到內存數(shù)據(jù)庫發(fā)送的觸發(fā)消息的情況下,直接更新數(shù)據(jù)或通 過接口獲取相關的數(shù)據(jù)來完成業(yè)務與內存數(shù)據(jù)庫中數(shù)據(jù)一致的操 作。
在上述裝置中,通過對備份表設置禁止再次同步及軟倒換標志 來禁止再次同步及軟倒換;以及通過對備份表設置恢復同步及軟倒 換標志來恢復同步及軟倒換。
并且,在消息注冊區(qū)中按照消息觸發(fā)順序登記具體消息與相關 的表關系。
下面來詳細i兌明實時內存數(shù)據(jù)庫內容變化通知業(yè)務處理包括
進程:沒計、上電處理及同步實現(xiàn)過程。
圖3是數(shù)據(jù)觸發(fā)進程的狀態(tài)躍遷圖,表示主、備板數(shù)據(jù)庫觸發(fā) 進程的所有狀態(tài)躍遷情況。如圖3所示,主寺反上數(shù)據(jù)觸發(fā)進程上電 后從初始狀態(tài)躍遷到工作狀態(tài),并進行首次的所有備份表的加載工 作,這個過程不進行數(shù)據(jù)觸發(fā)操作,在工作狀態(tài)收到同步完成消息
后進行數(shù)據(jù)觸發(fā)操作, 一旦收到主轉備消息后躍遷到初始狀態(tài),就
不進行相關的數(shù)據(jù)觸發(fā)處理;備板上電一直處于初始狀態(tài),不進行 相關的數(shù)據(jù)觸發(fā)處理, 一旦收到備轉主消息后-夭遷到工作狀態(tài),并 進行首次的所有備份表的加載工作,這個過程也不進行數(shù)據(jù)觸發(fā)操 作,在工作狀態(tài)收到同步完成消息后進行數(shù)據(jù)觸發(fā)操作。
圖4為數(shù)據(jù)觸發(fā)進程的上電或備轉主流程圖,表示系統(tǒng)上電或 備板轉主板時數(shù)據(jù)觸發(fā)進程的處理流程。如圖4所示,主、備板上 電時創(chuàng)建備份表,主板上電后及備板收到備轉主消息時,通過遍歷 消息注冊區(qū)完成所有備份表加栽,對于單表級觸發(fā)的注冊類型不進 行任何操作,對于備份表觸發(fā)的注冊類型從內存表中獲取單表記錄 信息或關聯(lián)表信息組成記錄加載到備份表中,全部加載完成后再遍 歷下一條消息,直到遍歷完消息注冊區(qū)并進行相應處理,完成主板 上電或備轉主過程。
圖5為數(shù)據(jù)同步程序實現(xiàn)流程圖,表示配置變更發(fā)起同步后的 相關處理流程。如圖5所示,數(shù)據(jù)觸發(fā)進程收到同步完成消息后, 設置禁止同步及軟倒換標志,再遍歷消息注冊區(qū),如果沒有消息登 記就完成數(shù)據(jù)觸發(fā)過程,否則根據(jù)消息注冊區(qū)中的信息,判斷該消 息相關表本次同步是否變化,如果沒有變化直接進行下一個消息處 理,大大提高了同步的效率,如果變化則再判斷消息類型,對于單 表級通知類型直接根據(jù)消息注冊區(qū)中的消息進行數(shù)據(jù)觸發(fā),對于單 表記錄級或關聯(lián)表級通知類型,從內存表中(從單表記錄中組織或 從關聯(lián)表中組織)獲取一條記錄與備份表中記錄比較來完成相應的 數(shù)據(jù)觸發(fā)過程,并完成備份表的記錄更新,此表全部操作完成后再 進行下一條消息的處理,直到遍歷完消息注冊區(qū)完成所有的數(shù)據(jù)觸 發(fā)及備份表更新過程,再恢復同步及軟倒換標志。
業(yè)務收到數(shù)據(jù)庫觸發(fā)通知后,直接更新^t據(jù)或通過接口獲取相 關的數(shù)據(jù)進行相關操作,完成本次與數(shù)據(jù)庫數(shù)據(jù)的 一致性過程。
綜上所述,本發(fā)明既能節(jié)省內存空間、提高效率,又能全面的 考慮各種情況下的數(shù)據(jù)觸發(fā)過程及控制消息的發(fā)送順序,還將同步 過程中的數(shù)據(jù)加載與數(shù)據(jù)觸發(fā)完全獨立,使數(shù)據(jù)觸發(fā)的架構清晰, 便于擴展。
顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或 各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算 裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們 可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成 電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模 塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。應
易見的,不脫離本發(fā)明的精神保護范圍。
以上所述 <叉為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā) 明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。 凡在本發(fā)明的精神和原則之內,所作的任何4務改、等同替換、改進 等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種內存數(shù)據(jù)庫內容變化實時通知業(yè)務的處理裝置,其特征在于,包括備份表創(chuàng)建模塊,用于在內存數(shù)據(jù)庫中建立備份表,將內存數(shù)據(jù)庫的內存表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心的內容加載到所述備份表中;遍歷模塊,用于遍歷消息注冊區(qū),查詢注冊到所述消息注冊區(qū)的消息相關的表本次同步有沒有變化;以及觸發(fā)模塊,用于如沒有變化則繼續(xù)遍歷,否則根據(jù)消息類型執(zhí)行來相應地利用所述備份表觸發(fā)實時通知所述業(yè)務,并相應地更新所述備份表。
2. 根據(jù)權利要求1所述的處理裝置,其特征在于,所述備份表是 在系統(tǒng)上電時建立的。
3. 根據(jù)權利要求1所述的處理裝置,其特征在于,所述備份表創(chuàng) 建模塊還包括第一子加載模塊,用于使單表記錄級變化通知類型直接 從內存表中取得相應的信息加載到所述備份表中;以及第二子加載模塊,用于使多表關聯(lián)變化通知類型根據(jù)關 鍵字從多表中獲取所述業(yè)務關心的數(shù)據(jù)組織為一條記錄加栽 到所述備份表中。
4. 根據(jù)權利要求1所述的處理裝置,其特征在于,還包括保存禁止模塊,用于將內存數(shù)據(jù)庫的內存表數(shù)據(jù)庫的關 聯(lián)關系表中或單表記錄中所述業(yè)務關心的內容保存于所述備 份表中后,禁止再次同步及軟倒換;以及更新恢復模塊,用于根據(jù)消息類型執(zhí)行來相應地利用所 述備份表觸發(fā)實時通知所述業(yè)務,并相應地更新所述備份表之 后,恢復同步及軟倒換。
5. 根據(jù)權利要求4所述的處理裝置,其特征在于,所述保存禁止 模塊通過對所述備份表設置禁止再次同步及軟倒換標志來禁 止再次同步及軟倒換;以及所述更新恢復模塊通過對所述備份 表設置恢復同步及軟倒換標志來恢復同步及軟倒換。
6. 根據(jù)權利要求1所述的處理裝置,其特征在于,在所述消息注 冊區(qū)中的具體消息與相關的表關系是按照消息觸發(fā)順序登記 的。
7. 根據(jù)權利要求1所述的處理裝置,其特征在于,所述觸發(fā)模塊 還用于如果消息類型是單表記錄級變化通知類型,則從內存表 中獲取相關信息與備份表中相應記錄比較來觸發(fā)實時通知所 述業(yè)務,并完成備份表的更新過程。
8. 根據(jù)權利要求1所述的處理裝置,其特征在于,所述觸發(fā)模塊 還用于如果消息類型是單表級變化通知類型,直接根據(jù)注冊區(qū) 中的消息名來觸發(fā)實時通知所述業(yè)務。
9. 根據(jù)權利要求1所述的處理裝置,其特征在于,所述觸發(fā)模塊 還用于如果消息類型是多表關聯(lián)變化通知類型,則從多個關聯(lián) 表取出信息與備份表中相應記錄比4交來觸發(fā)實時通知所述業(yè)務,并完成備份表的更新過程。
10. 根據(jù)權利要求1所述的處理裝置,其特征在于,還包括數(shù)據(jù)更新模塊,用于在所述業(yè)務收到所述內存數(shù)據(jù)庫發(fā) 送的觸發(fā)消息的情況下,直接更新數(shù)據(jù)或通過接口獲取相關的 數(shù)據(jù)來完成所述業(yè)務與所述內存數(shù)據(jù)庫中數(shù)據(jù)一致的操作。
全文摘要
本發(fā)明提供了一種內存數(shù)據(jù)庫內容變化實時通知業(yè)務的處理裝置,包括備份表創(chuàng)建模塊,用于在內存數(shù)據(jù)庫中建立備份表,將內存數(shù)據(jù)庫的內存表數(shù)據(jù)庫的關聯(lián)關系表中或單表記錄中業(yè)務關心的內容加載到備份表中;遍歷模塊,用于遍歷消息注冊區(qū),查詢注冊到消息注冊區(qū)的消息相關的表本次同步有沒有變化;觸發(fā)模塊,用于如沒有變化則繼續(xù)遍歷,否則根據(jù)消息類型執(zhí)行來相應地利用備份表觸發(fā)實時通知業(yè)務,并相應地更新備份表。因此,既能節(jié)省內存空間,又能全面的考慮各種情況下的數(shù)據(jù)觸發(fā)過程及控制消息的發(fā)送順序。
文檔編號H04Q3/545GK101202934SQ20061016171
公開日2008年6月18日 申請日期2006年12月13日 優(yōu)先權日2006年12月13日
發(fā)明者王春華, 胡德平, 董小虎 申請人:中興通訊股份有限公司