发明内容
有鉴于此,需提供一种服务器,可合理分配多个客户端设备的固件更新。
此外,还需提供一种服务器分配客户端设备固件更新的方法,可合理的分配多个客户端设备的固件更新。
本发明实施方式提供的一种服务器包括侦测模块、计算模块、比较模块以及分配模块。侦测模块用于接收多个客户端设备的固件版本查询信息,将多个客户端设备的固件的最新版本信息发送给多个客户端设备。计算模块用于接收固件现有版本与固件最新版本不一样的多个客户端设备的固件最新版本下载请求,计算出正在下载固件最新版本的其他客户端设备所需的频宽总和。比较模块用于比较其他客户端设备所需的频宽及请求下载固件最新版本的多个客户端设备所需的频宽总和是否大于服务器的下载总频宽。分配模块用于在其他客户端设备所需的频宽及请求下载固件最新版本的多个客户端设备所需的频宽总和不大于服务器的下载总频宽时,允许请求下载固件最新版本的多个客户端设备进行固件更新,并在其他客户端设备所需的频宽及请求下载固件最新版本的多个客户端设备所需的频宽总和大于服务器的下载总频宽时,让请求下载固件最新版本的多个客户端设备等待下载。
优选的,服务器还包括排序模块,用于依据请求下载固件最新版本的多个客户端设备的属性给每个请求下载固件最新版本的多个客户端设备进行打分,并依据分数为请求下载固件最新版本的多个客户端设备进行排序,其中多个客户端设备按照排序等待下载。
优选的,多个客户端设备的属性包括依据请求下载固件最新版本的多个客户端设备的最高下载速度计算出的下载所需时间。
优选的,多个客户端设备的属性还包括客户端设备是否在使用中、优先权级别、是否为优先权设备以及工作时间长短。
优选的,打分采用的公式为:分数=是否在使用中*(下载所需时间所在的等级*A+优先权级别*B+是否为优先权设备*C+工作时间长短所在的等级*D),其中,A、B、C、D是对应属性的权重因子。
本发明实施方式提供的一种服务器分配客户端设备固件更新的方法包括:接收多个客户端设备的固件版本查询信息,将多个客户端设备的固件的最新版本信息发送给多个客户端设备;接收固件现有版本与固件最新版本不一样的多个客户端设备的固件最新版本下载请求,计算出正在下载固件最新版本的其他客户端设备所需的频宽总和;比较其他客户端设备所需的频宽及请求下载固件最新版本的多个客户端设备所需的频宽总和是否大于服务器的下载总频宽;在其他客户端设备所需的频宽及请求下载固件最新版本的多个客户端设备所需的频宽总和不大于服务器的下载总频宽时,允许请求下载固件最新版本的多个客户端设备进行固件更新,并在其他客户端设备所需的频宽及请求下载固件最新版本的多个客户端设备所需的频宽总和大于服务器的下载总频宽时,让请求下载固件最新版本的多个客户端设备等待下载。
优选的,还包括,依据请求下载固件最新版本的多个客户端设备的属性给每个请求下载固件最新版本的多个客户端设备进行打分,并依据分数为请求下载固件最新版本的多个客户端设备进行排序,其中多个客户端设备按照排序等待下载。
优选的,多个客户端设备的属性包括依据请求下载固件最新版本的多个客户端设备的最高下载速度计算出的下载所需时间。
优选的,多个客户端设备的属性还包括客户端设备是否在使用中、优先权级别、是否为优先权设备以及工作时间长短。
优选的,打分采用的公式为:分数=是否在使用中*(下载所需时间所在的等级*A+优先权级别*B+是否为优先权设备*C+工作时间长短所在的等级*D),其中,A、B、C、D是对应属性的权重因子。
上述服务器及其分配客户端设备进行固件更新的方法,可依据客户端设备的固件更新请求获知各个客户端设备的下载速率以及依据计算服务器的总频宽与多个客户端设备所需下载频宽进行比较从而确定允许同时进行固件下载的客户端设备的数量,并且依据设定的权重公式来对客户端设备的下载等待进行排序,从而达到减轻服务器压力和合理分配固件下载更新的目的。
具体实施方式
参阅图1,所示为本发明服务器10一实施方式的应用环境图。在本实施方式中,服务器10具有存放各种固件版本以及负责管理与终端客户端(如固定电话)的作用。客户端设备20代表着一个或者多个客户端设备,正如图中所示的客户端A21,客户端B23,客户端C25,客户端D27。当上述客户端A21,客户端B23,客户端C25,客户端D27需要进行固件更新时,经过与服务器10的通讯交流后可以依照设定的规则进行固件更新。
参阅图2,所示为本发明服务器10一实施方式的功能模块图。本实施方式中的服务器10包括侦测模块210、计算模块220、比较模块230、分配模块240以及排序模块250。
在本实施方式中,当客户端设备20中的任意一个客户端设备或者多个客户端设备需要进行固件更新时,会发送查询请求以查询最新固件版本。服务器10接收到查询信号后,服务器10内的功能模块会做出相应的处理。侦测模块210在接收到客户端设备20的固件版本查询信息后,将客户端设备20内的多个客户端设备(如客户端A21,客户端B23,客户端C25,客户端D27)的固件现有版本与固件最新版本进行比较,一旦发现该多个客户端设备20(如客户端A21,客户端B23,客户端C25,客户端D27)中的固件现有版本与固件最新版本不同,则将固件最新版本发送给固件现有版本与固件最新版本不同的客户端设备20(如客户端A21)。这样,客户端设备20中的各个客户端设备能够了解到自身的固件版本新旧情况。
在本实施方式中,客户端设备20根据普通文件传输协议TFTP向服务器10发送固件下载请求来进行固件更新,且为了方便下载请求以及应答,客户端设备20在TFTP的操作码区域添加了两个操作码(100和101,如表1所示)。
表1.操作码及其类型
操作码 |
操作类型 |
1 |
读请求 |
2 |
写请求 |
3 |
数据 |
4 |
确认 |
5 |
错误 |
6 |
选项确认 |
100 |
下载请求 |
101 |
答复 |
当让客户端设备20知晓固件版本情况后,一旦获知需要固件更新,则客户端设备20即会发送固件最新版本下载请求(100操作码)给服务器10,这样,计算模块220会依据接收到的客户端设备20的固件最新版本下载请求(100操作码),计算出正在下载该固件最新版本的其他客户端设备的频宽总和。当获知该固件最新版本的其他客户端设备的频宽总和后,比较模块230比较该其他客户端设备的频宽与客户端20所需的频宽总和是否大于服务器10的下载总频宽。
当该其他客户端设备的频宽与客户端20所需的频宽总和不大于服务器10的下载总频宽时,表示服务器的下载总频宽是充裕的,服务器10回复答复信息(101操作码),则分配模块240允许之前请求下载固件最新版本的客户端设备20进行固件更新,这样客户端设备20即可在相互之间不影响的条件下快速的下载固件版本进行更新。
而当该其他客户端设备的频宽与客户端20所需的频宽总和大于服务器10的下载总频宽时,表示服务器的下载总频宽是不够客户端设备20进行固件下载的,则分配模块240让之前请求下载固件最新版本的客户端设备20进行等待。当客户端设备20接收等待信息后,会将自身的客户端属性传送给服务器10,则排序模块250用于依据请求下载固件最新版本的客户端设备20的属性给每个请求下载固件最新版本的客户端设备20进行打分,并依据分数为请求下载固件最新版本的客户端设备20进行排序,依据排序的优先权进行顺序等待下载。
在本实施方式中,客户端设备20的属性包括请求下载固件最新版本的客户端设备20的下载所需时间,是否在使用中,优先权级别,是否为优先权设备以及工作时间长短,其中,下载所需时间是依据请求下载固件最新版本的多个客户端设备的最高下载速度计算出的。下面结合表2来具体讲解如何依据客户端设备20的属性计算出得分后进行排序后等待下载。
表2.得分计算表
其中:
A得分:1*(1*0.2+2*0.2+0*0.4+4*0.2)=1.4
B得分:1*(4*0.2+1*0.2+0*0.4+1*0.2)=1.2
C得分:0*(5*0.2+1*0.2+0*0.4+2*0.2)=0
D得分:1*(2*0.2+1*0.2+0*0.4+5*0.2)=1.6
E得分:1*(3*0.2+2*0.2+1*0.4+3*0.2)=2.0
经过计算后的顺序为E、D、A、B、C
参阅表2,图4为本发明得分计算表的一个实例。在本实施方式中,得分公式为:得分(S)=非使用中*(下载所需时间*A+优先权级别*B+是优先权设备(1)*C+工作时间*D),其中,A、B、C、D是权重因子。从表2可见,属性中的下载所需时间,优先权级别,是否为优先权设备以及工作时间长短的权重分别是A=0.2,B=0.2,C=0.4以及D=0.2,而是否在使用中则显得更为重要,直接是判断能够排序的决定因素,由图中客户端设备C可知,一旦在使用中,得分即为零,排序必然在最后。这样在客户端设备20不在使用中的条件下,将下载所需时间依据时间长短分为1到N(图中为5个,即为1到5),时间短的为1,时间长的依次类推。优先级级别依据高优先权和低优先权分别给2和1,依据是否为优先权设备分别给1和0,依据工作时间长短分别给1到N(图中为5个,即为1到5),这样依据权重因子以及设定的公式即可计算出最终的得分,然后按照分数由高到低的顺序进行排序,正如图4中的E、D、A、B、C。这样依据设定的得分公式客户端设备20即可依据排列顺序有序的进行等待下载了。
参阅图3,所示为本发明服务器12另一实施方式的功能模块图。在本实施方式中,侦测模块310、计算模块320、比较模块330、分配模块340以及排序模块350包括软件程序,软件程序存储于存储器360中并通过处理器370执行以实现各个模块的对应功能。侦测模块310、计算模块320、比较模块330、分配模块340以及排序模块350的具体功能与图2中的侦测模块210、计算模块220、比较模块230、分配模块240以及排序模块250一样,在此不做赘述。
参阅图4,所示为本发明客户端设备向服务器请求下载最新版本固件的信息交互一实施方式的流程图。在本实施方式中,客户端设备20表示一个客户端设备,当客户端设备20需要进行固件更新时,首先发送信息给服务器10询问固件最新版本,服务器即会告知客户端设备20固件最新版本为V05,客户端设备检查自身的固件版本,发现版本不一样,需要更新(当然,也可能一样,不需要更新,在此,就不做讨论),客户端设备20即会发送下载请求(操作码=100)给服务器10,而服务器10接收到下载请求后,会依据下载频宽是否充裕而选择答复Ok还是No,图中所示,答复Ok时,操作码为101,value=0,而答复No时,操作码为101,value=X。举个具体操作码来说,比如客户端设备20发送0X64,服务器10回复0X650X20来告知客户端设备20请等待32秒之后再请求下载。
参阅图5,所示为本发明多个客户端设备向服务器请求下载最新版本固件的信息交互一实施方式的流程图。在本实施方式中,客户端设备A21,客户端设备B23,客户端设备C25这三个客户端设备均需要向服务器10进行固件更新的查询与下载。图中可见,客户端设备A21,客户端设备B23,客户端设备C25均向服务器10请求查询固件最新版本,此时的固件最新版本是V05,客户端设备A21,客户端设备B23,客户端设备C25经过检查后,发现均需要更新,则各自发送下载请求给服务器10,服务器依据下载总频宽是否宽裕,而给客户端设备A21,客户端设备B23答复了OK可以下载最新版本的信息,而在经过计算后,下载总频宽不够了,则拒绝了客户端设备C25的下载请求,并给出让客户端设备C25等待30秒后再发送下载请求后的信息。当客户端设备A21,客户端设备B23收到服务器10的答复Ok后,成功下载固件最新版本,而客户端设备C25则在30秒继续请求下载,并且在服务器10答复OK后成功下载了固件最新版本。
参阅图6,所示为本发明服务器10分配客户端设备进行固件更新的方法一实施方式的流程图。本方法用于图1的服务器10中,并通过图2或图3所示的功能模块完成,在本实施方式中,采用图2中的功能模块来实现所述方法。在此声明,采用图3中的功能模块也可以实现所述方法。
在步骤S600,侦测模块210接收客户端设备20中的多个客户端设备(如21,23,25,27)的固件版本查询信息后,将多个客户端设备的固件现有版本与固件最新版本进行比较,并将固件最新版本发送给固件现有版本与固件最新版本不一样的客户端设备。
这样,那些需要固件更新的多个客户端设备即会发送固件最新版本下载请求给服务器10。
在步骤S602,计算模块220接收那些多个客户端设备的所述固件最新版本下载请求后,计算出正在下载固件最新版本的其他客户端设备的频宽总和。
在步骤S604,比较模块230比较其他客户端设备与请求下载固件最新版本的客户端设备的所需频宽总和是否大于服务器的下载总频宽。
在步骤S606,分配模块240在其他客户端设备与请求下载固件最新版本的客户端设备的所需频宽总和不大于服务器的下载总频宽时,表示服务器的总频宽是宽裕的,则允许请求下载固件最新版本的多个客户端设备进行固件更新,在其他客户端设备与请求下载固件最新版本的客户端设备的所需频宽总和大于服务器的下载总频宽时,表示服务器总频宽不够用,则让请求下载固件最新版本的多个客户端设备等待下载。
在步骤S608,排序模块250依据请求下载固件最新版本的多个客户端设备的属性给每个请求下载固件最新版本的多个客户端设备进行打分,并依据分数为请求下载固件最新版本的多个客户端设备进行排序,其中多个客户端设备按照排序等待下载。其中,多个客户端设备的属性包括依据所述请求下载固件最新版本的多个客户端设备的最高下载速度计算出的下载所需时间,是否在使用中,优先权级别,是否为优先权设备以及工作时间长短。
而具体的打分采用的公式为:得分(S)=非使用中*(下载所需时间*A+优先权级别*B+是优先权设备(1)*C+工作时间*D),其中,A、B、C、D是权重因子。
通过上述实施例可以看出,当多个客户端设备需要进行固件版本更新而却因为相互影响而导致下载很慢时,本发明的服务器及其分配客户端设备进行固件更新的方法,可依据客户端设备的固件更新请求获知各个客户端设备的下载速率以及依据计算服务器的总频宽与多个客户端设备所需下载频宽进行比较从而确定允许同时进行固件下载的客户端设备的数量,并且依据设定的权重公式来对客户端设备的下载等待进行排序,从而达到减轻服务器压力和合理分配固件下载更新的目的。
以上是对本发明所提供的服务器及其分配客户端设备进行固件更新的方法进行了详细介绍,本文中应用到了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的发明方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围均会由改变之处,综上所述,本发明内容不应理解为对本发明的限制。