具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种软件升级检测的方法、装置及系统,使用本发明实施例提供的技术方案,能够降低对升级服务器带宽的需求。
本发明实施例中提及的客户端软件可以是计算机软件,也可以是手机软件、各种嵌入式软件,例如机顶盒软件等能够在线升级的软件。下面仅以计算机软件为例进行详细说明。
本发明实施例除了按照日期均摊升级时机外,还增加了按照每天内的时间均摊升级时机。例如,假定某个软件已经发行了10万套,新版本有50兆字节大小。通常用户开机并运行这个软件时,就会启动升级检查和下载的流程。用户开机是有高峰时段的,通常大多数用户会在早上上班时间、晚上下班时间两个高峰期运行电脑,从而在这些时间形成带宽瓶颈,假定这些高峰期累计为三小时。参见图1,图1为原始带宽需求、按照日期均摊带宽需求和再按照时间均摊的带宽需求的对比图。那么,如果10万用户都要在三小时内升级完,就需要带宽10万×50兆字节/3小时=3703.7兆比特/秒,这是一个几乎不可能达到的要求。将3703.7兆比特/秒视为原始带宽需求。按照30天日期均摊的带宽需求为3703.7/30=123兆比特/秒,这个带宽对于中小型规模的公司来说,成本很高,依旧很难承担。现在按照每天内的时间再进行升级时机的均摊,即原来是3小时高峰,现在理论上是24小时都能利用,降低了8倍,因此,按照时间均摊的带宽需求为123/8=15.4兆比特/秒,这已经降低了绝大部分中小型公司可以接受的程度了。
实施例一
本实施例阐述一种在软件升级检测时降低升级服务器带宽需求的方法,下面结合附图进行详细描述。
参见图2,本实施例的方法包括以下步骤:
步骤201:软件启动时,对软件的运行时间进行计时,并判断升级等待时间是否为零;如果判断升级等待时间为零,则执行步骤202;
上述的升级等待时间可以是上次未实现的检查时间,未实现可以是未实现新版本检查,也可以是未实现下载新版本,其缺省值通常是零。
如果判断升级等待时间不为零时,即上次关闭软件时没有向升级服务器检测软件的升级版本,此时,则减少升级等待时间的值,例如可以是将升级等待时间除以二,得到变化后的等待时间,将升级等待时间更改为上述变化后的等待时间。这样就可以减少等待时间,从而可以加大下一次实现检查的命中率。当然,也可以是将升级等待时间除以其它的数字,例如4、8等,或者可以是进行其它的一些变换,使得升级等待时间缩小。
步骤202:生成随机数;
上述生成随机数可以是在N分钟内随机生成一个表示时间的数字,上述N可以根据具体情况设定,例如,可以设置成360分钟或150分钟等。
步骤203:将升级等待时间更改为随机数;
即将步骤202中生成的随机数替换原来的升级等待时间,将原来按照日期均摊升级时机进一步按照时间均摊升级时机,使得对升级服务器的带宽需求进一步减少,这样,一天之内,只要软件运行的累计时间到达这个升级等待时间就检测软件的升级版本。这个随机数就作为下次启动检查和下载的时间。
步骤204:在判断软件的运行时间到达升级等待时间时,从升级服务器检测软件的升级版本。
通过上述步骤,升级等待时间已经发生变化,对软件的运行时间进行不断检测,一旦软件的运行时间到达升级等待时间,就向升级服务器检测软件的升级版本。
此处向升级服务器检测软件的升级版本可以发起新版本检查,接收升级服务器发送的版本描述文件;根据版本描述文件判断是否有软件的升级版本;在判断需要升级时从升级服务器下载软件的升级文件。如果没有检测到软件的升级版本,则将升级等待时间清零。这样,按照日期均摊升级时机还会起效,每天内相当于立即检测是否有软件的升级版本,但不一定会下载软件的升级文件。如果检测软件的升级版本失败,升级等待时间可以清零,也可以不变,若等待时间不变,则下次不必再产生随机数替换等待时间,可在已分配的随机数的基础上进行检测。如果下载软件的升级文件失败,等待时间可以清零,也可以不变,同样,若等待时间不变,则下次不必再产生随机数替换等待时间,还可以在已分配的随机数的基础上进行检测和下载。为了下次使用该按照时间均摊升级时机的方法更加准确,下载软件的升级文件完成后还可以包括一个步骤:将预置的检查时间清零。
在收到软件的终止运行命令时,若此时软件的运行时间没有达到升级等待时间,即软件的运行时间小于升级等待时间,减少升级等待时间,减少升级等待时间可以是将升级等待时间减去软件的运行时间,得到变化后的升级等待时间,将升级等待时间更改为变化后的升级等待时间。即在关闭软件之前,先将升级等待时间减去本次软件的运行时间,下次重新启动该软件时,就可以减少升级等待的时间。
本实施例由于设置了升级等待时间,且升级等待时间随机产生,在判断软件运行到达升级等待时间时从升级服务器检测新版本,使得各客户端从升级服务器下载软件的升级文件的时机在一定程度上按照时间均摊,进而对升级服务器带宽的需求进一步降低,从而降低了成本,也提升了用户体验。进一步地,不需要增加服务器的硬件配置,也不需要增加服务器的软件需求,例如要求软件支持补丁下载等,可以大大降低对在线升级服务器的带宽需求。
实施例二
本实施例阐述了一种具体实现降低服务器带宽需求的方法,下面结合附图进行详细说明。
参见图3,本实施例的方法包括以下步骤:
步骤301:客户端软件保存一个“上次未实现的检查时间”,缺省是零;
步骤302:客户端软件判断“上次未实现的检查时间”是否为零;
客户端软件在每次应该检查版本是否要升级时,例如每隔30天的第一次运行软件时,先判断“上次未实现的检查时间”一次;
步骤303:如果“上次未实现的检查时间”等于零,则先在N分钟内随机生成一个数字,作为下次启动检查和下载的时间,同时替代“上次未实现的检查时间”;
步骤304:如果“上次未实现的检查时间”不等于零,则把此数字除以2,减少等待时间,将除以2后的新的时间作为“上次未实现的检查时间”;
例如,有可能这一天还没有到达预置的检查时间,用户就关闭该软件了,下次再启动该软件时要接着判断,将“上次未实现的检查时间”除以2,可以加大第二天的命中率,或者说可以加大下一次需要检查和下载的命中率,减少用户等待的时间,以后每天都是这样除以2递减,那么就可以极大的提升用户体验。
步骤305:如果判断到达“上次未实现的检查时间”,就正常检查和下载;
步骤306:完成软件的升级文件下载后,将替换后的“上次未实现的检查时间”清零。
本实施例通过生成时间随机数代替“上次未实现的检查时间”,通过时间均摊检测软件的升级版本和下载软件的升级文件的时机,从而降低了对升级服务器带宽的需求,进一步地,考虑到了用户提前关机的可能性,通过对“上次未实现的检查时间”逐渐递减,减少等待时间,加大了下次检查和下载软件的升级版本的命中率。
实施例二阐述的是在软件启动时,如果升级等待时间不为零,可以将升级等待时间除以2,以减少升级等待时间,下面阐述一种在关闭软件之前,将升级等待时间减去软件运行时间,以降低对升级服务器带宽需求的实施例。
实施例三
本实施例阐述一种在软件关闭前将软件的升级等待时间减去软件运行时间,以减少升级等待时间的方法,在该方法中,软件启动时,判断升级等待时间是否为零;在判断升级等待时间为零时,生成随机数,将升级等待时间更改为上述随机数;在判断软件的运行时间到达升级等待时间时,从升级服务器检测软件的升级版本。
如果收到软件的终止运行命令时,软件的运行时间未到达升级等待时间,则将升级等待时间减去软件的运行时间。
即有可能上述从升级服务器检测软件的升级版本还没有执行,就需要终止运行该软件了,此时为了减少下次再运行该软件时,等待升级的时间减少,则可以是将升级等待时间减去软件运行时间,得到变化后的升级等待时间,将原来的升级等待时间更改为变化后的升级等待时间。当然,也可以是采取其它的方法减少关闭软件前的升级等待时间。
例如,如果开始设置的升级等待时间为4小时,但只运行了半个小时,软件就需要关闭,或者需要关机了,在关闭软件的时候可以将升级等待时间设置为4-0.5=3.5小时,这样,下次启动该软件的时间,如果软件的运行时间到达3.5小时,就向升级服务器检测软件的升级版本。
本实施例通过在关闭软件时将升级等待时间减去软件运行时间,可以是下次启动该软件时,升级等待时间变短,从而加大了下次启动升级版本检测的命中率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。以上提供了一种软件升级检测的方法,本发明实施例还提供一种软件升级检测的装置和一种软件升级检测的系统。
参见图4,一种降低服务器带宽需求的装置,包括:
计时单元406,用于在软件启动时,对软件的运行时间进行计时;
第一判断单元401,用于在软件启动时,判断升级等待时间是否为零;
生成单元402,用于在第一判断单元401判断升级等待时间为零时,生成随机数;
更改单元403,用于将升级等待时间更改为生成单元402生成的随机数;
第二判断单元404,用于判断计时单元406得到的软件的运行时间是否到达升级等待时间;
检测单元405,用于在第二判断单元404判断软件的运行时间到达升级等待时间时,从升级服务器检测软件的升级版本。
其中,上述装置还包括:
减少单元,用于在第一判断单元401判断升级等待时间不为零时,减少升级等待时间的值。
其中,上述装置还包括:
终止命令接收单元,用于接收软件的终止运行命令;
第三判断单元,用于在终止命令接收单元接收到软件的终止运行命令时,判断软件的运行时间是否小于升级等待时间,
执行单元,用于在第三判断单元判断软件的运行时间小于升级等待时间时,减少升级等待时间。
其中,检测单元405包括:
发送单元,用于发起新版本检查;
接收单元,用于接收版本描述文件,上述版本描述文件由升级服务器根据发送单元发送的新版本检查发送;
检测子单元,用于根据接收单元接收到的版本描述文件检测是否有软件的升级版本。
上述装置还包括:
下载单元,用于在检测单元405检测到软件的升级版本时,从升级服务器下载软件的升级文件,上述升级文件与检测单元405检测到的升级版本对应;
清零单元,用于在检测单元未检测到软件的升级版本时,将升级等待时间清零。
其中,上述清零单元还用于在下载单元下载软件的升级文件后,将升级等待时间清零。
上述装置可以用来实现一种软件升级检测的方法,但不限于实现该方法。
上面阐述了一种软件升级检测的装置,下面阐述一种软件升级检测的系统。
参见图5,一种降低服务器带宽需求的系统,包括:
客户端501,用于软件启动时,判断升级等待时间是否为零;在判断升级等待时间为零时,生成随机数;将升级等待时间更改为上述随机数;在判断软件的运行时间到达升级等待时间时,从升级服务器502检测软件的升级版本;
升级服务器502,用于接收客户端501发起的软件的升级版本的检测,并根据客户端501发起的软件的升级版本的检测向客户端501返回软件的版本描述文件。
其中,客户端501还用于在启动时判断所述升级等待时间不为零时,减少所述升级等待时间的值。其中,客户端501还用于在收到所述软件的终止运行命令时,若所述软件的运行时间小于所述升级等待时间,减少所述升级等待时间。
其中,若检测到软件的升级版本,客户端501还用于从升级服务器502下载软件的升级文件,上述升级文件与升级版本对应;
升级服务器502还用于向客户端501提供软件的升级文件。
其中,客户端501还用于将升级等待时间清零。
本发明实施例由于设置了升级等待时间,且升级等待时间随机产生,在判断软件运行到达升级等待时间时从升级服务器检测新版本,使得各客户端从升级服务器下载软件的升级文件的时机在一定程度上按照时间均摊,进而对升级服务器带宽的需求进一步降低,从而降低了成本,也提升了用户体验。
进一步地,关闭软件时将升级等待时间减去软件运行时间,可以减少下次启动软件时升级等待时间,从而加快检测软件的升级版本。
进一步地,启动软件时,在判断升级等待时间不为零时,将升级等待时间除以二,可以增大此次运行软件时,进行软件的升级版本检测的几率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
软件启动时,对软件的运行时间进行计时,并判断升级等待时间是否为零;
在判断升级等待时间为零时,生成随机数;
将升级等待时间更改为上述随机数;
在判断软件的运行时间到达升级等待时间时,从升级服务器检测软件的升级版本。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种软件升级检测的方法、装置及系统进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。