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

數(shù)據(jù)同步的方法和系統(tǒng)的制作方法

文檔序號:6554175閱讀:191來源:國知局
專利名稱:數(shù)據(jù)同步的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及同步技術(shù),特別是涉及一種數(shù)據(jù)同步的方法和系統(tǒng)。
背景技術(shù)
現(xiàn)代軟件技術(shù)中,數(shù)據(jù)庫的應(yīng)用非常廣泛。一個軟件的具體功能通過應(yīng)用層實現(xiàn),達(dá)成用戶的需求。在用戶和軟件的交互過程中,數(shù)據(jù)庫扮演重要的角色保存用戶數(shù)據(jù)、應(yīng)用層數(shù)據(jù),以便完成數(shù)據(jù)的可回溯性、可重現(xiàn)性、持久性。而應(yīng)用層為了提高效率,會在內(nèi)存中保存常用的數(shù)據(jù)庫記錄。
因此,在這個交互過程中用戶、應(yīng)用層和數(shù)據(jù)庫,會存在一些問題比如,數(shù)據(jù)庫內(nèi)部表格之間數(shù)據(jù)記錄一致性、數(shù)據(jù)庫和應(yīng)用層數(shù)據(jù)一致性以及用戶界面數(shù)據(jù)更新等。
目前,現(xiàn)有技術(shù)中提供一種數(shù)據(jù)同步的原理示意圖,詳見圖1。如圖1所示,所述數(shù)據(jù)同步的實現(xiàn)過程為首先,用戶通過圖形用戶界面(GUI,Graphical User Interface)進(jìn)行數(shù)據(jù)增加/刪除/修改操作;即所述GUI把用戶請求發(fā)送給應(yīng)用層;所述應(yīng)用層(如圖1中的功能模塊A、B、C、D)接收到GUI下發(fā)請求,解析該請求消息;并根據(jù)解析消息的內(nèi)容,構(gòu)造新數(shù)據(jù)(增加操作情況)或者從數(shù)據(jù)層(圖1中數(shù)據(jù)庫DATABASE)讀取需要刪除/修改的數(shù)據(jù)(刪除/修改操作情況);并在內(nèi)存中完成數(shù)據(jù)的增加/刪除/修改操作。
所述應(yīng)用層完成數(shù)據(jù)加工后(增加/刪除/修改),向數(shù)據(jù)層發(fā)出更新請求,要求數(shù)據(jù)層更新數(shù)據(jù)記錄信息;所述數(shù)據(jù)層完成數(shù)據(jù)更新后,向應(yīng)用層返回更新結(jié)束信息;所述應(yīng)用層不同功能模塊間相互發(fā)送數(shù)據(jù)同步請求(如圖1中功能模塊A、B、C、D),完成應(yīng)用層內(nèi)數(shù)據(jù)一致。
然后,所述應(yīng)用層構(gòu)造用戶返回消息,所述消息內(nèi)容包含了增加/刪除/修改后的最新數(shù)據(jù);所述應(yīng)用層向GUI發(fā)送數(shù)據(jù)更新消息(數(shù)據(jù)更新由不同的功能模塊獨立發(fā)送)。
最后,當(dāng)GUI接收到應(yīng)用層返回消息時,更新顯示信息,提示用戶操作完成。
由上述公開的技術(shù)方案可知當(dāng)用戶需要對數(shù)據(jù)進(jìn)行刪除或修改時,應(yīng)用層需要從數(shù)據(jù)層讀取數(shù)據(jù),存在讀取數(shù)據(jù)這個冗余步驟,且效率不高,容易出錯。當(dāng)數(shù)據(jù)層發(fā)生變化,應(yīng)用層需要修改處理過程時,才能正確實現(xiàn)其功能,缺少可擴(kuò)展性。例如數(shù)據(jù)層接口發(fā)生變化,數(shù)據(jù)層記錄信息增加/刪除/修改等。在應(yīng)用層中模塊間(比如A、B、C和D)消息發(fā)送關(guān)系繁多,容易造成遺漏或重復(fù)發(fā)送情況,不同模塊接收到同步消息后,則會發(fā)送響應(yīng)消息給GUI,容易因為上報消息先后順序原因,造成GUI更新錯誤。當(dāng)存在網(wǎng)絡(luò)通信延時問題,導(dǎo)致刪除消息先于更新消息到達(dá)GUI,這時GUI先刪除再更新,而不是正確步驟的先更新再刪除。易造成用戶界面不能正確更新。
因此,現(xiàn)有技術(shù)的缺點為1)在應(yīng)用層完成數(shù)據(jù)更新,過程復(fù)雜,容易出錯;2)數(shù)據(jù)層發(fā)生變化,應(yīng)用層需要修改處理過程,才能正確處理,缺少可擴(kuò)展性;3)模塊間消息發(fā)送關(guān)系繁多,容易造成遺漏或重復(fù)發(fā)送情況;4)不同模塊發(fā)送消息給用戶界面,容易因為上報消息先后順序原因,造成用戶界面不能正確更新。

發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種數(shù)據(jù)同步的方法和系統(tǒng),以簡化目前技術(shù)中應(yīng)用層和數(shù)據(jù)層數(shù)據(jù)更新的交互次數(shù);當(dāng)數(shù)據(jù)層發(fā)生變化時,應(yīng)用層不需要修改處理過程,減少應(yīng)用層各個模塊間消息的發(fā)送;此外,本發(fā)明還統(tǒng)一完成用戶界面的數(shù)據(jù)更新,以提高系統(tǒng)的效率。
為解決上述問題,本發(fā)明提供一種數(shù)據(jù)同步的方法,所述方法包括A、用戶通過圖形用戶界面將用戶請求消息發(fā)送給應(yīng)用層;B、應(yīng)用層根據(jù)所述請求消息構(gòu)造新數(shù)據(jù),并向數(shù)據(jù)層發(fā)送給更新請求;C、數(shù)據(jù)層完成數(shù)據(jù)更新,并向應(yīng)用層反饋更新結(jié)束消息;
D、應(yīng)用層接收到更新結(jié)束消息后,更新內(nèi)存中的數(shù)據(jù)信息,構(gòu)造用戶返回消息,并向圖形用戶界面異步反饋更新消息;E、所述圖形用戶界面接收到更新消息后更新顯示信息。
步驟B中應(yīng)用層根據(jù)所述用戶請求構(gòu)造新數(shù)據(jù)的具體過程為應(yīng)用層解析所述請求消息,得到所述請求消息的增加操作;根據(jù)所述增加操作構(gòu)造新數(shù)據(jù)。
所述應(yīng)用層解析所述請求消息,得到所述請求消息的增加操作的具體實現(xiàn)過程為根據(jù)增加操作的動作類型和操作對象填寫預(yù)定義的數(shù)據(jù)結(jié)構(gòu),完成新數(shù)據(jù)構(gòu)造。
步驟C中所述數(shù)據(jù)層完成數(shù)據(jù)更新的過程為數(shù)據(jù)層通過監(jiān)控觸發(fā)器自動完成相關(guān)數(shù)據(jù)表格間數(shù)據(jù)記錄一致的更新,并通過結(jié)構(gòu)式詢問語言的插入指令,記錄在操作記錄跟蹤日志中,以供應(yīng)用層讀取。
步驟D中所述應(yīng)用層接收到更新消息后,更新內(nèi)存中的數(shù)據(jù)信息的具體過程為應(yīng)用層接收到更新消息后,通過讀取操作記錄跟蹤日志中的內(nèi)容,更新內(nèi)存數(shù)據(jù)信息。
應(yīng)用層通過主動刷新、定時刷新的方式更新內(nèi)存數(shù)據(jù)信息,其,所述定時刷新方式的實現(xiàn)過程為應(yīng)用層調(diào)用數(shù)據(jù)層接口,修改表格數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器、刪除觸發(fā)器、修改觸發(fā)器,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志中;應(yīng)用層定時讀取操作記錄跟蹤日志的記錄,更新內(nèi)存中的公共數(shù)據(jù);所述主動刷新方式的實現(xiàn)過程應(yīng)用層調(diào)用數(shù)據(jù)層接口,修改表格數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器、刪除觸發(fā)器、修改觸發(fā)器,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志中;若定時刷新時間還沒有到,應(yīng)用層調(diào)用數(shù)據(jù)層接口,訪問內(nèi)存數(shù)據(jù);
應(yīng)用層主動讀取操作記錄跟蹤日志的記錄,更新內(nèi)存中的公共數(shù)據(jù)。
步驟D中所述構(gòu)造用戶返回消息的過程為如果數(shù)據(jù)層反饋更新結(jié)束消息為成功,且應(yīng)用層更新內(nèi)存數(shù)據(jù)成功,則返回消息攜帶成功操作;如果數(shù)據(jù)層反饋更新結(jié)束消息和應(yīng)用層更新內(nèi)存數(shù)據(jù)有任意一項不成功的情況,則返回消息攜帶失敗操作。
另外,本發(fā)明還提供一種數(shù)據(jù)同步的系統(tǒng),所述系統(tǒng)包括圖形用戶界面,人機(jī)接口,用于發(fā)送用戶的請求信息;功能模塊,位于應(yīng)用層,用于接收用戶發(fā)送的請求信息,并根據(jù)該信息構(gòu)造新數(shù)據(jù)后,向數(shù)據(jù)層發(fā)送更新請求信息;觸發(fā)器,位于數(shù)據(jù)層,用于完成數(shù)據(jù)的更新,以及完成相關(guān)數(shù)據(jù)表格間記錄一致,將其記錄在數(shù)據(jù)庫的操作記錄跟蹤日志中;虛擬拓?fù)淠K,位于數(shù)據(jù)層,是由數(shù)據(jù)庫中一張或若干張表組成,用于配置數(shù)據(jù)變化的監(jiān)控記錄,公共模塊,位于應(yīng)用層,用于內(nèi)存數(shù)據(jù)信息的管理,并根據(jù)所述操作記錄跟蹤日志完成內(nèi)存數(shù)據(jù)的刷新以及支持相關(guān)數(shù)據(jù)表格間的同步;獨立模塊,位于應(yīng)用層,用于實現(xiàn)虛擬拓?fù)淠K配置數(shù)據(jù)變化的監(jiān)控記錄于上報同步。
所述觸發(fā)器包括創(chuàng)建觸發(fā)器、刪除觸發(fā)器和更新觸發(fā)器,分別用于實現(xiàn)外鍵檢查、可配置的外鍵檢查、級聯(lián)刪除以及擴(kuò)展存儲。
所述公共模塊的刷新方式包括主動刷新方式和定時刷新方式。
由以上本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明在現(xiàn)有技術(shù)的基礎(chǔ)上增加了觸發(fā)器、公共模塊、虛擬拓?fù)淠K和獨立模塊四個組件,所述公共模塊和獨立模塊位于應(yīng)用層,而所述觸發(fā)器和虛擬拓?fù)淠K位于數(shù)據(jù)層。觸發(fā)器用于完成相關(guān)數(shù)據(jù)表格間數(shù)據(jù)記錄一致的維護(hù)功能,并將其寫入操作記錄跟蹤日志中,公共模塊通過觸發(fā)器跟蹤數(shù)據(jù)庫表格記錄的創(chuàng)建、刪除和更新過程,而虛擬拓?fù)淠K依賴創(chuàng)建在各個主要表的觸發(fā)器來完成數(shù)據(jù)的更新,由獨立模塊負(fù)責(zé)維護(hù),并定時上報或主動觸發(fā)上報界面的刷新。由此可見,本發(fā)明所述方案有益效果為1)存取速度快,不但降低了數(shù)據(jù)庫操作的頻率,也降低了復(fù)雜數(shù)據(jù)構(gòu)造時對數(shù)據(jù)庫的大量關(guān)聯(lián)查詢操作,同時給需要大量數(shù)據(jù)庫操作的模塊提供了充足的數(shù)據(jù)庫操作資源和時間;2)應(yīng)用層處理過程不需要考慮數(shù)據(jù)更新后,數(shù)據(jù)一致性維護(hù)問題,只需要調(diào)用數(shù)據(jù)層接口;3)簡化應(yīng)用層和數(shù)據(jù)層交互次數(shù),減少人為因素、通訊錯誤引起的操作失敗;4)當(dāng)數(shù)據(jù)層發(fā)生變化,應(yīng)用層不需要修改處理過程,可擴(kuò)展性強(qiáng);5)GUI的更新消息統(tǒng)一由獨立模塊完成,減少消息交互,提高效率;6)由于使用觸發(fā)器方式的數(shù)據(jù)跟蹤,內(nèi)存數(shù)據(jù)的完整性和可靠性很高。


圖1是現(xiàn)有技術(shù)數(shù)據(jù)同步的實現(xiàn)原理示意圖;圖2是本發(fā)明所述數(shù)據(jù)同步方法的流程圖;圖3是本發(fā)明所述數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)示意圖;圖4是本發(fā)明公共模塊刷新的原理示意圖。
具體實施例方式
本發(fā)明的核心是當(dāng)用戶需要進(jìn)行數(shù)據(jù)的增加、刪除和更新操作時,主要是通過數(shù)據(jù)層的觸發(fā)器完成數(shù)據(jù)的更新,當(dāng)數(shù)據(jù)層發(fā)生變化時,應(yīng)用層不需要修改處理過程,通過公共模塊定時讀取操作記錄跟蹤日志的內(nèi)容,更新內(nèi)存數(shù)據(jù)信息,以減少功能模塊間消息的發(fā)送,保證數(shù)據(jù)層和應(yīng)用層數(shù)據(jù)的統(tǒng)一。另外,獨立模塊通過讀取虛擬拓?fù)淠K的內(nèi)容,統(tǒng)一完成用戶界面數(shù)據(jù)更新。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。
請參閱圖2,為本發(fā)明所述數(shù)據(jù)同步方法的流程圖。所述方法包括
步驟S10用戶通過圖形用戶界面將用戶請求消息發(fā)送給應(yīng)用層;步驟S11應(yīng)用層根據(jù)所述請求消息構(gòu)造新數(shù)據(jù),并向數(shù)據(jù)層發(fā)送給更新請求;步驟S12數(shù)據(jù)層完成數(shù)據(jù)更新,并向應(yīng)用層反饋更新結(jié)束消息;步驟S13應(yīng)用層接收到更新結(jié)束消息后,更新內(nèi)存中的數(shù)據(jù)信息,構(gòu)造用戶返回消息,并向圖形用戶界面異步反饋更新消息;步驟S14所述圖形用戶界面接收到更新消息后更新顯示信息。
當(dāng)用戶需要對數(shù)據(jù)進(jìn)行增加、刪除或修改操作時,通過圖形用戶界面(GUI,Graphical User Interface)進(jìn)行數(shù)據(jù)的增加、刪除或修改操作;所述GUI向應(yīng)用層發(fā)送用戶請求消息,所述請求消息的內(nèi)容包括對數(shù)據(jù)的增加、刪除或修改操作。其中所述GUI是一種計算機(jī)的人機(jī)接口,它允許用戶利用鼠標(biāo)器點擊圖形進(jìn)行訪問應(yīng)用程序。
所述應(yīng)用層中的功能模塊(比如圖3中的功能模塊A、B)接收到GUI下發(fā)的用戶請求消息,并解析該請求消息,然后根據(jù)該解析該請求消息的內(nèi)容構(gòu)造新數(shù)據(jù),所述構(gòu)造新數(shù)據(jù)的過程為根據(jù)解析請求消息內(nèi)容的動作類型和操作對象,填寫預(yù)定義的數(shù)據(jù)結(jié)構(gòu),完成新數(shù)據(jù)構(gòu)造。該過程只包括增加操作的情況。對于刪除/修改數(shù)據(jù)的,因步通過解析該請求消息,已經(jīng)包含足夠的數(shù)據(jù)層存儲過程調(diào)用信息,而不用再從數(shù)據(jù)層讀取需要刪除或修改的數(shù)據(jù)。之后,所述應(yīng)用層向數(shù)據(jù)層發(fā)出更新請求,要求數(shù)據(jù)層更新數(shù)據(jù)記錄信息;數(shù)據(jù)層完成數(shù)據(jù)更新后,向應(yīng)用層返回更新結(jié)束信息。在數(shù)據(jù)更新過程中,觸發(fā)器主要完成以下功能數(shù)據(jù)層通過觸發(fā)器自動完成相關(guān)數(shù)據(jù)表格間數(shù)據(jù)記錄一致的更新,其中,所述相關(guān)數(shù)據(jù)表格只要存在外鍵關(guān)系的表格都可以成為相關(guān)數(shù)據(jù)表格;并通過標(biāo)準(zhǔn)結(jié)構(gòu)式詢問語言(SQL,Structured QueryLanguage)的指令I(lǐng)F EXIST,,SELECT組合判斷,實現(xiàn)外鍵檢查的功能;通過標(biāo)準(zhǔn)SQL指令SELECT,讀取配置表格字段,實現(xiàn)外鍵檢查功能的可配置。以及將其記錄在操作記錄跟蹤日志(比如vs_trace_log表,除此之外,也可以記錄在vs_trace_log1、vs_trace_log2表中等,本發(fā)明以vs_trace_log表為了例來說明)中,以供應(yīng)用層讀取。也就是說,數(shù)據(jù)層完成數(shù)據(jù)更新的操作過程,并將其記錄在vs_trace_log表格中,數(shù)據(jù)庫通過“觸發(fā)器”或“監(jiān)控觸發(fā)器”自動完成相關(guān)數(shù)據(jù)的更新(觸發(fā)自動更新機(jī)制是數(shù)據(jù)庫標(biāo)準(zhǔn)功能,不需要自己實現(xiàn))過程,且“觸發(fā)器”實時更新虛擬拓?fù)淠K。
所述應(yīng)用層接收到數(shù)據(jù)層發(fā)送的更新結(jié)束信息,構(gòu)造用戶返回信息,并向GUI發(fā)送返回消息。其中所述構(gòu)造用戶返回消息的過程包括如果數(shù)據(jù)層反饋更新結(jié)束消息為成功,且應(yīng)用層更新內(nèi)存數(shù)據(jù)成功,則返回消息攜帶成功操作;否則,返回消息攜帶失敗操作。由此可見,所述返回信息的內(nèi)容只需要填寫操作是否成功;即如果成功,就填寫操作成功,否則,填寫操作失敗。也就是說,應(yīng)用層接收到更新結(jié)束信息后,一方面,啟動公共模塊讀取vs_trace_log表格的內(nèi)容,并更新內(nèi)存的數(shù)據(jù)信息,保證應(yīng)用層與數(shù)據(jù)層的數(shù)據(jù)一致;另一方面啟動獨立模塊讀取虛擬拓?fù)淠K中的內(nèi)容,構(gòu)造并異步發(fā)送更新消息。最后,所述GUI收到更新消息后,更新顯示信息。
其中,所述應(yīng)用層中的公共模塊主要通過主動刷新、定時刷新的方式更新內(nèi)存數(shù)據(jù)信息。所述主動刷新方式的實現(xiàn)過程為應(yīng)用層先調(diào)用數(shù)據(jù)層接口,修改表格中的數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器、刪除觸發(fā)器或修改觸發(fā)器,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志(vs_trace_log)中;公共模塊定時讀取操作記錄跟蹤日志,更新內(nèi)存中的公共數(shù)據(jù)。所述定時刷新方式的實現(xiàn)過程為應(yīng)用層先調(diào)用數(shù)據(jù)層接口,修改表格中的數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器、刪除觸發(fā)器或修改觸發(fā)器,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志中;若定時器刷新時間還沒有到,應(yīng)用層模塊調(diào)用公共模塊接口,訪問內(nèi)存數(shù)據(jù);公共模塊主動讀取vs_trace_log記錄,更新內(nèi)存中的公共數(shù)據(jù)。
另外,本發(fā)明還提供一種數(shù)據(jù)同步的系統(tǒng),該系統(tǒng)的流程圖詳見圖3。所述系統(tǒng)包括圖形用戶界面11、功能模塊12(以功能模塊A和功能模塊B為例)、觸發(fā)器13、虛擬拓?fù)淠K14、公共模塊15、獨立模塊16以及數(shù)據(jù)庫中的操作記錄跟蹤日志17。所述圖形用戶界面11,人機(jī)接口,用于發(fā)送用戶的請求信息;所述功能模塊12,位于應(yīng)用層,用于接收用戶發(fā)送的請求信息,并根據(jù)該信息構(gòu)造新數(shù)據(jù)后,向數(shù)據(jù)層發(fā)送更新請求信息;所述觸發(fā)器13,位于數(shù)據(jù)層,用于完成數(shù)據(jù)的更新,以及完成相關(guān)數(shù)據(jù)表格間記錄一致,將其記錄在數(shù)據(jù)庫的操作記錄跟蹤日志17中;所述虛擬拓?fù)淠K14,位于數(shù)據(jù)層,是由數(shù)據(jù)庫中一張或若干張表組成,用于配置數(shù)據(jù)變化的監(jiān)控記錄;所述公共模塊15,位于應(yīng)用層,用于內(nèi)存數(shù)據(jù)信息的管理,并根據(jù)所述操作記錄跟蹤日志17完成內(nèi)存數(shù)據(jù)的刷新以及支持相關(guān)數(shù)據(jù)表格間的同步;所述獨立模塊16,位于應(yīng)用層,用于實現(xiàn)虛擬拓?fù)淠K配置數(shù)據(jù)變化的監(jiān)控記錄于上報同步。
本發(fā)明所述數(shù)據(jù)同步原理主要是在現(xiàn)有技術(shù)中增加四個組件觸發(fā)器13、虛擬拓?fù)淠K14、公共模塊15和獨立模塊16。下面分別對各個模塊的功能進(jìn)行詳細(xì)的說明。
所述觸發(fā)器13,是基于關(guān)鍵表而設(shè)置的,完成相關(guān)數(shù)據(jù)表格間數(shù)據(jù)記錄一致的維護(hù)功能,也就是說通過數(shù)據(jù)庫提供的觸發(fā)器自動更新功能,只需要填寫觸發(fā)器內(nèi)容即可完成各個相關(guān)數(shù)據(jù)表格間數(shù)據(jù)記錄一致的維護(hù)功能。其中,所述相關(guān)數(shù)據(jù)表格,是指只要存在外鍵關(guān)系的表格都可以成為相關(guān)數(shù)據(jù)表格。所述觸發(fā)器將完成數(shù)據(jù)記錄一致的操作動作,通過標(biāo)準(zhǔn)SQL指令插入(INSERT),記錄到操作記錄跟蹤日志17(比如vs_trace_log表格等)中,以供給應(yīng)用層讀取。為此而將觸發(fā)器分為插入或創(chuàng)建觸發(fā)器、刪除觸發(fā)器以及更新觸發(fā)器。在觸發(fā)器中,可以通過標(biāo)準(zhǔn)SQL指令I(lǐng)F EXIST,SELECT組合判斷,實現(xiàn)外鍵檢查的功能;也可以通過標(biāo)準(zhǔn)SQL指令SELECT,讀取配置表格字段,實現(xiàn)外鍵檢查功能的可配置性;還可以通過嵌套觸發(fā)器(數(shù)據(jù)庫標(biāo)準(zhǔn)功能),實現(xiàn)了級聯(lián)刪除。此外,數(shù)據(jù)層提供自定義擴(kuò)展存儲過程,供應(yīng)用層調(diào)用,通過執(zhí)行x_ProcedureA,完成數(shù)據(jù)記錄一致性維護(hù)。
例如Create Procedure x_ProcedureAas
BEGIN處理標(biāo)準(zhǔn)SQL命令。。。。。。END。
其中,所述Create Procedure x_ProcedureA定義一個存儲過程,名稱叫做x_ProcedureA;as為標(biāo)準(zhǔn)SQL保留關(guān)鍵字,說明后面的內(nèi)容都是屬于過程x_ProcedureA;BEGIN、END也是標(biāo)準(zhǔn)SQL保留關(guān)鍵字,在兩個關(guān)鍵字中間的標(biāo)準(zhǔn)SQL命令都是屬于存儲過程x_ProcedureA。
所述公共模塊15,通過觸發(fā)器13跟蹤了數(shù)據(jù)庫表格記錄(所述表格不是特指那張表格,而是指存在于數(shù)據(jù)層的所有表格)的創(chuàng)建、刪除和改變的過程,數(shù)據(jù)庫觸發(fā)器將這一過程記錄在操作記錄跟蹤日志17中。公共模塊還提供兩種自我維護(hù)的刷新方式即主動刷新方式和定時刷新方式,來完成內(nèi)存數(shù)據(jù)的刷新操作。此外,公共模塊15根據(jù)操作記錄跟蹤日志17中的內(nèi)容,還可以知道當(dāng)前哪些數(shù)據(jù)記錄要發(fā)生,可以“順帶”完成一些用戶需要的特定的功能。例如在操作記錄跟蹤日志17中記錄了新增加的操作數(shù)據(jù),在把數(shù)據(jù)上報給GUI前,公共模塊在記錄的名稱前,添加日期,等等諸如此類的特定操作。
其中,所述公共模塊15自我維護(hù)刷新的原理示意圖如圖4所示,包括公共模塊14中的內(nèi)存維護(hù)子模塊151、公共內(nèi)存子模塊152、公共模塊接口153以及數(shù)據(jù)層中的創(chuàng)建觸發(fā)器131、刪除觸發(fā)器132、修改觸發(fā)器133和操作記錄跟蹤日志17。其刷新的原理分別為所述定時器定時刷新的方式定時向內(nèi)存維護(hù)子模塊151發(fā)送刷新請求,應(yīng)用層調(diào)用數(shù)據(jù)層接口,修改表格數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器131、刪除觸發(fā)器132、修改觸發(fā)器133,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志(比如vs_trace_log等)表中,所述內(nèi)存維護(hù)子模塊151定時讀取vs_trace_log表中的記錄,更新公共內(nèi)存子模塊152中的公共數(shù)據(jù)。所述主動刷新的方式外界向內(nèi)存維護(hù)子模塊151主動請求刷新內(nèi)存;應(yīng)用層調(diào)用數(shù)據(jù)層接口,修改表格數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器131、刪除觸發(fā)器132、修改觸發(fā)器133,記錄應(yīng)用層修改的數(shù)據(jù)操作到vs_trace_log表中;若定時刷新的時間還沒有到,應(yīng)用層調(diào)用公共模塊接口153,訪問內(nèi)存數(shù)據(jù);內(nèi)存維護(hù)子模塊151主動讀取vs_trace_log表中的記錄,更新公共內(nèi)存子模塊152中的數(shù)據(jù)。
所述虛擬拓?fù)淠K14,是由保存在數(shù)據(jù)庫中的一張或者若干張表組成,主要為用戶界面提供服務(wù);代替分散在各模塊中用于處理用戶界面各種系統(tǒng)變化數(shù)據(jù)的上報。所述虛擬拓?fù)淠K依賴創(chuàng)建在各主要表上的觸發(fā)器完成數(shù)據(jù)更新,由后臺的獨立模塊負(fù)責(zé)維護(hù),并定時周期上報或者主動觸發(fā)上報界面刷新。
所述獨立模塊16,定時讀取虛擬拓?fù)淠K14的內(nèi)容,構(gòu)造并異步發(fā)送GUI更新消息。
所述圖形用戶界面11和功能模塊12的具體功能對于本領(lǐng)域的技術(shù)人員來說,已是公知技術(shù),在此不再贅述。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)同步的方法,其特征在于,包括A、用戶通過圖形用戶界面將用戶請求消息發(fā)送給應(yīng)用層;B、應(yīng)用層根據(jù)所述請求消息構(gòu)造新數(shù)據(jù),并向數(shù)據(jù)層發(fā)送給更新請求;C、數(shù)據(jù)層完成數(shù)據(jù)更新,并向應(yīng)用層反饋更新結(jié)束消息;D、應(yīng)用層接收到更新結(jié)束消息后,更新內(nèi)存中的數(shù)據(jù)信息,構(gòu)造用戶返回消息,并向圖形用戶界面異步反饋更新消息;E、所述圖形用戶界面接收到更新消息后更新顯示信息。
2.根據(jù)權(quán)利要求1所述數(shù)據(jù)同步的方法,其特征在于,步驟B中應(yīng)用層根據(jù)所述用戶請求構(gòu)造新數(shù)據(jù)的具體過程為應(yīng)用層解析所述請求消息,得到所述請求消息的增加操作;根據(jù)所述增加操作構(gòu)造新數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述數(shù)據(jù)同步的方法,其特征在于,所述應(yīng)用層解析所述請求消息,得到所述請求消息的增加操作的具體實現(xiàn)過程為根據(jù)增加操作的動作類型和操作對象填寫預(yù)定義的數(shù)據(jù)結(jié)構(gòu),完成新數(shù)據(jù)構(gòu)造。
4.根據(jù)權(quán)利要求1或2所述數(shù)據(jù)同步的方法,其特征在于,步驟C中所述數(shù)據(jù)層完成數(shù)據(jù)更新的過程為數(shù)據(jù)層通過監(jiān)控觸發(fā)器自動完成相關(guān)數(shù)據(jù)表格間數(shù)據(jù)記錄一致的更新,并通過結(jié)構(gòu)式詢問語言的插入指令,記錄在操作記錄跟蹤日志中,以供應(yīng)用層讀取。
5.根據(jù)權(quán)利要求1所述數(shù)據(jù)同步的方法,其特征在于,步驟D中所述應(yīng)用層接收到更新消息后,更新內(nèi)存中的數(shù)據(jù)信息的具體過程為應(yīng)用層接收到更新消息后,通過讀取操作記錄跟蹤日志中的內(nèi)容,更新內(nèi)存數(shù)據(jù)信息。
6.根據(jù)權(quán)利要求1或5所述數(shù)據(jù)同步的方法,其特征在于,應(yīng)用層通過主動刷新、定時刷新的方式更新內(nèi)存數(shù)據(jù)信息,其,所述定時刷新方式的實現(xiàn)過程為應(yīng)用層調(diào)用數(shù)據(jù)層接口,修改表格數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器、刪除觸發(fā)器、修改觸發(fā)器,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志中;應(yīng)用層定時讀取操作記錄跟蹤日志的記錄,更新內(nèi)存中的公共數(shù)據(jù);所述主動刷新方式的實現(xiàn)過程應(yīng)用層調(diào)用數(shù)據(jù)層接口,修改表格數(shù)據(jù);數(shù)據(jù)層通過創(chuàng)建觸發(fā)器、刪除觸發(fā)器、修改觸發(fā)器,將應(yīng)用層修改的數(shù)據(jù)操作記錄到操作記錄跟蹤日志中;若定時刷新時間還沒有到,應(yīng)用層調(diào)用數(shù)據(jù)層接口,訪問內(nèi)存數(shù)據(jù);應(yīng)用層主動讀取操作記錄跟蹤日志的記錄,更新內(nèi)存中的公共數(shù)據(jù)。
7.根據(jù)權(quán)利要求1或5所述數(shù)據(jù)同步的方法,其特征在于,步驟D中所述構(gòu)造用戶返回消息的過程為如果數(shù)據(jù)層反饋更新結(jié)束消息為成功,且應(yīng)用層更新內(nèi)存數(shù)據(jù)成功,則返回消息攜帶成功操作;如果數(shù)據(jù)層反饋更新結(jié)束消息和應(yīng)用層更新內(nèi)存數(shù)據(jù)有任意一項不成功的情況,則返回消息攜帶失敗操作。
8.一種數(shù)據(jù)同步的系統(tǒng),所述系統(tǒng)包括圖形用戶界面,人機(jī)接口,用于發(fā)送用戶的請求信息;功能模塊,位于應(yīng)用層,用于接收用戶發(fā)送的請求信息,并根據(jù)該信息構(gòu)造新數(shù)據(jù)后,向數(shù)據(jù)層發(fā)送更新請求信息;其特征在于,所述系統(tǒng)還包括觸發(fā)器,位于數(shù)據(jù)層,用于完成數(shù)據(jù)的更新,以及完成相關(guān)數(shù)據(jù)表格間記錄一致,將其記錄在數(shù)據(jù)庫的操作記錄跟蹤日志中;虛擬拓?fù)淠K,位于數(shù)據(jù)層,是由數(shù)據(jù)庫中一張或若干張表組成,用于配置數(shù)據(jù)變化的監(jiān)控記錄,公共模塊,位于應(yīng)用層,用于內(nèi)存數(shù)據(jù)信息的管理,并根據(jù)所述操作記錄跟蹤日志完成內(nèi)存數(shù)據(jù)的刷新以及支持相關(guān)數(shù)據(jù)表格間的同步;獨立模塊,位于應(yīng)用層,用于實現(xiàn)虛擬拓?fù)淠K配置數(shù)據(jù)變化的監(jiān)控記錄于上報同步。
9.根據(jù)權(quán)利要求8所述數(shù)據(jù)同步的系統(tǒng),其特征在于,所述觸發(fā)器包括創(chuàng)建觸發(fā)器、刪除觸發(fā)器和更新觸發(fā)器,分別用于實現(xiàn)外鍵檢查、可配置的外鍵檢查、級聯(lián)刪除以及擴(kuò)展存儲。
10.根據(jù)權(quán)利要求8所述數(shù)據(jù)同步的系統(tǒng),其特征在于,所述公共模塊的刷新方式包括主動刷新方式和定時刷新方式。
全文摘要
本發(fā)明提供一種數(shù)據(jù)同步的方法,包括A.用戶通過圖形用戶界面將用戶請求消息發(fā)送給應(yīng)用層;B.應(yīng)用層根據(jù)所述請求消息構(gòu)造新數(shù)據(jù),并向數(shù)據(jù)層發(fā)送給更新請求;C.數(shù)據(jù)層完成數(shù)據(jù)更新,并向應(yīng)用層反饋更新結(jié)束消息;D.應(yīng)用層接收到更新結(jié)束消息后,更新內(nèi)存中的數(shù)據(jù)信息,構(gòu)造用戶返回消息,并向圖形用戶界面異步反饋更新消息;E.所述圖形用戶界面接收到更新消息后更新顯示信息。另外,本發(fā)明還提供一種數(shù)據(jù)同步的系統(tǒng),以簡化目前技術(shù)中應(yīng)用層和數(shù)據(jù)層數(shù)據(jù)更新的交互次數(shù);當(dāng)數(shù)據(jù)層發(fā)生變化時,應(yīng)用層不需要修改處理過程,減少應(yīng)用層各個模塊間消息的發(fā)送;此外,本發(fā)明還統(tǒng)一完成用戶界面的數(shù)據(jù)更新,以提高系統(tǒng)的效率。
文檔編號G06F9/44GK1858710SQ20061000192
公開日2006年11月8日 申請日期2006年1月19日 優(yōu)先權(quán)日2006年1月19日
發(fā)明者羅海騫 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1