设备端资源包文件更新方案
1.背景
当物联网设备分布在全球各地运行时,常常有更新设备上的资源包的需求,比如刷脸设备上的人脸库资源,算法模型,语音播报设备上的语音模板资源。而我们派一位工作人员出差去设备现场更新,成本往往很高。此时借助IoT技术的力量,在云端动动手指,轻松实现设备资源包更新是最理想的方案。
2.架构方案
云端更新设备端资源文件的完整交互过程:
- 后台业务服务器发布资源到OSS存储
- 后台业务服务器生成带有STS.Token的资源访问url
业务服务器下行资源包文件更新指令到设备端
- Topic为 xxx/xxx/user/resource/update
- Payload 包含文件id,md5值,访问uri
- 设备订阅了资源更新topic,接收到更新指令
- 设备从OSS获取到新资源包,应用到本地程序中
设备上报资源更新结果
- Topic为 xxx/xxx/user/resource/update/response
- Payload 包含文件id,resultCode
- 业务服务器从规则引擎获取设备更新结果
- 业务服务器对失败设备做重试推送
3.开发实践
为了实现上述理想,我们需要前期投入在服务端和设备端的研发工作。
3.1 服务端
3.2 设备端
- 设备访问OSS资源文件的能力
- 订阅资源更新指令的Topic
- 上报资源更新执行结果的逻辑
4.总结
至此,我们可以悠闲的坐在办公室,享受咖啡和空调了。