软件升级方法和系统与流程

文档序号:12596358阅读:394来源:国知局
软件升级方法和系统与流程

本发明涉及计算机技术领域,特别是涉及一种软件升级方法和系统。



背景技术:

目前,软件升级的方式大多是通过下载更新包并安装实现,其中更新包中包含实现软件本身功能的逻辑和使用到的数据两部分。例如,对于杀毒软件,查杀病毒的逻辑通常是通过脚本语言实现,当杀毒软件需要升级时,传统方式则需要更新整个脚本文件。这种更新方式即使每次软件的更新变动很小,都需要由于要传输完整的包含逻辑和数据两部分的更新包,造成网络资源的浪费。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能节省网络资源的软件升级方法和系统。

一种软件升级方法,所述方法包括:

获取终端发送的升级问询命令;

根据所述升级问询命令判断是否需要进行软件升级,若是,则

获取最新更新的数据文件,将所述数据文件发送至所述终端,使所述终端根据所述数据文件实现软件升级;

其中,所述数据文件是实现软件功能的逻辑文件所使用到的数据文件。

一种软件升级系统,所述系统包括:

命令接收模块,用于获取终端发送的升级问询命令;

升级判断模块,用于根据所述升级问询命令判断是否需要进行软件升级;

升级模块,用于获取最新更新的数据文件,将所述数据文件发送至所述终端,使所述终端根据所述数据文件实现软件升级;

其中,所述数据文件是实现软件功能的逻辑文件所使用到的数据文件。

上述软件升级方法和系统,在判断软件需要进行升级时,只提供实现软件功能的逻辑文件所使用到的数据文件给终端,以实现软件升级,相对于传统的需要下载完整更新包的方式,由于传输的数据量减少,能够有效节省网络资源。

附图说明

图1A为一个实施例中应用软件升级方法的系统架构图;

图1B为另一个实施例中应用软件升级方法的系统架构图;

图2为一个实施例中服务器的内部示意图;

图3为一个实施例中软件升级方法的流程图;

图4为另一个实施例中软件升级方法的流程图;

图5为一个实施例中软件升级系统的结构示意图;

图6为另一个实施例中软件升级系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例所提供的软件升级方法可应用于图1A所示的系统中,如图1A所示,终端110通过网络与服务器120进行通信,终端110上安装软件并运行,服务器120中存储了预先配置的最新更新的数据文件,该数据文件是终端110中的软件实现其功能的逻辑文件所使用到的数据文件。举例来说,对于查毒软件,数据文件则可以是病毒检测脚本使用到的数据文件,其中包括病毒特征等数据。进一步的,终端110向服务器120发送升级问询命令,服务器120接收到升级问询命令后,根据升级问询命令判断是否需要进行软件升级,如果需要升级,则获取预先配置的最新更新的数据文件,将数据文件发送到终端110,使终端110根据数据文件实现软件升级。

进一步的,本发明实施例所提供的软件升级方法还可应用于如图1B所示的系统中。如图1B所示,服务器120包括升级服务器120a和配置服务器120b,升级服务器120a与终端110通过网络进行通信,为终端110上的软件升级提供最新更新的数据文件,配置服务器120b通过网络与管理终端130进行通信,开发人员可通过管理终端130进行数据文件配置,配置好的数据文件可加密存储在配置服务器1206b中,并推送给升级服务器120a。

在一个实施例中,图1A中的服务器120或者升级服务器120a的内部结构如图2所示,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和一种软件升级系统,数据库用于存储数据,如存储最新更新的数据文件等,该系统用于实现一种软件升级方法。该服务器的处理器用于提供计算和控制能力,支撑整个接入服务器的运行。该服务器的内存为存储介质中的软件升级系统的运行提供环境。该服务器的网络接口用于与外部的终端或服务器通过网络连接通信,比如接收终端110发送的升级问询命令或管理终端或者配置服务器推送的数据文件等。

如图3所示,在一个实施例中,提供了一种软件升级方法,该方法可应用如图1A所示的服务器或者附图1B所示的升级服务器中,具体包括以下步骤:

步骤302,获取终端发送的升级问询命令。

本实施例中,终端可通过软件应用界面发起升级请求,该升级请求可以是在运行软件过程中每个预设时间动态向服务器发起的升级请求,也可以是通过软件应用界面提供的升级按钮或者特定功能按钮发起的升级请求,终端根据升级请求向服务器发送升级问询命令,以确定是否能够实现升级。

步骤304,根据升级问询命令判断是否需要进行软件升级,若是,则进入步骤306,否则不升级。

具体的,升级问询命令包括多种类型,例如普通升级命令、指定升级命令等,对于不同类型的升级问询命令对应的处理方式也将不同。

步骤306,获取最新更新的数据文件,将数据文件发送至终端,使得终端根据数据文件实现软件升级。

本实施例中,数据文件是实现软件功能的逻辑文件所使用到的数据文件,数据文件预先存储在服务器中,当服务器接收到终端发送的升级问询命令并确定终端中运行的软件需要升级时,则获取最新更新的数据文件并发送到终端,终端接收到数据文件,根据数据文件对软件进行升级。

本实施例中,在判断软件需要进行升级时,只提供实现软件功能的逻辑文件所使用到的数据文件给终端,以实现软件升级,相对于传统的需要下载完整更新包的方式,由于传输的数据量减少,能够有效节省网络资源。

在一个实施例中,根据升级问询命令判断是否需要进行软件升级的步骤包括:检测升级问询命令的类型,若升级问询命令的类型是普通升级命令,则获取升级后的升级比例,比较获取的升级比例与预设升级比例的大小;如果获取的升级比例不超过预设升级比例,则判定需要进行升级,否则不需要进行升级。

本实施例中,普通升级命令区别于指定的特殊升级命令,可以是终端在运行软件的过程中定时向服务器发起的升级命令,比如每隔预设时间向服务器发起升级问询命令,服务器判断终端正在运行的软件是否需要升级,比如根据版本号判断是否为最新版本等。当服务器确定接收到的是普通升级命令,则计算本次升级后的升级比例,判断本次升级后的升级比例是否会超过预先设置的升级比例,如果没有超过,则需要进行升级,否则不需要进行升级。

进一步的,可根据终端IP地址和软件客户端的版本号来计算本次升级后的升级比例,比如,根据预设函数y=hash(IP地址,客户端版本号),且保证y在(1,100)的范围内,从而根据该函数计算得到y即为本次升级后的升级比例。将该升级比例与预设升级比例进行比较,如果超过预设升级比例,则表明当前升级的用户已饱和,判定不进行升级,如果没有超过预设升级比例,则表明网络资源还可以满足该用户升级,判定需要进行升级。

本实施例中,当服务器接收到的是普通升级命令时,通过预设升级比例来确定是否进行本次升级,只有在计算得到的升级比例不超过预设升级比例的情况下才进行升级,避免了大量用户集中在同一时刻升级,节省了网络资源的同时,确保了软件的升级速度。

在一个实施例中,根据升级问询命令判断是否需要进行软件升级的步骤包括:检测升级问询命令的类型;若升级问询命令的类型是指定升级命令,则进一步判断预设升级比例是否超过预设阈值,若是,则判定需要进行升级。

本实施例中,指定升级命令是指预先确定的特定升级命令,对于这类命令将区别于普通升级命令,比如,指定升级命令可以是在指定软件某项特定功能时触发的升级命令,或者是在触发软件中的某个特定按钮产生的升级命令。服务器确定接收到的是指定升级命令,则比较预设升级比例与预设阈值的大小,其中预设升级比例和预设阈值都是事先设定好的,如果预设升级比例超过预设阈值,则表明预设升级比例足够大,可以满足当前的升级需求,直接判定需要进行升级。如果预设升级比例没有超过预设阈值,则表明预设升级比例不能满足当前的升级需要,判定不进行升级或者进行其它数据处理。

进一步的,在一个实施例中,根据升级问询命令判断是否需要进行软件升级的步骤还包括:如果预设升级比例没有超过预设阈值,则进一步获取升级后的升级比例,比较获取的升级比例与预设升级比例的大小;如果获取的所述升级比例不超过预设升级比例,则判定需要进行升级,否则不需要进行升级。

本实施例中,如果预设升级比例没有超过预设阈值,则表明预设升级比例不能满足当前的升级需求,则进一步计算本次升级后的升级比例,如上所述,可根据终端IP地址和软件客户端版本号计算本次升级后的升级比例,比较计算得到的升级比例与预设升级比例的大小,以判断当前升级的用户是否已饱和,如果计算得到的升级比例不超过预设升级比例,则表明预设升级比例覆盖了本次升级的用户,判定需要进行升级,否则表明预设升级比例不能覆盖本次升级的用户,判定不进行升级。

本实施例中,对于指定升级命令,只要预设升级比例超过预设阈值,不管用户是否在被覆盖的预设升级比例内,都直接进行升级,保证了指定升级命令的快速升级。而当预设升级比例没有超过预设阈值时,只有被覆盖在预设升级比例的用户才进行升级,这样既保证了升级速度,又保证了升级流量的相对平稳,避免了大量用户集中在同一时刻进行升级。

在一个实施例中,软件升级方法还包括:配置软件升级所需要的数据;对 配置的数据进行打包,生成最新更新的数据文件;对生成的数据文件进行加密并保存。

本实施例中,开发人员可通过管理终端进行数据文件配置,比如通过Web页面配置数据文件,数据文件中包含软件实现其功能的逻辑文件所使用到的数据。对配置的数据进行打包生成数据文件,然后对生成的数据文件进行加密。具体的,可采用非对称加密算法对生成的数据文件进行加密。例如,对生成的数据文件进行哈希值计算,然后通过非对称密钥算法的私钥,对计算得到的哈希值进行加密,并保存。

进一步的,可将加密后的数据文件推送到升级服务器,计算新生成的数据文件与历史数据文件的差值,在升级服务器中保存差值和完整的数据文件。终端接收到升级服务器发送的最新更新的数据文件,计算数据文件哈希值,使用非对称加密算法的公钥对接收到的数据文件进行解密,如果两者一致,则表明数据文件没有被篡改。通过对数据文件进行加密,终端接收到数据文件先进行验证,提高了安全性。

在一个实施例中,如图4所示,提供一种软件升级方法,该方法可应用于如图1A所示的服务器或者图1B所示的升级服务器中,具体包括:

步骤402,获取终端发送的升级问询命令。

本实施例中,终端发送的升级问询命令包括普通升级命令和指定升级命令,其中普通升级命令可以是每个预设时间向服务器发起的普通升级请求。指定升级命令可以是在指定软件某项特定功能时触发的升级命令,或者是在触发软件中的某个特定按钮产生的升级命令。以查毒软件为例进行说明,普通升级命令可以是终端在运行查毒软件时按照预设时间间隔向服务器发起的升级请求,服务器则接收到终端发送的普通升级命令。当用户通过查毒软件的应用界面启动特定查杀,则终端向服务器发送指定升级命令。

步骤404,判断升级问询命令是否为指定升级命令,弱势,则进入步骤406,否则进入步骤408。

步骤406,判断预设升级比例是否超过预设阈值,若是,则进入步骤410, 否则进入步骤408。

本实施例中,预设升级比例和预设阈值都是事先设定好的,并且可以动态调整,如果预设升级比例超过预设阈值,则表明预设升级比例足够大,可以满足当前的升级需求,否则不能满足当前的升级需求。

步骤408,判断升级后的升级比例是否超过预设升级比例,若是,则结束,否则进入步骤410。

本实施例中,如果接收到的是普通升级命令,或者预设升级比例没有超过预设阈值,则进一步判断升级后的升级比例是否超过预设升级比例。如果升级后的升级比例已经超过预设升级比例,表明预设升级比例不能覆盖当前用户,则不进行升级,结束流程。

步骤410,进行升级。

本实施例中,如果预设升级比例超过预设阈值,或者升级后的升级比例没有超过预设升级比例,则表明当前用户可以升级。具体的,服务器获取最新更具的数据文件,将数据文件发送到终端,终端根据接收到的数据文件实现软件升级。

以查毒软件为例进行说明,查杀恶意软件(病毒)通常通过脚本语言实现,因此查杀软件实现查杀病毒是通过脚本文件实现的。脚本文件使用到的数据文件包括病毒特征数据。传统技术中,病毒特征数据会直接写入到脚本文件中的代码中,因此数据和代码是耦合在一起的。本发明实施例中,数据文件与脚本文件隔离开来,将特征与代码进行了分离。

具体的,预先可配置查杀病毒所使用到的数据,也就是病毒特征数据,包括恶意软件的路径、文件名、注册表键值等。配置服务器对配置好的数据进行打包,生成数据文件,对生成的数据文件进行哈希值计算,再使用私钥对数据文件哈希值进行加密,推送到升级服务器中。

升级服务器再确定对当前用户进行升级时,将当前更新的数据文件下发到终端,终端的软件程序计算接收到的数据文件的哈希值,并使用公钥对数据文件进行解密,解密出数据文件中的哈希值,与计算得到的哈希值进行比较,若一直,则验证通过,确保了数据文件的正确性。验证通过后,解析数据文件中 的数据,将解析出的数据传递给脚本文件,脚本文件根据解析出的数据运行脚本代码对恶意软件进行检查,并通过软件的应用界面向用户展示检测结果。

由于将数据与逻辑代码进行了分离,只需要更新少量的特征数据即可实现软件的升级,开发效率高,能够快速相应恶意软件的变种。并且每次更新数据文件即可,不需要更新整个脚本文件,既然节省了网络资源,又能够减少因为更新整个脚本文件所带来的风险。另外,采用两种更新方式,对于普通升级命令,需要预设升级比例覆盖当前用户才进行升级,对于指定升级命令,当预设升级比例超过预设阈值,则直接进行升级,有效避免了所有用户集中同一时刻升级,既保证的升级速度,又保证了升级流量的相对平稳。

如图5所示,在一个实施例中,提供了一种软件升级系统,该系统包括命令接收模块502、升级判断模块504和升级模块506,其中:

命令接收模块502用于获取终端发送的升级问询命令。

升级判断模块504用于根据所述升级问询命令判断是否需要进行软件升级。

升级模块506用于获取最新更新的数据文件,将所述数据文件发送至所述终端,使所述终端根据所述数据文件实现软件升级。

本实施例中,所述数据文件是实现软件功能的逻辑文件所使用到的数据文件。

在一个实施例中,判断模块502用于检测所述升级问询命令的类型;若所述升级问询命令的类型是普通升级命令,则获取升级后的升级比例,比较获取的所述升级比例与预设升级比例的大小;如果获取的所述升级比例不超过预设升级比例,则判定需要进行升级,否则不需要进行升级。

在一个实施例中,判断模块502用于检测所述升级问询命令的类型;若所述升级问询命令的类型是指定升级命令,则进一步判断预设升级比例是否超过预设阈值,若是,则判定需要进行升级。

进一步的,在一个实施例中,判断模块502还用于如果预设升级比例没有超过预设阈值,则进一步获取升级后的升级比例,比较获取的所述升级比例与预设升级比例的大小;如果获取的所述升级比例不超过预设升级比例,则判定 需要进行升级,否则不需要进行升级。

在一个实施例中,如图6所示,该软件升级系统还包括:

数据配置模块508,用于配置软件升级所需要的数据;对配置的所述数据进行打包,生成最近更新的数据文件。

加密存储模块510,用于对生成的所述数据文件进行加密并保存。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1