设计IoT应用程序就像盖房子一样:组织需要强大的基础来支持应用程序的变化。对于物联网,该基础是流架构。
软件架构师必须遵循一个蓝图,以确保他们在考虑沿IoT数据路径的组件时不会失去对整体流程的跟踪。物联网流应用程序实时处理数据,以获取见解,以用于日志分析,过程控制和物料处理应用程序等用途,其中事件处理对于确保工厂有效运行至关重要。这些应用程序的特征是不受控制的消息流(事件流),这些消息流描述了大多数IoT。
为了应对IoT流架构所带来的挑战,软件架构师必须首先了解IoT数据流是什么:这是事件处理流程,其中一组源会生成事件。来源对处理延迟很敏感,并且在技术和地理位置上也各不相同。物联网流架构由五个组件组成。
1.事件接收者
物联网流传输架构始于事件接收器,其中物联网传感器发送事件。事件接收器以流的形式获取各种数据格式,并将其转换为单层组件可以处理的标准结构。如果事件不包含其自己的时间戳,则事件接收器将标记该事件。
事件接收器是一个层,而不是单个组件。它可以容纳新设备和具有陈旧数据结构的旧设备,而这些数据结构需要广泛使用的支持。IoT流体系结构通常为每个来源集合都配备事件接收器,并且对其进行了自定义以支持所服务的来源社区的事件格式。
2.本地控制器
有时,软件架构师会将事件控制器与本地控制器结合在一起。许多流式IoT事件需要事件源和控制现实世界过程的IoT设备之间的闭合控制回路,例如打开灯或打开大门。本地控制器可以在流处理的后期放宽对实时操作的延迟限制。
3.事件分类器和序列化器
事件分类器和序列化器根据需要对事件进行尽可能详细的分类,以为事件分配处理优先级并沿着正确的处理路径移动它们。基于标准化事件数据模型添加到每个事件的数据结构中的分类将在整个流程的其余部分跟踪该事件。
序列化片段将多个事件流的集合处理到单个上下文流中以进行处理。当事件来自多个本地域时,序列化是必不可少的,但必须跨域关联才能进行正确处理。如果应用程序不需要跨域处理,则可能不需要序列化。例如,如果每个本地域仅创建事务记录以进行历史分析,则应用程序不使用序列化。
一些物联网部署将记录或排队此步骤的结果,以供以后的步骤使用。当数据需要进一步的实时处理时,此步骤将基于分类启动流程工作流程,然后继续进行IoT流架构中的下一步。
4.事件关联和交易
事件关联和事务处理步骤将事件信号转换为可操作的消息,称为提取,转换和加载过程。消息具有三个目的地:
他们以流的形式转到另一个流程工作流。
可以将它们格式化为事务,并输入到组织已使用的事务处理旧版应用程序中。
它们可以存储在数据库中,以便以后进行分析和处理。
单个相关事件可以到达任何或所有目的地。组织可能需要实时性能分析,重点是性能,例如
NoSQL。
5.事件后处理和分析
事件后处理和分析步骤支持不需要实时处理和分析的所有应用程序。某些物联网应用程序不涉及控制环路的任何扩展,除了对本地事件进行本地响应(例如打开门)外。其他应用程序至少需要事件记录。有些要求对事件及其相关动作进行后处理。这些步骤和分析工具扩展了传统的IT应用程序和数据库,而不是事件处理。