作者:Peter Winston Integrated Computer Solutions 创始人/CEO
工业物联网(IIoT)的兴起正在推动嵌入式软件开发向更复杂的方向发展—这种转变影响广泛,涉及软件开发过程的每一个阶段。
严格的网络安全新规定、日益复杂的设备生态系统、芯片架构的创新、新兴的连接技术以及人工智能和机器学习技术的集成正在彻底重塑嵌入式软件开发。管理这种复杂性将需要新的方法。例如,我预计在网络应用中广泛使用的基于服务的架构和虚拟化策略(如容器化)在嵌入式系统中将变得越来越重要。
网络安全占据中心位置
在美国,最大的压力或许来自于最近的网络安全授权。这些政策和框架的重点是加强网络安全、保护关键基础设施和提高抵御网络威胁的能力。我预计这些授权将迅速扩展到所有受监管的市场,并最终扩展到整个数字生态系统,以帮助加强美国经济的网络安全。
您可以从美国食品及药物管理局发布的广泛指南中看到这一点的雏形,该指南要求任何具有 “网络安全考虑因素”的设备都必须具备网络安全,因此任何具有 USB、网卡或无线功能的设备,无论是否连接到网络,都必须具备网络安全。制造商有更多责任披露漏洞,更新设计和开发流程以符合最佳实践,提供软件物料清单,并在发现问题时提供修复功能。
具体到嵌入式系统,一个典型的设备有数百个软件组件,这些组件之间往往存在相互关联的依赖关系,因此这项网络安全规定将从根本上改变产品的开发方式。传统上,最佳做法是在项目开始时使用最新的组件集,并随着项目的进展进行构建和加固。但鉴于这一规定,制造商现在必须采取更加积极主动的软件供应链管理方法,例如在部署后提供持续监控和更新。
影响嵌入式系统的其他趋势
除了网络安全,还有一系列趋势影响着嵌入式系统的发展,例如设备的共存性和互操作性。IIoT 的大部分价值来自于创造一个环境,在这个环境中,设备、传感器、应用程序、计算机系统和网络设备可以协同工作,为工业运营提供支持。广泛的设备类型和特定的设备形成了一个极其复杂的生态系统,而管理这种复杂性的责任主要落在运行在各种系统组件上的软件身上,理想情况下,这些软件应建立在稳定的行业标准之上。
看似层出不穷的连接技术也增加了嵌入式系统的复杂性。由于有如此多的技术用于连接设备以创建工作系统,最终很可能会建立新的行业标准,以减少活动部件的数量。在这一天到来之前,开发人员可以通过谷歌的 IoT Matter 标准等举措来管理复杂性,该标准允许您的设备使用单一协议与任何生态系统协同工作。
我看到的另一个重要趋势是新芯片架构的出现。过去,随着微处理器的速度越来越快、体积越来越小、效率越来越高、处理能力不断攀升,基本的芯片架构却一成不变。但最近,随着芯片制造商努力适应机器学习(ML) 应用的计算要求,芯片架构正在发生变化。人工智能 / ML 技术越来越受欢迎,已经出现在各种嵌入式应用中,从汽车车载信息娱乐系统和预测性维护系统到医疗诊断。毫无疑问,随着功能更加强大的芯片的出现,这一趋势将更加迅猛。
在这种环境下,以服务为导向的架构的重要性日益凸显。IIoT 的价值是通过对具有不同目的、不同地点和不同用户的设备进行协调来创造的,这些设备共同构成了满足系统要求的最佳方式。面向服务的架构关注设备之间发送的信息,有助于管理 IIoT 系统的复杂性。谷歌的 Protobuf 等工具需要清晰、一致的模式和良好的编程实践。作为回报,它们提供了高效的网络通信、前后向兼容性和跨语言支持。
在移动和云应用中司空见惯的容器化和微服务也被提出来,作为一种通过简化嵌入式软件开发、部署和维护来管理复杂性的方法。例如,一个容器化的应用程序可以在个人电脑、服务器或嵌入式目标机上运行,前提是所有平台都支持容器运行时。微服务通常与容器结合使用,通过将应用程序定义为自主、松散耦合的服务集合,共同满足系统要求,可以降低开发和部署的复杂性。
不过,需要注意的是,在系统的某一部分使用容器所带来的好处应与容器间通信的额外复杂性一并考虑,尤其是当两个容器需要与单个设备通信时。这个问题在用户界面开发中非常普遍,因为多个应用程序需要共享屏幕。为了应对这一挑战,越来越多的人采用图形用户界面即服务(GUI-as-a-service)的方法,将图形用户界面分离到自己的容器中。
启示
嵌入式系统正变得越来越复杂,从而使系统开发变得更加复杂。使用的技术越来越多,需要更多、更专业的开发人员来创建这些系统。对于设备制造商来说,这些变化为产品开发带来了新的机遇,但同时也带来了更多难以承受的责任。除了最大的公司外,其他公司可能都很难在内部集结创造新嵌入式产品所需的所有技能。对于没有庞大的设计、开发、网络安全、质量保证和监管团队的制造商来说,合作伙伴合作将成为填补空白的常态。