近年来,随着移动计算技术的快速发展,智能手机、PDA等移动设备的普遍使用,使得数据同步技术在分布式数据库系统,特别是在移动数据库系统中发挥了愈来愈大的作用[1-2]。数据同步技术可以使远程数据库和统一数据库保持同步,达到共享数据和保持数据一致性的目的。MobiLink是iAnywhere Solutions公司开发的基于会话的关系数据库同步系统,它支持远程数据库和统一数据库之间的双向数据同步,非常适用于移动计算环境。
1 MobiLink同步系统
MobiLink是基于会话的同步系统,它允许在统一数据库与多个远程数据库之间进行双向数据同步[3]。统一数据库是可以支持任何ODBC标准的数据库,保存了所有数据的主副本。远程数据库是Adaptive Server Anywhere数据库或UltraLite数据库,保存了部分数据的副本。通常,当MobiLink远程站点请求与MobiLink同步服务器连接时,便开始了同步过程。同步期间,远程站点的MobiLink客户端将上载自上一次同步以来对远程数据库所作的更改。MobiLink同步服务器在接收到这些数据时开始更新统一数据库,然后将统一数据库中的更改下载到远程数据库。
1.1 MobiLink同步系统的结构
MobiLink同步系统的结构如图1所示[4]:
(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的设备上运行。
作者:姚建波 竺小松 吴 智 来源:电子技术应用