(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。