基于MobiLink的移動(dòng)數據庫同步技術(shù)研究
2.2.1 填充數據庫[5]
(1)統一數據庫
在數據庫服務(wù)器dbsrv9上啟動(dòng)數據庫consol.db后,通過(guò)Sybase Central連接到數據庫,為數據庫創(chuàng )建一個(gè)名為student的表,只添加屬性SId和SName,不填充數據。
(2)遠程數據庫
啟動(dòng)Windows CE上的網(wǎng)絡(luò )數據庫服務(wù)器,并在服務(wù)器啟動(dòng)遠程數據庫remote.db。然后用Sybase Central通過(guò)網(wǎng)絡(luò )連接到遠程數據庫,為數據庫創(chuàng )建一個(gè)名為student的表,添加與統一數據庫中的表student相同的屬性,并添加記錄。
2.2.2 創(chuàng )建數據源
(1)統一數據庫
用ODBC管理器為統一數據庫consol創(chuàng )建數據源test_consol。
(2)遠程數據庫
由于Windows CE沒(méi)有ODBC管理器,因此為遠程數據庫創(chuàng )建文件數據源。創(chuàng )建名為student.dsn的文本文件,填充如下內容:
[ODBC]
uid=dba
pwd=sql
enginename=remote
databasename=remote
2.2.3 準備同步
(1)遠程數據庫
通過(guò)Sybase Central連接到遠程數據庫,為表student創(chuàng )建一個(gè)新的發(fā)布stu_pub。創(chuàng )建MobiLink用戶(hù)ml_student,為該用戶(hù)預定發(fā)布stu_pub。設置同步預定ml_student的屬性,在Connection選項卡中分別設置PC機的IP地址和MobiLink服務(wù)器啟動(dòng)的端口號。
(2)統一數據庫
通過(guò)MobiLink Synchronization連接到統一數據庫,在表->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 啟動(dòng)同步
2.3.1 啟動(dòng)MobiLink服務(wù)器
在PC機命令提示符中運行如下命令:
dbmlsrv9-c“dsn=test_consol”-o mlserver.mls-v+-dl-x tcpip(port=2639)-za-zu+
2.3.2 啟動(dòng)MobiLink客戶(hù)端
針對Adaptive Server Anywhere遠程數據庫,MobiLink提供了2種客戶(hù)端,(1)用于支持Win32平臺;(2)用于支持Windows CE平臺。在2種平臺中MobiLink客戶(hù)端文件名都為dbmlsync的命令行程序。
在Win32平臺中啟動(dòng)MobiLink客戶(hù)端有2種方法:
(1)直接運行程序dbmlsync,如圖2所示,在這個(gè)設置界面中設置好相關(guān)參數后即可啟動(dòng)同步。本文引用地址:http://dyxdggzs.com/article/151976.htm
(2)在命令提示符中運行如下命令:
dbmlsync-c “dsn=student”-e “sch=EVERY:00:05”
與Win32平臺不同的是,一方面Windows CE平臺不支持命令行程序;另一方面Windows CE平臺中的MibiLink客戶(hù)端輸入相關(guān)參數后仍然不能順利實(shí)現同步,而且在只有觸摸筆的Windows CE設備中輸入參數很不方便。
為了解決這個(gè)問(wèn)題,本文采用了快捷方式文件啟動(dòng)的方法。在Windows CE中創(chuàng )建名為sync.lnk的文本文件,內容如下:100#“Program FilesSybaseASA9dbmlsync.exe” -c “dsn=student” -e “sch=EVERY:00:05”。
這是一個(gè)指向dbmlsync的快捷方式文件,同時(shí)在文件中提供了程序運行所需要的參數,運行這個(gè)文件即可成功實(shí)現同步。同步后的狀態(tài)如圖3所示。
3 應用前景
MobiLink可以應用于具有以下要求的同步系統:
(1)大量數據庫,MobiLink可用于支持大量的遠程數據庫。在單個(gè)系統中,可支持數以千計的遠程數據庫。
(2)不定時(shí)連接,MobiLink支持不定時(shí)連接或間接連接到服務(wù)器所在網(wǎng)絡(luò )的數據庫。
(3)靈活的同步調度,應用程序按指定的間隔(幾分鐘、幾小時(shí)或幾天)進(jìn)行連接和同步。
(4)低或中等容量,每次只能給遠程站點(diǎn)準備1個(gè)下載信息。在MobiLink系統中,如果數據量很大,就會(huì )造成較長(cháng)的連接時(shí)間,因為遠程站點(diǎn)在同步完成之前不能斷開(kāi)連接。
(5)異類(lèi)數據庫,MobiLink支持將許多常用的關(guān)系數據庫用作統一數據庫。遠程站點(diǎn)的模式可以與統一數據庫的模式不同,因為可通過(guò)編寫(xiě)腳本來(lái)控制同步過(guò)程。
隨著(zhù)移動(dòng)計算技術(shù)、無(wú)線(xiàn)通信技術(shù)和移動(dòng)數據庫技術(shù)的飛速發(fā)展,MobiLink數據庫同步技術(shù)將會(huì )在移動(dòng)數據庫系統中發(fā)揮越來(lái)越重要的作用。
本文在分析了MobiLink數據庫同步技術(shù)原理的基礎上,研究了通過(guò)MobiLink來(lái)實(shí)現移動(dòng)數據庫同步的方法,并利用快捷方式文件解決了Windows CE中MobiLink客戶(hù)端不能有效傳遞參數和輸入不便的問(wèn)題,最后對MobiLink同步技術(shù)的應用前景提出了展望。
評論