Eclipse 可能不是您在考虑物联网 (IoT) 项目时首先想到的开源组织。 毕竟,该基金会自 2001 年以来一直存在,远早于物联网成为家喻户晓的词语,它支持一个用于商业上可行的开源软件开发的社区。
九月份与 RedMonk 的 ThingMonk 2017 活动同期举办的 Eclipse 物联网日强调了 Eclipse 在 物联网开发 中发挥的重要作用。 它目前托管着 28 个项目,这些项目涉及广泛的物联网需求和项目。 在会议期间,我与 Eclipse 的营销主管 Ian Skerritt 讨论了 Eclipse 的物联网项目以及 Eclipse 如何更广泛地看待物联网。
物联网的新特点是什么?
我问 Ian,鉴于过去几十年工厂中已经连接了传感器和工具,物联网与传统的工业自动化有何不同。 Ian 指出,许多工厂仍然没有连接。
此外,他说,“SCADA [监控和数据分析] 系统甚至工厂车间技术都非常专有,非常孤立。 很难改变它。 很难适应它…… 现在,当您设置生产运行时,您需要制造数十万件该零件、该单元。 [制造商] 想要做的是满足客户需求,拥有非常灵活的制造流程,实际上可以实现一件的批量。” 这是物联网带给制造业的一个重要组成部分。
Eclipse 的物联网方法
他描述了 Eclipse 参与物联网的方式:“每个物联网解决方案都需要核心基础技术”,并且通过使用开源,“每个人都可以使用它,这样他们就可以获得更广泛的采用。” 他说 Eclipse 将物联网视为由三个连接的软件堆栈组成。 从宏观层面来看,这些堆栈反映了(现在已经很熟悉的)观点,即物联网通常可以描述为跨越三个层。 给定的实现可能具有更多层,但它们仍然通常映射到此三层模型的功能
- 用于受限设备的软件堆栈(例如,设备、端点、微控制器单元 (MCU)、传感器硬件)。
- 某种类型的网关,用于聚合来自不同传感器的信息和数据,并将其发送到网络。 该层还可以根据传感器正在观察到的情况采取实时操作。
- 后端物联网平台的软件堆栈。 该后端云存储数据,并可以根据收集的数据提供服务,例如历史趋势分析和预测分析。
Eclipse 的白皮书“物联网架构所需的三大软件堆栈”更详细地描述了这三个堆栈。
Ian 说,在这些架构中开发解决方案时,“有很多具体的事情需要构建,但有很多底层技术可以使用,例如消息传递协议、网关服务。 它需要采用模块化方法来扩展到那里存在的不同用例。” 这概括了 Eclipse 围绕物联网的活动:开发模块化开源组件,这些组件可用于构建一系列特定于业务的服务和解决方案。
Eclipse 的物联网项目
在 Eclipse 目前使用的众多物联网项目中,Ian 表示,最突出的两个项目与 MQTT 相关,MQTT 是一种用于物联网的机器对机器 (M2M) 消息传递协议。 Ian 将其描述为“一种发布-订阅消息传递协议,专门为石油和天然气管道监控而设计,在石油和天然气管道监控中,电源管理网络延迟非常重要。 MQTT 在成为物联网中被广泛采用的标准方面取得了巨大的成功。” Eclipse Mosquitto 是 MQTT 的代理,Eclipse Paho 是其客户端。
Eclipse Kura 是一个物联网网关,用 Ian 的话说,“为许多不同的协议提供南北向连接”,包括蓝牙、Modbus、控制器区域网络 (CAN) 总线和 OPC 统一架构,并且一直在添加更多协议。 他说,一个好处是“Kura 提供了这种连接,而不是您自己编写连接,然后通过卫星、以太网或任何其他方式将您连接到网络。” 此外,它还处理防火墙配置、网络延迟和其他功能。 Ian 说:“如果网络中断,它会存储消息直到网络恢复。”
一个较新的项目 Eclipse Kapua 正在采用微服务方法为物联网云平台提供不同的服务。 例如,它处理连接、集成、管理、存储和分析等方面。 Ian 将其描述为“正在兴起。 它尚未部署,但 Eurotech 和 Red Hat 非常积极地参与其中。”
Ian 说,Eclipse hawkBit 管理软件更新,是“最有趣的项目之一。 从安全的角度来看,如果您无法更新您的设备,您就会有一个巨大的安全漏洞。” 他说,大多数物联网安全灾难都与未更新的设备有关。 “HawkBit 基本上管理着如何在您的物联网系统中进行可扩展更新的后端。”
事实上,物联网设备中软件更新的难度经常被认为是其最大的安全挑战之一。 物联网设备并非始终连接,而且数量可能很大,此外,受限设备的更新过程可能很难始终正确进行。 因此,与更新物联网软件相关的项目很可能在未来变得重要。
为什么物联网非常适合 Eclipse
我们在物联网开发中看到的趋势之一是围绕构建块,这些构建块被集成并应用于解决特定的业务问题,而不是应用于跨行业和公司的整体物联网平台。 这与 Eclipse 的物联网方法非常契合,后者侧重于许多模块化堆栈; 提供特定和常用功能的项目; 以及可以将给定实现所需的组件捆绑在一起的代理、网关和协议。
1 条评论