新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MobiLink的移動(dòng)數(shù)據(jù)庫(kù)同步技術(shù)研究

基于MobiLink的移動(dòng)數(shù)據(jù)庫(kù)同步技術(shù)研究

作者: 時(shí)間:2010-04-01 來(lái)源:網(wǎng)絡(luò) 收藏
近年來(lái),隨著計(jì)算的快速發(fā)展,智能手機(jī)、PDA等設(shè)備的普遍使用,使得數(shù)據(jù)在分布式系統(tǒng),特別是在系統(tǒng)中發(fā)揮了愈來(lái)愈大的作用[1-2]。數(shù)據(jù)可以使遠(yuǎn)程和統(tǒng)一數(shù)據(jù)庫(kù)保持,達(dá)到共享數(shù)據(jù)和保持?jǐn)?shù)據(jù)一致性的目的。是iAnywhere Solutions公司開(kāi)發(fā)的會(huì)話(huà)的關(guān)系數(shù)據(jù)庫(kù)同步系統(tǒng),它支持遠(yuǎn)程數(shù)據(jù)庫(kù)和統(tǒng)一數(shù)據(jù)庫(kù)之間的雙向數(shù)據(jù)同步,非常適用于移動(dòng)計(jì)算環(huán)境。
1 同步系統(tǒng)
會(huì)話(huà)的同步系統(tǒng),它允許在統(tǒng)一數(shù)據(jù)庫(kù)與多個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)之間進(jìn)行雙向數(shù)據(jù)同步[3]。統(tǒng)一數(shù)據(jù)庫(kù)是可以支持任何ODBC標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù),保存了所有數(shù)據(jù)的主副本。遠(yuǎn)程數(shù)據(jù)庫(kù)是Adaptive Server Anywhere數(shù)據(jù)庫(kù)或UltraLite數(shù)據(jù)庫(kù),保存了部分?jǐn)?shù)據(jù)的副本。通常,當(dāng)MobiLink遠(yuǎn)程站點(diǎn)請(qǐng)求與MobiLink同步服務(wù)器連接時(shí),便開(kāi)始了同步過(guò)程。同步期間,遠(yuǎn)程站點(diǎn)的MobiLink客戶(hù)端將上載自上一次同步以來(lái)對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)所作的更改。MobiLink同步服務(wù)器在接收到這些數(shù)據(jù)時(shí)開(kāi)始更新統(tǒng)一數(shù)據(jù)庫(kù),然后將統(tǒng)一數(shù)據(jù)庫(kù)中的更改下載到遠(yuǎn)程數(shù)據(jù)庫(kù)。
1.1 MobiLink同步系統(tǒng)的結(jié)構(gòu)
MobiLink同步系統(tǒng)的結(jié)構(gòu)如圖1所示[4]:

本文引用地址:http://www.butianyuan.cn/article/151976.htm


(1)統(tǒng)一數(shù)據(jù)庫(kù),此數(shù)據(jù)庫(kù)包含同步系統(tǒng)中所有數(shù)據(jù)的集中副本。
(2)統(tǒng)一數(shù)據(jù)庫(kù)服務(wù)器,管理統(tǒng)一數(shù)據(jù)庫(kù)的服務(wù)器或DBMS。此服務(wù)器可以是Sybase公司的產(chǎn)品,如Adaptive Server Anywhere或Adaptive Server Enterprise,也可以是其他公司支持ODBC標(biāo)準(zhǔn)的DBMS(如Oracle,Microsoft SQL Server等)。
(3)ODBC,MobiLink同步服務(wù)器和統(tǒng)一數(shù)據(jù)庫(kù)之間的所有通信都通過(guò)ODBC進(jìn)行連接。ODBC使同步服務(wù)器可以連接多種統(tǒng)一數(shù)據(jù)庫(kù)系統(tǒng)。
(4)MobiLink同步服務(wù)器,此服務(wù)器管理同步過(guò)程并提供所有MobiLink客戶(hù)端與統(tǒng)一數(shù)據(jù)庫(kù)服務(wù)器之間的接口。
(5)網(wǎng)絡(luò),MobiLink同步服務(wù)器與MobiLink客戶(hù)端或UltraLite之間的連接,可以使用多種協(xié)議。
(6)MobiLink同步客戶(hù)端,通過(guò)網(wǎng)絡(luò)與MobiLink同步服務(wù)器進(jìn)行連接,是遠(yuǎn)程數(shù)據(jù)庫(kù)與MobiLink同步服務(wù)器之間進(jìn)行通信的接口。
(7)遠(yuǎn)程數(shù)據(jù)庫(kù),此數(shù)據(jù)庫(kù)包含同步系統(tǒng)中部分?jǐn)?shù)據(jù)的副本。
1.2 MobiLink同步系統(tǒng)的特性[4]
MobiLink同步系統(tǒng)具有很強(qiáng)的適應(yīng)性和靈活性。其關(guān)鍵特性如下:
(1)數(shù)據(jù)協(xié)調(diào),MobiLink可以為同步過(guò)程選擇數(shù)據(jù)的特定部分,并解決不同數(shù)據(jù)庫(kù)之間的更改沖突。同步過(guò)程由編寫(xiě)為SQL、Java或.NET應(yīng)用程序的同步邏輯控制。同步邏輯的每個(gè)單元稱(chēng)為1個(gè)腳本。例如,可以使用腳本指定如何將上載的數(shù)據(jù)應(yīng)用到統(tǒng)一數(shù)據(jù)庫(kù)中,并指定下載內(nèi)容,以及處理統(tǒng)一數(shù)據(jù)庫(kù)與遠(yuǎn)程數(shù)據(jù)庫(kù)之間不同的模式和名稱(chēng)。
(2)自動(dòng)化,MobiLink具備多種自動(dòng)化功能??梢灾笇?dǎo)MobiLink同步服務(wù)器生成適合于快照同步的腳本,或者生成示例同步腳本。它還可以自動(dòng)添加需要鑒定的用戶(hù)。服務(wù)器啟動(dòng)的同步系統(tǒng)允許將數(shù)據(jù)更新推送到遠(yuǎn)程數(shù)據(jù)庫(kù)。
(3)監(jiān)控和報(bào)告,MobiLink提供了2種同步監(jiān)控機(jī)制:MobiLink監(jiān)控器和統(tǒng)計(jì)腳本??梢员O(jiān)控腳本、模式內(nèi)容、行數(shù)的值、腳本名稱(chēng)、轉(zhuǎn)換的腳本內(nèi)容以及行值。
(4)性能調(diào)優(yōu),調(diào)優(yōu)MobiLink性能的機(jī)制有多種。例如,可以調(diào)優(yōu)爭(zhēng)用程度、上載高速緩存大小、數(shù)據(jù)庫(kù)連接數(shù)、工作線(xiàn)程數(shù)、日志詳細(xì)程度或BLOB高速緩存的大小。
(5)雙向同步,可以在任意位置對(duì)數(shù)據(jù)庫(kù)進(jìn)行更改。
(6)僅上載同步或僅下載同步,可以選擇僅執(zhí)行上載或僅執(zhí)行下載。
(7)文件的下載,可以將下載作為文件分發(fā),從而實(shí)現(xiàn)了脫機(jī)分發(fā)同步更改。只需1次創(chuàng)建文件,然后將其廣泛分發(fā)。
(8)服務(wù)器啟動(dòng)的同步,可從統(tǒng)一數(shù)據(jù)庫(kù)啟動(dòng)MobiLink同步。這意味著可以將數(shù)據(jù)更新推送到遠(yuǎn)程數(shù)據(jù)庫(kù),并讓遠(yuǎn)程數(shù)據(jù)庫(kù)將更新數(shù)據(jù)上載到統(tǒng)一數(shù)據(jù)庫(kù)中。
(9)通信流的選擇,同步可以通過(guò)TCP/IP、HTTP或HTTPS執(zhí)行。Palm設(shè)備可以通過(guò)HotSync同步。Windows CE設(shè)備可以使用ActiveSync同步。
(10)遠(yuǎn)程啟動(dòng),可以在遠(yuǎn)程數(shù)據(jù)庫(kù)啟動(dòng)該數(shù)據(jù)庫(kù)和統(tǒng)一數(shù)據(jù)庫(kù)之間的同步。
(11)基于會(huì)話(huà),對(duì)所有更改的上載和下載都分別在單個(gè)事務(wù)中完成。每次同步成功完成后,統(tǒng)一數(shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù)將保持一致。
(12)事務(wù)完整性,要么同步全部事務(wù)、要么不進(jìn)行任何同步。確保了每個(gè)數(shù)據(jù)庫(kù)的事務(wù)完整性。
(13)數(shù)據(jù)一致性,MobiLink使用松散一致性策略來(lái)進(jìn)行操作。所有更改經(jīng)過(guò)一段時(shí)間后,將在每個(gè)站點(diǎn)中保持一致,從而實(shí)現(xiàn)同步,但在任一瞬時(shí)不同的站點(diǎn)可能擁有不同的數(shù)據(jù)副本。
(14)范圍廣泛的硬件和軟件平臺(tái),多種廣泛使用的數(shù)據(jù)庫(kù)管理系統(tǒng)都可以用作MobiLink統(tǒng)一數(shù)據(jù)庫(kù):Adaptive Server Anywhere、Adaptive Server Enterprise、Oracle、Microsoft SQL Server 或 IBM DB2等。遠(yuǎn)程數(shù)據(jù)庫(kù)可以是Adaptive Server Anywhere數(shù)據(jù)庫(kù)或UltraLite數(shù)據(jù)庫(kù)。MobiLink同步服務(wù)器可在Windows或UNIX平臺(tái)上運(yùn)行。Adaptive Server Anywhere可在Windows、Windows CE或UNIX計(jì)算機(jī)上運(yùn)行。UltraLite可在Palm、Windows CE或基于Java的設(shè)備上運(yùn)行。
(15)靈活性,MobiLink同步服務(wù)器使用SQL、Java或.NET腳本來(lái)控制數(shù)據(jù)的上載和下載。該腳本在每次同步期間將根據(jù)事件模型執(zhí)行。通過(guò)基于事件的腳本編寫(xiě)這種方式,為同步過(guò)程的設(shè)計(jì)提供了很大的靈活性,包括如解決沖突、錯(cuò)誤報(bào)告和用戶(hù)鑒定等功能。
(16)可伸縮性,MobiLink同步是可伸縮的:1個(gè)服務(wù)器可以處理數(shù)千個(gè)共存的同步,而通過(guò)負(fù)載平衡可以同時(shí)運(yùn)行多個(gè)MobiLink服務(wù)器。MobiLink同步服務(wù)器是多線(xiàn)程的,可對(duì)統(tǒng)一數(shù)據(jù)庫(kù)使用連接池,并提供大量的監(jiān)控和報(bào)告工具。
2 使用MobiLink進(jìn)行移動(dòng)數(shù)據(jù)庫(kù)同步
本文主要目的在于利用MobiLink同步技術(shù),在統(tǒng)一數(shù)據(jù)庫(kù)和移動(dòng)數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)同步的方法。但在MobiLink的幫助文檔中,對(duì)于如何在Windows CE平臺(tái)中啟動(dòng)MobiLink客戶(hù)端沒(méi)有給出明確說(shuō)明,中發(fā)現(xiàn),Windows CE中的MobiLink客戶(hù)端不能有效地傳遞參數(shù),同時(shí)使用觸摸筆輸入?yún)?shù)也很不方便。經(jīng)過(guò)提出了一種利用快捷方式文件啟動(dòng)的解決方法。
本文選用Sybase公司的Adaptive Server Anywhere分別作為統(tǒng)一數(shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù)。Adaptive Server Anywhere是基于事務(wù)的關(guān)系數(shù)據(jù)庫(kù),適用于個(gè)人和工作組,可以在多種操作系統(tǒng)上運(yùn)行,包括各種Windows和UNIX操作系統(tǒng)以及Novell NetWare操作系統(tǒng)。
2.1 資源配置
(1)工作平臺(tái)和軟件環(huán)境
硬件平臺(tái):PC機(jī)和Windows CE移動(dòng)設(shè)備。統(tǒng)一數(shù)據(jù)庫(kù):Adaptive Server Anywhere 9.0,在PC機(jī)安裝SQL Anywhere Studio 9.0。移動(dòng)數(shù)據(jù)庫(kù):Adaptive Server Anywhere 9.0,通過(guò)SQL Anywhere for Windows CE部署選項(xiàng)將Adaptive Server Anywhere部署到Windows CE設(shè)備上。網(wǎng)絡(luò):TCP/IP。
(2)準(zhǔn)備數(shù)據(jù)庫(kù)
統(tǒng)一數(shù)據(jù)庫(kù):用Sybase Central在PC機(jī)創(chuàng)建1個(gè)統(tǒng)一數(shù)據(jù)庫(kù)consol.db。遠(yuǎn)程數(shù)據(jù)庫(kù):用Sybase Central為Windows CE創(chuàng)建1個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)remote.db。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉