- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于MobiLink的移动数据库同步技术研究
(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。
2.2 系统初始化
2.2.1 填充数据库[5]
(1)统一数据库
在数据库服务器dbsrv9上启动数据库consol.db后,通过Sybase Central连接到数据库,为数据库创建一个名为student的表,只添加属性SId和SName,不填充数据。
(2)远程数据库
启动Windows CE上的网络数据库服务器,并在服务器启动远程数据库remote.db。然后用Sybase Central通过网络连接到远程数据库,为数据库创建一个名为student的表,添加与统一数据库中的表student相同的属性,并添加记录。
2.2.2 创建数据源
(1)统一数据库
用ODBC管理器为统一数据库consol创建数据源test_consol。
(2)远程数据库
由于Windows CE没有ODBC管理器,因此为远程数据库创建文件数据源。创建名为student.dsn的文本文件,填充如下内容:
[ODBC]
uid=dba
pwd=sql
enginename=remote
databasename=remote
2.2.3 准备同步
(1)远程数据库
通过Sybase Central连接到远程数据库,为表student创建一个新的发布stu_pub。创建MobiLink用户ml_student,为该用户预定发布stu_pub。设置同步预定ml_student的属性,在Connection选项卡中分别设置PC机的IP地址和MobiLink服务器启动的端口号。
(2)统一数据库
通过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 启动同步
2.3.1 启动MobiLink服务器
在PC机命令提示符中运行如下命令:
dbmlsrv9-c"dsn=test_consol"-o mlserver.mls-v+-dl-x tcpip(port=2639)-za-zu+
2.3.2 启动MobiLink客户端
针对Adaptive Server Anywhere远程数据库,MobiLink提供了2种客户端,(1)用于支持Win32平台;(2)用于支持Windows CE平台。在2种平台中MobiLink客户端文件名都为dbmlsync的命令行程序。
作者:姚建波 竺小松 吴 智 来源:电子技术应用