论文摘要
本文在比较了大量已有的数据同步协议和技术的基础上,对异构数据库同步中的各种可能出现的问题进行了深入研究,在充分保证用户系统自治的前提下,基于SyncML同步协议,在已有异构数据库同步系统的基础上,提出一系列策略和方法,对现有系统进行全面改进,保证异构数据库同步中间件的稳定性、可靠性,大幅提高系统的性能,并满足对数据安全有很高要求的应用需要。最终实现了可以在Oracle、Sybase、SQL Server等主流数据库产品之间进行同步的安全、稳定、高效的系统,并对其数据同步安全性、效率、健壮性等方面进行了实际测试。主要工作概括如下:(1)为了满足大数据量同步需求的数据库同步应用,在服务器和客户端分别设计了“同步状态表”用以记录每次同步的进程信息,实现了“水平分割”技术,并提出了一种数据同步能力适应处理策略,解决了原系统在进行大数据量的数据库同步时的稳定性不足的问题。(2)由于服务器峰值的动态过载而出现例外或网络故障等其它不可预知的原因,正在进行的同步过程可能会被迫中断。为了解决同步异常后的恢复问题,设计了“断点续传”技术,并实现了在此基础上的高效的异常处理方法,与原系统相比能大幅度提高系统的异常恢复效率。(3)为了保证各节点数据副本的最终一致性,更好的解决数据同步带来的冲突,本文基于在服务器端设计的“同步时间表”实现了三种冲突自动解决策略;并通过在服务器端设计的“冲突检测记录表”记录冲突,设计了一整套手动解决冲突的方法,并给出了完整的算法流程。通过用户可配置的冲突处理模块,系统保证了各节点数据副本的最终一致性。(4)为了解决同步过程中数据的安全传输问题,本文将SyncML协议与XML加密机制相结合,应用AES密钥算法,实现了对SyncML消息的加/解密,从而满足了对数据安全有很高要求的应用需要,与现有的同步系统相比具有更强的安全性。(5)将设计方案与软件工程实践相结合,在现有原型系统的基础上,完整实现了可以在Oracle、Sybase、SQL Server等主流数据库产品之间进行同步的系统。并对其中重要的模块进行了同步测试,实验结果表明系统可在充分保证用户自治性的前提下,较好地完成异构数据库的同步。