新聞中心

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ò) 收藏
2.2 系統(tǒng)初始化
2.2.1 填充[5]
(1)統(tǒng)一
服務(wù)器dbsrv9上啟動(dòng)數(shù)據(jù)庫(kù)consol.db后,通過(guò)Sybase Central連接到數(shù)據(jù)庫(kù),為數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)名為student的表,只添加屬性SId和SName,不填充數(shù)據(jù)。
(2)遠(yuǎn)程數(shù)據(jù)庫(kù)
啟動(dòng)Windows CE上的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器,并在服務(wù)器啟動(dòng)遠(yuǎn)程數(shù)據(jù)庫(kù)remote.db。然后用Sybase Central通過(guò)網(wǎng)絡(luò)連接到遠(yuǎn)程數(shù)據(jù)庫(kù),為數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)名為student的表,添加與統(tǒng)一數(shù)據(jù)庫(kù)中的表student相同的屬性,并添加記錄。
2.2.2 創(chuàng)建數(shù)據(jù)源
(1)統(tǒng)一數(shù)據(jù)庫(kù)
用ODBC管理器為統(tǒng)一數(shù)據(jù)庫(kù)consol創(chuàng)建數(shù)據(jù)源test_consol。
(2)遠(yuǎn)程數(shù)據(jù)庫(kù)
由于Windows CE沒(méi)有ODBC管理器,因此為遠(yuǎn)程數(shù)據(jù)庫(kù)創(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ù)庫(kù)
通過(guò)Sybase Central連接到遠(yuǎn)程數(shù)據(jù)庫(kù),為表student創(chuàng)建一個(gè)新的發(fā)布stu_pub。創(chuàng)建用戶ml_student,為該用戶預(yù)定發(fā)布stu_pub。設(shè)置預(yù)定ml_student的屬性,在Connection選項(xiàng)卡中分別設(shè)置PC機(jī)的IP地址和服務(wù)器啟動(dòng)的端口號(hào)。
(2)統(tǒng)一數(shù)據(jù)庫(kù)
通過(guò) Synchronization連接到統(tǒng)一數(shù)據(jù)庫(kù),在表->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機(jī)命令提示符中運(yùn)行如下命令:
dbmlsrv9-c“dsn=test_consol”-o mlserver.mls-v+-dl-x tcpip(port=2639)-za-zu+
2.3.2 啟動(dòng)MobiLink客戶端
針對(duì)Adaptive Server Anywhere遠(yuǎn)程數(shù)據(jù)庫(kù),MobiLink提供了2種客戶端,(1)用于支持Win32平臺(tái);(2)用于支持Windows CE平臺(tái)。在2種平臺(tái)中MobiLink客戶端文件名都為dbmlsync的命令行程序。
在Win32平臺(tái)中啟動(dòng)MobiLink客戶端有2種方法:
(1)直接運(yùn)行程序dbmlsync,如圖2所示,在這個(gè)設(shè)置界面中設(shè)置好相關(guān)參數(shù)后即可啟動(dòng)同步。

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


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


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


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

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉