著录项信息
专利名称 | 一种软件包版本迁移的方法及装置 |
申请号 | CN201010131247.9 | 申请日期 | 2010-03-22 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2011-09-28 | 公开/公告号 | CN102200915A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 珠海金山快快科技有限公司 | 申请人地址 | 广东省广州市番禺区南村镇万博二路79号3108
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 广州方硅信息技术有限公司 | 当前权利人 | 广州方硅信息技术有限公司 |
发明人 | 朱熠锷;姜旺生 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 马敬;逯长明 |
摘要
本发明公开了一种软件包版本迁移的方法及装置,所述方法包括:制作摘要值文件;当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;解析本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则将摘要值相同的所述旧版本软件包中的数据块迁移到新版本软件包中,若不相同,则下载新版本软件包中摘要值不同的数据块。应用本申请,有效的利用了本地存储的数据,避免了新版软件包数据的下载,提高了软件包迁移的操作效率,以及迁移速度,改善了用户的应用体验。
1.一种软件包版本迁移的方法,其特征在于,包括:制作摘要值文件;
当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;
解析客户端本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则将摘要值相同的所述旧版本软件包中的数据块从客户端本地的旧版本软件包中迁移到新版本软件包中,若不相同,则从服务器端下载新版本软件包中摘要值不同的数据块;
当迁移和下载完成后,获得新版本的软件包。
2.根据权利要求1所述的方法,其特征在于,所述制作摘要值文件的步骤包括:
将软件包划分为一个以上的数据块,对每个数据块分别计算出一摘要值,将所述数据块和该数据块对应的摘要值的对应保存到一摘要值文件中。
3.根据权利要求2所述的方法,其特征在于,所述摘要值通过MD5算法获得,或者,通过SHA-1算法获得。
4.根据权利要求2所述的方法,其特征在于,所述划分数据块的方式包括:按照已设定的数据大小划分数据块;或者;按照数据的类型划分数据块。
5.根据权利要求1所述的方法,其特征在于,所述新版本软件包对应的第二摘要值文件通过下载并解析获取。
6.根据权利要求1所述的方法,其特征在于,迁移和下载完毕后,所述方法还包括:删除本地的旧版本软件包。
7.一种软件包版本迁移的装置,其特征在于,所述装置包括:
制作单元,用于制作摘要值文件;
第二摘要值文件获取单元,用于当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;
摘要值对比单元,用于解析客户端本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则通知迁移单元;若不相同,则通知下载单元;
迁移单元,用于将摘要值相同的所述旧版本软件包中的数据块从客户端本地的旧版本软件包中迁移到新版本软件包中;
下载单元,用于从服务器端下载新版本软件包中摘要值不同的数据块;
获得单元,用于当迁移和下载完成后,获得新版本的软件包。
8.根据权利要求7所述的装置,其特征在于,所述制作单元包括:
划分单元,用于将软件包划分为一个以上的数据块;
计算单元,用于对每个数据块分别计算出一摘要值;
保存单元,用于将所述数据块和该数据块对应的摘要值的对应保存到一摘要值文件中。
9.根据权利要求8所述的装置,其特征在于,所述摘要值通过MD5算法获得,或者,通过SHA-1算法获得。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
删除单元,用于迁移和下载完毕后,删除本地的旧版本软件包。
一种软件包版本迁移的方法及装置\n技术领域\n[0001] 本发明涉及计算机技术领域,特别涉及一种软件包版本迁移的方法及装置。\n背景技术\n[0002] 为了让一款软件能在软件流平台上运行,需要对它的数据(包括文件和注册表)进行处理,最终会生成一个组织的数据集合(现在是一个目录),这个数据集合称之为软件包。因而,可以将软件包理解为是指具有特定的功能,用来完成特定任务的一个程序或一组程序。新版本软件包/旧版本软件包是一个相对概念,对应一款软件的新版本和旧版本。\n[0003] 目前,当一款软件有新版本时,会制作新版本软件包,并在服务器端部署,以使客户端能使用这个软件包的新版本;\n[0004] 如果客户端是第一次运行这款软件,它就会直接使用新版本软件包,这没有问题;\n[0005] 如果客户端本地缓存中已经有这款软件的旧版本软件包时,就会有两种选择:\n[0006] 1.它不想废弃已经下载的数据,依旧使用旧版本软件包;\n[0007] 2.它直接使用新版本软件包,所有数据都要重新下载;\n[0008] 其中,选择1是回避了迁移,用户就不能使用这个软件的新功能,选择2是全部重新下载该软件包,不但费时,而且软件的运行体验不好。\n[0009] 可见,在现有技术中,软件包迁移是一个经常遇到的问题,而每次软件包迁移操作的效率都很低、迁移的速度很慢,没有一种很好的解决软件迁移的方法。\n发明内容\n[0010] 本发明实施例中提供了一种软件包版本迁移的方法及装置,使软件包版本迁移操作效率高、迁移速度快。\n[0011] 本发明实施例提供了一种软件包版本迁移的方法,包括:制作摘要值文件;\n[0012] 当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;\n[0013] 解析本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则将摘要值相同的所述旧版本软件包中的数据块迁移到新版本软件包中,若不相同,则下载新版本软件包中摘要值不同的数据块。\n[0014] 其中,所述制作摘要文件的步骤包括:\n[0015] 将软件包划分为一个以上的数据块,对每个数据块分别计算出一摘要值,将所述数据块和该数据块对应的摘要值的对应保存到一摘要值文件中。\n[0016] 其中,所述摘要值通过MD5算法获得,或者,通过SHA-1算法获得。\n[0017] 其中,所述划分数据块的方式包括:按照已设定的数据大小划分数据块;或者;按照数据的类型划分数据块。\n[0018] 其中,所述新版本软件包对应的第二摘要值文件通过下载并解析获取。\n[0019] 其中,迁移和下载完毕后,所述方法还包括:删除本地的旧版本软件包。\n[0020] 本发明实施例还提供了一种软件包版本迁移的装置,所述装置包括:\n[0021] 制作单元,用于制作摘要值文件;\n[0022] 第二摘要值文件获取单元,用于当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;\n[0023] 摘要值对比单元,用于解析本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则通知迁移单元;若不相同,则通知下载单元;\n[0024] 迁移单元,用于将摘要值相同的所述旧版本软件包中的数据块迁移到新版本软件包中;\n[0025] 下载单元,用于下载新版本软件包中摘要值不同的数据块;\n[0026] 其中,所述制作单元包括:\n[0027] 划分单元,用于将软件包划分为一个以上的数据块;\n[0028] 计算单元,用于对每个数据块分别计算出一摘要值;\n[0029] 保存单元,用于将所述数据块和该数据块对应的摘要值的对应保存到一摘要值文件中。\n[0030] 其中,所述摘要值通过MD5算法获得,或者,通过SHA-1算法获得。\n[0031] 其中,所述装置还包括:\n[0032] 删除单元,用于迁移和下载完毕后,所述方法还包括:删除本地的旧版本软件包。\n[0033] 应用本申请实施例所提供的软件包版本迁移的方法及装置,有效的利用了本地存储的数据,避免了新版软件包数据的全部下载,提高了软件包迁移的操作效率,以及迁移速度,改善了用户的应用体验;而且,本申请实施例中对相同数据的判断不是停留在文件一级,而是深入到文件内部,把一个文件划分为若干个数据块,以数据块为单位作比较,极大的提高了数据的复用率。\n附图说明\n[0034] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0035] 图1是根据本发明实施例的一种软件包版本迁移的方法流程图;\n[0036] 图2是根据本发明实施例的一种软件包版本迁移的装置结构示意图。\n具体实施方式\n[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0038] 现有技术中,没有深入地分析软件包迁移的特征,该特性通常是,软件包的一次迁移只有很少的数据需要改变,不同版本之间很多数据是相同的,尤其是相邻的几个版本之间,相同的数据量会更大。\n[0039] 基于上述软件包迁移的特性,本发明实施例提供了一种软件包版本迁移的方法,参见图1,具体包括:\n[0040] 步骤101,制作摘要值文件;\n[0041] 其中,制作摘要值文件的步骤可以包括:将软件包划分为一个以上的数据块,对每个数据块分别计算出一摘要值,将所述数据块和该数据块对应的摘要值的对应保存到一摘要值文件中。\n[0042] 需要说明的是,上述划分数据块的方式可以是按照已设定的数据大小划分数据块,例如,预先设定数据块大小为4k,这样,一个文件的0-4k就是第一个数据块,4-8k就是第二个数据块,……;还可以是按照数据的类型划分数据块,本申请实施例中并不对数据块的具体划分方式进行限定。\n[0043] 上述摘要值文件可以以一个列表的形式存在,也可以以一个数组的形式存在,本申请实施例中,并不对摘要值文件的存在形式做限定。例如,当摘要值文件以列表的形式存在是,可以包括数据块编号、以及该编号对应的摘要值。\n[0044] 具体而言,一种制作摘要值文件的可能实现方式是,遍历软件包的所有文件生成一个摘要值文件,这个摘要值文件由一条条的摘要值记录组成,每条记录对应这个软件包中的一个文件的一个数据块,每条摘要值是由这个数据块的数据作为输入计算出来的摘要值。此时,该摘要值文件中包括数据块编号、该数据块所属的文件名、以及该编号对应的摘要值。\n[0045] 步骤102,当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;\n[0046] 这里,上述新版本软件包对应的第二摘要值文件可以通过下载并解析获取。\n[0047] 步骤103,解析本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则执行步骤104,若不相同,则执行步骤105;\n[0048] 需要说明的是,本申请实施例中的旧版本软件包通常存储于缓存中。\n[0049] 步骤104,将摘要值相同的所述旧版本软件包中的数据块迁移到新版本软件包中,结束;\n[0050] 其中,所述迁移可以不同目录下的迁移,也可以是数据块本身的迁移,即只要让所需要的数据块在新版本软件包的目录下即可,本发明实施例对迁移的具体实现过程不做限定。\n[0051] 步骤105,下载新版本软件包中摘要值不同的数据块,结束。\n[0052] 这里,下载数据块的过程可以采用现有的任何下载方式,例如,可以采用现有的前台下载、后台下载等下载方式,还可以采用流技术方式进行下载。也就是说,本申请实施例所提供的方法可以应用于非流技术中,也可以应用于流技术中。\n[0053] 所谓采用流技术方式下载是指,客户端若想读取某数据文件或者某数据文件中的某部分内容,则在客户端检测到读取请求后,检查待读取数据在本地缓存中是否已经存在,若存在则从所述缓存中读出并返回给调用者来完成此读操作,若本地缓存中没有,则从服务器端下载这部分数据到本地缓存中,再返回给调用者来完成此操作。\n[0054] 需要说明的是,在流技术方式中,客户端的缓存中可能包含有不完整的程序文件,即存在下载了部分数据的文件。而本申请实施例的关键是将旧版本中已经下载到本地的数据迁移到新版本软件包中,因此,本申请实施例中对被迁移软件包本身的完整性并不做要求。也就是说,对于本申请实施例而言,只迁移旧版本中已经下载到本地的数据,对于旧版本中不存在的数据会从服务器端下载,两者可以分别独立进行,互不影响。在流技术方式中,可以将应用程序的程序文件和数据文件相分离保存,使用户终端仅安装应用程序的程序模块文件,而数据文件可保存在服务器端,根据用户需要下载安装,从而有效地减少了应用程序的体积,节省了用户终端的存储空间。\n[0055] 当迁移和下载的操作完成后,就获得了新版本的软件包,实现了软件包的迁移。\n[0056] 需要说明的是,迁移和下载完毕后,本实施例所提供的方法还可以包括:删除本地的旧版本软件包。\n[0057] 需要说明的是,本实施例中的摘要值可以通过MD5算法获得,也可以通过SHA-1算法获得,本申请实施例中,并不对摘要值所采用的具体算法做限定。\n[0058] 需要说明的是,由于本发明实施例所提供的软件包迁移方法是先制作摘要值文件,再根据摘要值文件进行数据块的迁移或下载,因而其对软件包本身并没有任何要求,即就软件包本身而言,其即可以是具备升级功能的软件包,也可以是不具备升级功能的软件包,即无论软件包自身是否具备升级功能,其都可以根据服务器端的指示实现软件包版本的转换。而且,本发明实施例所提供的软件包版本迁移,并不限定软件包版本升级或降级,因为无论是升级或降级,其实际都是软件包版本的转换。\n[0059] 可见,应用本申请实施例所提供的软件包版本迁移的方法,有效的利用了本地存储的数据,避免了新版软件包数据的全部下载,提高了软件包迁移的操作效率,以及迁移速度,改善了用户的应用体验;而且,本申请实施例中对相同数据的判断不是停留在文件一级,而是深入到文件内部,把一个文件划分为若干个数据块,以数据块为单位作比较,极大的提高了数据的复用率。\n[0060] 本申请实施例还提供了一种软件包版本迁移的装置,参见图2,所述装置可以包括:\n[0061] 制作单元201,用于制作摘要值文件;\n[0062] 第二摘要值文件获取单元202,用于当需要软件包版本迁移时,获取新版本软件包对应的第二摘要值文件;\n[0063] 摘要值对比单元203,用于解析本地已存储旧版本软件包对应的第一摘要值文件,依次对比所述第一摘要值文件和第二摘要值文件中各个数据块所对应的摘要值是否相同,若相同,则通知迁移单元;若不相同,则通知下载单元;\n[0064] 迁移单元204,用于将摘要值相同的所述旧版本软件包中的数据块迁移到新版本软件包中;\n[0065] 下载单元205,用于下载新版本软件包中摘要值不同的数据块;\n[0066] 上述制作单元202可以包括:\n[0067] 划分单元,用于将软件包划分为一个以上的数据块;\n[0068] 计算单元,用于对每个数据块分别计算出一摘要值;\n[0069] 保存单元,用于将所述数据块和该数据块对应的摘要值的对应保存到一摘要值文件中。\n[0070] 上述摘要值通过MD5算法获得,或者,通过SHA-1算法获得。\n[0071] 上述装置还可以包括:删除单元(图2未示),用于迁移和下载完毕后,所述方法还包括:删除本地的旧版本软件包。\n[0072] 可见,应用本申请实施例所提供的软件包版本迁移的装置,有效的利用了本地存储的数据,避免了新版软件包数据的全部下载,提高了软件包迁移的操作效率,以及迁移速度,改善了用户的应用体验;而且,本申请实施例中对相同数据的判断不是停留在文件一级,而是深入到文件内部,把一个文件划分为若干个数据块,以数据块为单位作比较,极大的提高了数据的复用率。\n[0073] 对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0074] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。\n[0075] 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。\n[0076] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
法律信息
- 2021-01-22
专利权的转移
登记生效日: 2021.01.12
专利权人由广州华多网络科技有限公司变更为广州方硅信息技术有限公司
地址由511446 广东省广州市番禺区南村镇万博商务区万达广场B1座28层变更为510000 广东省广州市番禺区南村镇万博二路79号3108
- 2016-11-02
专利权人的姓名或者名称、地址的变更
专利权人由广州华多网络科技有限公司变更为广州华多网络科技有限公司
地址由510660 广东省广州市天河区建中路44号四楼变更为511446 广东省广州市番禺区南村镇万博商务区万达广场B1座28层
- 2015-03-04
- 2014-03-05
专利实施许可合同备案的生效
IPC(主分类): G06F 9/445
合同备案号: 2014990000039
专利申请号: 201010131247.9
申请日: 2010.03.22
让与人: 广州华多网络科技有限公司
受让人: 北京金山软件有限公司
发明名称: 一种软件包版本迁移的方法及装置
申请公布日: 2011.09.28
许可种类: 普通许可
备案日期: 2014.01.21
- 2014-01-08
专利实施许可合同备案的注销
合同备案号: 2011110000161
让与人: 珠海金山快快科技有限公司
受让人: 北京金山软件有限公司、北京金山数字娱乐科技有限公司、珠海金山软件有限公司
解除日: 2013.12.12
- 2013-08-14
专利申请权的转移
登记生效日: 2013.07.24
申请人由北京金山软件有限公司变更为广州华多网络科技有限公司
地址由100083 北京市海淀区小营西路33号金山软件大厦1层西区变更为510660 广东省广州市天河区建中路44号四楼
- 2013-07-31
专利申请权的转移
登记生效日: 2013.07.09
申请人由珠海金山快快科技有限公司变更为北京金山软件有限公司
地址由519080 广东省珠海市唐家湾镇港湾大道科技一路10号主楼第六层622F单元变更为100083 北京市海淀区小营西路33号金山软件大厦1层西区
- 2012-02-22
专利实施许可合同备案的生效
IPC(主分类): G06F 9/445
合同备案号: 2011110000161
专利申请号: 201010131247.9
申请日: 2010.03.22
让与人: 珠海金山快快科技有限公司
受让人: 北京金山软件有限公司、北京金山数字娱乐科技有限公司、珠海金山软件有限公司
发明名称: 一种软件包版本迁移的方法及装置
申请公布日: 2011.09.28
许可种类: 普通许可
备案日期: 2011.09.14
- 2011-12-14
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201010131247.9
申请日: 2010.03.22
- 2011-09-28
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-08-01
|
2007-01-26
| | |
2
| |
2009-05-06
|
2008-12-08
| | |
3
| |
2007-08-01
|
2006-01-26
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |