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