工业物联网(IIoT)的兴起正在将嵌入式软件开发推向更大的复杂性——这一变革具有广泛的影响,影响着软件开发过程的每个阶段。
严格的新网络安全要求、日益复杂的设备生态系统、芯片架构的创新、新兴的连接技术以及人工智能和机器学习技术的集成正在彻底重塑嵌入式软件开发。
具体到嵌入式系统,典型的设备有数百个软件组件,通常具有相互关联的依赖性,这一网络安全要求将从根本上改变产品的开发方式。传统上,最佳实践是用最新的组件集开始项目,并随着项目的进展构建和强化项目。但是根据这一要求,制造商现在必须对软件供应链管理采取更加主动的方法,例如在部署后提供持续的监控和更新。
影响嵌入式系统的其他趋势
除了网络安全,还有许多趋势影响着嵌入式系统的开发——例如,设备的共存和互操作性。IIoT的大部分价值来自于创造一个环境,在这个环境中,设备、传感器、应用程序、计算机系统和网络设备协同工作,以支持工业运营。广泛的设备类型和特定设备产生了一个非常复杂的生态系统,管理这种复杂性的责任将在很大程度上落在运行在各种系统组件上的软件身上,这些软件最好构建在稳定的行业标准之上。
看似无穷无尽的连接技术也增加了嵌入式系统的复杂性。有如此多的技术被设计来连接设备以创建工作系统,很可能最终会建立新的行业标准,以减少运动部件的数量。在那一天到来之前,开发人员可以通过谷歌的IoT Matter标准等举措来管理复杂性,让你的设备使用单一协议与任何生态系统合作。
另一个重要趋势是新芯片架构的出现。过去,随着微处理器发展得更快、更小、更高效,处理能力也在不断提升,基本的芯片架构仍然是静态的。但最近,随着芯片制造商努力适应机器学习(ML)应用的计算要求,芯片架构正在发生变化。AI/ML技术越来越受欢迎,已经出现在各种嵌入式应用中,从汽车车载信息娱乐和预测性维护系统到医疗诊断。随着更强大的芯片的出现,这一趋势无疑将获得动力。
在这种环境下,面向服务的架构越来越突出是有意义的。IIoT的价值是通过协调具有不同用途、不同位置和不同用户的设备来创造的,因此它们共同构成了满足系统要求的最佳方式。面向服务的架构通过关注设备之间发送的消息来帮助管理IIoT系统的复杂性。Google的Protobuf等工具需要清晰、一致的模式和良好的编程实践。反过来,它们提供了高效的网络通信、向后和向前兼容性以及跨语言支持。
移动和云应用中常见的容器化和微服务也被提出来作为通过简化嵌入式软件开发、部署和维护来管理复杂性的方法。例如,如果所有平台都支持容器运行时,容器化的应用程序可以在PC、服务器或嵌入式目标上运行。微服务通常与容器结合使用,通过将应用程序定义为自治的、松散耦合的服务集合,这些服务协同工作以满足系统需求,可以降低开发和部署的复杂性。
然而,重要的是要注意,在系统的一部分使用容器的好处应该与容器之间通信的额外复杂性一起考虑——特别是在两个容器需要与单个设备通信的情况下。这个问题在用户界面开发中很普遍,在用户界面开发中,多个应用程序需要共享屏幕。为了应对这一挑战,越来越多的人开始采用GUI即服务的方法,将GUI分离到自己的容器中。
嵌入式系统变得越来越复杂,这反过来也使得系统开发变得更加复杂。越来越多的技术被使用,需要更多——更专业的——嵌入式开发人员来创建这些系统。对于设备制造商来说,这些变化为产品开发带来了新的机遇,但反过来也带来了难以承受的额外责任。除了最大的公司之外,其他公司可能很难在内部集合所有必要的技能来开发新的嵌入式产品。对于没有庞大的设计、开发、网络安全、质量保证和监管团队的制造商来说,合作伙伴协作将成为填补空白的常态。