專利名稱:一種嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式設(shè)備與數(shù)據(jù)庫同步方法,尤其是一種嵌入式設(shè)備離線時與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的方法,屬于嵌入式數(shù)據(jù)庫領(lǐng)域。
背景技術(shù):
目前主流的數(shù)據(jù)庫管理系統(tǒng),如 Oracle、MS-SQL Server、Sybase、DB2、MySQL 等, 都在原有的數(shù)據(jù)復(fù)制功能上添加更多的組件,提供了許多數(shù)據(jù)復(fù)制的工具,針對不同的應(yīng)用提出并研究了各種數(shù)據(jù)同步復(fù)制方法,增加了更強(qiáng)大的技術(shù)支持。在分布式數(shù)據(jù)庫應(yīng)用環(huán)境中,不同的應(yīng)用領(lǐng)域?qū)?shù)據(jù)復(fù)制的要求各異,不可能有一種復(fù)制方法能夠適合所有領(lǐng)域中的應(yīng)用需要。為此以下三種復(fù)制類型滿足不同環(huán)境中的應(yīng)用需要
1.快照復(fù)制快照復(fù)制是數(shù)據(jù)庫中最簡單的一種復(fù)制方式,它拷貝數(shù)據(jù)庫中出版物在某一時刻的結(jié)構(gòu)和數(shù)據(jù)狀態(tài),之后通過復(fù)制代理將出版物快照復(fù)制給訂閱服務(wù)器??煺諒?fù)制操作由快照代理和分發(fā)代理實現(xiàn)??煺沾韺⒊霭嫖镏懈鳁l目(表)的結(jié)構(gòu)和數(shù)據(jù)拷貝到分發(fā)服務(wù)器的快照文件(但不是分發(fā)數(shù)據(jù)庫)中,并在分發(fā)服務(wù)器的分發(fā)數(shù)據(jù)庫中記錄復(fù)制同步操作。分發(fā)服務(wù)器再根據(jù)分發(fā)數(shù)據(jù)庫.中的同步記錄將快照文件傳遞到訂閱服務(wù)器的目的數(shù)據(jù)庫中。2.事務(wù)復(fù)制采用事務(wù)復(fù)制方式時,當(dāng)訂閱服務(wù)器對出版服務(wù)器中的出版物進(jìn)行初始同步后,數(shù)據(jù)庫監(jiān)視INSERT,UPDATE, DELETE等數(shù)據(jù)更新語句的執(zhí)行,并對影響出版物的事務(wù)進(jìn)行標(biāo)識。事務(wù)日志閱讀代理從事務(wù)日志中捕獲出版條目中數(shù)據(jù)的變化,并將引起這些變化的事務(wù)拷貝到分發(fā)服務(wù)器的分發(fā)數(shù)據(jù)庫中。之后,由分發(fā)服務(wù)器將這些事務(wù)傳遞給訂閱服務(wù)器,并在訂閱服務(wù)器上順序執(zhí)行這些事務(wù),對復(fù)制數(shù)據(jù)做增量修改,從而保證訂閱服務(wù)器中的復(fù)制數(shù)據(jù)與出版服務(wù)器出版物中的數(shù)據(jù)一致(但不是實時一致)。由于事務(wù)的數(shù)據(jù)量遠(yuǎn)小于它所操作數(shù)據(jù)庫的數(shù)據(jù)量,所以采用事務(wù)復(fù)制方式能夠有效減輕網(wǎng)絡(luò)的通信負(fù)擔(dān)。3.合并復(fù)制合并復(fù)制允許用戶修改訂閱服務(wù)器中的訂閱數(shù)據(jù),它能夠自動監(jiān)視訂閱數(shù)據(jù)庫中的數(shù)據(jù)變化并定期將這些變化進(jìn)行合并再把合并后的結(jié)果提交給所有訂閱者。如果在合并過程中發(fā)現(xiàn)不同用戶對數(shù)據(jù)所做的修改存在沖突時,合并代理程序?qū)⒏鶕?jù)建立訂閱時為訂閱者所設(shè)置的優(yōu)先級裁決哪個用戶的修改有效。以上各種方法均是針對網(wǎng)絡(luò)狀態(tài)良好的數(shù)據(jù)庫之間數(shù)據(jù)同步方法,在移動嵌入式設(shè)備應(yīng)用越來越廣泛的情況下,移動嵌入式設(shè)備與數(shù)據(jù)庫信息同步的要求逐步得到提高, 而移動嵌入式設(shè)備網(wǎng)絡(luò)環(huán)境復(fù)雜無法保證時刻處于聯(lián)網(wǎng)狀態(tài),此時設(shè)備數(shù)據(jù)同步就顯得越發(fā)的重要,然而當(dāng)前卻沒有一種針對移動嵌入式設(shè)備在網(wǎng)絡(luò)隔離狀態(tài)下與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的方法。檢索發(fā)現(xiàn),專利申請?zhí)枮?00810216201. X的中國專利公開了一種大數(shù)據(jù)對象的傳輸方法,該方法解決了設(shè)備之間數(shù)據(jù)傳送時網(wǎng)絡(luò)突然斷開情況下的數(shù)據(jù)續(xù)傳問題。然而該方法沒有解決嵌入式設(shè)備在網(wǎng)絡(luò)斷開情況下,因無法及時對遠(yuǎn)程數(shù)據(jù)庫進(jìn)行操作而導(dǎo)致的數(shù)據(jù)丟失問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)的缺陷,提出一種可以解決移動嵌入式設(shè)備在暫時性物理隔離狀態(tài)下與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步難題的嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是一種嵌入式設(shè)備與數(shù)據(jù)庫同步數(shù)據(jù)方法, 所述嵌入式設(shè)備按以下步驟實現(xiàn)與相互之間無線通訊的數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)同步(參見圖 9)
步驟1、生成數(shù)據(jù)庫操作請求;
步驟2、準(zhǔn)備數(shù)據(jù)庫操作并判斷當(dāng)前嵌入式設(shè)備與網(wǎng)絡(luò)是否連接,如是,進(jìn)行步驟3 ;否則進(jìn)行步驟4 ;
步驟3、檢查判斷本地數(shù)據(jù)暫存區(qū)是否有新操作指令日志和新數(shù)據(jù)文檔,如是則進(jìn)行步驟31,否則進(jìn)行步驟33 ;
步驟31、讀取新操作指令日志;
步驟32、根據(jù)操作指令日志的記錄生成相應(yīng)的數(shù)據(jù)庫操作指令,將數(shù)據(jù)庫操作指令連同新數(shù)據(jù)文檔發(fā)送給數(shù)據(jù)庫服務(wù)器,再轉(zhuǎn)到步驟5 ;
步驟33、與數(shù)據(jù)庫服務(wù)器進(jìn)行常規(guī)數(shù)據(jù)同步傳輸操作,再轉(zhuǎn)到步驟5 ;
步驟4、檢查判斷是否收到離線操作指令,若是則進(jìn)行步驟41,若否則進(jìn)行步驟42 ;
步驟41、停止對數(shù)據(jù)庫的操作,返回步驟2 ;
步驟42、啟動本地數(shù)據(jù)暫存區(qū),建立存儲擬對數(shù)據(jù)庫操作具體數(shù)據(jù)的新數(shù)據(jù)文檔,最好是可以方便的與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換的xml數(shù)據(jù)文檔;
步驟43、建立記錄擬對數(shù)據(jù)庫具體操作指令的新操作指令日志; 步驟44、返回步驟2 ;
步驟5、檢查判斷向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)的傳輸是否完成,若是則結(jié)束對數(shù)據(jù)庫服務(wù)器的操作,否則進(jìn)行步驟6;
步驟6、檢查判斷當(dāng)前嵌入式設(shè)備的網(wǎng)絡(luò)是否斷開連接,若是則返回步驟2,否則進(jìn)行步驟7 ;
步驟7、重新將本地數(shù)據(jù)暫存區(qū)新數(shù)據(jù)文檔內(nèi)容發(fā)送給數(shù)據(jù)庫服務(wù)器,直至完成發(fā)送傳輸,結(jié)束對數(shù)據(jù)庫服務(wù)器的操作。上述技術(shù)方案可以通過判斷嵌入式設(shè)備網(wǎng)絡(luò)連接狀態(tài),在網(wǎng)絡(luò)未連接時,將需操作的數(shù)據(jù)存入新數(shù)據(jù)文檔,尤其是XML載體,并添加數(shù)據(jù)操作指令日志。在網(wǎng)絡(luò)連接后再將操作指令日志的記錄,連同新數(shù)據(jù)文檔的內(nèi)容一一發(fā)給數(shù)據(jù)庫服務(wù)器,使數(shù)據(jù)庫服務(wù)器可以根據(jù)相應(yīng)的指令,通過xml文件對數(shù)據(jù)庫進(jìn)行操作,實現(xiàn)數(shù)據(jù)同步。并且,還可以對數(shù)據(jù)傳輸過程中的網(wǎng)絡(luò)連接中斷采取重發(fā)的補(bǔ)救措施,從而確保嵌入式設(shè)備與遠(yuǎn)程數(shù)據(jù)庫的同步,即嵌入式設(shè)備與遠(yuǎn)程數(shù)據(jù)庫間的數(shù)據(jù)一致性。由此可見,本發(fā)明的方法可以在不影響應(yīng)用程序正常數(shù)據(jù)庫操作的情況下完成數(shù)據(jù)同步,使嵌入式數(shù)據(jù)庫用戶能夠方便地與遠(yuǎn)程的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的交互而無需考慮網(wǎng)絡(luò)是否保持連接,從而提高了嵌入式設(shè)備的適應(yīng)性。歸納起來,本發(fā)明具有以下顯著優(yōu)點(diǎn)1、適應(yīng)性高。無需增加任何附屬硬件,只需在嵌入式設(shè)備和數(shù)據(jù)庫一端安裝相應(yīng)的數(shù)據(jù)處理軟件,就可以實現(xiàn)嵌入式設(shè)備在間隔性網(wǎng)絡(luò)隔離狀態(tài)下與數(shù)據(jù)庫的數(shù)據(jù)同步,填補(bǔ)了嵌入式設(shè)備在網(wǎng)絡(luò)間斷離線狀態(tài)下訪問數(shù)據(jù)庫的技術(shù)空缺。2、方法簡單。采用本發(fā)明后,嵌入式設(shè)備訪問數(shù)據(jù)庫服務(wù)器的方法變得簡單直接,因此可以顯著提高研發(fā)效率,使應(yīng)用軟件開發(fā)人員只關(guān)注系統(tǒng)開發(fā),而無需關(guān)注網(wǎng)絡(luò)連接狀態(tài)的影響。3、應(yīng)用廣泛。本發(fā)明適用于任何具有無線通信模塊的嵌入式系統(tǒng),可以在醫(yī)療衛(wèi)生,國防軍事,野外工作等諸多領(lǐng)域廣泛應(yīng)用。
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明。圖1為本發(fā)明一個實施例的硬件結(jié)構(gòu)及其相互之間數(shù)據(jù)通信和交互示意圖。圖2是圖1實施例的基本流程圖。圖3是圖2實施例的嵌入式設(shè)備生成數(shù)據(jù)庫操作請求流程圖。圖4是圖2實施例在網(wǎng)絡(luò)連接狀態(tài)下直接與數(shù)據(jù)庫通信流程圖。圖5是圖2實施例在網(wǎng)絡(luò)未連接狀態(tài)下的數(shù)據(jù)庫操作流程圖。圖6是圖2實施例嵌入式設(shè)備、數(shù)據(jù)庫網(wǎng)絡(luò)拓?fù)鋱D。圖7是圖2實施例的指令包的數(shù)據(jù)結(jié)構(gòu)示意圖。圖8是圖2實施例的日志格式示意圖。圖9是圖2實施例的總體流程圖。
具體實施例方式實施例一
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉主要應(yīng)用于嵌入式設(shè)備的實施例,并結(jié)合附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。如圖1所示,本實施例的硬件環(huán)境主要包括嵌入式設(shè)備110及與之無線通信聯(lián)系的數(shù)據(jù)庫服務(wù)器120。嵌入式設(shè)備110內(nèi)含訪問數(shù)據(jù)庫的應(yīng)用程序111、模式轉(zhuǎn)換器112、本地數(shù)據(jù)暫存區(qū)113和通信客戶端114 ;數(shù)據(jù)庫服務(wù)器120包含通信服務(wù)端121、數(shù)據(jù)處理模塊122和數(shù)據(jù)庫123。通信服務(wù)端121、通信客戶端114之間通過無線方式連接。模式轉(zhuǎn)換器112和數(shù)據(jù)處理模塊122完成系統(tǒng)的核心同步功能。嵌入式設(shè)備110的通信客戶端114和數(shù)據(jù)庫服務(wù)器上的通信服務(wù)端121實質(zhì)是提供連接通信的功能模塊集合,主要負(fù)責(zé)嵌入式設(shè)備和數(shù)據(jù)庫之間的連接通信和數(shù)據(jù)交換。 模式轉(zhuǎn)換器112判斷網(wǎng)絡(luò)連接狀態(tài),當(dāng)網(wǎng)絡(luò)未連接時對應(yīng)用程序請求的數(shù)據(jù)庫操作進(jìn)行處理,將數(shù)據(jù)轉(zhuǎn)為xml格式轉(zhuǎn)存到本地數(shù)據(jù)暫存區(qū)113,并記錄在網(wǎng)絡(luò)未連接狀態(tài)下每次對數(shù)據(jù)庫的操作指令日志中。當(dāng)網(wǎng)絡(luò)連接時,該模塊將離線時對數(shù)據(jù)庫的操作指令日志及數(shù)據(jù) xml文件發(fā)送給數(shù)據(jù)庫服務(wù)器120 ;本地數(shù)據(jù)暫存區(qū)113用來存儲網(wǎng)絡(luò)未連接情況下應(yīng)用程序?qū)?shù)據(jù)庫訪問操作的數(shù)據(jù)及日志等內(nèi)容。數(shù)據(jù)庫服務(wù)器120中的數(shù)據(jù)處理模塊122接收到嵌入式設(shè)備在斷線時存儲的xml
5數(shù)據(jù)及操作指令日志生成的指令,根據(jù)指令對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步。本實施例的網(wǎng)絡(luò)拓?fù)鋱D如圖6所示遠(yuǎn)程數(shù)據(jù)庫安裝在服務(wù)器上,速度和效率較高;服務(wù)器需要連入局域網(wǎng)中。采用IEEE802. llb/g通信標(biāo)準(zhǔn)的嵌入式設(shè)備通過無線AP連入到相同的局域網(wǎng)中,嵌入式設(shè)備也可以在無網(wǎng)的環(huán)境下工作。本實施例的總流程參見圖2,其步驟為
步驟201嵌入式設(shè)備上的應(yīng)用程序產(chǎn)生訪問數(shù)據(jù)庫請求; 步驟202模式轉(zhuǎn)換器等待數(shù)據(jù)請求并判斷當(dāng)前設(shè)備的網(wǎng)絡(luò)連接狀態(tài);若連接,則 步驟203模式轉(zhuǎn)換器采用正常的與數(shù)據(jù)庫數(shù)據(jù)同步方式對數(shù)據(jù)庫進(jìn)行操作;若未連接,則
步驟204模式轉(zhuǎn)換器通知應(yīng)用程序當(dāng)前網(wǎng)絡(luò)狀態(tài),并啟用網(wǎng)絡(luò)未連接狀態(tài)下的數(shù)據(jù)庫操作;
本實施例上述步驟201嵌入式設(shè)備產(chǎn)生訪問數(shù)據(jù)庫請求的過程參見圖3,其具體操作步驟為
步驟301嵌入式設(shè)備上的應(yīng)用程序接收操作者的操作生成相應(yīng)的操作數(shù)據(jù)庫的請求指令;
步驟302嵌入式應(yīng)用程序?qū)λ傻臄?shù)據(jù)庫請求進(jìn)行分析后,按照預(yù)定格式封裝成 SQL指令包;預(yù)定格式可以根據(jù)實際需求自定義,目的是為了方便實現(xiàn),例如采取如圖7所示格式的封裝。其中TYPE_ID為SQL指令包的包頭,表征指令類型如將SQL語句中的查詢操作定義為“S”,插入操作定義為“I,,,更新操作定義為“U”,刪除操作定義為“D” ;SQL COMMAND 為一條 SQL 字符串,如 “select * from users”; 步驟303應(yīng)用程序向模式轉(zhuǎn)換器發(fā)送訪問數(shù)據(jù)庫請求;
本實施例上述步驟203所述的正常與數(shù)據(jù)庫同步具體流程如圖4所示(不同嵌入式設(shè)備可以按其原有方式正常同步操作)
步驟401通信客戶端通過TCP/IP協(xié)議與通信服務(wù)端建立通信連接,該通信連接的建立可以基于無線或有線方式;
步驟402判斷數(shù)據(jù)存儲去是否有數(shù)據(jù),若無未更新數(shù)據(jù),則步驟403,若有更新數(shù)據(jù)則步驟410 ;
步驟403通信客戶端通過該建立起的連接向通信服務(wù)端發(fā)送生成的SQL指令包; 步驟404服務(wù)器端收到指令包后交由數(shù)據(jù)處理模塊處理,解析出按前面所述格式封裝的SQL指令;
步驟405數(shù)據(jù)處理模塊根據(jù)解析出的SQL指令對數(shù)據(jù)庫進(jìn)行操作; 步驟406將數(shù)據(jù)庫操作成功結(jié)果返回給嵌入式設(shè)備以供嵌入式上的應(yīng)用程序調(diào)用; 步驟407判斷數(shù)據(jù)是否發(fā)送完成,以防數(shù)據(jù)在發(fā)送過程中網(wǎng)絡(luò)通信中斷,若發(fā)送未完成則步驟408,若發(fā)送完成則步驟412 ;
步驟408判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否連接,若網(wǎng)絡(luò)狀態(tài)連接中,則步驟409,若發(fā)送完成則步驟412 ;
步驟409重新傳送數(shù)據(jù),返回步驟407;
步驟410將存儲在數(shù)據(jù)暫存區(qū)中的未同步數(shù)據(jù)及日志發(fā)送給數(shù)據(jù)庫服務(wù)器; 步驟411數(shù)據(jù)處理模塊根據(jù)發(fā)送過來的日志和數(shù)據(jù)xml文檔對數(shù)據(jù)庫進(jìn)行操作并對數(shù)據(jù)暫存區(qū)的日志文件中的state狀態(tài)改為已同步狀態(tài),即為1。State為該日志的狀態(tài)信息,如是否已經(jīng)被同步,若同步則為1,若未同步則為0 ; 步驟412結(jié)束。 本實施例上述步驟204所述的模式轉(zhuǎn)換器通知應(yīng)用程序當(dāng)前網(wǎng)絡(luò)狀態(tài),并啟用網(wǎng)絡(luò)未連接狀態(tài)下的數(shù)據(jù)庫操作具體操作步驟如下
步驟501向應(yīng)用程序發(fā)送當(dāng)前離線網(wǎng)絡(luò)狀態(tài),以確認(rèn)是否繼續(xù)進(jìn)行離線數(shù)據(jù)庫操作; 步驟502模式轉(zhuǎn)換器判斷應(yīng)用程序所選擇是否繼續(xù)離線操作, 若不進(jìn)行離線數(shù)據(jù)庫操作,則步驟503 ;若進(jìn)行離線操作則步驟504 ; 步驟503退出;
步驟504模式轉(zhuǎn)化模塊提取封裝好的指令包,將包中的SQL指令解析出來; 步驟505將指令中對數(shù)據(jù)操作的數(shù)據(jù)部分以XML文檔的格式保存于嵌入式設(shè)備的存儲空間中;
步驟506模式轉(zhuǎn)換模塊在數(shù)據(jù)暫存區(qū)中生成一個日志文件,該文件記錄應(yīng)用程序?qū)?shù)據(jù)庫操作的指令及時間,具體格式見圖8,其中,Date&Time記錄當(dāng)前操作數(shù)據(jù)庫時間,如 2010-10-21&10:20:00,SQL COMMAND記錄該數(shù)據(jù)庫操作指令內(nèi)容,User記錄執(zhí)行這條操作的使用者信息,State為該日志的狀態(tài)信息,如是否已經(jīng)被同步,若同步則為1,若未同步則為0,最后返回步驟202;
這樣就完成了整個嵌入式設(shè)備與數(shù)據(jù)庫在網(wǎng)絡(luò)狀態(tài)不穩(wěn)定情況下的同步流程。綜合起來,本實施例的嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步整個過程如圖9所示 步驟901、應(yīng)用程序生成數(shù)據(jù)庫操作請求;
步驟902、等待數(shù)據(jù)庫操作并判斷當(dāng)前嵌入式設(shè)備的網(wǎng)絡(luò)是否連接,如是,進(jìn)行步驟 903 ;否則進(jìn)行步驟904 ;
步驟903、檢查判斷本地數(shù)據(jù)暫存區(qū)是否有新操作指令日志和新數(shù)據(jù)文檔,如是則進(jìn)行步驟907,否則進(jìn)行步驟909 ;
步驟907、讀取數(shù)據(jù)暫存區(qū)中操作指令日志的記錄;
步驟908、根據(jù)操作指令日志中的記錄生成相應(yīng)的數(shù)據(jù)庫操作指令,將本地數(shù)據(jù)暫存區(qū)相應(yīng)的新數(shù)據(jù)文檔內(nèi)容發(fā)送給數(shù)據(jù)庫服務(wù)器,再轉(zhuǎn)到步驟910 ;
步驟908、與數(shù)據(jù)庫服務(wù)器進(jìn)行常規(guī)數(shù)據(jù)同步傳輸操作,再轉(zhuǎn)到步驟910 ; 步驟904、檢查判斷用戶輸入的是否離線操作指令,若是則進(jìn)行步驟906,若否則停止對數(shù)據(jù)庫的操作,返回步驟902 ;
步驟905、啟動本地數(shù)據(jù)暫存區(qū),建立存儲擬對數(shù)據(jù)庫操作具體數(shù)據(jù)的新數(shù)據(jù)文檔,最好是可以方便的與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換的xml數(shù)據(jù)文檔;
步驟906、建立記錄擬對數(shù)據(jù)庫具體操作指令的新操作指令日志,返回步驟902 ; 步驟910、檢查判斷向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)的傳輸是否完成,若是則結(jié)束對數(shù)據(jù)庫服務(wù)器的操作914,否則進(jìn)行步驟911 ;
步驟911、檢查判斷當(dāng)前嵌入式設(shè)備的網(wǎng)絡(luò)是否斷開連接,若是則返回步驟902,否則進(jìn)行步驟912 ;
步驟912、重新將本地數(shù)據(jù)暫存區(qū)新數(shù)據(jù)文檔內(nèi)容發(fā)送給數(shù)據(jù)庫服務(wù)器,直至完成發(fā)送傳輸913,結(jié)束對數(shù)據(jù)庫服務(wù)器的操作914。
本實施例使得移動嵌入式設(shè)備在暫時性無網(wǎng)絡(luò)連接和不影響原有工作方式的情況下,依然能夠完成對數(shù)據(jù)的相應(yīng)操作,在以后方便的時候連接到網(wǎng)絡(luò)中,再與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步,從而無需依賴網(wǎng)絡(luò)的連接,擴(kuò)大了移動嵌入式設(shè)備的應(yīng)用范圍,妥善解決了嵌入式設(shè)備與數(shù)據(jù)庫間的數(shù)據(jù)一致性問題。除上述實施例外,本發(fā)明還可以有其他實施方式。凡采用等同替換或等效變換形成的技術(shù)方案,均落在本發(fā)明要求的保護(hù)范圍。
權(quán)利要求
1.一種嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法,其特征在于所述嵌入式設(shè)備按以下步驟實現(xiàn)與相互之間無線通訊的數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)同步步驟1、生成數(shù)據(jù)庫操作請求;步驟2、準(zhǔn)備數(shù)據(jù)庫操作并判斷當(dāng)前嵌入式設(shè)備與網(wǎng)絡(luò)是否連接,如是,進(jìn)行步驟3 ;否則進(jìn)行步驟4 ;步驟3、檢查判斷本地數(shù)據(jù)暫存區(qū)是否有新操作指令日志和新數(shù)據(jù)文檔,如是則進(jìn)行步驟31,否則進(jìn)行步驟33;步驟31、讀取新操作指令日志;步驟32、根據(jù)操作指令日志的記錄生成相應(yīng)的數(shù)據(jù)庫操作指令,將數(shù)據(jù)庫操作指令連同新數(shù)據(jù)文檔發(fā)送給數(shù)據(jù)庫服務(wù)器,再轉(zhuǎn)到步驟5 ;步驟33、與數(shù)據(jù)庫服務(wù)器進(jìn)行常規(guī)數(shù)據(jù)同步傳輸操作,再轉(zhuǎn)到步驟5 ;步驟4、檢查判斷是否收到離線操作指令,若是則進(jìn)行步驟41,若否則進(jìn)行步驟42 ;步驟41、停止對數(shù)據(jù)庫的操作,返回步驟2 ;步驟42、啟動本地數(shù)據(jù)暫存區(qū),建立存儲擬對數(shù)據(jù)庫操作具體數(shù)據(jù)的新數(shù)據(jù)文檔,最好是可以方便的與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換的xml數(shù)據(jù)文檔;步驟43、建立記錄擬對數(shù)據(jù)庫具體操作指令的新操作指令日志;步驟44、返回步驟2 ;步驟5、檢查判斷向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)的傳輸是否完成,若是則結(jié)束對數(shù)據(jù)庫服務(wù)器的操作,否則進(jìn)行步驟6;步驟6、檢查判斷當(dāng)前嵌入式設(shè)備的網(wǎng)絡(luò)是否斷開連接,若是則返回步驟2,否則進(jìn)行步驟7 ;步驟7、重新將本地數(shù)據(jù)暫存區(qū)新數(shù)據(jù)文檔內(nèi)容發(fā)送給數(shù)據(jù)庫服務(wù)器,直至完成發(fā)送傳輸,結(jié)束對數(shù)據(jù)庫服務(wù)器的操作。
2.根據(jù)權(quán)利要求1所述的嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法,其特征在于所述新數(shù)據(jù)文檔為xml數(shù)據(jù)文檔。
3.根據(jù)權(quán)利要求1或2所述的嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法,其特征在于所述嵌入式設(shè)備內(nèi)含用于生成數(shù)據(jù)庫操作請求的應(yīng)用程序、用于當(dāng)網(wǎng)絡(luò)未連接時將數(shù)據(jù)轉(zhuǎn)存到本地數(shù)據(jù)暫存區(qū)的模式轉(zhuǎn)換器、本地數(shù)據(jù)暫存區(qū)和通信客戶端;所述數(shù)據(jù)庫服務(wù)器包含通信服務(wù)端、數(shù)據(jù)處理模塊和數(shù)據(jù)庫;所述通信服務(wù)端與通信客戶端之間通過無線方式連接。
4.根據(jù)權(quán)利要求3所述的嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法,其特征在于所述步驟1 產(chǎn)生訪問數(shù)據(jù)庫請求的具體過程為步驟301嵌入式設(shè)備上的應(yīng)用程序接收操作者的操作生成相應(yīng)的操作數(shù)據(jù)庫的請求指令;步驟302應(yīng)用程序?qū)λ傻臄?shù)據(jù)庫請求按照預(yù)定格式封裝成SQL指令包;步驟303向模式轉(zhuǎn)換器發(fā)出訪問數(shù)據(jù)庫請求。
全文摘要
本發(fā)明涉及一種嵌入式設(shè)備與數(shù)據(jù)庫數(shù)據(jù)同步方法,屬于計算機(jī)數(shù)據(jù)處理領(lǐng)域。該方法通過判斷嵌入式設(shè)備網(wǎng)絡(luò)連接狀態(tài),在網(wǎng)絡(luò)未連接時,將需操作的數(shù)據(jù)存入新數(shù)據(jù)文檔,并添加數(shù)據(jù)操作指令日志。在網(wǎng)絡(luò)連接后再將操作指令日志的記錄,連同新數(shù)據(jù)文檔的內(nèi)容一一發(fā)給數(shù)據(jù)庫服務(wù)器,使數(shù)據(jù)庫服務(wù)器可以根據(jù)相應(yīng)的指令,實現(xiàn)數(shù)據(jù)同步。并且,還可以對數(shù)據(jù)傳輸過程中的網(wǎng)絡(luò)連接中斷采取重發(fā)的補(bǔ)救措施,從而確保嵌入式設(shè)備與遠(yuǎn)程數(shù)據(jù)庫的同步,即嵌入式設(shè)備與遠(yuǎn)程數(shù)據(jù)庫間的數(shù)據(jù)一致性。
文檔編號G06F17/30GK102456052SQ20101052788
公開日2012年5月16日 申請日期2010年11月2日 優(yōu)先權(quán)日2010年11月2日
發(fā)明者嚴(yán)振, 宋余慶, 陳健美 申請人:江蘇大學(xué)