一种软件自动更新的方法及系统的制作方法
【专利摘要】本发明提供了一种软件自动更新的方法及系统,包括步骤一:计算存放更新文件的文件夹内的所有文件的MD5码,并将计算好的MD5码写入MD5码存放文件,将存放更新文件的目录内的所有文件进行压缩,将MD5码存放文件和压缩好的文件放到更新服务器;步骤二:应用软件端通过从更新服务器下载MD5码存放文件并与应用软件端的MD5码进行比对判断应用软件是否需要更新;步骤三:从更服务器下载压缩好的文件进行更新。软件自动更新的系统包括主服务器、后台管理设备、更新服务器和应用软件端。本发明的软件更新速度快,节约资源,可以降低客户端应用升级维护的工作量和成本。
【专利说明】
一种软件自动更新的方法及系统
技术领域
[0001]本发明涉及软件更新技术领域,尤其涉及一种软件自动更新的方法及系统。
【背景技术】
[0002]软件更新即软件升级,指软件从低版本向高版本的更新。由于高版本常常修复低版本的部分BUG,所以经历了软件升级,一般都会比原版本的性能更好,得到优化的效果,用户也能有更好的体验。是指软件开发者在编写软件的时候,由于设计人员考虑不全面或程序功能不完善,在软件发行后,通过对程序的修改或加入新的功能后,以补丁的形式发布的方式。用户把这些补丁更新,即升级完成,或者升级软件界面。现有技术中的软件更新通常需要不停地进行更新升级,然而在更新与升级的过程中,产生很大的工作量,从而升级维护的成本比较高,有些应用软件更新升级的速度比较慢,会影响用户的使用体验。且现有技术中的软件更新方法软件更新工作量比较大、软件更新成本比较高、软件更新速度比较慢。
[0003]例如中国专利CN102195804A公开的本发明提供一种软件自动更新方法及其系统,其中方法包括:系统软件版本发布服务器根据上传的客户端插件生成最新版本号;售票客户端向所述系统软件版本发布服务器定时发送携带有本地版本号的版本检查请求;所述系统软件版本发布服务器将所述本地版本号与所述最新版本号进行比较,当所述最新版本号高于所述本地版本号时,更新所述售票客户端内的本地客户端软件。该软件自动更新方法运行成本高,速度慢,应用客户端的使用。
[0004]又例如中国专利CN1983979A公开了一种用于执行能够有效管理更新周期的自动软件更新的方法和系统。所述在客户机中执行自动软件更新的方法包括:在更新周期改变的检查周期向服务器请求关于更新周期的信息,所述更新周期改变的检查周期表示检查软件更新周期的改变的周期;和响应于对关于更新周期的信息的请求,从服务器接收关于所述更新周期的信息并更新所述客户机的关于更新周期的信息。该方法需要不断的检查更新,占用网络资源,软件更新成本高。
【发明内容】
[0005]为克服现有技术中存在的软件更新成本高的问题,本发明提供了一种软件自动更新的方法及系统。
[0006]—种软件自动更新的方法,包括如下步骤:
[0007]步骤一:计算存放更新文件的文件夹内的所有文件的MD5码,并将计算好的MD5码写入MD5码存放文件,将存放更新文件的目录内的所有文件进行压缩,将MD5码存放文件和压缩好的文件放到更新服务器;
[0008]步骤二:应用软件端通过从更新服务器下载MD5码存放文件并与应用软件端的MD5码进行比对判断应用软件是否需要更新;
[0009]步骤三:从更服务器下载压缩好的文件进行更新。
[0010]进一步的,所述MD5码存放文件为vi存储文件。[0011 ] 进一步的,所述MD5码存放文件采用SM4方法进行加密。
[0012]进一步的,所述更新文件的压缩采用Zlib的Compress接口。
[0013]进一步的,所述步骤二中应用软件端从更新服务器下载MD5码存放文件到临时文件夹。
[0014]进一步的,所述步骤二还包括检验应用软件端可执行目录是否有MD5码存放文件。
[0015]进一步的,所述步骤二还包括在应用软件端可执行目录内生成应用软件端MD5码存放文件。
[0016]进一步的,所述步骤二还包括将应用软件端可执行目录内的MD5码存放文件与更新文件的MD5码存放文件进行对比;如果相对应的文件的MD5码不一样则把该文件信息存入需要更新的列表。
[0017]本发明的另一个目的是提供一种采用所述的软件自动更新的方法的系统,其包括:
[0018]主服务器,用于管理与应用软件端之间的数据交互、存储数据,为应用软件端提供数据库资源、查询服务和账号服务;
[0019]后台管理设备,用于控制软件自动更新的过程,为用户提供可控操作,上传应用软件端更新包;
[0020]更新服务器,用于为应用软件端提供软件更新服务,与应用软件端之间进行数据交换和存放更新文件;
[0021]应用软件端,用于为用户提供操作界面和应用终端服务。
[0022]进一步的,所述更新服务器包括更新文件存放模块和数据交换模块,所述更新文件存放模块用于存放更新文件压缩包,所述数据交换模块用于与应用软件端之间进行数据交换。
[0023]与现有技术相比,本发明的有益效果是:
[0024](I)本发明通过将更新文件中的每一个文件计算每个MD5码,通过更新服务器检查应用软件端的文件的MD5码,并将更新文件MD5码与应用软件端的MD5码进行比对,若相同则不更新,若不同则更新,这样节约了更新时间,节约了网络资源。
[0025](2)本发明通过SM4方法对MD5码存放文件进行加密,能够有效的防止更新文件被篡改,安全性强。
【附图说明】
[0026]图1是本发明的软件自动更新的方法的流程示意图;
[0027]图2是本发明的软件自动更新的系统的结构示意图。
【具体实施方式】
[0028]以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0029]实施例1
[0030]本【具体实施方式】披露了一种软件自动更新的方法,包括如下步骤:
[0031]步骤一:计算存放更新文件的文件夹内的所有文件的MD5码,并将计算好的MD5码写入MD5码存放文件。其中,每一个文件都有自己对应的MD5码,不包含重复码。并且更新的文件和旧版本的文件中不同的文件MD5码不同,更新时仅对与旧版本的文件中的不同的文件进行更新,从而减少更新的数据量。MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。MD5码具有不可逆性、离散性和码位性,用于文件完整性验证能够确保不会产生差错,造成更新异常或失败,这是因为MD5具有128之长,随机产生2个相同的MD5码的概率几乎是零。并且采用MD5码具有极高的安全性,由于具有高度的离散性,也就是说,原信息的一点点变化就会导致MD 5的巨大变化,例如〃 ABC "MD 5(902fbdd2bldf0c4f70b4a5d23525e932)和〃 ABC 〃(多了一空格)MD5(12c774468f981a9487c30773d8093561)差别非常大,而且之间没有任何关系,因此产生的MD5码是不可预测的,所以其安全性非常高,不容易被篡改。其中更新的文件通过一个与更新服务器相区别的终端服务器进行上传,并通过一计算机设备进行产生每一个文件所对应的MD5码。而新文件产生MD5的设备与旧版本的文件产生MD5码的方式和规则相同,这样就能够确保相同的文件具有同样的MD5码。
[0032]优选的,所述MD5码存放文件为vi存储文件,并且通过SM4方法对vi存储文件进行加密。采用vi存储文件对MD5码进行存储,安全性高,且通过SM4方法加密,确保了文件不会被恶意篡改。在本发明的另一个实施例中,还可以通过其他方法对vi存储文件进行加密。
[0033]优选的,为了减小对网络资源的占用,将存放更新文件的目录内的所有文件进行压缩,将存放MD5码的vi文件和压缩好的文件放到更新服务器,以便于后续的更新使用。更新服务器与文件上传的服务器通过光纤连接,光纤的数据传输速度快能够节约时间。并且更新服务器与文件上传的服务器之间设置有加密设备,通过加密设备对更新服务器进行保护,确保更新服务不会受到攻击而被篡改。
[0034]优选的,所述更新文件的压缩采用Zlib的Compress接口,通过Zlib压缩方式进行压缩更新文件,从而减小更新文件包的大小,减小文件传输的信息量,节约网络资源。在本发明的另一个实施例中,还可以是其他压缩方式,例如WinRAR。
[0035]步骤二:应用软件端通过从更新服务器下载MD5码存放文件并与应用软件端的MD5码进行比对判断应用软件是否需要更新。其中,应用软件端设置有一临时文件夹,用于存放从更新服务器下载的MD5码。在进行更新之前,应用软件端需要从更新服务器下载MD5码到临时文件夹,并将临时文件夹内的MD5码与应用软件端的旧版本文件的MD5码进行比较。在执行此步骤之前,需要检验应用软件端的可执行目录内是否有MD5码存放文件,检验反馈给更新服务器的信号显示没有,则更新服务器发出指令,应用软件端在可执行目录内新建一个MD5码存放文件。而应用软件端通过内置的脚本文件计算旧版本文件的MD5码。通过将下载的最新版本的MD5码与应用软件端的旧版本的MD5码进行比较,若发现不同则向更新服务器发出更新请求指令,若相同则在应用软件终端显示该版本为最新版本无需更新。并且应用软件端的MD5码文件与更新服务器下载MD5码文件不同时则在更新完成后将更新服务器下载MD5码替换到应用软件端。从而避免了反复检验应用软件端是否包含MD5码,浪费网络资源。
[0036]步骤三:从更服务器下载压缩好的文件进行更新。优选的,应用软件端从更新服务器下载的方式采用单一点对点的下载方式,这样能够确保应用软件端不会接收从其他途径得到的文件,从而确保应用软件端不会在更新过程中被恶意篡改,保证了应用软件端的安全性。
[0037]实施例2
[0038]如图2所示的结构示意图,本【具体实施方式】披露了一种软件自动更新的系统,其包括:
[0039]主服务器,用于管理与应用软件端之间的数据交互、存储数据,为应用软件端提供数据库资源、查询服务和账号服务。优选的,主服务器应包括一更新文件压缩包生成器、一更新文件上传设备、多个数据接口、一网络连接设备、一输入设备、一显示设备、多个散热设备和一个或多个中央处理器。其中网络连接设备与数据接口相连接,通过数据接口能够进行上传文件和文件传输。进一步优选的,数据接口包括针式接口、USB接口和网线插口等多种接口,方便利用U盘和硬盘的多种移动或者计算机进行上传文件。为了确保不会从网络接口被入侵修改,接口与其他设备之间均设置有安全设备,通过安全设备检验接口传输的数据是否安全可靠。如通过接口传输的数据内包含有不安全信息,例如木马、恶意脚本等,则限制该接口并将不安全信息进行隔离删除之后在接通。
[0040]优选的,更新文件上传设备与上传更新文件的接口进行连接,通过读取移动存储设备内的数据信息,并上传到更新服务器内,其中为了减少更新服务器的压力,更新文件上传设备还连接有一暂存设备,通过一临时存储器将更新文件进行暂存,方便后台管理设备进行计算MD5码。
[0041]优选的,更新文件上传设备与文件压缩包生成器相连接,在后台管理设备计算完更新文件的MD5码之后文件压缩包生成器对更新文件进行压缩从而形成更新文件压缩包。从而减少用户更新需要的时间和对网络的占用率,提高软件更新的速度。
[0042]优选的,网络连接内包含有网络安全密钥,管理人员可以通过网络远程登录安全密钥对主服务器授权的行为进行操作。达到远程管理的目的,方便实用。
[0043]优选的,输入设备用于管理人员输入指令,用于输入查询和操作指令等,其可以是键盘输入设备或者触摸板和生意输出设备等等。
[0044]此外,显示设备用于辅助管理人员输入和显示主服务器的工作状态。优选的,显示设备为液晶显示器,并且在液晶显示器的外层设置一防护壳体。为确保显示器的使用寿命和时刻均有显示状态,液晶显示器可设置多个,采用交替工作的方式,确保一直处于显示状
??τ O
[0045]优选的,多个散热器设置在中央处理器、网络连接设备和显示器等设备处,并且主服务器外端是设置壳体,壳体上也可以设置一散热器,通过散热器对主服务器进行散热处理,确保其正常工作。在本发明的另一个实施例中,散热器可采用水冷式散热器,其包括一水冷管、一循环装置、一散热片和一储水装置,散热片与需要散热的部分连接,水冷管的两端连接散热片和循环装置,水冷管通过循环装置与储水装置连接。通过循环装置将水在水冷管和储水装置之间循环将热量逐渐排出。为了确保散热效果,水冷管内部设置有带孔隙的阻力层,以降低水的流速,这样就能够使得水有足够的时间与散热片之间进行热传递。进一步优选的,水还可以是包含填充物的水,从而增强其在阻力层上的沉积效果,加厚沉积层,增强散热性能。其中填充物可以是氧化硅和氧化铝等。为提高散热性,水冷管采用红铜制水冷管,由于红铜极好的导热性,能够增强水冷管的导热效果。此外,水冷式散热器可以是封闭型水冷式散热器也可以是开放性水冷式散热器。
[0046]优选的,中央处理器采用多核中央处理器,其通过搭载搭载终端软件实现对为应用软件端提供数据库资源、查询服务和账号服务。中央处理器还连接有内存和线路电板,并且多个中央处理器拥有独立的散热器,以防止高温影响处理器的性能。
[0047]后台管理设备,用于控制软件自动更新的过程,为用户提供可控操作,上传应用软件端更新包。当无法通过主服务器进行直接上传更新文件时,可通过后台管理设备进行上传。后台管理设备与主服务器相连接,管理人员可以通过后台管理设备对主服务器的功能设备进行监测控制,其中包括散热器等。
[0048]更新服务器,用于为应用软件端提供软件更新服务,与应用软件端之间进行数据交换和存放更新文件。优选的,更新服务器包括更新文件存放模块和数据交换模块。其中更新文件存放模块用于存放压缩过的更新文件和MD5压缩文件,具体的通过一高速存储器存储,并且该存储器为非易失性存储器。进一步优选的,高速存储器包括多个存储硬盘和备份硬盘,存储硬盘用于存放压缩过的更新文件和MD5压缩文件,并通过备份硬盘备份存储。此夕卜,存储硬盘和备份硬盘采用独立供电的方式,以防止读写数据过程突然断电导致数据丢失。数据交换模块用于和主服务器和应用软件端之间进行数据交换。其中与和主服务器和应用软件数据交换通过不同的通道进行。这样能够提高数据交换的速度,提高用户更新软件的速度,节约网络资源。所述更新服务器包括更新文件存放模块和数据交换模块,所述更新文件存放模块用于存放更新文件压缩包,所述数据交换模块用于与应用软件端之间进行数据交换。
[0049]应用软件端,用于为用户提供操作界面和应用终端服务。优选的,应用软件端可以是个人电脑、平板或智能手机等。其包括显示界面、操作界面和处理控制器。处理控制器内设置有数据接收模块和数据发送模块,数据接收模块和数据发送模块与更新服务器通过网络连接。并且,处理控制器还设置有应用软件端MD5码计算模块,用于计算应用软件端的MD5码。此外,还设置一数据暂存模块用于临时存放从更新服务器下载的MD5码压缩文件。进一步优选的,处理控制器还包括为用户提供查询服务和账号服务等应用服务的功能。
[0050]优选的,在本发明的另一个实施例中,应用软件端还可以包括一个文件属性检查模块,用于检查更新文件的属性,以防止在更新服务器受到木马或者病毒攻击后传染给应用软件端的设备。具体的,该文件属性检查模块包括历史文件属性检查单元、更新文件属性比对单元、异常文件位置记录单元和杀毒软件调用单元。历史文件属性检查单元用于在更新之前对应用软件端的所有文件属性进行记录并建立数据库进行保存。更新文件属性比对单元用于将下载的更新文件的属性与历史文件属性检查单元记录的历史文件属性进行逐一比对,若发现异常文件属性,则将整个更新文件进行隔离,若没有发现异常文件属性则进行正常更新。异常文件位置记录单元用于记录发现异常文件属性的文件位置。杀毒软件调用单元用于根据异常文件位置记录单元记录的异常文件位置调用杀毒软件对记录的位置进行制定查杀,从而避免了更新文件时对整个更新文件进行查杀木马和病毒,节约了更新时间,减小了应用软件端的更新压力。当杀毒软件将木马和病毒文件进行清理后,则进行正常的更新步骤。
[0051]优选的,处理控制器还包括一比对模块,用于将从更新服务器下载的MD5码文件与应用软件的旧版本文件的MD5码文件进行对比。并且,当更新服务器检测到应用软件不存在存放MD5码的文件,还可以通过比对模块建立一文件夹。
[0052]优选的,处理控制器还包括一压缩文件解压模块,用于将从更新服务器下载的压缩文件进行解压。
[0053]上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
【主权项】
1.一种软件自动更新的方法,其特征在于,包括如下步骤: 步骤一:计算存放更新文件的文件夹内的所有文件的MD5码,并将计算好的MD5码写入MD5码存放文件,将存放更新文件的目录内的所有文件进行压缩,将MD5码存放文件和压缩好的文件放到更新服务器; 步骤二:应用软件端通过从更新服务器下载MD5码存放文件并与应用软件端的MD5码进行比对判断应用软件是否需要更新; 步骤三:从更服务器下载压缩好的文件进行更新。2.根据权利要求1所述的一种软件自动更新的方法,其特征在于:所述MD5码存放文件为vi存储文件。3.根据权利要求1所述的一种软件自动更新的方法,其特征在于:所述MD5码存放文件采用SM4方法进行加密。4.根据权利要求1所述的一种软件自动更新的方法,其特征在于:所述更新文件的压缩采用Zlib的Compress接口。5.根据权利要求1所述的一种软件自动更新的方法,其特征在于:所述步骤二中应用软件端从更新服务器下载MD5码存放文件到临时文件夹。6.根据权利要求1所述的一种软件自动更新的方法,其特征在于:所述步骤二还包括检验应用软件端可执行目录是否有MD5码存放文件。7.根据权利要求6所述的一种软件自动更新的方法,其特征在于:所述步骤二还包括在应用软件端可执行目录内生成应用软件端MD5码存放文件。8.根据权利要求6所述的一种软件自动更新的方法,其特征在于:所述步骤二还包括将应用软件端可执行目录内的MD5码存放文件与更新文件的MD5码存放文件进行对比;如果相对应的文件的MD5码不一样则把该文件信息存入需要更新的列表。9.一种采用如权利要求1所述的软件自动更新的方法的系统,其特征在于,包括: 主服务器,用于管理与应用软件端之间的数据交互、存储数据,为应用软件端提供数据库资源、查询服务和账号服务; 后台管理设备,用于控制软件自动更新的过程,为用户提供可控操作,上传应用软件端更新包; 更新服务器,用于为应用软件端提供软件更新服务,与应用软件端之间进行数据交换和存放更新文件; 应用软件端,用于为用户提供操作界面和应用终端服务。10.根据权利要求9所述的一种软件自动更新的系统,其特征在于,所述更新服务器包括更新文件存放模块和数据交换模块,所述更新文件存放模块用于存放更新文件压缩包,所述数据交换模块用于与应用软件端之间进行数据交换。
【文档编号】G06F9/445GK106095500SQ201610403874
【公开日】2016年11月9日
【申请日】2016年6月8日
【发明人】何中, 施东海, 严伟, 薛炜, 徐晓辉, 何登
【申请人】江苏中威科技软件系统有限公司