亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng)的制作方法

文檔序號:6429746閱讀:338來源:國知局
專利名稱:一種實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其是涉及一種應(yīng)用于計算機信息技術(shù)領(lǐng)域的基于緩存技術(shù)的實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng)。
背景技術(shù)
緩存技術(shù)應(yīng)用廣泛,該技術(shù)有以下優(yōu)點(1)減少網(wǎng)絡(luò)帶寬,從而減輕網(wǎng)絡(luò)擁塞;(2)減少客戶端訪問延遲;(3)由于有些數(shù)據(jù)可以直接從緩存返回給客戶端,從而可以減輕服務(wù)器的負載;(4)如果遠程服務(wù)器故障或網(wǎng)絡(luò)故障造成遠程服務(wù)器無法響應(yīng)客戶端的要求,客戶端可以從緩存中取得數(shù)據(jù),從而增加了遠程服務(wù)器的健壯性。在信息化工程中,大量研究主要關(guān)注在客戶端與服務(wù)器緩存之間數(shù)據(jù)一致性上, 而在服務(wù)器緩存與數(shù)據(jù)庫之間的數(shù)據(jù)一致性的研究較少。當前服務(wù)器緩存數(shù)據(jù)與關(guān)系數(shù)據(jù)庫保持一致性的技術(shù)主要有以下幾種方式(1)直接從數(shù)據(jù)庫中獲取數(shù)據(jù),沒有設(shè)置緩存,如圖1所示。應(yīng)用對象獲取數(shù)據(jù)時, 通過訪問對象聯(lián)接數(shù)據(jù)庫,數(shù)據(jù)庫執(zhí)行相應(yīng)操作返回數(shù)據(jù)。采用這種方式,每次數(shù)據(jù)獲取都要建立一個新的連接,數(shù)據(jù)獲取都是從數(shù)據(jù)庫中獲取,不會有緩存數(shù)據(jù)與關(guān)系數(shù)據(jù)庫的數(shù)據(jù)一致性問題。對于訪問量大的服務(wù)器,連接池的資源有限,新的連接需要進行排隊等候, 從而造成了訪問速度慢、效率低。(2)采用TTLCTime-to-Live)緩存技術(shù),在這種方法中,每個對象賦予一個對象生存期t,用來記錄緩存副本的有效時間,當客戶機對服務(wù)器進行請求時,如果請求時間小于 TTL,則認為緩存副本是有效的,緩存將不向服務(wù)器進行請求。當請求時間大于TTL時,我們稱TTL失效,此時緩存收到的第一個對某個對象的請求時,會向服務(wù)器發(fā)送GET請求,更新緩存信息。TTL機制實現(xiàn)比較容易,但是在TTL未失效的時間內(nèi)網(wǎng)站的源對象版本發(fā)生更改時,無法保持緩存對象與服務(wù)器的原始版本數(shù)據(jù)一致性。也就是說客戶端可能訪問到過時的數(shù)據(jù)。(3)與當前發(fā)明最相近似的現(xiàn)有技術(shù)方案國際商業(yè)機器公司于2005年10月沈日申請,2006年06月28日公開,公開號為CN1794207A的中國發(fā)明專利申請《實現(xiàn)緩存一致性的方法和系統(tǒng)》。該發(fā)明的主要內(nèi)容為一種用于當允許應(yīng)用繼續(xù)將改變寫入數(shù)據(jù)文件時支持由服務(wù)器對數(shù)據(jù)文件的改變進行并行記錄的系統(tǒng)和方法。響應(yīng)于數(shù)據(jù)文件的改變,創(chuàng)建該文件的近即時版本。將反映數(shù)據(jù)文件的改變的元數(shù)據(jù)與緩存中的文件中的版本同步, 并將其記錄到持久性存儲器中。在記錄文件的元數(shù)據(jù)改變的過程中,可繼續(xù)進行隨后的對數(shù)據(jù)文件的改變,且可將反映所述改變的元數(shù)據(jù)記錄到該文件的即時版本中,也可將該版本與持久性存儲器中的元數(shù)據(jù)的版本同步。但是該發(fā)明主要是研究客戶端與服務(wù)器緩存之間的數(shù)據(jù)一致性問題。

發(fā)明內(nèi)容
本發(fā)明提供一種實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng),該方法及其系統(tǒng)解決了服務(wù)器緩存與關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)一致性問題,保證服務(wù)器緩存數(shù)據(jù)的有效性,減少對關(guān)系數(shù)據(jù)庫的連接訪問,提高訪問速度及效率。本發(fā)明提供實現(xiàn)數(shù)據(jù)一致性的方法的技術(shù)實現(xiàn)方案,一種實現(xiàn)數(shù)據(jù)一致性的方法,包括以下步驟SlOl 數(shù)據(jù)訪問組件對象接受用戶消息,根據(jù)用戶消息生成動態(tài)SQL ;S102 如果動態(tài)SQL是數(shù)據(jù)獲取,則執(zhí)行步驟S103 ;否則,數(shù)據(jù)訪問組件對象根據(jù) XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫,獲取數(shù)據(jù),數(shù)據(jù)訪問組件對象再將數(shù)據(jù)傳給應(yīng)用層, 流程結(jié)束;S103:數(shù)據(jù)訪問組件對象根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合,若存在數(shù)據(jù),則說明緩存數(shù)據(jù)有效,返回數(shù)據(jù)給數(shù)據(jù)訪問組件對象,由數(shù)據(jù)訪問組件對象傳遞給應(yīng)用層,流程結(jié)束;若沒有數(shù)據(jù),根據(jù)數(shù)據(jù)訪問組件對象名、 數(shù)據(jù)獲取對象名,創(chuàng)建一個全局緩存組件對象,并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名傳給該緩存組件對象;S104 緩存組件對象解析XML緩存配置文件、XML數(shù)據(jù)庫配置文件,查看該數(shù)據(jù)訪問組件對象是否設(shè)置緩存,若設(shè)置緩存,則說明全局緩存組件對象監(jiān)測本地依賴文件,當依賴文件發(fā)生變化時,系統(tǒng)刪除數(shù)據(jù)訪問組件對象的緩存以及全局緩存對象;若沒有設(shè)置緩存,則執(zhí)行步驟S106;S105 緩存組件對象根據(jù)數(shù)據(jù)訪問組件對象名解析XML緩存初始化文件,若有數(shù)據(jù),則獲取一條記錄并生成一個觸發(fā)器SQL,連接關(guān)系數(shù)據(jù)庫并執(zhí)行,同時刪除這條XML文件記錄,依次循環(huán),直至文件中找不到數(shù)據(jù)為止;S106:緩存組件對象連接關(guān)系數(shù)據(jù)庫,執(zhí)行數(shù)據(jù)訪問組件對象所傳入的獲取數(shù)據(jù)動態(tài)SQL,獲取數(shù)據(jù),若該數(shù)據(jù)訪問組件對象設(shè)置緩存,則更新緩存數(shù)據(jù);S107 緩存組件對象將數(shù)據(jù)傳給數(shù)據(jù)訪問組件對象,由數(shù)據(jù)訪問組件對象傳遞給應(yīng)用層,流程結(jié)束。作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的方法技術(shù)方案的進一步改進,實現(xiàn)數(shù)據(jù)一致性的方法包括緩存組件獲取數(shù)據(jù)過程,該過程包括以下步驟S201 緩存組件對象的中心控制器接收數(shù)據(jù)訪問組件對象的重要屬性,該重要屬性包括獲取數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名,將重要屬性寫入公共屬性集合中;S202 中心控制器解析包括有關(guān)系數(shù)據(jù)庫類型、數(shù)據(jù)庫名的XML數(shù)據(jù)庫配置文件, 并將解析內(nèi)容寫入公共屬性集合;S203 中心控制器通過數(shù)據(jù)訪問組件對象名查找XML緩存配置文件,若找到數(shù)據(jù), 則解析包括數(shù)據(jù)訪問組件對象名、本地依賴文件全局路徑在內(nèi)的相關(guān)屬性,寫入緩存數(shù)據(jù)集合;若沒有找到數(shù)據(jù),則說明該數(shù)據(jù)訪問組件對象沒有設(shè)置緩存,執(zhí)行步驟S208 ;S204 中心控制器通過數(shù)據(jù)訪問組件對象名查找XML緩存初始化文件,若有數(shù)據(jù), 找到一條記錄,并解析包括數(shù)據(jù)庫表名、數(shù)據(jù)庫服務(wù)器的本地依賴文件在內(nèi)的相關(guān)屬性,寫入公共屬性集合中,完成后,中心控制器向觸發(fā)器生成器發(fā)送創(chuàng)建觸發(fā)器消息;
S205 觸發(fā)器生成器調(diào)用動態(tài)SQL拼裝生成器和公共屬性集合動態(tài)產(chǎn)生一個創(chuàng)建觸發(fā)器SQL,并將該SQL發(fā)送給連接器;S206 連接器收到創(chuàng)建觸發(fā)器的SQL,連接關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫執(zhí)行創(chuàng)建觸發(fā)器SQL,將結(jié)果返回給連接器,連接器將消息傳給中心控制器;否則若連接器超時,則中心控制器發(fā)送一個錯誤信息,流程結(jié)束;S207 中心控制器收到創(chuàng)建觸發(fā)器成功消息,在XML緩存初始化文件中刪除該記錄,重復(fù)執(zhí)行步驟S204至步驟S206,直至XML緩存初始化文件中找不到數(shù)據(jù)訪問組件對象名的相關(guān)節(jié)點;S208 中心控制器將公共屬性集合中的獲取數(shù)據(jù)動態(tài)SQL發(fā)送給連接器;S209 連接器收到獲取數(shù)據(jù)動態(tài)SQL,連接關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫執(zhí)行該SQL,將數(shù)據(jù)返回給連接器,連接器將數(shù)據(jù)傳給中心控制器;否則若連接器超時,則中心控制器發(fā)送一個錯誤信息,流程結(jié)束;S210:中心控制器將數(shù)據(jù)傳給數(shù)據(jù)訪問組件對象,若該數(shù)據(jù)訪問組件對象設(shè)置了緩存,則將該數(shù)據(jù)以數(shù)據(jù)訪問組件對象名和數(shù)據(jù)獲取對象名組合一起作為關(guān)鍵字查詢插入緩存數(shù)據(jù)集合;S211 中心控制器向依賴文件監(jiān)測器發(fā)送監(jiān)測消息,執(zhí)行緩存組件監(jiān)測過程。作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的方法技術(shù)方案的進一步改進,緩存組件監(jiān)測過程包括以下步驟S301 依賴文件監(jiān)測器收到中心控制器所發(fā)送的監(jiān)測消息后,從公共屬性集合中獲取到本地依賴文件路徑;S302 依賴文件監(jiān)測器開始監(jiān)測本地依賴文件;S303 依賴文件監(jiān)測器發(fā)現(xiàn)本地依賴文件發(fā)生變化時,向中心控制器發(fā)送緩存無效消息;S304:中心控制器收到緩存無效消息后,通過公共屬性集合中的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢緩存數(shù)據(jù)集合,找到該數(shù)據(jù)后進行刪除;S305 中心控制器向依賴文件監(jiān)測器發(fā)送停止監(jiān)測消息,依賴文件監(jiān)測器收到消息后停止監(jiān)測工作;S306 系統(tǒng)刪除該緩存組件對象。作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的方法技術(shù)方案的進一步改進,實現(xiàn)數(shù)據(jù)一致性的方法包括依賴文件同步過程,該過程包括以下步驟S401 數(shù)據(jù)庫服務(wù)器中的文件發(fā)送組件監(jiān)測關(guān)系數(shù)據(jù)庫,應(yīng)用服務(wù)器的文件接收組件監(jiān)聽通訊端口;S402:當數(shù)據(jù)庫表執(zhí)行插入、更新及刪除操作時,表觸發(fā)器執(zhí)行更新本地依賴文件,并向監(jiān)測表插入一條包括應(yīng)用服務(wù)器的IP地址,應(yīng)用服務(wù)器的本地依賴文件的全局路徑和數(shù)據(jù)庫服務(wù)器的本地依賴文件全局路徑的新記錄;S403 文件發(fā)送組件發(fā)現(xiàn)監(jiān)測表中有新記錄后,獲取該記錄;S404:文件發(fā)送組件與文件接收組件進行通訊,應(yīng)用服務(wù)器的本地依賴文件實現(xiàn)更新,與數(shù)據(jù)庫服務(wù)器的本地依賴文件保持一致;S405 文件發(fā)送組件重復(fù)執(zhí)行步驟S403和步驟S404,直到監(jiān)測表中沒有新記錄;
S406:數(shù)據(jù)庫服務(wù)器中的文件發(fā)送組件監(jiān)測關(guān)系數(shù)據(jù)庫,應(yīng)用服務(wù)器的文件接收組件監(jiān)聽通訊端口。本發(fā)明還提供一種采用上述實現(xiàn)數(shù)據(jù)一致性的方法實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)的技術(shù)實現(xiàn)方案,包括應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器,應(yīng)用服務(wù)器進一步包括數(shù)據(jù)訪問組件、緩存組件、文件接收組件和緩存數(shù)據(jù)集合,數(shù)據(jù)庫服務(wù)器進一步包括文件發(fā)送組件和關(guān)系數(shù)據(jù)庫;數(shù)據(jù)訪問組件與緩存組件、關(guān)系數(shù)據(jù)庫相連,數(shù)據(jù)訪問組件接受用戶消息,根據(jù)用戶消息生成動態(tài)SQL;數(shù)據(jù)訪問組件根據(jù)XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫并獲取數(shù)據(jù), 數(shù)據(jù)訪問組件再將數(shù)據(jù)傳給應(yīng)用層;數(shù)據(jù)訪問組件與緩存數(shù)據(jù)集合相連,根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合,若存在數(shù)據(jù)則返回數(shù)據(jù)給數(shù)據(jù)訪問組件,由數(shù)據(jù)訪問組件傳遞給應(yīng)用層;若沒有數(shù)據(jù),則根據(jù)數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名,創(chuàng)建一個全局的緩存組件,并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名傳送給緩存組件;緩存組件解析XML緩存配置文件、XML數(shù)據(jù)庫配置文件,查看數(shù)據(jù)訪問組件是否設(shè)置緩存,若設(shè)置緩存,則數(shù)據(jù)訪問組件的緩存被刪除,同時該全局緩存對象被刪除,更新緩存數(shù)據(jù);若沒有設(shè)置緩存,則緩存組件連接關(guān)系數(shù)據(jù)庫,執(zhí)行數(shù)據(jù)訪問組件所傳入的獲取數(shù)據(jù)動態(tài)SQL,并獲取數(shù)據(jù);緩存組件根據(jù)數(shù)據(jù)訪問組件對象名解析XML緩存初始化文件,若有數(shù)據(jù),則獲取一條記錄由內(nèi)部機制生成一個觸發(fā)器SQL,連接關(guān)系數(shù)據(jù)庫并執(zhí)行,同時刪除該條XML文件記錄,依次循環(huán),直至文件中找不到數(shù)據(jù)為止,緩存組件將數(shù)據(jù)傳給數(shù)據(jù)訪問組件,由數(shù)據(jù)訪問組件傳遞給應(yīng)用層;文件發(fā)送組件與關(guān)系數(shù)據(jù)庫相連,文件接收組件與文件發(fā)送組件相連。作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)技術(shù)方案的進一步改進,緩存組件包括中心控制器、觸發(fā)器生成器、依賴文件監(jiān)測器、動態(tài)SQL拼裝生成器、公共屬性集合、連接器;中心控制器與數(shù)據(jù)訪問組件相連,接收外部消息,返回數(shù)據(jù)或提示信息;解析XML 緩存初始化文件、XML緩存配置文件并寫入公共屬性集合;向觸發(fā)器生成器、依賴文件監(jiān)測器發(fā)送動作消息;接收觸發(fā)器生成器、依賴文件監(jiān)測器的消息;接收關(guān)系數(shù)據(jù)庫的返回結(jié)果;觸發(fā)器生成器根據(jù)不同的關(guān)系數(shù)據(jù)庫通過動態(tài)SQL拼裝生成器創(chuàng)建一個觸發(fā)器的動態(tài)SQL,在關(guān)系數(shù)據(jù)庫執(zhí)行后,當觸發(fā)器監(jiān)測到表中數(shù)據(jù)發(fā)生變化,更新數(shù)據(jù)庫服務(wù)器中所設(shè)定的本地依賴文件;并向數(shù)據(jù)庫中的監(jiān)測表中插入一條記錄;依賴文件監(jiān)測器監(jiān)測本地依賴文件,當本地依賴發(fā)生變化時,向中心控制器發(fā)送緩存無效消息;動態(tài)SQL拼裝生成器根據(jù)公共屬性集合進行SQL的拼裝,實現(xiàn)動態(tài)SQL ;公共屬性集合存儲XML緩存初始化文件或XML緩存配置文件的解析信息;連接器分別與中心控制器、觸發(fā)生成器、關(guān)系數(shù)據(jù)庫相連接。作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)技術(shù)方案的進一步改進,XML數(shù)據(jù)庫配置文件屬性包括數(shù)據(jù)庫類型、服務(wù)器名、數(shù)據(jù)庫名、登錄數(shù)據(jù)庫用戶名、登錄數(shù)據(jù)庫密碼。
作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)技術(shù)方案的進一步改進,XML緩存配置文件屬性包括數(shù)據(jù)對象名和本地依賴文件的全局路徑。作為本發(fā)明實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)技術(shù)方案的進一步改進,XML緩存初始化文件屬性包括數(shù)據(jù)對象名、建立觸發(fā)器所依賴的數(shù)據(jù)表、數(shù)據(jù)庫服務(wù)器中的本地依賴文件的全局路徑。通過應(yīng)用上述本發(fā)明技術(shù)方案所描述的一種實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng),應(yīng)用服務(wù)器采用緩存技術(shù),減少對數(shù)據(jù)庫服務(wù)器的訪問壓力,加快訪問速度,提高訪問效率; 根據(jù)數(shù)據(jù)訪問頻率,可自定義數(shù)據(jù)庫中數(shù)據(jù)塊在服務(wù)器是否設(shè)置緩存;實現(xiàn)應(yīng)用服務(wù)器緩存數(shù)據(jù)與數(shù)據(jù)庫的數(shù)據(jù)一致性。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)一種具體實施方式
所描述的無緩存下應(yīng)用對象獲取數(shù)據(jù)過程示意圖;圖2為本發(fā)明一種具體實施方式
所描述的一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)的工作原理圖;圖3為本發(fā)明一種具體實施方式
所描述的一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)中緩存組件的功能結(jié)構(gòu)框圖;圖4為本發(fā)明一種具體實施方式
所描述的一種實現(xiàn)數(shù)據(jù)一致性的方法中依賴文件同步過程的程序流程圖;其中,1-應(yīng)用服務(wù)器,2-數(shù)據(jù)庫服務(wù)器,3-數(shù)據(jù)訪問組件,4-緩存組件,5-文件接收組件,6-緩存數(shù)據(jù)集合,7-文件發(fā)送組件,8-關(guān)系數(shù)據(jù)庫,9-中心控制器,10-觸發(fā)器生成器,11-依賴文件監(jiān)測器,12-動態(tài)SQL拼裝生成器,13-公共屬性集合,14-連接器,15-觸發(fā)器生成接口,18-關(guān)系數(shù)據(jù)庫觸發(fā)器生成器組件。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如附圖2、3、4所示,給出了本發(fā)明一種實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng)應(yīng)用于計算機信息技術(shù)領(lǐng)域數(shù)據(jù)處理的具體實施例,下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明。本發(fā)明將緩存數(shù)據(jù)與數(shù)據(jù)庫的數(shù)據(jù)一致性設(shè)計為一種文件依賴關(guān)系,其系統(tǒng)結(jié)構(gòu)組成和工作原理如圖2所示。—種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)的具體實施方式
,該系統(tǒng)包括應(yīng)用服務(wù)器1和數(shù)據(jù)庫服務(wù)器2,應(yīng)用服務(wù)器1進一步包括數(shù)據(jù)訪問組件3、緩存組件4、文件接收組件5和緩存數(shù)據(jù)集合6,數(shù)據(jù)庫服務(wù)器2進一步包括文件發(fā)送組件7和關(guān)系數(shù)據(jù)庫8 ;數(shù)據(jù)訪問組件3與緩存組件4、關(guān)系數(shù)據(jù)庫8相連,數(shù)據(jù)訪問組件3接受用戶消息, 根據(jù)用戶消息生成動態(tài)SQL ;數(shù)據(jù)訪問組件3根據(jù)XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫8并獲取數(shù)據(jù),數(shù)據(jù)訪問組件3再將數(shù)據(jù)傳給應(yīng)用層;數(shù)據(jù)訪問組件3與緩存數(shù)據(jù)集合6相連,根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合6,若存在數(shù)據(jù)則返回數(shù)據(jù)給數(shù)據(jù)訪問組件3,由數(shù)據(jù)訪問組件3傳遞給應(yīng)用層;若沒有數(shù)據(jù),則根據(jù)數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名, 創(chuàng)建一個全局的緩存組件4,并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名傳送給緩存組件4;緩存組件4解析XML緩存配置文件、XML數(shù)據(jù)庫配置文件,查看數(shù)據(jù)訪問組件3是否設(shè)置緩存,若設(shè)置緩存,則數(shù)據(jù)訪問組件3的緩存被刪除,同時該全局緩存對象被刪除, 更新緩存數(shù)據(jù);若沒有設(shè)置緩存,則緩存組件4連接關(guān)系數(shù)據(jù)庫8,執(zhí)行數(shù)據(jù)訪問組件3所傳入的獲取數(shù)據(jù)動態(tài)SQL,并獲取數(shù)據(jù);緩存組件4根據(jù)數(shù)據(jù)訪問組件對象名解析XML緩存初始化文件,若有數(shù)據(jù),則獲取一條記錄由內(nèi)部機制生成一個觸發(fā)器SQL,連接關(guān)系數(shù)據(jù)庫8并執(zhí)行,同時刪除該條XML文件記錄,依次循環(huán),直至文件中找不到數(shù)據(jù)為止,緩存組件4將數(shù)據(jù)傳給數(shù)據(jù)訪問組件3,由數(shù)據(jù)訪問組件3傳遞給應(yīng)用層;文件發(fā)送組件7與關(guān)系數(shù)據(jù)庫8相連,文件接收組件5與文件發(fā)送組件7相連。—種實現(xiàn)數(shù)據(jù)一致性的方法的具體實施方式
,其工作過程包括以下步驟SlOl 數(shù)據(jù)訪問組件3對象接受用戶消息,根據(jù)用戶消息生成動態(tài)SQL ;S102 如果動態(tài)SQL是數(shù)據(jù)獲取,則執(zhí)行步驟S103 ;否則,數(shù)據(jù)訪問組件3對象根據(jù)XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫8,獲取數(shù)據(jù),數(shù)據(jù)訪問組件3對象再將數(shù)據(jù)傳給應(yīng)用層,流程結(jié)束;S103 數(shù)據(jù)訪問組件3對象根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合6,若存在數(shù)據(jù),則說明緩存數(shù)據(jù)有效,返回數(shù)據(jù)給數(shù)據(jù)訪問組件3對象,由數(shù)據(jù)訪問組件3對象傳遞給應(yīng)用層,流程結(jié)束。若沒有數(shù)據(jù),根據(jù)數(shù)據(jù)訪問組件3對象名、數(shù)據(jù)獲取對象名,創(chuàng)建一個全局緩存組件對象,并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名傳給該緩存組件4對象;S104 緩存組件4對象解析XML緩存配置文件、XML數(shù)據(jù)庫配置文件,查看該數(shù)據(jù)訪問組件3對象是否設(shè)置緩存,若設(shè)置緩存,則說明全局緩存組件對象監(jiān)測本地依賴文件 (應(yīng)用服務(wù)器的本地依賴文件與數(shù)據(jù)庫服務(wù)器的本地依賴文件通過文件接收組件、文件發(fā)送組件進行同步)。當依賴文件發(fā)生變化時,系統(tǒng)刪除數(shù)據(jù)訪問組件3對象的緩存以及全局緩存對象;若沒有設(shè)置緩存,則執(zhí)行步驟S106 ;S105 緩存組件4對象根據(jù)數(shù)據(jù)訪問組件3對象名解析XML緩存初始化文件,若有數(shù)據(jù),則獲取一條記錄由內(nèi)部機制生成一個觸發(fā)器SQL,連接關(guān)系數(shù)據(jù)庫8,并執(zhí)行,同時刪除這條XML文件記錄,依次循環(huán),直至文件中找不到數(shù)據(jù)為止;S106 緩存組件4對象連接關(guān)系數(shù)據(jù)庫8,執(zhí)行數(shù)據(jù)訪問組件3對象所傳入的獲取數(shù)據(jù)動態(tài)SQL,獲取數(shù)據(jù),若該數(shù)據(jù)訪問組件3對象設(shè)置緩存,則更新緩存數(shù)據(jù);
S107 緩存組件4對象將數(shù)據(jù)傳給數(shù)據(jù)訪問組件3對象,由數(shù)據(jù)訪問組件3對象傳遞給應(yīng)用層,流程結(jié)束。一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng)進一步包括緩存組件4,緩存組件4由中心控制器9、 觸發(fā)器生成器10、依賴文件監(jiān)測器11、動態(tài)SQL拼裝生成器12、公共屬性集合13組成。其中,觸發(fā)器生成器10進一步包括觸發(fā)器生成接口 15和若干個關(guān)系數(shù)據(jù)庫觸發(fā)器生成器組件16。緩存組件4各個組成部分的功能結(jié)構(gòu)說明如下表1所示。
權(quán)利要求
1.一種實現(xiàn)數(shù)據(jù)一致性的方法,其特征在于,包括以下步驟5101數(shù)據(jù)訪問組件(3)對象接受用戶消息,根據(jù)用戶消息生成動態(tài)SQL;5102如果動態(tài)SQL是數(shù)據(jù)獲取,則執(zhí)行步驟S103 ;否則,數(shù)據(jù)訪問組件(3)對象根據(jù) XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫(8),獲取數(shù)據(jù),數(shù)據(jù)訪問組件C3)對象再將數(shù)據(jù)傳給應(yīng)用層,流程結(jié)束;5103數(shù)據(jù)訪問組件C3)對象根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合(6),若存在數(shù)據(jù),則說明緩存數(shù)據(jù)有效,返回數(shù)據(jù)給數(shù)據(jù)訪問組件(3)對象,由數(shù)據(jù)訪問組件C3)對象傳遞給應(yīng)用層,流程結(jié)束;若沒有數(shù)據(jù),根據(jù)數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名,創(chuàng)建一個全局緩存組件對象,并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件C3)對象名、數(shù)據(jù)獲取對象名傳給該緩存組件(4)對象;5104緩存組件(4)對象解析XML緩存配置文件、XML數(shù)據(jù)庫配置文件,查看該數(shù)據(jù)訪問組件C3)對象是否設(shè)置緩存,若設(shè)置緩存,則說明全局緩存組件對象監(jiān)測本地依賴文件, 當依賴文件發(fā)生變化時,系統(tǒng)刪除數(shù)據(jù)訪問組件C3)對象的緩存以及全局緩存對象;若沒有設(shè)置緩存,則執(zhí)行步驟S106 ;5105緩存組件(4)對象根據(jù)數(shù)據(jù)訪問組件C3)對象名解析XML緩存初始化文件,若有數(shù)據(jù),則獲取一條記錄并生成一個觸發(fā)器SQL,連接關(guān)系數(shù)據(jù)庫(8)并執(zhí)行,同時刪除這條 XML文件記錄,依次循環(huán),直至文件中找不到數(shù)據(jù)為止;5106緩存組件(4)對象連接關(guān)系數(shù)據(jù)庫(8),執(zhí)行數(shù)據(jù)訪問組件C3)對象所傳入的獲取數(shù)據(jù)動態(tài)SQL,獲取數(shù)據(jù),若該數(shù)據(jù)訪問組件C3)對象設(shè)置緩存,則更新緩存數(shù)據(jù);5107緩存組件(4)對象將數(shù)據(jù)傳給數(shù)據(jù)訪問組件C3)對象,由數(shù)據(jù)訪問組件C3)對象傳遞給應(yīng)用層,流程結(jié)束。
2.根據(jù)權(quán)利要求1所述的一種實現(xiàn)數(shù)據(jù)一致性的方法,其特征在于所述實現(xiàn)數(shù)據(jù)一致性的方法包括緩存組件獲取數(shù)據(jù)過程,該過程包括以下步驟.5201緩存組件(4)對象的中心控制器(9)接收數(shù)據(jù)訪問組件C3)對象的重要屬性,該重要屬性包括獲取數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名,將重要屬性寫入公共屬性集合(13)中;.5202中心控制器(9)解析包括有關(guān)系數(shù)據(jù)庫類型、數(shù)據(jù)庫名的XML數(shù)據(jù)庫配置文件, 并將解析內(nèi)容寫入公共屬性集合(13);.5203中心控制器(9)通過數(shù)據(jù)訪問組件對象名查找XML緩存配置文件,若找到數(shù)據(jù), 則解析包括數(shù)據(jù)訪問組件對象名、本地依賴文件全局路徑在內(nèi)的相關(guān)屬性,寫入緩存數(shù)據(jù)集合(6);若沒有找到數(shù)據(jù),則說明該數(shù)據(jù)訪問組件對象沒有設(shè)置緩存,執(zhí)行步驟S208 ;.S204:中心控制器(9)通過數(shù)據(jù)訪問組件對象名查找XML緩存初始化文件,若有數(shù)據(jù), 找到一條記錄,并解析包括數(shù)據(jù)庫表名、數(shù)據(jù)庫服務(wù)器的本地依賴文件在內(nèi)的相關(guān)屬性,寫入公共屬性集合(13)中,完成后,中心控制器(9)向觸發(fā)器生成器(10)發(fā)送創(chuàng)建觸發(fā)器消息;.5205觸發(fā)器生成器(10)調(diào)用動態(tài)SQL拼裝生成器(1 和公共屬性集合(1 動態(tài)產(chǎn)生一個創(chuàng)建觸發(fā)器SQL,并將該SQL發(fā)送給連接器(14);.5206連接器(14)收到創(chuàng)建觸發(fā)器的SQL,連接關(guān)系數(shù)據(jù)庫(8),關(guān)系數(shù)據(jù)庫(8)執(zhí)行創(chuàng)建觸發(fā)器SQL,將結(jié)果返回給連接器(14),連接器(14)將消息傳給中心控制器(9);否則若連接器(14)超時,則中心控制器(9)發(fā)送一個錯誤信息,流程結(jié)束;S207:中心控制器(9)收到創(chuàng)建觸發(fā)器成功消息,在XML緩存初始化文件中刪除該記錄,重復(fù)執(zhí)行步驟S204至步驟S207,直至XML緩存初始化文件中找不到數(shù)據(jù)訪問組件對象名的相關(guān)節(jié)點;S208:中心控制器(9)將公共屬性集合(1 中的獲取數(shù)據(jù)動態(tài)SQL發(fā)送給連接器 (14);5209連接器(14)收到獲取數(shù)據(jù)動態(tài)SQL,連接關(guān)系數(shù)據(jù)庫(8),關(guān)系數(shù)據(jù)庫(8)執(zhí)行該SQL,將數(shù)據(jù)返回給連接器(14),連接器(14)將數(shù)據(jù)傳給中心控制器(9);否則若連接器 (14)超時,則中心控制器(9)發(fā)送一個錯誤信息,流程結(jié)束;5210中心控制器(9)將數(shù)據(jù)傳給數(shù)據(jù)訪問組件C3)對象,若該數(shù)據(jù)訪問組件對象設(shè)置了緩存,則將該數(shù)據(jù)以數(shù)據(jù)訪問組件對象名和數(shù)據(jù)獲取對象名組合一起作為關(guān)鍵字查詢插入緩存數(shù)據(jù)集合(6);5211中心控制器(9)向依賴文件監(jiān)測器(11)發(fā)送監(jiān)測消息,執(zhí)行緩存組件監(jiān)測過程。
3.根據(jù)權(quán)利要求2所述的一種實現(xiàn)數(shù)據(jù)一致性的方法,其特征在于所述的緩存組件監(jiān)測過程包括以下步驟5301依賴文件監(jiān)測器(11)收到中心控制器(9)所發(fā)送的監(jiān)測消息后,從公共屬性集合(1 中獲取到本地依賴文件路徑;5302依賴文件監(jiān)測器(11)開始監(jiān)測本地依賴文件;5303依賴文件監(jiān)測器(11)發(fā)現(xiàn)本地依賴文件發(fā)生變化時,向中心控制器(9)發(fā)送緩存無效消息;S304:中心控制器(9)收到緩存無效消息后,通過公共屬性集合(13)中的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢緩存數(shù)據(jù)集合(6),找到該數(shù)據(jù)后進行刪除;S305:中心控制器(9)向依賴文件監(jiān)測器(11)發(fā)送停止監(jiān)測消息,依賴文件監(jiān)測器 (11)收到消息后停止監(jiān)測工作;S306 系統(tǒng)刪除該緩存組件(4)對象。
4.根據(jù)權(quán)利要求3所述的一種實現(xiàn)數(shù)據(jù)一致性的方法,其特征在于所述實現(xiàn)數(shù)據(jù)一致性的方法包括依賴文件同步過程,該過程包括以下步驟S401 數(shù)據(jù)庫服務(wù)器O)中的文件發(fā)送組件(7)監(jiān)測關(guān)系數(shù)據(jù)庫(8),應(yīng)用服務(wù)器(1) 的文件接收組件( 監(jiān)聽通訊端口 ;S402:當數(shù)據(jù)庫表執(zhí)行插入、更新及刪除操作時,表觸發(fā)器執(zhí)行更新本地依賴文件,并向監(jiān)測表插入一條包括應(yīng)用服務(wù)器(1)的IP地址,應(yīng)用服務(wù)器(1)的本地依賴文件的全局路徑和數(shù)據(jù)庫服務(wù)器O)的本地依賴文件全局路徑的新記錄;5403文件發(fā)送組件(7)發(fā)現(xiàn)監(jiān)測表中有新記錄后,獲取該記錄;5404文件發(fā)送組件(7)與文件接收組件( 進行通訊,應(yīng)用服務(wù)器(1)的本地依賴文件實現(xiàn)更新,與數(shù)據(jù)庫服務(wù)器O)的本地依賴文件保持一致;5405文件發(fā)送組件(7)重復(fù)執(zhí)行步驟S403和步驟S404,直到監(jiān)測表中沒有新記錄;5406數(shù)據(jù)庫服務(wù)器O)中的文件發(fā)送組件(7)監(jiān)測關(guān)系數(shù)據(jù)庫(8),應(yīng)用服務(wù)器(1) 的文件接收組件( 監(jiān)聽通訊端口。
5.一種采用權(quán)利要求1至4中任一權(quán)利要求所述實現(xiàn)數(shù)據(jù)一致性的方法的系統(tǒng),包括應(yīng)用服務(wù)器(1)和數(shù)據(jù)庫服務(wù)器O),其特征在于應(yīng)用服務(wù)器(1)包括數(shù)據(jù)訪問組件(3)、 緩存組件G)、文件接收組件( 和緩存數(shù)據(jù)集合(6),數(shù)據(jù)庫服務(wù)器( 包括文件發(fā)送組件⑵和關(guān)系數(shù)據(jù)庫⑶;數(shù)據(jù)訪問組件⑶與緩存組件G)、關(guān)系數(shù)據(jù)庫⑶相連,數(shù)據(jù)訪問組件⑶接受用戶消息,根據(jù)用戶消息生成動態(tài)SQL ;數(shù)據(jù)訪問組件C3)根據(jù)XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫(8)并獲取數(shù)據(jù),數(shù)據(jù)訪問組件C3)再將數(shù)據(jù)傳給應(yīng)用層;數(shù)據(jù)訪問組件C3)與緩存數(shù)據(jù)集合(6)相連,根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合(6),若存在數(shù)據(jù)則返回數(shù)據(jù)給數(shù)據(jù)訪問組件(3), 由數(shù)據(jù)訪問組件C3)傳遞給應(yīng)用層;若沒有數(shù)據(jù),則根據(jù)數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名,創(chuàng)建一個全局的緩存組件(4),并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名傳送給緩存組件;緩存組件(4)解析XML緩存配置文件、XML數(shù)據(jù)庫配置文件,查看數(shù)據(jù)訪問組件(3) 是否設(shè)置緩存,若設(shè)置緩存,則數(shù)據(jù)訪問組件(3)的緩存被刪除,同時該全局緩存對象被刪除,更新緩存數(shù)據(jù);若沒有設(shè)置緩存,則緩存組件(4)連接關(guān)系數(shù)據(jù)庫(8),執(zhí)行數(shù)據(jù)訪問組件C3)所傳入的獲取數(shù)據(jù)動態(tài)SQL,并獲取數(shù)據(jù);緩存組件(4)根據(jù)數(shù)據(jù)訪問組件對象名解析XML緩存初始化文件,若有數(shù)據(jù),則獲取一條記錄由內(nèi)部機制生成一個觸發(fā)器SQL,連接關(guān)系數(shù)據(jù)庫(8)并執(zhí)行,同時刪除該條XML 文件記錄,依次循環(huán),直至文件中找不到數(shù)據(jù)為止,緩存組件(4)將數(shù)據(jù)傳給數(shù)據(jù)訪問組件(3),由數(shù)據(jù)訪問組件C3)傳遞給應(yīng)用層;文件發(fā)送組件(7)與關(guān)系數(shù)據(jù)庫(8)相連,文件接收組件( 與文件發(fā)送組件(7)相連。
6.根據(jù)權(quán)利要求5所述的一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng),其特征在于所述的緩存組件(4)包括中心控制器(9)、觸發(fā)器生成器(10)、依賴文件監(jiān)測器(11)、動態(tài)SQL拼裝生成器 (12)、公共屬性集合(13)、連接器(14);中心控制器(9)與數(shù)據(jù)訪問組件C3)相連,接收外部消息,返回數(shù)據(jù)或提示信息;解析 XML緩存初始化文件、XML緩存配置文件并寫入公共屬性集合(1 ;向觸發(fā)器生成器(10)、 依賴文件監(jiān)測器(11)發(fā)送動作消息;接收觸發(fā)器生成器(10)、依賴文件監(jiān)測器(11)的消息;接收關(guān)系數(shù)據(jù)庫(8)的返回結(jié)果;觸發(fā)器生成器(10)根據(jù)不同的關(guān)系數(shù)據(jù)庫⑶通過動態(tài)SQL拼裝生成器(12)創(chuàng)建一個觸發(fā)器的動態(tài)SQL,在關(guān)系數(shù)據(jù)庫(8)執(zhí)行后,當觸發(fā)器監(jiān)測到表中數(shù)據(jù)發(fā)生變化,更新數(shù)據(jù)庫服務(wù)器O)中所設(shè)定的本地依賴文件;并向數(shù)據(jù)庫中的監(jiān)測表中插入一條記錄;依賴文件監(jiān)測器(11)監(jiān)測本地依賴文件,當本地依賴發(fā)生變化時,向中心控制器(9) 發(fā)送緩存無效消息;動態(tài)SQL拼裝生成器(1 根據(jù)公共屬性集合(1 進行SQL的拼裝,實現(xiàn)動態(tài)SQL ; 公共屬性集合(1 存儲XML緩存初始化文件或XML緩存配置文件的解析信息; 連接器(14)分別與中心控制器(9)、觸發(fā)生成器(10)、關(guān)系數(shù)據(jù)庫(8)相連接。
7.根據(jù)權(quán)利要求6所述的一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng),其特征在于所述的XML數(shù)據(jù)庫配置文件屬性包括數(shù)據(jù)庫類型、服務(wù)器名、數(shù)據(jù)庫名、登錄數(shù)據(jù)庫用戶名、登錄數(shù)據(jù)庫密碼。
8.根據(jù)權(quán)利要求6所述的一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng),其特征在于所述的XML緩存配置文件屬性包括數(shù)據(jù)對象名和本地依賴文件的全局路徑。
9.根據(jù)權(quán)利要求6所述的一種實現(xiàn)數(shù)據(jù)一致性的系統(tǒng),其特征在于所述的XML緩存初始化文件屬性包括數(shù)據(jù)對象名、建立觸發(fā)器所依賴的數(shù)據(jù)表、數(shù)據(jù)庫服務(wù)器中的本地依賴文件的全局路徑。
全文摘要
本發(fā)明公開了一種實現(xiàn)數(shù)據(jù)一致性的方法及其系統(tǒng),數(shù)據(jù)訪問組件接受用戶消息,根據(jù)用戶消息生成動態(tài)SQL,XML數(shù)據(jù)庫配置文件連接關(guān)系數(shù)據(jù)庫并獲取數(shù)據(jù),再將數(shù)據(jù)傳給應(yīng)用層;根據(jù)全局性質(zhì)的數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名查詢?nèi)值木彺鏀?shù)據(jù)集合,若存在數(shù)據(jù)則返回數(shù)據(jù)給數(shù)據(jù)訪問組件,由數(shù)據(jù)訪問組件傳遞給應(yīng)用層;若沒有數(shù)據(jù),則根據(jù)數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名,創(chuàng)建一個全局的緩存組件,并將獲取的數(shù)據(jù)動態(tài)SQL、數(shù)據(jù)訪問組件對象名、數(shù)據(jù)獲取對象名傳送給緩存組件。該方法及其系統(tǒng)解決了服務(wù)器緩存與關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)一致性問題,保證服務(wù)器緩存數(shù)據(jù)的有效性,減少對關(guān)系數(shù)據(jù)庫的連接訪問,提高訪問速度及效率。
文檔編號G06F17/30GK102411598SQ201110216858
公開日2012年4月11日 申請日期2011年7月29日 優(yōu)先權(quán)日2011年7月29日
發(fā)明者劉旭君, 吳衛(wèi)平, 周曉, 楊獻, 楊玻雅 申請人:株洲南車時代電氣股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1