著录项信息
专利名称 | 一种文件同步方法、电子设备和同步系统 |
申请号 | CN201010243573.9 | 申请日期 | 2010-08-02 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-02-08 | 公开/公告号 | CN102346740A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 联想(北京)有限公司 | 申请人地址 | 北京市海淀区上地信息产业基地创业路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 联想(北京)有限公司 | 当前权利人 | 联想(北京)有限公司 |
发明人 | 景涛;柯海滨 |
代理机构 | 北京银龙知识产权代理有限公司 | 代理人 | 许静 |
摘要
本发明提供一种文件同步方法、电子设备和同步系统,方法包括:文件同步方法应用于具有第一系统和第二系统构成的混合系统中,在第一系统中监控第一缓存区,第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;当第一缓存区中的第一数据发生改变时,通过第一系统与第二系统之间的数据信息通道,将第一文件处理程序对第一文件执行的操作内容发送到第二系统中;其中,由第二系统中的第二文件处理程序根据操作内容对第二文件进行同步处理;第二文件与第一文件相同。应用上述技术方案,由于设置有插件应用业务逻辑,且该插件应用业务逻辑能够实时访问缓存区,因此能够在不同的系统中对该第一文件实现实时同步更新。
1.一种文件同步方法,其特征在于,所述文件同步方法应用于具有第一系统和第二系统构成的混合系统中,所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统,所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;所述方法包括:
在所述第一系统中监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;
当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统中;其中,由所述第二系统中的第二文件处理程序根据所述操作内容对第二文件进行同步处理;所述第二文件与所述第一文件相同。
2.根据权利要求1所述的方法,其特征在于,所述操作内容为所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。
3.根据权利要求1所述的方法,其特征在于,所述操作内容包括:发生改变前的第一数据,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;
或者,
所述操作内容包括:第一文件的结构参数,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。
4.根据权利要求1所述的方法,其特征在于,当所述第一缓存区中的所述第一数据发生改变时,在第一预定时间间隔内发送所述操作内容;其中,所述第一预定时间间隔小于所述第一系统和/或第二系统的自动保存时间间隔。
5.一种文件同步系统,其特征在于,包括第一系统和第二系统;
所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系 统;
所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;
所述第一系统监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;
所述第一系统,还用于当监控到所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统;
所述第二系统中的第二文件处理程序,所述第二文件处理程序根据所述操作内容对第二文件进行同步处理。
6.根据权利要求5所述的文件同步系统,其特征在于,
所述操作内容为所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;
或者,
所述操作内容包括:发生改变前的第一数据,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;
或者,
所述操作内容包括:第一文件的结构参数,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。
7.一种电子设备,其特征在于,包括:
第一系统和第二系统;
所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统;
所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;
所述第一系统监控第一缓存区,所述第一缓存区中存有第一文件处理程序 打开的第一文件所对应的第一数据;
所述第一系统,还用于当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送给所述第二系统;
所述第二系统的第二文件处理程序根据所述操作内容对第二文件进行同步处理。
8.根据权利要求7所述的电子设备,其特征在于,还包括:
第一插件应用业务逻辑,用于在第一系统中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容;
以及,与位于第二系统中的第二插件应用业务逻辑建立并维护一个数据信息通道;
将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑;
第二插件应用业务逻辑,用于在第二系统中,记录所述第二文件的结构参数,并记录下所述第二文件处理程序对所述第二文件执行的操作内容;
以及,与位于第一系统中的第一插件应用业务逻辑建立并维护一个数据信息通道;
将对所述第二文件执行的操作内容和/或所述第二文件的结构参数发送给位于第一系统中的第一插件应用业务逻辑。
9.一种电子设备,其特征在于,包括第一系统;所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统;
所述第一系统监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;
当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统,其中,由所述第二系统中的第二文件处理程序根据所述操作内容对第二文件进行同步处理;所述第二系统位于另一电子设备上,且所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统。
10.根据权利要求9所述的电子设备,其特征在于,还包括:
第一插件应用业务逻辑,用于在第一系统中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容;
以及,与位于第二系统中的第二插件应用业务逻辑建立并维护一个数据信息通道;
将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑。
一种文件同步方法、电子设备和同步系统\n技术领域\n[0001] 本发明涉及计算机存储技术,特别是指一种文件同步方法、电子设备和同步系统。\n背景技术\n[0002] 随着混合计算机(Hybrid)技术的发展,在同时使用两个或两个以上系统时,为正在使用中的文件提供实时的同步功能(Updating)会给用户带来非常好的体验;例如,在作为第一系统的主系统正在处理文件时,因为某种原因需要立即切换到第二系统,这时用户仍希望继续当前的文件处理工作,就需要对主系统当前打开的所有文件进行手动保存,或者依赖定时自动保存功能进行保存。\n[0003] 在采用手动保存或切换系统前或正在切换时,使用特定同步应用程序保存当前打开的所有文件并基于已保存的文件执行同步;切换系统之后再手动或自动使用第二系统的特定同步应用程序打开相同的各个文件等操作来继续文件处理。\n[0004] 发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:在同步过程中,用户即使使用了文件自动保存和自动同步等现有技术,还是无法保存当前即时更新的内容,无法将更新的内容完美的同步更新到第二系统上。具体而言,现有的文件同步技术虽然支持基于保存的文件实现同步功能,但如果自动保存间隔时间太短,则可能影响系统性能;因此无法记录每时每刻的任意修改,从而没有真正实现实时同步;并且由于现有技术中,同步功能是基于保存在非易失性存储介质上文件实现的,因而同步功能的实现必然依赖自动保存功能,如果没有即时保存文件则会实际影响实时同步的结果;且自动同步过程一般需要一定时间完成,无法实现真正意义上的实时同步。\n发明内容\n[0005] 本发明的目的是提供一种文件同步方法、电子设备和同步系统,用于解决现有技术中,在两个或者多个系统共享同一个或多个文件时,当其中的一个系统上的文件被修改之后,无法在其他系统上实时保存并显示当前更新的内容的缺陷。\n[0006] 一种文件同步方法,所述文件同步方法应用于具有第一系统和第二系统构成的混合系统中,所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统,所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;所述方法包括:\n在所述第一系统中监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统中;其中,由所述第二系统中的第二文件处理程序根据所述操作内容对第二文件进行同步处理;所述第二文件与所述第一文件相同。\n[0007] 上述的方法中,所述操作内容为所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。\n[0008] 上述的方法中,所述操作内容包括:发生改变前的第一数据,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;或者,所述操作内容包括:第一文件的结构参数,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。\n[0009] 上述的方法中,当所述第一缓存区中的所述第一数据发生改变时,在第一预定时间间隔内发送所述操作内容;其中,所述第一预定时间间隔远小于所述第一系统和/或第二系统的自动保存时间间隔。\n[0010] 一种文件同步系统,包括第一系统和第二系统;所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统;所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;所述第一系统监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;所述第一系统,还用于当监控到所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统;\n所述第二系统中的第二文件处理程序,所述第二文件处理程序根据所述操作内容对第二文件进行同步处理。\n[0011] 所述的文件同步系统中,所述操作内容为所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;或者,所述操作内容包括:发生改变前的第一数据,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;或者,所述操作内容包括:第一文件的结构参数,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。\n[0012] 一种电子设备,包括:包括第一系统和第二系统;所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统;所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;所述第一系统监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;所述第一系统,还用于当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送给所述第二系统;所述第二系统的第二文件处理程序根据所述操作内容对第二文件进行同步处理。\n[0013] 所述的电子设备中,还包括:第一插件应用业务逻辑,用于在第一系统中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容;以及,与位于第二系统中的第二插件应用业务逻辑建立并维护一个数据信息通道;将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑;第二插件应用业务逻辑,用于在第二系统中,记录所述第二文件的结构参数,并记录下所述第二文件处理程序对所述第二文件执行的操作内容;以及,与位于第一系统中的第一插件应用业务逻辑建立并维护一个数据信息通道;将对所述第二文件执行的操作内容和/或所述第二文件的结构参数发送给位于第一系统中的第一插件应用业务逻辑。\n[0014] 一种电子设备,包括第一系统;所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统;所述第一系统监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统,其中,由所述第二系统中的第二文件处理程序根据所述操作内容对第二文件进行同步处理;所述第二系统位于另一电子设备上,且所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统。\n[0015] 所述的电子设备中,还包括:插件应用业务逻辑,用于记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容。\n[0016] 应用上述技术方案,由于设置有插件应用业务逻辑,且该插件应用业务逻辑能够实时访问缓存区,因此,无需手动/自动保存第一文件,能够在不同的系统中对该第一文件实现实时同步更新。\n附图说明\n[0017] 图1为本发明实施例一种文件同步方法流程示意图;\n[0018] 图2为本发明实施例在第一系统与第二系统间同步工作原理示意图;\n[0019] 图3为本发明实施例电子设备结构示意图。\n具体实施方式\n[0020] 为使本发明的目的、技术特征和实施效果更加清楚,下面将结合附图及具体实施例对本发明的技术方案进行详细描述。\n[0021] 本发明提供的实施例中,在既有的文件同步技术基础上,实现了基于内存方式的文件实时同步技术。换言之,是将非易失存储器(例如硬盘上)存储的第一文件,在操作系统下用第一文件处理程序打开-即将第一文件在硬盘上对应的数据写入到易失性存储器上。\n那么易失性存储器上就具有与第一文件对应的第一数据。本发明提供的实施例是通过实时监控该易失性存储器上用户对与第一文件对应的第一数据所做的操作内容,并将该操作内容发送给第二系统,由第二系统根据所述操作内容对与第一文件对应的第二文件进行同步处理。如图1所示,提供一种文件同步方法,所述文件同步方法应用于具有第一系统和第二系统构成的混合系统中,所述第一系统包括第一硬件系统和基于所述第一硬件系统的第一操作系统,所述第二系统包括第二硬件系统和基于所述第二硬件系统的第二操作系统;所述方法包括:\n[0022] 步骤101,在所述第一系统中监控第一缓存区,所述第一缓存区中存有第一文件处理程序打开的第一文件所对应的第一数据;\n[0023] 步骤102,当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统与所述第二系统之间的数据信息通道,将所述第一文件处理程序对所述第一文件执行的操作内容发送到所述第二系统中,由所述第二系统中的第二文件处理程序,所述第二文件处理程序根据所述操作内容对第二文件进行同步处理;其中,所述第二文件与所述第一文件相同。\n[0024] 更进一步,为了提高同步的及时性和实时性,在第二系统中的第二缓存区中存有第二文件处理程序打开的第二文件所对应的第二数据。这样保证第一系统状态和第二系统状态一致。换言之,第一系统处于通过第一文件处理程序打开第一文件的状态;第二系统处于通过第二文件处理程序打开第二文件的状态。\n[0025] 应用上述技术方案,在第一文件发生更新时,能够实时的将导致第一文件发生更新的操作内容发送给第二系统,第二文件处理程序根据操作内容对第二文件执行更新,由于操作内容是对内存中的缓存区进行操作,且这一操作发生的瞬间就能够检测到所述操作内容并发送给第二系统,由第二文件处理程序根据该操作内容实时的对第二文件进行同样的操作,因此上述过程是实时的,且能够在不同的系统中无需手动/自动保存就对同一文件实现实时同步更新;又由于在第一系统中和第二系统中的所述操作内容是一致的,而第一文件和第二文件也是一致的,因此能够保证更新后的第一文件和第二文件也是一致的。\n[0026] 在实现上述技术方案的过程中,为保证第一系统中,能够实时的检测到所述操作内容并发送给第二系统,并且在第二系统中,能够实时的根据来自第一系统的操作内容对第二文件进行更新,因此需要在第一系统和第二系统中分别设置插件应用业务逻辑。其中,第一系统中设置有第一插件应用业务逻辑,第二系统中设置有第二插件应用业务逻辑。\n[0027] 第一插件应用业务逻辑,用于在第一系统中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容;\n[0028] 以及,与位于第二系统中的第二插件应用业务逻辑建立并维护一个数据信息通道;\n[0029] 将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑;\n[0030] 第二插件应用业务逻辑,用于在第二系统中,记录所述第二文件的结构参数,并记录下所述第二文件处理程序对所述第二文件执行的操作内容;\n[0031] 以及,与位于第一系统中的第一插件应用业务逻辑建立并维护一个数据信息通道;\n[0032] 将对所述第二文件执行的操作内容和/或所述第二文件的结构参数发送给位于第一系统中的第一插件应用业务逻辑。\n[0033] 具体而言,在第一系统中,用户通过第一文件处理程序打开第一文件,第一缓冲区存储第一文件处理程序打开第一文件所对应的第一数据,即,第一文件在硬盘上的第一数据被写入到了内存中。此时,激活第一系统的插件应用业务逻辑,第一系统的插件应用业务逻辑,执行如下步骤:\n[0034] (1),记录第一文件的结构参数;\n[0035] (2),与第二系统中的第二插件应用业务逻辑建立一个数据信息通道,并在关闭该数据信息通道之前,与第二插件应用业务逻辑共同维护该数据信息通道。\n[0036] (3),监控是否存在对第一缓冲区内的第一数据的更新操作;\n[0037] (4),如果存在对第一数据的更新操作,该更新操作是由第一文件处理程序发起的,则记录第一文件处理程序对第一文件执行的操作内容,此操作内容表明用户在对打开的第一文件进行修改;\n[0038] (5),发送所述操作内容给第二系统中的第二插件应用业务逻辑。此时,第二插件应用业务逻辑得知需要根据接收到的来自第一系统的操作内容对第二文件进行更新操作。\n[0039] 第二系统的插件应用业务逻辑,执行如下步骤:\n[0040] (1),记录第二文件的结构参数;\n[0041] (2),与第一系统中的第一插件应用业务逻辑建立一个数据信息通道,并在关闭该数据信息通道之前,与第一插件应用业务逻辑共同维护该数据信息通道。\n[0042] (3),监控是否存在对第二缓冲区内的第二数据的更新操作;\n[0043] (4),如果存在对第二数据的更新操作,该更新操作是由第二文件处理程序发起的,则记录第二文件处理程序对第二文件执行的操作内容,此操作内容表明用户在对打开的第二文件进行修改;\n[0044] (5),发送所述操作内容给第一系统中的第一插件应用业务逻辑。此时,第一插件应用业务逻辑得知需要根据接收到的来自第二系统的操作内容对第一文件进行更新操作。\n[0045] 显然,第一插件应用业务逻辑和第二插件应用业务逻辑具有相同的功能,因此在同步过程中,可以预先指定由第二插件应用业务逻辑根据来自第一插件应用业务逻辑的操作内容对第二文件进行更新。\n[0046] 此时,在第二系统中,第二系统的插件应用业务逻辑,执行如下步骤:\n[0047] (1),记录第二文件的结构参数;\n[0048] (2),与第一系统中的第一插件应用业务逻辑建立一个数据信息通道,并在关闭该数据信息通道之前,与第一插件应用业务逻辑共同维护该数据信息通道。\n[0049] (3),监控是否存在来自第一插件应用业务逻辑的操作内容;\n[0050] (4),如果存在,则通知第二文件处理程序,由第二文件处理程序对第二文件执行来自第一插件应用业务逻辑的操作内容;\n[0051] (5),可以在对第二文件执行来自第一插件应用业务逻辑的操作内容之后,通知第一插件应用业务逻辑所作修改的结果。如果更新操作出错,则可以生成相应的错误信息。\n[0052] 第一系统与第二系统之间的文件同步,根据实际需要可以出现不同的同步情形,这包括:\n[0053] 第一情形,第二系统中的第二文件处理程序处于工作状态,并且已经激活了第二文件。此时,如果操作内容为第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,该应用程序接口的工作参数,以及该工作参数的当前赋值,则第二文件处理程序能够保证实时的根据这些操作内容对第二文件执行更新操作,更新操作后的第二文件与更新后的第一文件一致,即第二缓存区中的第二数据与第一缓存区中的第一数据一致。\n[0054] 所述操作内容包括:发生更新操作前的第一数据,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,该应用程序接口的工作参数,以及所述工作参数的当前赋值;例如,如果所述应用程序接口是写函数sys_write(int fd,void*buffer,int length),则该应用程序接口的工作参数是参数:int fd,void*buffer,int length。其中,int fd是文件索引编号,void*buffer是缓存区的指针,int length是缓存区的长度。\n[0055] 或者,所述操作内容包括:第一文件的结构参数,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,该应用程序接口的工作参数,以及所述工作参数的当前赋值。\n[0056] 或者,如果直接通过对第二缓存区的全拷贝实现同步,则所述操作内容包括:被执行更新操作后的第一数据,第二文件处理程序同样能够保证实时的根据这些操作内容对第二文件执行更新。\n[0057] 第二情形,第二系统中的第二文件处理程序处于工作状态,但没有激活第二文件。\n[0058] 此时,第二文件处理程序文件识别索引寻找到第二系统上与第一文件对应的第二文件,并且激活该第二文件。之后,第二文件处理程序执行与第一情形中一致的更新操作。\n[0059] 第三情形,第二系统中的第二文件处理程序处于非工作状态,并且在接到来自第一系统的操作内容后会及时激活第二文件。\n[0060] 在第二插件应用业务逻辑B103接到来自第一系统的操作内容后,启动第二文件处理程序,由第二文件处理程序文件识别索引首先寻找到对应的第二文件,并且激活该第二文件。之后,第二文件处理程序执行与第一情形中一致的更新操作。\n[0061] 第四情形,第二系统中的第二文件处理程序处于非工作状态,在接到来自第一系统的操作内容后会,需要经过一个时间间隔才激活第二文件。\n[0062] 在第二插件应用业务逻辑B103接到来自第一系统的操作内容后,不即刻启动第二文件处理程序,但是该第二插件应用业务逻辑B103由于其他原因需要在经过一个时间间隔后启动第二文件处理程序,由第二文件处理程序根据文件识别索引首先寻找到对应的第二文件,并且激活该第二文件。之后,第二文件处理程序执行与第一情形中一致的更新操作。\n[0063] 第五情形,当第二系统中不存在第二文件时,由第二插件应用业务逻辑B103根据操作内容中的更新操作前的第一数据在第二系统中建立一个第二文件,并在建立第二文件后对该第二文件执行更新操作。此时,所述操作内容包括:发生更新操作前的第一数据,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,该应用程序接口的工作参数,以及该工作参数的当前赋值。所述操作内容也可以是被执行更新操作后的第一数据。\n[0064] 为充分描述多系统间的文件同步过程,在上述技术方案的基础上,不仅可以在第一系统与第二系统之间实现对文件进行实时更新,对于更多的系统,也可以基于同样的工作原理进行更新,不失一般性,以三个系统为例,在提供的应用场景中,第一系统是计算机、第二系统是数据库,第三系统是移动终端;则,用户在第一系统-计算机上对第一文件进行了修改,因此,作为第二系统的数据库中也需要对该第一文件对应的第二文件进行实时更新,则第三系统通过其与第二系统之间的数据信息通道对自身存放的与第一文件和第二文件对应的第三文件进行更新,包括:\n[0065] 步骤201,在第一系统、第二系统和第三系统中设置有插件应用业务逻辑,所述插件应用业务逻辑在第一系统中实时记录第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容;其中,在第一系统称为第一文件,在第二系统称为第二文件,在第三系统称为第三文件;\n[0066] 步骤202,位于各个系统中的插件应用业务逻辑分别建立第一系统与第二系统之间的数据信息通道;以及,建立第二系统与第三系统之间的数据信息通道;以及,建立第一系统与第三系统之间的数据信息通道。\n[0067] 步骤203,当所述第一系统中的第一文件被修改时,在更新操作发生之后的第一预定时间间隔内,将第一系统中的操作内容通过所述数据信息通道发往第二系统;以及,第二系统将操作内容通过所述数据信息通道发往第三系统。其中,第一预定时间间隔通常是一个细粒度的时间间隔,例如毫秒甚至微秒级别的间隔,一般而言,该第一预定时间间隔小于自动保存的时间间隔,如此则能够保证各个系统之间的文件同步能够满足实时性。\n[0068] 以下对于所提供的技术方案中所涉及的具体技术特征进行详细描述,以帮助技术人员实现。\n[0069] 插件应用业务逻辑,能够通过监控文件处理程序-第一文件处理程序/第二文件处理程序来发现对应的文件处理程序对缓存区的更新操作,这是因为:无论何种文件处理程序对文件进行处理时,最终都需要调用操作系统/数据库系统等所提供的原有的读写函数,因此当插件应用业务逻辑能够监控这些原有的读写函数时,就可以实时的得知文件处理程序是否对文件进行了更新操作。其中,考虑到技术实现的简便以及现有的系统提供商对于系统源代码的私有保护,在插件应用业务逻辑中不适宜提供自有的读写函数,而是由插件应用业务逻辑通知文件处理程序,由文件处理程序实现对文件的更新操作;或者插件应用业务逻辑通过调用文件处理程序中包含的读写函数也可以实现对缓存区中数据的操作。\n[0070] 当操作内容为应用程序接口时,由于在第一系统中,第一文件处理程序对所述第一文件进行更新的整个过程是可以被第一插件应用业务逻辑监控的,而插件应用业务逻辑在第一系统中,不仅能够记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容,即记录下这些应用程序接口,该应用程序接口的工作参数,以及该工作参数的当前赋值,因此第二系统在接收到上述作为应用程序接口的操作内容之后,能够对第二文件进行更新。\n[0071] 发生改变前的第一数据,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,该应用程序接口的工作参数,以及该工作参数的当前赋值;或者,所述操作内容为被执行更新操作后的第一数据时。在直接获取缓存区中的第一数据的过程中,具体可以是通过采用一个访问该缓存区的读函数实现的,则在该读函数的前面和后面加锁,使得该读函数的操作形成一个不可分割的原子操作,锁具体可以是排他锁。在锁定的这一段时间内,第一文件对应的第一数据还在Buffer中,还没保存到非易失性存储介质里,因此对于第一系统之外的其他系统而言,采用Buffer中的内容对第二文件进行更新则为实时更新。其中,非易失性存储介质上文件具体是指硬盘,U盘,Nand Flash等。\n[0072] 第一预定时间间隔具体可以定制,现有技术中,通常是在第一系统上完成对第一文件的更新操作之后存入非易失性存储介质,再由第二系统从非易失性存储介质中取出;\n而本发明中的第一预定时间间隔则是在第一文件处于缓存区的时间段之内的。\n[0073] 以下对于文件同步过程中所采用的策略进行详细描述,根据操作内容对第二系统的第二文件进行更新,这一更新的过程又被称为同步。在同步过程中,需要确定同步策略,该同步策略决定了具体由哪一个系统根据另一个系统的更新操作执行文件同步。以如图2所示的两个系统为例,包括:第一系统A104、第二系统B104。其中,第一系统A104中包括:第一文件A101、第一文件处理程序A102、第一插件应用业务逻辑A103、缓存区单元A105、第三文件A106;第二系统B104中包括:第二文件B101、文件处理程序B102、第二插件应用业务逻辑B103、缓存区单元B105、第四文件B106。其中,第一文件A101与第二文件B101是同一个文件在不同系统中的备份;第三文件A106是完成更新之后的第一文件A101,第四文件B106是完成更新之后的第二文件B101。\n[0074] 在第一系统A104中,第一文件处理程序A102打开了第一文件A101并由用户进行更新,缓存区单元A105则是第一系统A104所管理的一段缓存区,第一文件处理程序A102对于第一文件A101的更新会实时反映在缓存区单元A105中,并且第一插件应用业务逻辑A103在第一系统中会记录所述第一文件A101的结构参数,并记录下第一文件处理程序A102对第一文件A101执行的操作内容。例如,以常用的办公程序-第一文件处理程序A102具体是Word程序为例,在处理第一文件A101时,在通过Word对第一文件A101的操作会实时反映在缓存区单元A105中,但是只有当每过一个预定时间间隔,缓存区单元A105中存放的第一系统A104的数据会存入非易失性存储介质上,这一存放过程通常是以块读块写(Block Read Block Write)的方式实现;或者,当用户在Word上执行存放操作-例如Ctrl+S时,第一系统A104也会将缓存区单元A105中存放的数据存入非易失性存储介质中对应的第三文件A106上。\n[0075] 以下针对操作内容所包含的信息的类别分别进行描述:\n[0076] 当操作内容包含发生更新操作前的第一数据以及应用程序接口时,第一系统A104中,第一插件应用业务逻辑A103记录第一文件A101的结构参数,并记录下第一文件处理程序A102对第一文件A101执行的更新操作对应的操作内容,即记录下这些应用程序接口,该应用程序接口的工作参数,以及该工作参数的当前赋值;第二系统中,第二文件处理程序B102会打开第二文件B101,第二插件应用业务逻辑B103通过数据信息通道C101接收到来自第一插件应用业务逻辑A103的操作内容。第二插件应用业务逻辑B103通知第二文件处理程序B102,由第二文件处理程序B102根据来自第一插件应用业务逻辑A103的操作内容对第二文件B101进行更新操作,该更新操作完成之后,位于缓存区单元B105中的第二数据会发生改变。\n[0077] 如此,则在第一文件A101内容更新时,由于第一插件应用业务逻辑A103检测到对第一文件A101的操作内容之后,实时的通过数据信息通道C101发送给了第二插件应用业务逻辑B103,且第二插件应用业务逻辑B103实时的通知第二文件处理程序B102对第二文件B101进行更新操作,因此保证了文件同步的实时性。其后续的过程与上述操作内容包含发生更新操作前的第一数据以及应用程序接口时的过程基本一致。\n[0078] 当所述操作内容包括:第一文件的结构参数,以及第一文件处理程序A102对所述第一文件进行更新时调用的应用程序接口,该应用程序接口的工作参数,以及所述工作参数的当前赋值时。\n[0079] 如果直接通过对第二缓存区的全拷贝实现同步,则所述操作内容包括:被执行更新操作后的第一数据,此时,第一插件应用业务逻辑A103实时监控第一文件处理程序A102对位于缓存区单元A105中的对应于第一文件A101的第一数据的修改。建立与第二系统B104之间的数据信息通道C101。由于第一文件A101与第二文件B101是同一个文件在不同系统中的备份,且位于缓存区单元B105中的数据是对应于第二文件B101的,因此当将通过来自缓存区单元A105的数据覆盖位于缓存区单元B105中的第二数据时,由于文件处理程序B102会实时根据缓存区单元B105中的数据更新第二文件B101,因此呈现在用户面前的第二文件B101也会实时改变,显然,上述过程是通过同步缓存区单元A105与缓存区单元B105实现的。\n[0080] 技术方案中,缓存区具体是指不同系统中的位于易失性存储介质上的Buffer;在数据传输中,用来弥补系统中不同元器件对数据的处理速率速度差距的存储装置叫做缓存区Buffer,把数据存放到缓存区中的技术叫做缓冲。其中,Buffer具体是指系统在内存中开辟并进行管理的一段空间,由当前的第一文件占用并锁定,存放第一文件对应的第一数据,由于其逻辑地址是可知的,并且总是连续的,因此由插件应用业务逻辑根据该逻辑地址就可以直接获取所述缓存区中的第一文件对应的第一数据。具体而言,该缓存区实际保存有第一文件的当前所有修改更新内容;在没有将此缓存区中存放的修改更新内容保存到第二系统中的第二文件中之前,所述修改更新内容即为第一文件和第二文件的内容区别,如果采用时间轴标识,则所述修改更新内容为第一文件和第二文件之间的最新区别。其中,第二文件是对应于第一文件的保存在易失性存储介质上的文件。\n[0081] 数据信息通道具体可以采用现有的数据通道,例如串口(SATA),I2C,USB,BlueTooth等。\n[0082] 对应的,本发明还提供一种文件同步系统,如图2所示,包括第一系统A104和第二系统B104;其中,第一文件处理程序即图中的第一文件处理程序A102,第二文件处理程序即图中的文件处理程序B102,第一缓存区即图中的缓存区单元A105,第二缓存区即图中的缓存区单元B105;\n[0083] 所述第一系统A104包括第一硬件系统和基于所述第一硬件系统的第一操作系统;\n[0084] 所述第二系统B104包括第二硬件系统和基于所述第二硬件系统的第二操作系统;\n[0085] 所述第一系统A104监控第一缓存区-缓存区单元A105,所述第一缓存区中存有第一文件处理程序-第一文件处理程序A102打开的第一文件A101所对应的第一数据;\n[0086] 所述第一系统A104,还用于当监控到第一缓存区中的所述第一数据发生改变时,通过所述第一系统A104与所述第二系统B104之间的数据信息通道,将所述第一文件处理程序对所述第一文件A101执行的操作内容发送到所述第二系统B104,由所述第二系统B104中的第二文件处理程序,该第二文件处理程序根据所述操作内容对第二文件B101进行处理。\n[0087] 文件同步系统中还包括:\n[0088] 第一插件应用业务逻辑A103,用于在第一系统A104中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序对所述第一文件执行的操作内容;以及,与位于第二系统中的插件应用业务逻辑B103建立并维护一个数据信息通道;将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑B103。\n[0089] 第二插件应用业务逻辑B103,用于在第二系统B104中,记录所述第二文件的结构参数,并记录下所述第二文件处理程序对所述第二文件执行的操作内容;以及,与位于第一系统中的插件应用业务逻辑A103建立并维护一个数据信息通道;将对所述第二文件执行的操作内容和/或所述第二文件的结构参数发送给位于第一系统中的第一插件应用业务逻辑A103。\n[0090] 应用上述技术方案,在第一文件发生更新时,能够实时的将导致第一文件发生更新的操作内容发送给第二系统,第二文件处理程序根据操作内容对第二文件执行更新,由于操作内容是对内存中的缓存区进行操作,且这一操作发生的瞬间就能够检测到所述操作内容并发送给第二系统,由第二文件处理程序根据该操作内容实时的对第二文件进行同样的操作,因此上述过程是实时的,且能够在不同的系统中无需手动/自动保存就对同一文件实现实时同步更新;又由于在第一系统中和第二系统中的所述操作内容是一致的,而第一文件和第二文件也是一致的,因此能够保证更新后的第一文件和第二文件也是一致的。\n[0091] 其中,操作内容为所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;或者,所述操作内容包括:发生改变前的第一数据,以及第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值;或者,所述操作内容包括:第一文件的结构参数,以及所述第一文件处理程序对所述第一文件进行更新时调用的应用程序接口,所述应用程序接口的工作参数,以及所述工作参数的当前赋值。\n[0092] 所述第一系统和所述第二系统可以位于同一个壳体内,当然,所述第一系统也可以单独的位于第一壳体内,所述第二系统也可以单独的位于第二壳体内,位于第一壳体的第一系统可以单独使用,位于第二壳体内的第二系统同样也可以单独使用。当然,位于第一壳体内的第一系统和位于第二壳体内的第二系统可以通过一结构件进行组合在一起组成混合系统,所述结构件包括将第一系统和第二系统结合在一起的物理结构件以及实现第一系统和第二系统相互数据传输的硬件接口。\n[0093] 对应的,本发明还提供一种电子设备,具有在不同的系统中实现文件同步的功能,包括第一系统A104和第二系统B104;\n[0094] 所述第一系统A104包括第一硬件系统和基于所述第一硬件系统的第一操作系统;\n[0095] 所述第二系统B104包括第二硬件系统和基于所述第二硬件系统的第二操作系统;\n[0096] 所述第一系统A104监控第一缓存区,所述第一缓存区中存有第一文件处理程序A102打开的第一文件A101所对应的第一数据;\n[0097] 所述第一系统A104,还用于当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统A104与所述第二系统B 104之间的数据信息通道,将所述第一文件处理程序A102对所述第一文件A101执行的操作内容发送到所述第二系统B104,由所述第二系统B104中的第二文件处理程序B102,该第二文件处理程序B102根据所述操作内容对第二文件B101进行处理。\n[0098] 电子设备中还包括:\n[0099] 第一插件应用业务逻辑A103,用于在第一系统A104中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序A102对所述第一文件执行的操作内容;以及,与位于第二系统中的插件应用业务逻辑B103建立并维护一个数据信息通道;将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑B103。\n[0100] 第二插件应用业务逻辑B103,用于在第二系统B104中,记录所述第二文件的结构参数,并记录下所述第二文件处理程序B102对所述第二文件执行的操作内容;以及,与位于第一系统中的插件应用业务逻辑A103建立并维护一个数据信息通道;将对所述第二文件执行的操作内容和/或所述第二文件的结构参数发送给位于第一系统中的第一插件应用业务逻辑A103。\n[0101] 对应的,本发明还提供一种电子设备,具有在不同的系统中实现文件同步的功能,如图3所示,包括第一系统A104;所述第一系统A104包括第一硬件系统和基于所述第一硬件系统的第一操作系统;其中,第一缓存区即图中的缓存区单元A105;\n[0102] 所述第一系统A104监控第一缓存区,所述第一缓存区中存有第一文件处理程序A102打开的第一文件A101所对应的第一数据;\n[0103] 当所述第一缓存区中的所述第一数据发生改变时,通过所述第一系统A104与第二系统B104之间的数据信息通道,将所述第一文件处理程序A102对所述第一文件A101执行的操作内容发送到所述第二系统B104,由所述第二系统B104中的第二文件处理程序B102,该第二文件处理程序B102根据所述操作内容对第二文件B101进行处理;\n[0104] 其中,所述第二系统B104位于另一电子设备上,且所述第二系统B104包括第二硬件系统和基于所述第二硬件系统的第二操作系统。\n[0105] 电子设备中还包括:\n[0106] 第一插件应用业务逻辑A103,用于在第一系统A104中,记录所述第一文件的结构参数,并记录下所述第一文件处理程序A102对所述第一文件执行的操作内容;以及,与位于第二系统中的插件应用业务逻辑B103建立并维护一个数据信息通道;将对所述第一文件执行的操作内容和/或所述第一文件的结构参数发送给位于第二系统中的第二插件应用业务逻辑B103。\n[0107] 优选的,所述第一系统A104/第二系统B104中还可以包括:\n[0108] 更新数据获取单元,用于获取所述第一文件A101的逻辑地址的起始位置以及结束位置,调用函数访问并拷贝所述缓存区中所述起始位置与结束位置之间的数据,并传输到所述数据信息通道。\n[0109] 本发明的实施例具有以下有益效果,在第一文件发生更新时,能够实时的将导致第一文件发生更新的操作内容发送给第二系统,第二文件处理程序根据操作内容对第二文件执行更新,由于操作内容是对内存中的缓存区进行操作,且这一操作发生的瞬间就能够检测到所述操作内容并发送给第二系统,由第二文件处理程序根据该操作内容实时的对第二文件进行同样的操作,因此上述过程是实时的,且能够在不同的系统中无需手动/自动保存就对同一文件实现实时同步更新;又由于在第一系统中和第二系统中的所述操作内容是一致的,而第一文件和第二文件也是一致的,因此能够保证更新后的第一文件和第二文件也是一致的。\n[0110] 应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,所有的参数取值可以根据实际情况调整,且在该权利保护范围内。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
法律信息
- 2016-08-10
- 2012-03-21
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201010243573.9
申请日: 2010.08.02
- 2012-02-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-05-05
|
2009-09-23
| | |
2
| |
2007-04-25
|
2004-04-01
| | |
3
| |
2010-07-07
|
2008-12-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |