发明内容
本发明所要解决的技术问题在于提供一种基于特征的终端程序云备份及恢复方法,已克服现有技术下备份及恢复的速度较慢且不能改善程序性能的问题。
为解决上述技术问题,本发明提供一种基于特征的终端程序云备份方法,包括:
在云端服务器预置一文件数据库,存储有不同程序所包含的核心文件,及所述核心文件的唯一性标识信息;
在终端侧获取欲备份的程序的核心文件的唯一性标识信息,并发送至云端服务器备份存储;
所述云端服务器根据所述文件数据库确定备份所述唯一性标识信息的终端/用户与所述唯一性标识信息所代表的核心文件之间的对应关系。
本发明进而还提供一种基于特征的终端程序云恢复方法,其特征在于,包括:
根据终端/用户的恢复请求,所述云端服务器确定该终端/用户已经备份的对应于所述程序的核心文件的唯一性标识信息;
将云端服务器侧已经备份的该程序的核心文件的唯一性标识信息与该终端侧本地对应程序的文件的当前唯一性标识信息进行匹配;
在终端侧将匹配不成功的当前唯一性标识信息对应的文件删除,并由云端服务器侧将匹配不成功的唯一性标识信息对应的文件发送至该终端侧对应存储,
其中,所述云端服务器预置有一文件数据库,存储有不同程序所包含的核心文件,及所述核心文件的唯一性标识信息。
应用本发明,由于不需要传输实体文件,只需要传输文件的特征信息,因此,可极大的提高备份及恢复的速度,降低数据传输量,而且在恢复时由于是基于差异比较的恢复,特征信息在备份前后没有差异的文件则不需要恢复,有差异的才需要恢复,因此不仅恢复速度快,而且可以将终端侧有害的垃圾文件删除,提升程序性能。
具体实施方式
下面结合附图,对本发明的实施例进行详细说明。
如图1所示,为根据本发明实施例所述的一种基于特征的终端程序云备份方法流程图,包括如下步骤:
步骤101:在云端服务器预置一文件数据库,存储有不同程序所包含的核心文件,及所述核心文件的唯一性标识信息;
步骤102:在终端侧获取欲备份的程序的核心文件的唯一性标识信息,并发送至云端服务器备份存储;
步骤103:所述云端服务器根据所述文件数据库确定备份所述唯一性标识信息的终端/用户与所述唯一性标识信息所代表的核心文件之间的对应关系。
云端服务器的概念,目前已经得到了相当大的发展和运用,例如,对于病毒特征库的建立,可以设置于云端服务器,客户端只需要上传本地文件特征即可与云端服务器中的病毒特征进行比较,从而运用黑名单查杀病毒。
同理,本发明的实施例在云端服务器中预置一文件数据库,存储有不同类别不同版本的程序的核心文件,及核心文件的唯一性标识信息。
通过长期的积累,在云端服务器可以建立一个包含众多常用程序文件的庞大的文件数据库,例如一些常用的操作系统以及一些常用的应用程序都可以收录于其中。
而通过实际分析,是可以获知各种程序其原始的核心文件的范围。所述核心文件可以是该程序在安装后于终端中释放的初始文件;或者是那些维持该程序运行所必不可少的主文件;或者也可以是指那些同样的程序被安装于不同终端并运行一段时间后的仍保持同样内容的共性文件。
核心文件的范围选择,可以根据不同程序以及不同的备份要求而确定。显然,备份的核心文件的范围越大,则还原后的程序也越忠实于终端备份时的样态;而备份的核心文件的范围越小,则备份的数据量越小,还原后的程序越接近该程序在安装后的初始样态。但很明显,那些可能在程序运行一段时间后所产生的一些垃圾文件或被病毒等恶意程序所注入的一些有害文件不会被包含在核心文件内。
对运行于不同终端中的相同程序来说,其核心文件的内容大部分是相同的,受到破坏的文件毕竟是少数,因此,这就为复用云端文件数据库文件提供了基础。
云端服务器中的文件数据库中存储有不同程序所包含的核心文件,及所述核心文件的唯一性标识信息。所述唯一性标识信息可以是该文件的签名信息或计算获得的MD5值等。
由于运行于终端中的同一程序所包含的核心文件,如果没有被破坏,则其签名信息是与云端数据库中的该核心文件的签名信息是一致的。因此,将终端中该程序的该核心文件的签名信息保存于服务器侧,就可以起到将该核心文件备份于服务器侧相同的目的,因为具有相同签名信息的相同核心文件已经预存于数据库中了。只有对于那些签名信息不一致的核心文件,才需要由该终端侧实际上传至服务器中存储。
如此,该终端只需要上传该备份程序的核心文件的唯一性标识信息就完成了备份工作,云端服务器即可以根据该唯一性标识信息确定该终端备份的核心文件是哪些。
如图2所示,在终端201中包含程序1、程序2及程序3,其中程序1是欲备份的程序,其包含有核心文件1、核心文件2、核心文件3,以及垃圾文件4,对应的唯一性签名信息为文件签名1、文件签名2及文件签名3,以及文件签名4。在服务器202中数据库记录了程序1的核心文件1、核心文件2及核心文件3,对应的唯一性签名信息为文件签名1、文件签名2及文件签名3。而在服务器侧备份的内容仅需要记录该终端或用户标识201及备份的程序1的文件签名1、文件签名2及文件签名3。很明显,终端备份的数据内容很少,但足以在服务器侧确定该终端需要备份的程序数据。而且,由于备份的都是程序的核心文件,将一些可能的垃圾文件排除在外,这不仅减少了备份数据量,而且在恢复后可以还原一个干净的程序。
所述终端侧可以根据一个预置的规则表中记录的该欲备份程序的核心文件名称,获取欲备份的程序的核心文件的唯一性标识信息。这个规则表可以是终端侧自带的,例如在该程序执行安装时在终端侧记录的该程序所释放的初始文件;或通过扫描终端本地程序列表,根据程序名称及版本向服务器端索取,而服务器端则存储有众多常用程序的核心文件规则表。可以通过该规则表灵活控制核心文件的范围大小。
此外,还可以直接利用本发明实施例所述的文件数据库确定核心文件,如图3所示,为根据本发明实施例所述的在终端侧获取欲备份的程序的核心文件的唯一性标识信息的流程图,包括:
步骤301:终端侧将欲备份的程序的唯一性属性信息发送至云端服务器;
步骤302:所述云端服务器根据文件数据库记录的不同程序的唯一性属性信息确定该程序及其所对应包含的核心文件,并将核心文件的名称发送至该终端侧;
步骤303:所述终端侧根据所述核心文件的名称获取欲备份的程序的核心文件的唯一性标识信息。
其中所述唯一性属性信息可以是该程序的名称及版本号或程序ID等可以唯一的确定该程序对象的信息。
根据本发明的实施例,如果所述云端服务器在所述文件数据库中无法确定与所述终端侧发送的唯一性标识信息对应的核心文件,则说明终端侧该核心文件的签名信息与服务器侧数据库中的该核心文件的签名信息不一致,其有可能是已经被用户修改过的个性文件,这时可以由所述终端侧将与该唯一性标识信息对应的本地核心文件发送至云端服务器备份存储。
此外,还可以定义一些该程序的非核心文件,例如记录对该程序的静态配置的文件,或记录用户数据的文件,由于这些文件尽管不影响程序的运行,但可能记录了用户的使用习惯,因此,也可以在备份时提取出来。这样,可以由所述终端侧获取所述欲备份的程序的当前非核心文件,并发送至云端服务器备份存储。或者进一步获得非核心文件的唯一性标识信息一并备份存储。非核心文件的确定可以同样采取规则表的形式。
对于一些软件程序来说,其安装过程中可能会对当前操作系统的注册表进行修改,因此,在备份时,可以由所述终端侧获取所述欲备份的程序在注册表中的修改项,并发送至云端服务器备份存储,以便恢复时对注册表进行还原。
对于大部分的程序而言,其安装后释放的文件都会是在同一个目录路径下,也就是说其相对位置关系并不重要,但对于一些较为复杂的程序来说,例如操作系统程序,可能嵌套有多层目录的情况,这时可以将核心文件之间的相对位置关系信息保存于文件数据库中;也可以是由所述终端侧将所述欲备份程序的核心文件之间的相对位置关系信息发送至云端服务器存储。
同样,对非核心文件来说,终端侧也可以将当前核心文件与非核心文件之间的相对位置关系发送至云端服务器存储。
如图4所示,为根据本发明的实施例所述的一种基于特征的终端程序云恢复方法流程图,包括:
步骤401:根据终端/用户的恢复请求,所述云端服务器确定该终端/用户已经备份的对应于所述程序的核心文件的唯一性标识信息;
步骤402:将云端服务器侧已经备份的该程序的核心文件的唯一性标识信息与该终端侧本地对应程序的文件的当前唯一性标识信息进行匹配;
步骤403:在终端侧将匹配不成功的当前唯一性标识信息对应的文件删除,并由云端服务器侧将匹配不成功的唯一性标识信息对应的文件发送至该终端侧对应存储,
其中,所述云端服务器预置有一文件数据库,存储有不同程序所包含的核心文件,及所述核心文件的唯一性标识信息。
云端服务器根据终端侧的用户登录信息就可以获知当前用户,也就可以获知该用户曾经备份过的数据。对于大部分终端/用户来说,在收到其恢复请求后,服务器就可以确定该用户备份过的唯一性标识信息。如图2所示,用户终端-备份程序-终端侧核心文件及其签名信息-所备份的核心文件签名信息-云端文件数据库中记录的签名信息-数据库中的核心文件,这些对应关系都通过唯一性标识信息相互联系起来。
在恢复时,可以将云端服务器侧已经备份的该程序的核心文件的唯一性标识信息与该终端侧本地对应程序的全部文件的当前唯一性标识信息进行匹配。如此,终端侧不需要确定核心文件的范围,凡是与已经备份的签名信息不一致的本地程序文件全部可以删除,包括本地一些与该程序有关的垃圾文件以及因为文件受损或修改后导致签名信息变化的文件;而在服务器侧,可以成功匹配的已备份的签名信息代表在终端侧对应文件完好无损,而无法成功匹配的已备份签名信息表示终端侧原文件已经改变,这就需要利用文件数据库中的对应文件发送至终端侧存储。由于该已经改变的原文件已经因为无法成功匹配而被删除,因此,数据库中的对应文件就发送至终端侧取代了原文件。由于可见,本发明实施例的恢复方式是基于特征比对的,只有签名信息改变的文件才需要实际从服务器传送至终端,这就极大了的降低了数据传输量,而且也删除了终端侧在程序运行过程中产生的垃圾文件,改善了终端程序性能。
在恢复时,还可以是将云端服务器侧已经备份的该程序的核心文件的唯一性标识信息与该终端侧本地对应程序的核心文件的当前唯一性标识信息进行匹配。
而对于核心文件之间的唯一性标识信息匹配的步骤,可以是由终端侧执行,也可以是由服务器侧执行。
例如,可以由云端服务器将所述已备份程序的核心文件的唯一性标识信息发送至终端侧;然后,终端侧将接收到的已备份程序的核心文件的唯一性标识信息与本地对应程序的核心文件的当前唯一性标识信息进行匹配。
或者,由终端侧将欲恢复的程序的核心文件的当前唯一性标识信息发送至云端服务器;然后,由所述云端服务器将收到的所述当前唯一性标识信息与存储的由该终端已经备份过的该程序的核心文件的唯一性标识信息进行匹配。
只进行核心文件之间的匹配可以减少终端侧删除文件的范围,从而可以更精确的保留终端侧个性文件,或与非核心文件的还原互为补充。
在服务器侧如果还备份有非核心文件,则可以进一步由云端服务器将终端侧已备份的该程序的非核心文件发送至终端侧对应存储。
如果云端服务器备份了非核心文件以及其对应的唯一性标识信息,则可以将云端服务器侧已备份的该程序的非核心文件的唯一性标识信息与该终端侧本地对应程序的文件的当前唯一性标识信息进行匹配,如果匹配一致,则说明文件完好,不需要替换,如果匹配不一致,则可以将终端侧匹配不成功的非核心文件删除,并再将服务器侧备份的匹配不成功的非核心文件发送至终端侧对应存储。
如果云端服务器备份了该程序的注册表修改项,还可以由云端服务器将该终端已经备份过的该程序对注册表的修改项发送至所述终端侧,并由该终端根据该修改项对本地注册表执行相应的修改。
而对于程序文件在终端侧的存储路径,可以按照默认安装路径存储,也可以通过动态搜索技术获知该程序在终端侧的安装路径,实际上,一般只要终端侧有一个核心文件就可以获知该程序的安装路径。
此外,所述终端侧还可以根据已在云端服务器记录的所述核心文件之间的相对位置关系对核心文件进行存储;或根据已在云端服务器记录的所述非核心文件与核心文件之间的相对位置关系对非核心文件进行存储。
在某些特殊情况下,如果在所述终端本地没有找到所述对应程序,则说明该程序可能已被删除,这时可以将在所述云端服务器中与已经备份的唯一性标识信息相对应的核心文件发送至该终端侧对应存储。
此外,在恢复时,如果终端侧需要获知该程序的核心文件范围,同样是可以根据一预置规则表确定所述本地对应程序的核心文件的名称;或根据所述云端服务器中的文件数据库中记录的所述程序的核心文件名称确定所述本地对应的核心文件名称。
由此可见,本发明由于在备份时仅需要备份程序的核心文件的特征标识,而不用实际备份文件内容,因此,备份速度很快,传输的数据量大大减少;同时,恢复时是基于差异比较的恢复,即如果核心文件的特征标识没有变化,则不需要恢复该文件,只有特征标识发生变化的才需要从数据库中下载相应文件,因此,恢复的速度也很快,传输量很少。同时,由于是基于差异比较的恢复,因此,与备份时的文件范围或内容存在差异的垃圾文件等有害文件都可以被清除,在恢复后提升了程序性能。