基于syncML的移動數(shù)據(jù)庫雙向事務(wù)級同步_第1頁
基于syncML的移動數(shù)據(jù)庫雙向事務(wù)級同步_第2頁
基于syncML的移動數(shù)據(jù)庫雙向事務(wù)級同步_第3頁
基于syncML的移動數(shù)據(jù)庫雙向事務(wù)級同步_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于syncML的移動數(shù)據(jù)庫雙向事務(wù)級同步    基于syncML的移動數(shù)據(jù)庫雙向事務(wù)級同步龔春紅(湖南大學(xué)軟件學(xué)院湖南財經(jīng)高等專科學(xué)校410205)摘要:同步復(fù)制技術(shù)可以保證移動數(shù)據(jù)庫的一致性,是移動數(shù)據(jù)庫的關(guān)鍵技術(shù)之一。本文針對移動數(shù)據(jù)庫的斷接性、資源有限性等特點,分析同步復(fù)制技術(shù)現(xiàn)狀,將開放的syncML協(xié)議同步協(xié)議引入數(shù)據(jù)庫,在分析syncML同步協(xié)議組成和特點基礎(chǔ)上,研究適用于移動數(shù)據(jù)庫的雙向事務(wù)級同步過程,克服目前移動數(shù)據(jù)系統(tǒng)同步處理算法中所存在的缺陷,有效保證移動數(shù)據(jù)庫一致性,提高移動數(shù)據(jù)庫的通用性和適應(yīng)性;同時實現(xiàn)不同結(jié)構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)同

2、步,增強(qiáng)系統(tǒng)可擴(kuò)充性。關(guān)鍵字:syncML,同步過程,同步引擎,雙向同步中圖分類號:TP392;文獻(xiàn)標(biāo)識碼ATWO-WAYTRANSACTIONSYNCOFMOBILEDATABASEONSYNCMLPROTOCOLGongChunhong(SoftwareSchoolofHunanUniversity,ChangSha410082,China)Abstract:Synchronalreplicatetechnologycanensuretheconsistencyofmobiledatabase.Thispaperistoanalyzethecurrentsituationofsynchro

3、nalreplicatetechnology,andstudythetwo-waysyncapplyingtothedisplacementmobiledatabase,tomaintaintheconsistencyofmobiledatabaseandimproveavailabilityandadaptabilityofmobiledatabase.Atthesametime,itwillrealizethedatasynchronismofdifferentdatabasestructures,tostrengthensystemextensibility.Keywords:syncM

4、L,synchronizationprocessing,SyncEngine,Two-waysync1前言在移動數(shù)據(jù)庫中,由于移動計算的斷接性和資源有限性等特點,移動設(shè)備可以離線操作數(shù)據(jù)庫副本,會導(dǎo)致客戶端與服務(wù)器數(shù)據(jù)庫中數(shù)據(jù)暫時不一致。須利用同步過程來消除暫時的數(shù)據(jù)不一致。目前針對移動數(shù)據(jù)庫同步技術(shù)主要有兩大類型:以元組為同步處理的基本單位的數(shù)據(jù)級同步和以事務(wù)為同步處理的基本單位的事務(wù)級同步。其中事務(wù)級同步也做了大量研究,提出了很多算法,如兩級復(fù)制、多版本沖突消解技術(shù)等。但目前事務(wù)級同步還存在一些問題,如要人工地根據(jù)系統(tǒng)特點定制沖突處理函數(shù),而影響系統(tǒng)的通用性和適應(yīng)性;為保持完整的移動事務(wù)日

5、志,且在同步過程中需要傳遞大量數(shù)據(jù),在實際應(yīng)用中受到了移動計算環(huán)境諸多因素(如連接的頻繁斷接性和移動主機(jī)的有限資源)的限制;系統(tǒng)可擴(kuò)充性差,移動數(shù)據(jù)系統(tǒng)不能方便容納 主流數(shù)據(jù)庫產(chǎn)品。目前作為一個基于XML的唯一開放的移動同步協(xié)議syncML的發(fā)布,為解決以上問題提供了很好的條件。syncML主要用于網(wǎng)絡(luò)設(shè)備的通用數(shù)據(jù)同步,它的目標(biāo)是讓任何移動設(shè)備的網(wǎng)絡(luò)化數(shù)據(jù)都能實現(xiàn)同步并保證設(shè)備間同步的無縫連接,即一種網(wǎng)絡(luò)數(shù)據(jù)可以與任一種移動設(shè)備同步,一種移動設(shè)備可以與任一種網(wǎng)絡(luò)數(shù)據(jù)同步,這使得移動數(shù)據(jù)庫具有了通用性和可適應(yīng)性。本論文將在分析syncML同步協(xié)議組成和特點基礎(chǔ)上,研究和實現(xiàn)適用于移動數(shù)據(jù)庫的雙

6、向事務(wù)級同步。2syncML同步協(xié)議組成和同步類型SyncML協(xié)議是由SyncMLinitiative發(fā)行的實現(xiàn)移動數(shù)據(jù)庫同步的一種開放性工業(yè)標(biāo)準(zhǔn)協(xié)議。SyncML雙向事務(wù)級同步程序框架是建立在表示協(xié)議、同步協(xié)議和傳輸協(xié)議三個協(xié)議的基礎(chǔ)上的1。同步表示協(xié)議定義了同步消息的格式描述,所有的消息都由用戶數(shù)據(jù),標(biāo)志數(shù)據(jù)和同步命令組成,其格式為XML或WBXML。還定義了同步框架內(nèi)工作的細(xì)節(jié)。同步協(xié)議定義了服務(wù)器和客戶端的添加、刪除、替換等數(shù)據(jù)的協(xié)議流,實現(xiàn)同步客戶端和同步服務(wù)器端的交互。傳輸協(xié)議是SyncML底層協(xié)議,其支持HTTP,WSP,OBEX等協(xié)議,可以完成步客戶端和服務(wù)器雙方相互通信。Sy

7、ncML同步協(xié)議中定義了SyncML所支持的七種同步類型2:雙向同步:由客戶端首先發(fā)起,然后客戶端和服務(wù)器互換更新信息;慢同步:客戶端把自己所有的數(shù)據(jù)都發(fā)給服務(wù)器,由服務(wù)器比較更新客戶端的數(shù)據(jù);客戶端單向同步:只由客戶端向服務(wù)器發(fā)送自己更新的信息,服務(wù)器作相應(yīng)修改;服務(wù)器單向同步:只有服務(wù)器發(fā)送修改信息,客戶端作相應(yīng)修改;客戶端刷新同步:客戶端發(fā)送其所有信息給服務(wù)器,并刷新服務(wù)器上的數(shù)據(jù);服務(wù)器端刷新同步:服務(wù)器發(fā)送其所有信息給客戶端,以完全代替客戶端的原有數(shù)據(jù);服務(wù)器通告同步:由服務(wù)器通告客戶端,請求客戶端開始某種類型的同步。七種同步類型的同步過程都有很多相似之處,雙向同步是最常見、最復(fù)雜、

8、也是最具有代表性的一種同步。3基于syncML的雙向事務(wù)級同步雙向同步能夠使客戶端與服務(wù)器端互相交換數(shù)據(jù)修改信息,其是進(jìn)行數(shù)據(jù)同步的一種常見類型?;趕yncML的雙向事務(wù)級同步模型中:SyncML客戶端通常是移動電話、PDA、PC等,而SyncML服務(wù)器可以是專門的服務(wù)器或PC。同步時,由客戶端agent調(diào)用SyncMLI/F接口,SyncML適配器模塊負(fù)責(zé)將數(shù)據(jù)類型轉(zhuǎn)換成XML格式,把客戶端的更改信息發(fā)送給服務(wù)器,而服務(wù)器agent接收到更改信息后,調(diào)用同步引擎進(jìn)行同步分析、檢測和解決沖突,然后把處理結(jié)果和更改要求返回給客戶端。但也有些情況是由服務(wù)器首先開始同步過程。同步過程中,雙方在接收

9、到對方數(shù)據(jù)的修改信息后對本地數(shù)據(jù)進(jìn)行相應(yīng)的操作,從而使得雙方數(shù)據(jù)保持一致。3.1基于SyncML的雙向事務(wù)級同步設(shè)計重要部分在基于SyncML的雙向同步過程中,SyncML的雙向同步設(shè)計主要包括以下幾個重要部分:變化日志:在syncML同步過程中,采用變化日志的方法來獲取源數(shù)據(jù)庫的數(shù)據(jù)更新信息,即進(jìn)行同步的每個設(shè)備保存了設(shè)備上每個數(shù)據(jù)項從上次同步時的修改日志,利用變化日志的信息跟蹤機(jī)制來解決客戶端和服務(wù)器端的信息交換或修改的問題。數(shù)據(jù)映射:客戶端和服務(wù)器在數(shù)據(jù)庫中的所有數(shù)據(jù)項都設(shè)計唯一的標(biāo)識符,這些標(biāo)識符可以用來標(biāo)識該數(shù)據(jù)項是否發(fā)生了變動,以便進(jìn)行同步操作。同一數(shù)據(jù)在客戶端本地唯一標(biāo)識符(LU

10、ID)和服務(wù)器的全局唯一標(biāo)識符(GUID)可能會不一致,考慮到移動客戶端的內(nèi)存受限,在同步服務(wù)器中設(shè)計一個指向相同數(shù)據(jù)項的客戶端標(biāo)識符和服務(wù)器標(biāo)識符的映射關(guān)系的標(biāo)識符映像表,以保證服務(wù)端和客戶端的數(shù)據(jù)交換的一致性。同步錨:使用與設(shè)備數(shù)據(jù)庫相聯(lián)系的時間戳作為同步錨進(jìn)行同步狀態(tài)檢查。每次同步結(jié)束時服務(wù)器和客戶端都保存同步錨(數(shù)據(jù)同步結(jié)束后的時間點)。下一次同步時,比較雙方同步錨,若同步錨互相匹配,表明接收設(shè)備沒有失敗的同步過程的發(fā)生,可以進(jìn)行正常的雙向同步,而同步錨不匹配,表明接收設(shè)備的上一次同步過程存在問題,則進(jìn)行慢同步,以便使雙方數(shù)據(jù)達(dá)到一致。沖突處理:由于客戶端和服務(wù)器端可能同時修改同一個數(shù)

11、據(jù)項而產(chǎn)生不同版本,因此須由同步引擎來檢測和解決版本沖突3,即預(yù)先定義沖突檢測和處理規(guī)則,同步引擎的服務(wù)端根據(jù)沖突規(guī)則檢測到?jīng)_突后,返回一狀態(tài)碼,服務(wù)端將使用狀態(tài)碼和通知功能通知同步客戶端并根據(jù)沖突規(guī)則來解決沖突。沖突解決規(guī)則主要采用服務(wù)器優(yōu)先規(guī)則。安全性:SyncML提供了安全的數(shù)據(jù)同步構(gòu)架。雖然它本身沒有定義新的安全方案,但它采用了不同層面上驗證的構(gòu)架,從而有效的保證了通信雙方的身份合法性和通信系統(tǒng)的安全。即當(dāng)同步的一方要求另一方進(jìn)行身份驗證時,可以向?qū)Ψ桨l(fā)送一個自己的認(rèn)證信息,接收方如果想要繼續(xù)進(jìn)行同步,就可以將自己的認(rèn)證信息發(fā)送給對方同步實體,來進(jìn)行身份驗證,保證通信的安全。設(shè)備能力:

12、客戶端和服務(wù)器在同步會話的初始化階段交換它們各自能力的信息,也就是設(shè)備能力??蛻舳伺c服務(wù)器之間必須交換設(shè)備信息(包括設(shè)備類型、設(shè)備型號等)和服務(wù)信息(表示客戶端或服務(wù)器所支持?jǐn)?shù)據(jù)對象的能力)兩種設(shè)備能力信息。3.2基于syncML的雙向事務(wù)級同步處理過程整個同步過程都是通過發(fā)送syncMLXML格式的消息包來完成同步。整個同步過程(如圖1syncML雙向事務(wù)級同步流程圖所示)可分為兩個過程:同步初始化過程、同步操作。3.2.1同步初始化同步初始化階段,客戶端和服務(wù)器須交換初始化包。首先由客戶端向服務(wù)器發(fā)送初始化包(PKG1),其中包括要同步的數(shù)據(jù)庫及同步類型、SyncML服務(wù)層的身份驗證信息、

13、同步錨。同步客戶端在第一次同步會話還必須給服務(wù)器發(fā)送設(shè)備信息,而客戶端在初始化的第一個包中是否發(fā)送身份驗證信息是可選的。服務(wù)器收到客戶端的PKG1后,檢查所有客戶端想要同步的數(shù)據(jù)庫狀態(tài),將客戶端的設(shè)備能力與自己進(jìn)行比較,為各自的數(shù)據(jù)庫進(jìn)行同步錨(同步結(jié)束后的時間點)匹配,然后給客戶端發(fā)送初始化包(PKG2),其中包括通知操作、客戶端想要同步的每個數(shù)據(jù)庫的相關(guān)狀態(tài)元素、驗證信息、同步錨及設(shè)備信息。這里的通知操作表明由服務(wù)器根據(jù)同步錨和當(dāng)前的會話狀態(tài)決定的此次同步會話中雙方應(yīng)該選擇的同步方式信息。3.2.2同步操作完成同步初始化后,開始進(jìn)行真正同步,以維護(hù)服務(wù)端和客戶端的數(shù)據(jù)一致性。同步操作主要分

14、為以下幾步:同步準(zhǔn)備:客戶端根據(jù)收到PKG2,采取相應(yīng)的同步類型啟動同步??蛻舳烁鶕?jù)內(nèi)部改變?nèi)罩拘畔ⅲ_定上次同步后在其數(shù)據(jù)庫內(nèi)所作的修改(包括新記錄的增加、以前記錄的刪除或已存在記錄的更新),通過不同的SyncML命令將這些信息(PKG3)發(fā)送到服務(wù)器。PKG3發(fā)送后,客戶端所作的任何修改操作都必須在下次同步會話期間報告服務(wù)器,不允許將其放在隨后客戶端送至服務(wù)器的包中。沖突檢測與處理:服務(wù)器收到客戶端的同步包PKG3后,執(zhí)行客戶端發(fā)送的命令。同步服務(wù)器中的同步引擎對PKG3進(jìn)行同步分析,將同步客戶端和服務(wù)器端的數(shù)據(jù)比較,檢測并處理沖突,更新服務(wù)器端的數(shù)據(jù)庫。服務(wù)器解決此過程中可能發(fā)生的沖突,

15、然后服務(wù)器建立包含所有客戶端所發(fā)命令的狀態(tài)報告,同自己的數(shù)據(jù)修改綁在一起,發(fā)送給客戶端(PKG4)。PKG4發(fā)送后,服務(wù)器所作的任何修改都必須在下次同步會話期間報告客戶端,不允許將其放在隨后服務(wù)器送至客戶端的包中。同步更新:客戶端收到服務(wù)器的PKG4后,客戶端執(zhí)行所有命令,然后進(jìn)行數(shù)據(jù)狀態(tài)更新,更新同步錨、準(zhǔn)備MAP命令等,然后將更新結(jié)果狀態(tài)和Map命令包(PKG5)發(fā)送給同步服務(wù)器。狀態(tài)更新包含一系列映像操作,以便服務(wù)器在它的映像表中將所有的LUID和GUID進(jìn)行匹配。同步確認(rèn):同步服務(wù)器收到狀態(tài)更新包含一系列映像操作,更新服務(wù)端ID映射和同步錨。同步成功后,服務(wù)器向客戶端發(fā)送數(shù)據(jù)映射確認(rèn)同

16、步包(PKG6)。即使客戶端與服務(wù)器之間交換的最后一個包中不包含映像操作,服務(wù)器也發(fā)送這個確認(rèn)。整個同步過程是從客戶端和服務(wù)器建立數(shù)據(jù)連接開始,至SyncML服務(wù)器停止發(fā)送對Map命令的響應(yīng)??蛻舳撕头?wù)器共交互了6個SyncML消息包(PKG)。每個消息包采用XML格式傳送。在同步端和客戶端采用SyncML適配器模塊進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換4:一是當(dāng)接受從客戶端傳來的同步SyncML數(shù)據(jù)包時,提取解析出在服務(wù)器數(shù)據(jù)庫中數(shù)據(jù)表示形式;二是當(dāng)需要從服務(wù)器向客戶端傳送同步數(shù)據(jù)包時,將相應(yīng)的數(shù)據(jù)內(nèi)容轉(zhuǎn)化為SyncML消息格式。同時也引入了agent技術(shù)這樣就實現(xiàn)了異構(gòu)數(shù)據(jù)庫訪問和同步。4小結(jié)本文作者創(chuàng)新點是

17、在基于SyncML的雙向同步過程中可以只傳輸與同步移動端相關(guān)的變化事務(wù),減少了數(shù)據(jù)傳輸,保證事務(wù)的串行性;采用SyncML表示協(xié)議和agent技術(shù)來實現(xiàn)異構(gòu)數(shù)據(jù)庫間數(shù)據(jù)映射;對同步引擎進(jìn)行擴(kuò)充,自動進(jìn)行沖突檢測并進(jìn)行自適應(yīng)性沖突處理,有效保證移動數(shù)據(jù)庫一致性和通用性。在不同類型設(shè)備間,實現(xiàn)不同結(jié)構(gòu)數(shù)據(jù)庫之間的,使移動數(shù)據(jù)系統(tǒng)能方便容納 主流數(shù)據(jù)庫產(chǎn)品,增強(qiáng)系統(tǒng)可擴(kuò)充性。當(dāng)然還可以在基于SyncML的同步過程中,可以在雙向同步基礎(chǔ)上進(jìn)行改進(jìn),以真正實現(xiàn)基于SyncML協(xié)議的7種類型同步。參考文獻(xiàn):1王俊建,張繼棠.SyncML數(shù)據(jù)同步協(xié)議的核心模塊實現(xiàn)J.信息技術(shù),2005,8:76-792周英軍,賈世樓.基于SyncML協(xié)議的數(shù)據(jù)同步過程的研究與優(yōu)化J.移動通信20

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論