基于MobiLink的移動數(shù)據(jù)庫同步技術(shù)研究
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)遠(yuǎn)程數(shù)據(jù)庫
啟動Windows CE上的網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器,并在服務(wù)器啟動遠(yuǎn)程數(shù)據(jù)庫remote.db。然后用Sybase Central通過網(wǎng)絡(luò)連接到遠(yuǎn)程數(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)遠(yuǎn)程數(shù)據(jù)庫
由于Windows CE沒有ODBC管理器,因此為遠(yuǎn)程數(shù)據(jù)庫創(chuàng)建文件數(shù)據(jù)源。創(chuàng)建名為student.dsn的文本文件,填充如下內(nèi)容:
[ODBC]
uid=dba
pwd=sql
enginename=remote
databasename=remote
2.2.3 準(zhǔn)備同步
(1)遠(yuǎn)程數(shù)據(jù)庫
通過Sybase Central連接到遠(yuǎn)程數(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遠(yuǎn)程數(shù)據(jù)庫,MobiLink提供了2種客戶端,(1)用于支持Win32平臺;(2)用于支持Windows CE平臺。在2種平臺中MobiLink客戶端文件名都為dbmlsync的命令行程序。
在Win32平臺中啟動MobiLink客戶端有2種方法:
(1)直接運行程序dbmlsync,如圖2所示,在這個設(shè)置界面中設(shè)置好相關(guān)參數(shù)后即可啟動同步。本文引用地址:http://www.ex-cimer.com/article/151976.htm
(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可用于支持大量的遠(yuǎn)程數(shù)據(jù)庫。在單個系統(tǒng)中,可支持?jǐn)?shù)以千計的遠(yuǎn)程數(shù)據(jù)庫。
(2)不定時連接,MobiLink支持不定時連接或間接連接到服務(wù)器所在網(wǎng)絡(luò)的數(shù)據(jù)庫。
(3)靈活的同步調(diào)度,應(yīng)用程序按指定的間隔(幾分鐘、幾小時或幾天)進(jìn)行連接和同步。
(4)低或中等容量,每次只能給遠(yuǎn)程站點準(zhǔn)備1個下載信息。在MobiLink系統(tǒng)中,如果數(shù)據(jù)量很大,就會造成較長的連接時間,因為遠(yuǎn)程站點在同步完成之前不能斷開連接。
(5)異類數(shù)據(jù)庫,MobiLink支持將許多常用的關(guān)系數(shù)據(jù)庫用作統(tǒng)一數(shù)據(jù)庫。遠(yuǎn)程站點的模式可以與統(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)用前景提出了展望。
評論