CN109471649A - 固件升级的灰度发布系统及方法 - Google Patents
固件升级的灰度发布系统及方法 Download PDFInfo
- Publication number
- CN109471649A CN109471649A CN201811385981.0A CN201811385981A CN109471649A CN 109471649 A CN109471649 A CN 109471649A CN 201811385981 A CN201811385981 A CN 201811385981A CN 109471649 A CN109471649 A CN 109471649A
- Authority
- CN
- China
- Prior art keywords
- firmware
- community
- server
- community server
- upgrade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种固件升级的灰度发布系统及方法,该系统:源服务器连接社区服务器,每一社区服务器连接多个所述终端设备;源服务器用于获取需要进行固件升级的社区,及将存储的固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器;对应的社区服务器根据升级数据包的下载地址下载升级数据包并存储为本地数据包,及将本地数据包的第二升级信息发送至所述至少一个终端设备;终端设备用于根据本地数据包的下载地址下载本地数据包,及根据本地数据包对固件进行升级。本发明通过三级设备对预定区域的固件进行离线升级,源服务器只需面少量的社区服务器的下载需求,大大减少源服务器的压力和网络资源占用,达到灰度升级的目的。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种固件升级的灰度发布系统及方法。
背景技术
固件(firmware)升级,意思就是对设备的固件程序进行更新升级。可以完善设备的功能、增强机器设备的稳定性、修补程序漏洞。在一般的嵌入式系统中,会通过各种烧写调试接口将固件程序烧写进目标芯片的flash芯片中,如果发现了系统漏洞和bug或者需要升级添加功能,也就是需要升级固件时,则要覆盖原来的固件程序并且烧写新编译生成的固件程序。
传统的设备固件的升级方式主要是终端设备直接连接位于广域网的服务器,通过互联网络下载服务器上的固件数据,然后对终端设备进行固件升级。由于广域网的网络环境的不稳定性,导致终端设备下载固件数据时严重依赖于网络环境的稳定性,且大量的终端设备连接到同一个服务器,给网络资源和服务器造成很大的压力。
发明内容
鉴于上述问题,本发明实施例的目的在于提供一种固件升级的灰度发布系统方法,以解决现有技术的不足。
根据本发明的一个实施方式,提供一种固件升级的灰度发布系统,包括源服务器、社区服务器及多个终端设备:
所述源服务器连接所述社区服务器,每一社区服务器连接所述多个所述终端设备;
所述源服务器用于获取需要进行固件升级的社区,及将存储的所述固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器,其中,所述第一升级信息包括所述升级数据包的下载地址;
对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备,其中,所述第二升级信息包括所述本地数据包的下载地址;
所述终端设备用于根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级。
在上述的固件升级的灰度发布系统中,所述“将存储的所述固件的升级数据包的第一升级信息发送至该社区对应的社区服务器”包括:
所述源服务器根据预先存储的对应关系确定该社区对应的允许发送社区服务器;
所述源服务器在接收所述社区服务器发送第一更新请求,其中,所述第一更新请求包括所述社区服务器的固件版本信息;
将所述社区服务器的固件版本信息与所述升级数据包的版本信息进行对比及将所述社区服务器编号与允许发送社区服务器编号进行对比;
若所述社区服务器的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器编号与允许发送社区服务器编号一致,则发送第一升级信息至所述社区服务器;
若所述社区服务器的固件版本信息与所述升级数据包的版本信息一致,且所述社区服务器编号与允许发送社区服务器编号一致,则发送无新版本的提示消息至所述社区服务器。
在上述的固件升级的灰度发布系统中,所述“对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备”包括:
所述社区服务器在接收到所述第一升级信息后,根据所述升级数据包的下载地址下载该升级数据包以更新该固件的本地数据包;
所述社区服务器接收所述终端设备发送的第二更新请求,其中,所述第二更新请求包括所述设备终端的固件版本信息;
若所述设备终端的固件版本信息与所述本地数据包的版本信息不一致,则发送第二升级信息至所述终端设备;
若所述设备终端的固件版本信息与所述本地数据包的版本信息一致,则发送无新版本的提示消息至所述终端设备。
在上述的固件升级的灰度发布系统中,所述“所述终端设备用于根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级”包括:
所述终端设备根据所述本地数据包的下载地址下载该本地数据包,及将下载的所述本地数据包烧写至所述终端设备中对应的Flash中。
在上述的固件升级的灰度发布系统中,所述“将存储的所述固件的升级数据包的第一升级信息发送至该社区对应的社区服务器”包括:
所述源服务器根据预先存储的对应关系确定该社区对应的允许发送社区服务器;
所述源服务器每隔预设时间发送版本信息获取指令至所述社区服务器,以获取所述社区服务器的固件版本信息和所述社区服务器编号,将所述社区服务器的固件版本信息与所述升级数据包的版本信息进行对比及将所述社区服务器编号与允许发送社区服务器编号进行对比;
若所述社区服务器的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器编号与允许发送社区服务器编号一致,则发送第一升级信息至所述社区服务器。
在上述的固件升级的灰度发布系统中,所述“对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备”包括:
所述社区服务器在接收到所述第一升级信息后,根据所述升级数据包的下载地址下载该升级数据包以更新该固件的本地数据包;
所述社区服务器每隔预设时间发送版本信息获取指令至所述终端设备,以获取所述终端设备的固件版本信息;
在所述终端设备的固件版本信息与所述本地数据包的版本信息不一致时,主动下发所述第二升级信息至所述社区服务器。
在上述的固件升级的灰度发布系统中,所述源服务器和所述社区服务器之间、所述社区服务器和所述终端设备之间的通信模式均包括异步通信模式。
在上述的固件升级的灰度发布系统中,所述下载协议包括Http协议、FTP协议及Wget协议。
在上述的固件升级的灰度发布系统中,还包括至少一个路由器,所述社区服务器与所述终端设备通过所述路由器连接。
根据本发明的另一个实施方式,提供一种固件升级的灰度发布方法,应用于源服务器备、社区服务器及终端设备,该方法包括:
所述源服务器获取需要进行固件升级的社区,及将存储的所述固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器,其中,所述第一升级信息包括所述升级数据包的下载地址;
对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备,其中,所述第二升级信息包括所述本地数据包的下载地址;
所述终端设备根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级
根据本发明的再一个实施方式,提供一种固件升级的灰度发布装置,应用于源服务器和社区服务器,该装置包括:
发送模块,用于所述源服务器获取需要进行固件升级的社区,及将存储的所述固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器,其中,所述第一升级信息包括所述升级数据包的下载地址;
第一下载模块,用于对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备,其中,所述第二升级信息包括所述本地数据包的下载地址;
第二下载模块,用于所述终端设备根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级。
根据本发明的又一个实施方式,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时执行所述固件升级的灰度发布方法。
本公开的实施例提供的技术方案可以包括如下有益效果:
本发明中一种固件升级的灰度发布系统及方法,通过三级设备对预定区域的固件进行离线升级,源服务器只需面少量的社区服务器的下载需求,大大减少源服务器的压力和网络资源占用,达到灰度升级的目的;同时对终端设备进行安全有效的远程固件升级,无需通过人工的方式逐一到现场进行每个终端设备的固件升级,节约人力成本、提高升级效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种固件升级的灰度发布系统的结构示意图。
图2示出了本发明实施例提供的另一种固件升级的灰度发布系统的结构示意图。
图3示出了本发明实施例提供的一种固件升级的灰度发布方法的流程示意图。
图4示出了本发明实施例提供的一种固件升级的灰度发布装置的结构示意图。
主要元件符号说明:
100-固件升级的灰度发布系统;110-源服务器;120-社区服务器;130-终端设备;200-固件升级的灰度发布装置;210-发送模块;220-第一下载模块;230-第二下载模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出了本发明实施例提供的一种固件升级的灰度发布系统的结构示意图。
该固件升级的灰度发布系统100包括源服务器110及至少一个社区服务器。
所述源服务器110可以为任何可以存储固件数据且可以和社区服务器120进行数据通信及数据处理的计算机设备或者各种平台。
同样,所述社区服务器120可以为任何可以存储固件数据且可以和社区服务器120进行数据通信及数据处理的计算机设备或者各种平台。
其中,所述计算机设备可以为提供计算服务的设备,如个人计算机、服务器等。
如图2所示,所述源服务器110可连接至少一个所述社区服务器120,每一社区服务器120可连接多个终端设备130。
进一步地,所述源服务器110和所述社区服务器120之间通过有线连接,以加快数据传输的速率和增加通信成功率。
进一步地,所述源服务器110和所述社区服务器120之间还可以通过无线连接,所述无线可包括WiFi、移动网络等。
进一步地,所述源服务器110和所述社区服务器120之间的通信模式为异步通信模式,既能够支持有连接的业务,又能支持无连接的业务,针对各种通讯链路形态,提供最佳的传输环境,能够实现比较理想地QoS(Quality of Service,服务质量)。
本实施例中,所述异步通信协议可以为uart协议。在一些其他的实施例中,所述异步通信协议还可以为modem等协议。
所述源服务器110用于获取需要进行固件升级的社区,及将存储的固件的升级数据包的第一升级信息发送至需要固件升级的社区对应的社区服务器120,其中,所述第一升级信息包括所述升级数据包的下载地址。
具体地,所述源服务器110中存储有所述固件的升级数据包及社区编号(ID)和社区服务器编号(ID)之间的对应关系。
开发人员将需要进行升级的固件的升级数据编写并编译成功后,并将所述固件的升级数据以数据包的形式上传至源服务器110中,所述源服务器110将所述升级数据存储为该固件的升级数据包。
所述社区编号(ID)和社区服务器编号(ID)之间的对应关系可通过以下表格进行描述。
社区编号 | 社区服务器编号 |
1 | S1 |
2 | S2 |
…… | …… |
上表中,社区编号为1的社区对应的社区服务器编号为S1;社区编号为2的社区对应的社区服务器编号为S2,等等。
进一步地,所述“将存储的所述固件的升级数据包的第一升级信息发送至该社区对应的社区服务器120”包括:
所述源服务器110根据预先存储的对应关系确定该社区对应的允许发送社区服务器120;所述源服务器110在接收所述社区服务器120发送第一更新请求,其中,所述第一更新请求包括所述社区服务器120的固件版本信息;将所述社区服务器120的固件版本信息与所述升级数据包的版本信息进行对比及将所述社区服务器120编号与允许发送社区服务器120编号进行对比;若所述社区服务器120的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器120编号与允许发送社区服务器编号一致,则发送第一升级信息至所述社区服务器;若所述社区服务器120的固件版本信息与所述升级数据包的版本信息一致,且所述社区服务器120编号与允许发送社区服务器编号一致,则发送无新版本的提示消息至所述社区服务器120。
具体地,所述源服务器110获取需要进行固件升级的社区编号,根据所述对应关系确定该社区编号对应的允许发送社区服务器编号。
所述社区服务器120定时向所述源服务器110发送第一更新请求,所述第一更新请求中携带有社区服务器120的固件版本信息及所述社区服务器120的ID。
所述源服务器110在接收到第一更新请求后,将所述社区服务器120的固件版本信息与存储的升级数据包的版本信息进行对比,同时将社区服务器120编号和允许发送社区服务器编号进行对比,判断所述社区服务器120的固件版本信息与存储的升级数据包的版本信息是否一致,及判断所述社区服务器编号与允许发送社区服务器编号是否一致。
若所述社区服务器120的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器120编号与允许发送社区服务器编号一致,说明该社区服务器120为允许发送的社区服务器,且所述社区服务器120中存储的该固件的本地数据包的版本信息不是最新的版本信息,此时发送第一升级信息至所述社区服务器,其中,所述第一升级信息包括所述升级数据包的下载地址及所述升级数据包的版本信息。
若所述社区服务器120的固件版本信息与所述升级数据包的版本信息一致,且所述社区服务器120编号与允许发送社区服务器编号一致,说明所述社区服务器120为允许发送社区服务器,所述社区服务器120中存储有最新的的固件的升级数据,所述源服务器110根据所述社区服务器120的ID向所述社区服务器120发送无新版本的提示消息。
若所述社区服务器120的固件版本信息与所述升级数据包的版本信息一致,且所述社区服务器120编号与允许发送社区服务器编号不一致,说明该社区服务器120不是允许发送社区服务器,不进行处理。
若所述社区服务器120的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器120编号与允许发送社区服务器编号不一致,说明该社区服务器120不是允许发送社区服务器,不进行处理。
进一步地,所述“将所述升级数据包第一升级信息发送至社区服务器”包括:
所述源服务器110根据预先存储的对应关系确定该社区对应的允许发送社区服务器;所述源服务器110每隔预设时间发送版本信息获取指令至所述社区服务器120,以获取所述社区服务器120的固件版本信息和所述社区服务器120编号,将所述社区服务器120的固件版本信息与所述升级数据包的版本信息进行对比及将所述社区服务器120编号与允许发送社区服务器编号进行对比;若所述社区服务器120的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器120编号与允许发送社区服务器编号一致,则发送第一升级信息至所述社区服务器120。
具体地,所述源服务器110获取需要进行固件升级的社区编号,根据所述对应关系确定该社区编号对应的允许发送社区服务器编号。
所述社区服务器120定时向所述源服务器110发送第一更新请求,所述第一更新请求中携带有社区服务器120的固件版本信息及所述社区服务器120的ID。
所述源服务器110在接收到第一更新请求后,将所述社区服务器120的固件版本信息与存储的升级数据包的版本信息进行对比,同时将社区服务器120编号和允许发送社区服务器编号进行对比,判断所述社区服务器120的固件版本信息与存储的升级数据包的版本信息是否一致,及判断所述社区服务器编号与允许发送社区服务器编号是否一致。
若所述社区服务器120的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器120编号与允许发送社区服务器编号一致,说明该社区服务器120为允许发送的社区服务器120,且所述社区服务器120中存储的该固件的本地数据包的版本信息不是最新的版本信息,此时主动下发第一升级信息至所述社区服务器120,其中,所述第一升级信息包括所述升级数据包的下载地址及所述升级数据包的版本信息。
所述终端设备130可以为任何包含固件的设备,如智能门锁、智能电表、嵌入式设备等。
所述终端设备130和所述社区服务器120之间的网络可为局域网络,可通过有线进行连接,也可以通过无线进行连接,以时周围网络环境更稳定。在通过无线进行连接时,所述终端设备130和所述社区服务器120之间可为异步通信模式。
对应的所述社区服务器120用于根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,并将所述本地数据包的第二升级信息发送至至少一终端设备,其中,所述第二升级信息包括所述本地数据包的下载地址。
进一步地,所述“所述社区服务器120用于根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,并将所述本地数据包的第二升级信息发送至所述至少一终端设备130”包括:
所述社区服务器120在接收到所述第一升级信息后,根据所述升级数据包的下载地址下载该升级数据包以更新该固件的本地数据包;所述社区服务器120接收所述终端设备130发送的第二更新请求,其中,所述第二更新请求包括所述终端设备130的固件版本信息;所述社区服务器120将所述终端设备130的固件版本信息与所述本地数据包的版本信息进行对比;若所述终端设备130的固件版本信息与所述本地数据包的版本信息不一致,则发送第二升级信息至所述终端设备130;若所述终端设备130的固件版本信息与所述本地数据包的版本信息一致,则发送无新版本的提示消息至所述终端设备130。
具体地,所述社区服务器120在接收到所述升级数据包的下载地址及所述升级数据包的版本信息后,根据所述升级数据包的下载地址下载该升级数据包以更新所述社区服务器120内存储的该固件的本地数据包。
其中,所述“以更新所述社区服务器120内存储的该固件的本地数据包”包括:
所述社区服务器120将存储的与该固件相关的所有数据包删除,然后下载所述升级数据包并存储。
或者,所述社区服务器120根据下载的升级数据包更新存储的该固件的本地数据包。
所述终端设备130向所述社区服务器120发送第二更新请求,其中,所述第二更新请求中包含所述终端设备130的固件版本信息及所述终端设备130的ID。
所述社区服务器120接收到所述所述第二更新请求后,将所述所述终端设备130的固件版本信息与所述本地数据包的版本信息进行对比,以判断所述终端设备130的固件版本信息与所述本地数据包的版本信息是否一致。
若所述终端设备130的固件版本信息与所述本地数据包的版本信息一致,说明所述终端设备130中存储的固件的版本为最新版本,所述社区服务器120发出无新版本的提示消息至所述终端设备130。
若所述终端设备的固件版本信息与所述本地数据包的版本信息不一致,说明所述终端设备130中存储的固件的版本不是最新版本,所述社区服务器120发送所述本地数据包的第二升级信息至所述终端设备130,其中,所述第二升级信息包括所述本地数据包的下载地址。
进一步地,所述“对应的所述社区服务器120用于根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,并将所述本地数据包的第二升级信息发送至所述至少一终端设备130”包括:
所述社区服务器120在接收到所述第一升级信息后,根据所述升级数据包的下载地址下载该升级数据包以更新该固件的本地数据包;所述社区服务器120每隔预设时间发送版本信息获取指令至所述终端设备130,以获取所述终端设备130的固件版本信息;在所述终端设备130的固件版本信息与所述本地数据包的版本信息不一致时,主动下发所述第二升级信息至所述至少一个终端设备120。
具体地,所述社区服务器120在接收到所述升级数据包的下载地址及所述升级数据包的版本信息后,根据所述升级数据包的下载地址下载该升级数据包以更新所述社区服务器120内存储的该固件的本地数据包。
所述社区服务器120每隔预设时间发送版本信息获取指令至所述终端设备130,以获取所述终端设备130的固件版本信息。所述社区服务器120将所述所述终端设备130的固件版本信息与所述本地数据包的版本信息进行对比,以判断所述终端设备130的固件版本信息与所述本地数据包的版本信息是否一致。
在所述终端设备的固件版本信息与所述本地数据包的版本信息不一致时,说明所述终端设备130中存储的固件的版本不是最新版本,所述社区服务器120主动下发所述本地数据包的第二升级信息至所述终端设备130,其中,所述第二升级信息包括所述本地数据包的下载地址。
所述终端设备130用于根据所述本地数据包的下载地址下载所述本地数据包,并利用所述本地数据包对所述固件进行升级。
具体地,所述终端设备130在获取到所述第二升级信息后,根据所述本地数据包的下载地址下载所述本地数据包,并将下载的本地数据包烧写至所述终端设备的Flash中。
所述终端设备130可以为任何可以和社区服务器120进行数据通信的待固件升级的设备。
进一步地,在所述社区服务器120下载所述升级数据包,及在所述终端设备130下载所述本地数据包时,所使用的下载协议包括Http协议、FTP协议及Wget协议等。
进一步地,所述固件升级的灰度发布系统100还包括路由器。
具体地,所述源服务器110连接至少一个社区服务器120。每一社区服务器120连接至少一个路由器。每一路由器连接至少一个终端设备130。所述社区服务器120和所述终端设备130之间通过所述路由器进行连接。
实施例2
图3示出了本发明实施例提供的一种固件升级的灰度发布方法的流程示意图。该固件升级的灰度发布方法应用于源服务器、社区服务器及终端设备。所述源服务器连接至少一个社区服务器。每一社区服务器连接至少一个终端设备。
该固件升级的灰度发布方法包括如下步骤:
步骤S210,源服务器获取需要进行固件升级的社区,及将存储的固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器。
其中,第一升级信息包括升级数据包的下载地址。
步骤S220,对应的社区服务器根据升级数据包的下载地址下载升级数据包并存储为本地数据包,及将本地数据包的第二升级信息发送至至少一个终端设备。
其中,第二升级信息包括本地数据包的下载地址。
步骤S230,终端设备根据本地数据包的下载地址下载本地数据包,及根据本地数据包对固件进行升级。
实施例3
图4示出了本发明实施例提供的一种固件升级的灰度发布装置的结构示意图。该固件升级的灰度发布装置200应用于源服务器、社区服务器及终端设备。所述源服务器连接至少一个社区服务器。每一社区服务器连接至少一个终端设备。
所述固件升级的灰度发布装置200包括发送模块210、第一下载模块220及第二下载模块230。
发送模块210,用于源服务器获取需要进行固件升级的社区,及将存储的固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器,其中,第一升级信息包括升级数据包的下载地址。
第一下载模块220,用于对应的社区服务器根据升级数据包的下载地址下载升级数据包并存储为本地数据包,及将本地数据包的第二升级信息发送至至少一个终端设备,其中,第二升级信息包括本地数据包的下载地址。
第二下载模块230,用于终端设备根据本地数据包的下载地址下载本地数据包,及根据本地数据包对固件进行升级。
本实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行时用于执行上述的所述固件升级的灰度发布方法。
至此,本发明提供了一种固件升级的灰度发布系统及方法,在源服务器和终端设备之间设立社区服务器,通过三级设备对固件进行离线升级,源服务器只需面少量的社区服务器的下载需求,大大减少源服务器的压力和网络资源占用;同时对终端设备进行安全有效的无线远程固件升级,无需通过人工的方式逐一到现场进行每个终端设备的固件升级,节约人力成本、提高升级效率;社区服务器和终端设备处于局域网内,相比于广域网,其网络环境稳定,下载速度更快。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种固件升级的灰度发布系统,其特征在于,包括源服务器、社区服务器及多个终端设备:
所述源服务器连接所述社区服务器,每一社区服务器连接所述多个所述终端设备;
所述源服务器用于获取需要进行固件升级的社区,及将存储的所述固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器,其中,所述第一升级信息包括所述升级数据包的下载地址;
对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备,其中,所述第二升级信息包括所述本地数据包的下载地址;
所述终端设备用于根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级。
2.根据权利要求1所述的固件升级的灰度发布系统,其特征在于,所述“将存储的所述固件的升级数据包的第一升级信息发送至该社区对应的社区服务器”包括:
所述源服务器根据预先存储的对应关系确定该社区对应的允许发送社区服务器;
所述源服务器在接收所述社区服务器发送第一更新请求,其中,所述第一更新请求包括所述社区服务器的固件版本信息;
将所述社区服务器的固件版本信息与所述升级数据包的版本信息进行对比及将所述社区服务器编号与允许发送社区服务器编号进行对比;
若所述社区服务器的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器编号与允许发送社区服务器编号一致,则发送第一升级信息至所述社区服务器;
若所述社区服务器的固件版本信息与所述升级数据包的版本信息一致,且所述社区服务器编号与允许发送社区服务器编号一致,则发送无新版本的提示消息至所述社区服务器。
3.根据权利要求2所述的固件升级的灰度发布系统,其特征在于,所述“对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备”包括:
所述社区服务器在接收到所述第一升级信息后,根据所述升级数据包的下载地址下载该升级数据包以更新该固件的本地数据包;
所述社区服务器接收所述终端设备发送的第二更新请求,其中,所述第二更新请求包括所述设备终端的固件版本信息;
若所述设备终端的固件版本信息与所述本地数据包的版本信息不一致,则发送第二升级信息至所述终端设备;
若所述设备终端的固件版本信息与所述本地数据包的版本信息一致,则发送无新版本的提示消息至所述终端设备。
4.根据权利要求3所述的固件升级的灰度发布系统,其特征在于,所述“所述终端设备用于根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级”包括:
所述终端设备根据所述本地数据包的下载地址下载该本地数据包,及将下载的所述本地数据包烧写至所述终端设备中对应的Flash中。
5.根据权利要求1所述的固件升级的灰度发布系统,其特征在于,所述“将存储的所述固件的升级数据包的第一升级信息发送至该社区对应的社区服务器”包括:
所述源服务器根据预先存储的对应关系确定该社区对应的允许发送社区服务器;
所述源服务器每隔预设时间发送版本信息获取指令至所述社区服务器,以获取所述社区服务器的固件版本信息和所述社区服务器编号,将所述社区服务器的固件版本信息与所述升级数据包的版本信息进行对比及将所述社区服务器编号与允许发送社区服务器编号进行对比;
若所述社区服务器的固件版本信息与所述升级数据包的版本信息不一致,且所述社区服务器编号与允许发送社区服务器编号一致,则发送第一升级信息至所述社区服务器。
6.根据权利要求5所述的固件升级的灰度发布系统,其特征在于,所述“对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备”包括:
所述社区服务器在接收到所述第一升级信息后,根据所述升级数据包的下载地址下载该升级数据包以更新该固件的本地数据包;
所述社区服务器每隔预设时间发送版本信息获取指令至所述终端设备,以获取所述终端设备的固件版本信息;
在所述终端设备的固件版本信息与所述本地数据包的版本信息不一致时,主动下发所述第二升级信息至所述社区服务器。
7.根据权利要求1所述的固件升级的灰度发布系统,其特征在于,所述源服务器和所述社区服务器之间、所述社区服务器和所述终端设备之间的通信模式均包括异步通信模式。
8.根据权利要求4所述的固件升级的灰度发布系统,其特征在于,所述下载协议包括Http协议、FTP协议及Wget协议。
9.根据权利要求1所述的固件升级的灰度发布系统,其特征在于,还包括至少一个路由器,所述社区服务器与所述终端设备通过所述路由器连接。
10.一种固件升级的灰度发布方法,其特征在于,应用于源服务器备、社区服务器及终端设备,该方法包括:
所述源服务器获取需要进行固件升级的社区,及将存储的所述固件的升级数据包的第一升级信息发送至需要固件升级的社区所对应的社区服务器,其中,所述第一升级信息包括所述升级数据包的下载地址;
对应的所述社区服务器根据所述升级数据包的下载地址下载所述升级数据包并存储为本地数据包,及将所述本地数据包的第二升级信息发送至所述至少一个终端设备,其中,所述第二升级信息包括所述本地数据包的下载地址;
所述终端设备根据所述本地数据包的下载地址下载所述本地数据包,及根据所述本地数据包对所述固件进行升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811385981.0A CN109471649A (zh) | 2018-11-20 | 2018-11-20 | 固件升级的灰度发布系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811385981.0A CN109471649A (zh) | 2018-11-20 | 2018-11-20 | 固件升级的灰度发布系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109471649A true CN109471649A (zh) | 2019-03-15 |
Family
ID=65673792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811385981.0A Pending CN109471649A (zh) | 2018-11-20 | 2018-11-20 | 固件升级的灰度发布系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471649A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148333A (zh) * | 2020-10-10 | 2020-12-29 | 上海聪链信息科技有限公司 | 区块链服务器固件更新系统 |
CN112346738A (zh) * | 2020-11-30 | 2021-02-09 | 深圳市欧瑞博科技股份有限公司 | 智能灰度发布方法、装置、电子设备及存储介质 |
CN112783529A (zh) * | 2021-01-27 | 2021-05-11 | 上海淇玥信息技术有限公司 | 一种控制应用程序预发布与升级的方法、装置和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184301A (zh) * | 2007-12-14 | 2008-05-21 | 中兴通讯股份有限公司 | 移动终端远程固件升级方法及系统 |
CN102905173A (zh) * | 2012-10-16 | 2013-01-30 | 青岛海信信芯科技有限公司 | 一种电视或机顶盒软件升级方法及系统 |
CN104699499A (zh) * | 2014-12-31 | 2015-06-10 | 青岛快乐视界数字传媒有限公司 | 一种异构终端软件升级方法 |
CN107329794A (zh) * | 2017-07-24 | 2017-11-07 | 上海斐讯数据通信技术有限公司 | 一种发布固件、升级固件的方法及系统 |
CN107438017A (zh) * | 2017-07-31 | 2017-12-05 | 郑州云海信息技术有限公司 | 服务器系统接口扩展器固件升级方法及系统 |
JP2018055486A (ja) * | 2016-09-29 | 2018-04-05 | 京セラ株式会社 | ファームウェア提供システム、ファームウェア提供システムの制御方法及び電源システム |
-
2018
- 2018-11-20 CN CN201811385981.0A patent/CN109471649A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184301A (zh) * | 2007-12-14 | 2008-05-21 | 中兴通讯股份有限公司 | 移动终端远程固件升级方法及系统 |
CN102905173A (zh) * | 2012-10-16 | 2013-01-30 | 青岛海信信芯科技有限公司 | 一种电视或机顶盒软件升级方法及系统 |
CN104699499A (zh) * | 2014-12-31 | 2015-06-10 | 青岛快乐视界数字传媒有限公司 | 一种异构终端软件升级方法 |
JP2018055486A (ja) * | 2016-09-29 | 2018-04-05 | 京セラ株式会社 | ファームウェア提供システム、ファームウェア提供システムの制御方法及び電源システム |
CN107329794A (zh) * | 2017-07-24 | 2017-11-07 | 上海斐讯数据通信技术有限公司 | 一种发布固件、升级固件的方法及系统 |
CN107438017A (zh) * | 2017-07-31 | 2017-12-05 | 郑州云海信息技术有限公司 | 服务器系统接口扩展器固件升级方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148333A (zh) * | 2020-10-10 | 2020-12-29 | 上海聪链信息科技有限公司 | 区块链服务器固件更新系统 |
CN112148333B (zh) * | 2020-10-10 | 2023-11-03 | 上海聪链信息科技有限公司 | 区块链服务器固件更新系统 |
CN112346738A (zh) * | 2020-11-30 | 2021-02-09 | 深圳市欧瑞博科技股份有限公司 | 智能灰度发布方法、装置、电子设备及存储介质 |
CN112783529A (zh) * | 2021-01-27 | 2021-05-11 | 上海淇玥信息技术有限公司 | 一种控制应用程序预发布与升级的方法、装置和电子设备 |
CN112783529B (zh) * | 2021-01-27 | 2024-03-29 | 上海淇玥信息技术有限公司 | 一种控制应用程序预发布与升级的方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189460A (zh) | 离线固件升级系统及方法 | |
CN108510389B (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
CN107367949B (zh) | 获取产品标识的方法、装置和系统 | |
CN103023941B (zh) | 基于Web页面的终端应用程序的更新方法及更新系统 | |
CN109471649A (zh) | 固件升级的灰度发布系统及方法 | |
CN109522041B (zh) | 客户端资源更新方法、装置、处理器、服务器及终端 | |
CN102355500B (zh) | 业务推送方法和装置 | |
CN108023778A (zh) | 固件升级方法及其系统 | |
CN102833350A (zh) | WebApp更新的处理方法和处理装置 | |
CN105553684B (zh) | 一种通信系统及其应用的路由器升级方法 | |
CN109495433A (zh) | 数据下载方法和装置、存储介质及电子装置 | |
CN104954394A (zh) | 软件差分包制作、升级方法及服务器、终端、升级系统 | |
CN108319463A (zh) | 一种应用升级方法、装置 | |
CN104852971B (zh) | 一种插件式协议装置及基于插件式协议的数据通信方法 | |
CN107122207A (zh) | 软件升级方法、客户端设备及服务器 | |
CN109600401A (zh) | 家电升级方法、客户端及服务器 | |
CN111158738A (zh) | 耳机固件的升级方法、装置及可读存储介质 | |
CN112596768B (zh) | 设备的更新方法和装置、存储介质、电子装置 | |
CN104699499B (zh) | 一种异构终端软件升级方法 | |
CN106357712B (zh) | 移动终端控制方法、装置及系统 | |
CN112954664A (zh) | 一种数据处理方法、装置及系统 | |
CN106708539B (zh) | 一种客户端更新方法及装置 | |
CN105763461B (zh) | 路由器升级方法和系统 | |
CN107733974A (zh) | 一种移动终端的升级方法 | |
RU2618943C2 (ru) | Способ, устройство и система распространения приложений |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190315 |