System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及物联网设备ota升级领域,特别是基于物联网的具有规模分发控制设备ota升级的方法。
技术介绍
1、物联网设备通常需要对运行其中的软件进行升级,以解决bug、优化功能、升级新功能等。传统做法是将设备从现场取回来重新烧录新版本,或是技术人员跑到设备现场进行升级,这种方式既费时费力,效率还低下。
2、现在物联网发展迅速,企业动则数以万计的设备在运行,这些设备随时都可能进行软件升级,如果还需人工手动操作,那工作量是不可想象的,所以必须有一个稳定的oat升级平台来管理设备升级,而且可以选择在合适的时间点进行升级。
技术实现思路
1、针对上述问题,本专利技术提供一种基于物联网的具有规模分发控制设备ota升级的方法,可以在不中断设备的情况下进行大规模设备升级,具有高可用、高健壮性、可横向扩展的特点。
2、为达到以上目的,本专利技术提供的技术方案是:
3、基于物联网的具有规模分发控制设备ota升级的方法,包括以下步骤:
4、s1、部署ota升级服务1-n个,并选举出升级服务领导者,其他ota服务为执行者;
5、s2、设备上电主动连接云平台,并上报设备基本信息;
6、s3、云平台记录设备基本信息包括当前设备版本信息;
7、s4、制作需要进行版本升级的升级包,配置好版本信息后将升级包上传到ota云平台;
8、s5、在云平台创建升级任务并选择需要升级的设备列表,然后将升级任务提交到领导者;
>9、s6、领导者按照最小负载算法将升级任务分发到其他空闲的执行者;
10、s7、执行者开始执行升级任务,按批次推送升级信息到指定设备;
11、s8、设备收到指令后下载升级包进行升级,并向平台上报升级进度;
12、s9、平台处理ota升级结果;
13、s10、平台意外情况处理:
14、(1)领导者挂掉,将从剩下的服务重新选择领导者来分发ota任务;
15、(2)执行者挂掉,领导者将重新分配其他执行者来接手任务继续执行;
16、(3)执行者监控任务中的设备升级情况,对超时未反馈的设备进行重试或失败处理;
17、(4)执行者对不在线的设备暂不发送升级指定,待设备上线后发送升级指令。
18、进一步的技术方案,在s1中,部署ota升级服务1-n个,使用分布式协调中间件选举出升级服务的领导者,其他服务为执行者,其他执行者将一直监控领导者的状态。如果领导者挂掉,其他执行者将重新选举出一个新领导者,在只部署一个ota服务的情况下,它既是领导者也是执行者。选举领导者的方法是:抢占式创建zookeeper领导者临时节点,节点创建成功的ota服务实例成为领导者,创建失败的则是执行者。
19、进一步的技术方案,在s1中,选举出领导者和执行者,其中领导者的职责:
20、(1)定时扫描数据库,初始化未完成的升级任务;
21、(2)检查是否有立即启动的升级任务,并按照最小负载的策略分配给执行者;
22、(3)检查是否是定时升级任务,如果是且时间未到则启动quartz定时器,如果时间已到但还未执行,则按照最小负载的策略分配给执行者;
23、(4)监听执行者升级任务执行情况,是否有需要故障转移的任务,如有则分配给执行者;
24、(5)统一控制执行者的其他操作,包括停止升级任务、重启升级任务、停止升级设备、重启升级设备;
25、执行者的职责:
26、(1)等待领导者分配升级任务;
27、(2)根据配置信息下发命令给设备;
28、(3)轮询需要升级的在线设备;
29、(4)处理设备升级中的各种状态;
30、(5)执行领导者发出的各种命令。
31、进一步的技术方案,在s2中,设备上电后,使用云平台分配的用户名密码使用mqtt协议连接到云平台,然后上报基本信息,其中包含设备版本号。
32、进一步的技术方案,在s4中,制作好硬件需要升级的升级包,上传到云平台或者公有云对象存储中,使用http或https进行下载,此操作在云平台提供的web页面中进行,需要选择对应的硬件产品、填写版本号、填写版本说明等基本信息,升级包将被云平台上传到公有云的对象存储或者自建文件服务中,这些服务都能提供http/https下载链接用于下载升级包,同时支持断点续传功能。
33、进一步的技术方案,在s5中,在云平台创建升级任务,首先选择要下发的升级包,配置升级任务的执行时间点time0、任务持续时长time1、命令超时时间time2、重试次数retrymaxtimes、批量同时升级maxbatchnum数量信息,然后选择需要升级的设备,按设备类型、设备版本、设备列表、文件上传方式进行选择,最后完成升级任务的创建。此升级任务在云平台提供web页面中进行操作,任意一个ota服务都可以接收升级任务的创建请求,本地存储任务信息后通知领导者对升级任务进行初始化。
34、进一步的技术方案,在s6中,完成任务创建后,领导者根据升级任务的执行时间点启动升级任务,然后按照最小负载策略将升级任务分发给执行者,并监控执行者的状态。领导者需要将执行者实例的元信息写入zookeeper中,其中元信息包含:执行者实例的ip、端口、执行的升级任务id,执行时间,执行状态。同时执行者也需要在zookeeper中定时更新心跳,任务执行负载情况。领导者监听zookeeper中的数据变化,若执行者心跳时间出现3个心跳间隔未变化,则判断执行者挂掉,领导者执行故障转移,将任务分配给其他执行者执行。
35、进一步的技术方案,在s7中,执行者接收到分配任务后,开始执行升级任务,它将按照任务配置,选择不超过maxbatchnum数量的在线设备依次下发升级命令,然后监控升级情况:
36、(1)若设备在time2时间内没上报升级进度,则进入超时流程,按照超时策略进行重试,重试到最大次数retrymaxtimes后标记该设备为升级失败;
37、(2)若设备上报升级进度,下载升级包速度很慢,下载速率小于1kb/s,则这个设备将被打上网络过慢的标记,不占用批量升级名额,选择下一个在线设备进行升级;
38、(3)若有设备升级成功或被判定失败,则选择下一个在线设备进行升级,保证同时升级数量不超过配置的最大批次数量maxbatchnum。
39、整个任务最长持续时间为time1,默认为7天。满足以下条件之一则升级任务结束:
40、(1)在time1时间内所有设备都判断出升级失败或升级成功;
41、(2)任务执行时长达到了time1时间。
42、进一步的技术方案,在s8中,升级设备收到指令后判断是否需要升级,需要升级则根据指令中的http/https下载地址进行下载和对升级包完整性本文档来自技高网...
【技术保护点】
1.基于物联网的具有规模分发控制设备OTA升级的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于物联网的具有规模分发控制设备OTA升级的方法,其特征在于:S1中,部署OTA升级服务1-N个,使用分布式协调中间件选举出升级服务的领导者,其他服务为执行者,其他执行者将一直监控领导者的状态,如果领导者挂掉,其他执行者将重新选举出一个新领导者,在只部署一个OTA服务的情况下,它既是领导者也是执行者。
3.根据权利要求1所述的基于物联网的具有规模分发控制设备OTA升级的方法,其特征在于:S1中,选举出领导者和执行者;其中领导者的职责:
4.根据权利要求1所述的基于物联网的具有规模分发控制设备OTA升级的方法,其特征在于:S2中,设备上电后,使用云平台分配的用户名密码使用MQTT协议连接到云平台,然后上报基本信息,其中包含设备版本号。
5.根据权利要求1所述的基于物联网的具有规模分发控制设备OTA升级的方法,其特征在于:S4中,制作好硬件需要升级的升级包,上传到云平台或者公有云对象存储中,使用http或https进行下载。
...【技术特征摘要】
1.基于物联网的具有规模分发控制设备ota升级的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于物联网的具有规模分发控制设备ota升级的方法,其特征在于:s1中,部署ota升级服务1-n个,使用分布式协调中间件选举出升级服务的领导者,其他服务为执行者,其他执行者将一直监控领导者的状态,如果领导者挂掉,其他执行者将重新选举出一个新领导者,在只部署一个ota服务的情况下,它既是领导者也是执行者。
3.根据权利要求1所述的基于物联网的具有规模分发控制设备ota升级的方法,其特征在于:s1中,选举出领导者和执行者;其中领导者的职责:
4.根据权利要求1所述的基于物联网的具有规模分发控制设备ota升级的方法,其特征在于:s2中,设备上电后,使用云平台分配的用户名密码使用mqtt协议连接到云平台,然后上报基本信息,其中包含设备版本号。
5.根据权利要求1所述的基于物联网的具有规模分发控制设备ota升级的方法,其特征在于:s4中,制作好硬件需要升级的升级包,上传到云平台或者公有云对象存储中,使用http或https进行下载。
6.根据权利要求1所述的基于物联网的具有规模分发控制设备ota升级的方法,其特征在于:s5中,在云平台创建升级任务,首先选择要下发的升级包,配置升级任务的执行时间点time0、任务持续时长time1、命令超时时间time2、重试...
【专利技术属性】
技术研发人员:张树林,胡雪峰,袁俊杰,蒋正洪,
申请(专利权)人:希望银蕨智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。