软件升级的方法技术

技术编号:2878277 阅读:137 留言:0更新日期:2012-04-11 18:40
提供一种软件升级方法,该方法包括:增量升级包制作过程,用于找出低版本文件和高版本文件中数据内容的不匹配点,以产生不匹配块,并针对找到的匹配块和不匹配块产生相应的动作,其中所述动作是复制、替换、插入、删除之一;增量升级过程,用于执行由增量升级包制作过程产生的所述动作,以将低版本文件的内容替换成高版本文件的内容。因此,整个升级过程拷贝或下载的数据量明显比常规方法所需要拷贝和下载的数据量小,并且升级过程十分简单和高效,不但节省生产商和用户的宝贵时间和精力,而且节约存储介质资源和金钱。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种。更具体地说,本专利技术涉及这样一种,该方法在软件的低版本基础上,以拷贝或下载少量数据将规模较大的软件包升级为高版本的软件包。
技术介绍
常规的软件升级方法是采用将软件的低版本数据包中的所有文件,或一部分文件以整个文件替换的方式进行软件升级。在软件业发展初期还显不出这种方式所带来的不便,因为那个时期的软件大都是数据量较小的数据包,即使在每次升级时将新版本的整个数据包中的每个文件重新拷贝一遍,然后发送给需要进行软件升级的用户,软件生产商拷贝和用户升级所花费的时间也不会太多,浪费的存储介质也有限。但随着软件也的不断发展,常规的软件升级方法的弊端越来越明显。一方面,软件包的功能越来越多,软件规模也就相应地扩大。对规模较大的软件来说,常规的软件升级方法在每次升级都要拷贝大量的数据,出现一两百兆数据的升级包并不少见。一两百兆的数据要从软件生产商那里发送到进行软件升级的用户手中,首先,软件生产商要花大量人力物力、使用大容量的存储介质拷贝软件,然后用户再花更多的时间将该软件升级数据包拷贝入计算机,以替代原有的低版本软件。这一过程浪费生产商许多宝贵时间、精力和金钱。但升级的内容实际上占该数据包的容量的一小部分,每个文件甚至可能只改动几个字节。另一方面,有些诸如杀毒软件这样的软件包需要频繁升级,每一次升级可能数据量不是很大,但由于频度很高,事实上也造成对用户资源的浪费。如果是通过网络下载,也浪费了网络的带宽和服务器的资源,加重了厂商的负担。因此有必要发展一种只拷贝或下载必要的最少内容就能将软件进行升级的方法,而不必为了升级软件,每次都拷贝或下载软件的全部或大多数内容。
技术实现思路
针对上述目前软件升级中存在的问题,本专利技术的目的是提供一种更合理更优化的,该方法在软件的低版本基础上,以拷贝或下载少量数据升级规模较大的软件包。为了实现本专利技术的目的,提供一种,该方法包括增量升级包制作过程,用于找出低版本文件和高版本文件中数据内容的不匹配点,以产生不匹配块,并针对找到的匹配块和不匹配块产生相应的动作,其中所述动作是复制、替换、插入、删除之一;以及增量升级过程,用于执行由增量升级包制作过程产生的所述动作,以将低版本文件的内容替换成高版本文件的内容。该方法通过寻找匹配块,产生一系列动作。通过4个简单的动作定义,只要拷贝必需的数据给用户即可升级软件。客户端通过执行增量升级过程升级软件。整个升级过程拷贝或下载的数据量明显比常规方法所需要拷贝和下载的数据量小,并且升级过程十分简单和高效,不但节省生产商和用户的宝贵时间和精力,而且节约存储介质资源和金钱。附图说明本专利技术及其优越性将在参照相关附图的情况下,从以下详细说明中得到更好的理解,其中图1示出了本专利技术的匹配流程图。具体实施例方式瑞星杀毒软件增量升级程序是按照以上技术理论,在WIN32平台下的一个实施例,但本专利技术并不局限于WIN32平台。为了以下描述的方便,现在定义几个术语。低版本文件和高版本文件中数据内容完全相同部分的开始点,称为匹配点。低版本文件和高版本文件中数据内容不相同部分的开始点,称为不匹配点。从一个匹配点开始(包含)到最近的一个不匹配点结束(不包含)的一块数据区称为匹配块。从一个不匹配点开始(包含)到最近的一个匹配点结束(不包含)的一块数据区称为不匹配块。本专利技术的该优选实施例分两步来实现软件升级第一步骤就是所谓的增量升级包制作过程,第二步骤称为增量升级过程。现在来详细描述这两个步骤增量升级包制作过程考虑到给用户下载最少的数据,执行最快速的操作,本专利技术的主要工作是在制作升级包过程中完成,一般这个过程都是由厂商完成。本实施例的匹配点数据宽度定义为32字节,符合目前主流Intel CPU的数据宽度。匹配限度为4K,符合Windows平台PE文件的节大小。制作过程包括以下几个步骤1.文件比较,寻找不匹配块这是基本的步骤,首先寻找两个文件中的不匹配部分。匹配部分是我们可以不必重复传送给用户的数据,我们的整个文件比较过程其实也就是不断分析数据的重复与不重复问题。找到一个匹配块后将数据标注为拷贝。对于不匹配块,根据步骤2进行重新匹配。识别匹配块并不是简单地说两个数据相等就可以,因为几个字节的相同在两个不匹配块中也经常会遇到。所以我们要忽略过于短的匹配数据,这个忽略的限度是十分重要同时也是很难把握的。一般来说,这个限度一般应该不小于数据文件的数据宽度,这常常是和操作系统相关的。另外,这个限度还要考虑增量升级包中的数据结构的大小,避免出现数据块过于细碎导致增量包膨胀。2.重新匹配不匹配块,根据情况产生增量包两个不同版本的文件,如果直接对照比较,是有大量数据不相同的,也就是说有很多很大的不匹配块。这是由于程序或者数据修改时,经常插入和删除内容,导致同样的数据只是上下错位而已。如何在不匹配块中重新定位出匹配点是十分关键的,这直接关系到产生的增量包的大小。匹配匹配点的算法基本上可以参考串的模式匹配算法,这种算法有几种,最简单的是两个文件交互以一字节为增量逐字节比较。这种方法简单,但会占用非常多的时间,比较两个差别较大的文件可能会花费数分钟。通过改进算法,减少回溯可以大幅度提高速度。本实施例的匹配点匹配算法采用一种快速跳跃搜索算法,这种算法是本专利技术所独创的,适合在两个不匹配的数据块中快速跳过不相同的部分寻找匹配点。首先,我们在低版本文件不匹配块最前部取出当作匹配点的数据,然后在高版本文件的不匹配块中寻找匹配点的第一个字节。如果没有找到,放弃本匹配点,在原文件移动一个字节,从新匹配。如果找到第一个字节,从下一个字节开始寻找匹配点的第二个字节。没找到同以上过程,若完全找到匹配点的每一个字节,匹配成功,如果不等,从最后一个匹配字节回溯匹配点长度个字节数重新开始一轮匹配过程。找到匹配点后,根据前后数据情况,将不匹配块定义为插入、删除或者替换。下面根据图1的匹配流程图描述如何将不匹配块定义为插入、删除或者替换。图1是描述根据本专利技术的优选实施例的流程图。在步骤S1,进行预处理,以打开文件、建立映像,并且将匹配原点设置为0。在步骤S2,判断是否存在下一个不匹配块。如果在步骤S2中判定存在下一个不相同的数据块,则该过程转移到步骤S3,在其中,判断是否在该不匹配中找到匹配点。若在步骤S3判定在该不匹配块中找到匹配点,则该过程转移到步骤S4,在其中,将新旧版本文件的匹配点进行比较,如果高版本文件的匹配点大于旧文件的匹配点,则该过程转移到步骤S5,在其中将该不匹配块标记为删除块,并将过程转移到步骤S8。如果在步骤S4中比较的结果是高版本文件的匹配点小于旧文件的匹配点,则该过程转移到步骤S6,在其中将该不匹配块标记为插入块,并将过程转移到步骤S8。如果在步骤S4中比较的结果是高版本文件的匹配点等于低版本文件的匹配点,则该过程转移到步骤S7,在其中将该不匹配块标记为替换块,并将过程转移到步骤S8。若在步骤S3判定在该不匹配块中找不到匹配点,则该过程转移到步骤S7,在其中将该不匹配块标记为替换块,并将过程转移到步骤S8。在步骤S8,判断该不匹配块是否可以和上一不匹配块合并,如果拟定结果为是,则该过程转到步骤S9,在其中将该不匹配块与上一不匹配块合并,以产生一个更大的不匹配块。如果在步骤S8判定该不匹配块不本文档来自技高网
...

【技术保护点】
一种软件升级方法,该方法包括: 增量升级包制作过程,用于找出低版本文件和高版本文件中数据内容的不匹配点,以产生不匹配块,并针对找到的匹配块和不匹配块产生相应的动作,其中所述动作是复制、替换、插入、删除之一; 增量升级过程,用于执行由增量升级包制作过程产生的所述动作,以将低版本文件的内容替换成高版本文件的内容。

【技术特征摘要】

【专利技术属性】
技术研发人员:马杰
申请(专利权)人:北京瑞星科技股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1