當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于MobiLink的移動數(shù)據(jù)庫同步技術(shù)研究

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


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

    (1)統(tǒng)一數(shù)據(jù)庫
    在數(shù)據(jù)庫服務(wù)器dbsrv9上啟動數(shù)據(jù)庫consol.db后,通過Sybase Central連接到數(shù)據(jù)庫,為數(shù)據(jù)庫創(chuàng)建一個名為student的表,只添加屬性SId和SName,不填充數(shù)據(jù)。
    (2)遠程數(shù)據(jù)庫
    啟動Windows CE上的網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器,并在服務(wù)器啟動遠程數(shù)據(jù)庫remote.db。然后用Sybase Central通過網(wǎng)絡(luò)連接到遠程數(shù)據(jù)庫,為數(shù)據(jù)庫創(chuàng)建一個名為student的表,添加與統(tǒng)一數(shù)據(jù)庫中的表student相同的屬性,并添加記錄。
2.2.2 創(chuàng)建數(shù)據(jù)源
    (1)統(tǒng)一數(shù)據(jù)庫
    用ODBC管理器為統(tǒng)一數(shù)據(jù)庫consol創(chuàng)建數(shù)據(jù)源test_consol。
    (2)遠程數(shù)據(jù)庫
    由于Windows CE沒有ODBC管理器,因此為遠程數(shù)據(jù)庫創(chuàng)建文件數(shù)據(jù)源。創(chuàng)建名為student.dsn的文本文件,填充如下內(nèi)容:
    [ODBC]
    uid=dba
    pwd=sql
    enginename=remote
    databasename=remote
2.2.3 準備同步
    (1)遠程數(shù)據(jù)庫
    通過Sybase Central連接到遠程數(shù)據(jù)庫,為表student創(chuàng)建一個新的發(fā)布stu_pub。創(chuàng)建MobiLink用戶ml_student,為該用戶預(yù)定發(fā)布stu_pub。設(shè)置同步預(yù)定ml_student的屬性,在Connection選項卡中分別設(shè)置PC機的IP地址和MobiLink服務(wù)器啟動的端口號。
    (2)統(tǒng)一數(shù)據(jù)庫
    通過MobiLink Synchronization連接到統(tǒng)一數(shù)據(jù)庫,在表->DBA中將student表添加到同步表中,新建版本default。
    在同步表中選擇student表,為其添加如下腳本。
    Download_cursor
    SELECT SId, SName FROM student
    Upload_insert
    INSERT INTO student(SId, SName) VALUES (?,?)
    Upload_update
    UPDATE student SET SName =? WHERE SId =?
    Upload_delete
    DELETE FROM student WHERE SId =?
2.3 啟動同步
2.3.1 啟動MobiLink服務(wù)器

    在PC機命令提示符中運行如下命令:
    dbmlsrv9-c“dsn=test_consol”-o mlserver.mls-v+-dl-x tcpip(port=2639)-za-zu+
2.3.2 啟動MobiLink客戶端
    針對Adaptive Server Anywhere遠程數(shù)據(jù)庫,MobiLink提供了2種客戶端,(1)用于支持Win32平臺;(2)用于支持Windows CE平臺。在2種平臺中MobiLink客戶端文件名都為dbmlsync的命令行程序。
    在Win32平臺中啟動MobiLink客戶端有2種方法:
    (1)直接運行程序dbmlsync,如圖2所示,在這個設(shè)置界面中設(shè)置好相關(guān)參數(shù)后即可啟動同步。


    (2)在命令提示符中運行如下命令:
    dbmlsync-c “dsn=student”-e “sch=EVERY:00:05”
    與Win32平臺不同的是,一方面Windows CE平臺不支持命令行程序;另一方面Windows CE平臺中的MibiLink客戶端輸入相關(guān)參數(shù)后仍然不能順利實現(xiàn)同步,而且在只有觸摸筆的Windows CE設(shè)備中輸入?yún)?shù)很不方便。
    為了解決這個問題,本文采用了快捷方式文件啟動的方法。在Windows CE中創(chuàng)建名為sync.lnk的文本文件,內(nèi)容如下:100#“Program FilesSybaseASA9dbmlsync.exe” -c “dsn=student” -e “sch=EVERY:00:05”。
    這是一個指向dbmlsync的快捷方式文件,同時在文件中提供了程序運行所需要的參數(shù),運行這個文件即可成功實現(xiàn)同步。同步后的狀態(tài)如圖3所示。


3 應(yīng)用前景
    MobiLink可以應(yīng)用于具有以下要求的同步系統(tǒng):
    (1)大量數(shù)據(jù)庫,MobiLink可用于支持大量的遠程數(shù)據(jù)庫。在單個系統(tǒng)中,可支持數(shù)以千計的遠程數(shù)據(jù)庫。
    (2)不定時連接,MobiLink支持不定時連接或間接連接到服務(wù)器所在網(wǎng)絡(luò)的數(shù)據(jù)庫。
    (3)靈活的同步調(diào)度,應(yīng)用程序按指定的間隔(幾分鐘、幾小時或幾天)進行連接和同步。
    (4)低或中等容量,每次只能給遠程站點準備1個下載信息。在MobiLink系統(tǒng)中,如果數(shù)據(jù)量很大,就會造成較長的連接時間,因為遠程站點在同步完成之前不能斷開連接。
    (5)異類數(shù)據(jù)庫,MobiLink支持將許多常用的關(guān)系數(shù)據(jù)庫用作統(tǒng)一數(shù)據(jù)庫。遠程站點的模式可以與統(tǒng)一數(shù)據(jù)庫的模式不同,因為可通過編寫腳本來控制同步過程。
    隨著移動計算技術(shù)、無線通信技術(shù)和移動數(shù)據(jù)庫技術(shù)的飛速發(fā)展,MobiLink數(shù)據(jù)庫同步技術(shù)將會在移動數(shù)據(jù)庫系統(tǒng)中發(fā)揮越來越重要的作用。
    本文在分析了MobiLink數(shù)據(jù)庫同步技術(shù)原理的基礎(chǔ)上,研究了通過MobiLink來實現(xiàn)移動數(shù)據(jù)庫同步的方法,并利用快捷方式文件解決了Windows CE中MobiLink客戶端不能有效傳遞參數(shù)和輸入不便的問題,最后對MobiLink同步技術(shù)的應(yīng)用前景提出了展望。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉