物联网(IoT)系统在空中运行的方式发生了巨大变化。在这里,Percepio的首席执行官兼创始人JohanKraft解释了这些好处。当然,最明显的优势是更新更简单,通常是透明下载和安装。当这与软件跟踪相结合时,它成为提高各种嵌入式物联网系统质量和可靠性的强大机制。仍然部署有错误的系统尽管开发人员尽了最大努力,但这些系统仍然部署在仍然存在错误的代码中。一个开发团队在开发过程中平均每1000行代码引入120个bug,大约每1000行代码引入6个bug,这些bug通常保留在软件中。当现场部署了数千台物联网设备时,依靠用户报告由这些缺陷引起的问题既不可靠也无法扩展。用户报告也常常含糊不清,无助于解决问题。当有数百万台设备时,这一点就更为重要。这些遗漏的错误可能不会立即显示出来,但只会在某些情况下引起问题,否则它们会在产品发货前被发现。虽然“无线”(OTA)更新可以解决现场问题,但开发人员需要某种反馈系统来了解已部署设备中的问题,而且他们需要快速了解。这种方法长期以来一直是移动和云应用程序(DevOps)开发的标准,现在它也适用于嵌入式开发。识别重要的新问题识别并解决该领域的问题是结合软件跟踪、云管理和OTA更新的关键,但这是一项复杂的挑战。在资源已经受限的系统中,跟踪代码需要尽可能高效。返回云的链接需要安全、透明并传输正确的数据,以帮助开发人员快速轻松地识别任何问题。云服务必须确定哪些问题是新的和重要的,然后通知开发人员存在需要修复的问题。一旦修复,更新后的软件必须通过OTA更新分发到所有设备。所有这些都需要扩展到数百万台设备。信息流从IoT设备的错误处理代码开始,例如已经存在的健全性检查和故障异常处理程序。使用软件代理,固件问题将作为警报上传到客户的云帐户。警报可能包括错误消息和与特定问题相关的任何其他信息,例如软件状态变量和硬件寄存器。根据问题的严重程度,可以直接上传警报,也可以在云连接恢复时设备重启后上传。警报还可能包括跟踪设备中的最新软件事件,这些事件由代理自动记录。跟踪提供错误详细信息和上下文,使开发人员更容易识别错误。编码效率是确保只需要最少的内存来存储痕迹的关键,为开发人员提供他们识别真正问题所需的上下文。这很重要,原因有两个:当收集足够长的跟踪以将上传时间减少到几分之一秒时,即使是来自内存受限的物联网系统,以及保存警报消息和存储云操作成本最小化。这种编码效率使得在现场以及小型物联网设备中使用跟踪技术成为可能,带来了显着的优势。来自固件代理的警报被上传到客户的云服务,该服务被配置为存储警报并通知处理分类、统计和通知开发人员的引擎。它还提供配置选项,例如确定在哪些条件下应发送通知以及向谁发送通知。收到的通知当开发人员收到有关新问题的通知时,他们可以访问警报和跟踪以查看问题出在哪里。隐私在这里也是关键。软件跟踪永远不需要离开客户的云账户。云处理只需要警报的匿名签名,可以在外部云服务中提供。这些信息可以是完全透明的、可配置的,并且本身没有意义。通信和存储由开发人员物联网平台中的现有功能提供,使用最佳实践进行身份验证和加密。实验室测试是不够的由于当今嵌入式物联网系统的复杂性,实验室测试不足以消除所有软件问题。实时跟踪和警报可??以在错误发生时识别错误,并自动通知开发人员以更快地解决问题。这样的系统必须是可扩展的、安全的,并且对开发人员透明。一旦到位,它可以在问题第一次出现时立即意识到问题,在许多用户受到影响之前,并允许开发人员充分利用OTA更新来快速改进他们的产品。
