论文部分内容阅读
移动设备与人们的生活已密不可分,每天在移动设备上都会产生大量的数据,而如何在不同设备间保持数据的一致性成为了数据同步研究中的一个重要课题。在众多数据同步协议中,SyncML协议是实现移动数据同步的工业标准协议。越来越多的基于SyncML实现的数据同步应用投入了使用,不过在同步大量文件时,如某些缓存文件,其数量将达到上万甚至更多,这时同步便存在着时间长,甚至同步失败的问题。因此,如何在这种情况下减少同步时间成为了当前移动数据同步研究的重点。目前,已有许多学者对SyncML协议进行了改进,以提高同步效率,这些工作大多集中于对网络传输过程的优化。比如有人提出了对同步文件进行哈夫曼编码的方式,通过压缩同步数据来减少同步传输量;也有研究工作是基于事务优先级同步模型,通过优化传输过程来降低同步时间。这些研究虽然能提高同步效率,但都忽略了在文件传输前对其进行分类同步的考虑。本文认为,在同步文件数量巨大的情况下,针对协议传输过程的改进固然重要,但传输前对文件的预处理优化工作同样值得认真研究。SyncML协议没有在同步前对巨大数量的文件进行区分,对所有文件进行诸如变化日志记录,同步锚设置等复杂的处理,导致协议在同步文件数量巨大的情况下表现出同步速度缓慢,甚至同步失败。针对此问题,通过仔细分析应用场景,本文提出了修改频繁度的概念,并根据修改频繁度将文件划分为两类:非频繁修改文件和频繁修改文件。对于频繁修改文件,按照原协议的方法进行同步;对于非频繁修改文件,忽略常规的变化日志记录等复杂处理,以节省开销,尤其是在文件数量巨大的场景下。另外,根据提出的改进方案,相应修改了SyncML同步协议及表示协议,并对更多的实现细节及方案的普遍适用性进行了较详细的探讨。为验证修改后的SyncML协议确实能有效减少同步时间,文中实现了基于SyncML协议的iOS同步客户端。通过同步iOS应用程序沙盒Documents文件夹中的数据文件,设计了实验以对比原协议中的客户端刷新同步与文中提出的备份同步的同步时间。实验分别在三种不同的移动设备上进行,均使用四组不同的文件数量作为对照组,最后对比分析实验得到的同步时间数据。实验结果表明,在文件数量较少时,备份同步与客户端刷新同步的同步效率差别不大,但随着文件数量以及非频繁修改文件的比重的增加,备份同步明显比客户端刷新同步每次同步所用的时间更少。由此得出结论:在文件数量巨大的情况下,尤其是在非频繁修改文件数量所占比重达到50%以后,本文提出的备份同步类型比原协议中的同步类型所用同步时间少。