云与雾拓扑结构及数据分析:物联网的关键要素
1. 硬件系统层组件
1.1 网络
网络是硬件系统层的首个组件,作为东西向和南北向的通信模块,网络层了解雾拓扑和路由,负责物理路由到其他节点,这与虚拟化所有内部接口的传统云网络有很大不同。在物联网部署中,网络具有实际意义和地理存在。例如,一个父节点连接四个子节点(均连接摄像头),它可能需要聚合四个摄像头的视频数据,将图像内容融合以创建 360°视野,这就要求它明确每个子节点对应的方向。
网络组件的要求如下:
- 具备弹性,当通信链路中断时,需知道如何重建网络以保证数据流动。
- 实现非 IP 传感器到 IP 协议的数据转换和重新打包,如蓝牙、Z - Wave 和有线传感器。
- 处理故障转移情况。
- 绑定多种通信架构(Wi - Fi、有线、5G)。
- 提供企业部署所需的典型网络基础设施(安全、路由等)。
1.2 加速器
OpenFog 与其他云架构的不同之处在于加速器服务。如今,通用图形处理单元(GPGPU)甚至现场可编程门阵列(FPGA)等加速器很常见,可用于成像、机器学习、计算机视觉和感知、信号处理以及加密/解密等服务。OpenFog 设想雾节点能够按需分配资源,可动态启用二级或三级节点农场以提供额外计算能力。此外,还可将其他形式的加速引入雾计算,如用于大容量存储的节点(当需要生成大型数据湖时),以及包含替代通信链路(如卫星无线电)的节点(当地面通信全部中断时)。
1.3 计算
计算部分类似于 OpenStack 中 Nova 层的计算功能,主要功能包括:
- 任务执行
- 资源监控和调配
- 负载均衡
- 能力查询
1.4 存储
存储层维护与雾存储的底层接口,边缘可能需要如数据湖或工作区内存等存储类型用于实时分析。该层还管理所有传统存储设备,如:
- RAM 阵列
- 旋转磁盘
- 闪存
- 独立磁盘冗余阵列(RAID)
- 数据加密
1.5 硬件平台基础设施
基础设施层并非软件和硬件之间的实际层,而是雾节点的物理和机械结构。由于雾设备通常部署在恶劣和偏远地区,它们必须坚固、有弹性且能自我维持。OpenFog 定义了雾部署中需要考虑的情况,包括:
- 尺寸、功率和重量特性
- 冷却系统
- 机械支撑和固定
- 可维护性机制
- 物理攻击抵抗和报告
1.6 协议抽象
协议抽象层将物联网系统的最底层元素(传感器)与雾节点的其他层、其他雾节点以及云绑定。OpenFog 倡导通过协议抽象层识别和与传感器设备通信的抽象模型。通过抽象传感器和边缘设备的接口,可在单个雾节点上部署异构传感器,如模拟设备(通过数模转换器)和数字传感器。传感器接口也可个性化,如车辆中用于温度设备的蓝牙、用于其他发动机传感器的 CAN 总线、各种车辆电子设备上的 SPI 接口传感器以及用于各种门和防盗传感器的通用输入输出(GPIO)传感器。通过抽象接口,软件栈的上层可以通过标准化方法访问这些不同的设备。
1.7 传感器、执行器和控制系统
这是物联网堆栈的底层,即边缘的实际传感器和设备。这些设备可以是智能的、普通的、有线的、无线的、近程的、远场的等等。它们以某种方式与雾节点通信,雾节点负责配置、保护和管理这些传感器。
2. Amazon Greengrass 和 Lambda
2.1 Greengrass 简介
Amazon Greengrass 是一种替代雾服务,自 2016 年以来,亚马逊投资开发了这种新型边缘计算方式。它是 AWS 的扩展,允许程序员将客户端下载到雾节点、网关或智能传感器设备。其目的是减少延迟和响应时间、降低带宽成本并为边缘提供安全保障。
2.2 Greengrass 功能特点
- 缓存数据,以防连接丢失。
- 重新连接时将数据和设备状态同步到 AWS 云。
- 本地安全(认证和授权服务)。
- 设备内外的消息代理。
- 数据过滤。
- 设备和数据的命令与控制。
- 数据聚合。
- 离线操作。
- 迭代学习。
- 边缘的 Greengrass 可直接调用任何 AWS 服务。
2.3 Lambda 函数使用
要使用 Greengrass,需在 AWS IoT 中设计云平台并定义某些 Lambda 函数,然后将这些函数分配给边缘设备并部署到运行客户端的设备上,授权其执行 Greengrass Lambda 函数。目前,Lambda 函数使用 Python 2.7 编写。Greengrass 中的影子是表示设备和 Lambda 函数状态的 JSON 抽象,可按需同步回 AWS。通信通过 MQTT 进行。
以下是一个在 Greengrass 中使用的 Lambda 函数定义示例:
首先,从 AWS 控制台运行命令行,指定 Lambda 函数定义的名称:
aws greengrass create-function-definition --name "sensorDefinition"
输出如下:
{
"LastUpdatedTimestamp": "2017-07-08T20:16:31.101Z",
"CreationTimestamp": "2017-07-08T20:16:31.101Z",
"Id": "26309147-58a1-490e-a1a6-0d4894d6ca1e",
"Arn": "arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/functions/26309147-58a1-490e-a1a6-0d4894d6ca1e",
"Name": "sensorDefinition"
}
然后,创建一个包含 Lambda 函数定义的 JSON 对象,并使用上述提供的 ID 从命令行调用
create - functiondefinition - version
:
aws greengrass create-function-definition-version --function-definition-id "26309147-58a1-490e-a1a6-0d4894d6ca1e" --functions
'[
{
"Id": "26309147-58a1-490e-a1a6-0d4894d6ca1e",
"FunctionArn": "arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/functions/26309147-58a1-490e-a1a6-0d4894d6ca1e",
"FunctionConfiguration": {
"Executable": "sensorLambda.sensor_handler",
"MemorySize": 32000,
"Timeout": 3
}
}]'
还需要其他几个步骤来配置和创建边缘节点与云之间的订阅,但 Lambda 处理程序将被部署。这为雾计算提供了另一种视角,可将其视为将云服务扩展到边缘节点并使边缘能够调用云提供的任何资源的方法,这是真正的雾计算平台。
3. 雾拓扑结构
3.1 拓扑设计考虑因素
雾拓扑结构有多种形式,架构师在设计端到端雾系统时需要考虑多个方面,如成本、处理负载、制造商接口和东西向流量等。雾网络可以简单到是一个支持雾计算的边缘路由器,将传感器连接到云服务;也可以复杂到是一个多层雾层次结构,每层具有不同的处理能力和角色,可在需要时同时分配处理负载(东西向和南北向)。模型的决定因素基于以下几点:
| 决定因素 | 说明 |
| ---- | ---- |
| 数据量减少 | 若系统从数千个传感器或摄像头收集非结构化视频数据,实时聚合数据并查找特定事件,雾节点需要将大量数据提炼成简单的事件令牌,数据量减少将非常显著。 |
| 边缘设备数量 | 若物联网系统只有一个传感器,数据集较小,可能无需雾边缘节点;若传感器数量增长或不可预测且动态变化,雾拓扑可能需要动态扩展或缩减。例如,体育场使用蓝牙信标,观众数量变化时,系统需非线性扩展。 |
| 雾节点能力 | 根据拓扑结构和成本,某些节点可能更适合连接无线个人区域网络(WPAN)系统,而层次结构中的其他节点可能具有机器学习、模式识别或图像处理等额外处理能力。例如,边缘雾节点管理安全的 Zigbee 网状网络,而更高层的雾处理节点可能具有额外的随机存取存储器(RAM)和 GPGPU 硬件来支持处理从 WPAN 网关流式传输的原始数据。 |
| 系统可靠性 | 架构师需要考虑物联网模型中的故障形式。若一个边缘雾节点发生故障,另一个节点可以替代其执行某些操作或服务。在关键生命或实时环境中,这一点尤为重要。此外,可按需配置额外的雾节点,在容错情况下可能需要冗余节点。若没有额外的冗余节点,一些处理可以与相邻节点共享,但会消耗系统资源并增加延迟,但系统仍可继续运行。相邻节点还可以相互作为看门狗,当一个雾节点发生故障或通信中断时,看门狗会向云发送故障信号,并可能在本地执行一些关键操作。 |
3.2 常见雾拓扑结构
3.2.1 简单雾拓扑
一个边缘处理单元(网关、瘦客户端、路由器)放置在传感器阵列附近,雾节点可作为 WPAN 网络或网状网络的网关,并与主机通信。
graph LR
A[传感器阵列] --> B[边缘雾设备]
B --> C[主机]
B <--> D[其他雾节点]
3.2.2 雾到云拓扑
云作为雾网络的父节点,雾节点聚合数据、保护边缘并执行与云通信所需的处理。与边缘计算不同的是,雾节点的服务和软件层与云框架存在关联。
graph LR
A[传感器] --> B[雾节点]
B --> C[云]
3.2.3 多个雾节点与单个主云
多个雾节点负责服务和边缘处理,每个节点连接一组传感器,父云像配置单个节点一样配置每个雾节点。每个节点具有唯一身份,可根据地理位置提供独特的服务。例如,零售连锁店的不同位置的雾节点。雾节点之间还可以进行东西向的数据通信和传输。
graph LR
A1[传感器组 1] --> B1[雾节点 1]
A2[传感器组 2] --> B2[雾节点 2]
B1 --> C[主云]
B2 --> C
B1 <--> B2
3.2.4 多个雾节点与多个云提供商
该拓扑在第二个拓扑的基础上,增加了从多个雾节点安全、私密地与多个云供应商通信的能力。例如,在智慧城市中,不同地理区域由不同的市政当局覆盖,每个市政当局可能偏好不同的云提供商,但都使用同一批准和预算的摄像头和传感器制造商。此时,雾节点必须能够将数据导向多个云提供商。
graph LR
A1[传感器组 1] --> B1[雾节点 1]
A2[传感器组 2] --> B2[雾节点 2]
B1 --> C1[云提供商 1]
B1 --> C2[云提供商 2]
B2 --> C1
B2 --> C2
3.2.5 多层雾拓扑
雾节点可以堆叠、分层,甚至在需要时保持待机状态。尽管分层雾节点可能与减少延迟的目标相悖,但节点可以专业化。例如,靠近传感器的节点可能提供硬实时服务或受成本限制,需要最少的存储和计算资源;而其上一层节点可以通过使用额外的大容量存储设备或 GPGPU 处理器提供聚合存储、机器学习或图像识别所需的计算资源。例如,城市照明系统中,多个摄像头感知行人移动和交通情况,靠近摄像头的雾节点进行聚合和特征提取,并将这些特征传递到上一层;父雾节点获取特征并通过深度学习算法进行必要的图像识别;若检测到感兴趣的事件(如行人在夜间行走),事件将报告给云,云组件将注册事件并向行人附近的一组路灯发送信号以增加照明强度。只要雾节点检测到行人移动,这种模式就会持续下去,最终目标是通过不一直将所有路灯全强度照明来节省能源。
graph LR
A[摄像头] --> B[边缘雾节点]
B --> C[父雾节点]
C --> D[云]
D --> E[路灯]
4. 物联网数据价值与分析
4.1 物联网数据价值
物联网系统的价值不在于单个传感器事件或存档的数百万个传感器事件,而在于对这些数据的解释和决策。数十亿事物相互连接并与云通信的世界固然很好,但价值在于数据中包含的信息、不包含的信息以及数据模式所告诉我们的内容。这就是物联网的数据科学和数据分析部分,可能是对客户最有价值的领域。
4.2 数据分析类型
物联网领域的分析涉及以下几种数据类型:
- 结构化数据(SQL 存储),具有可预测的数据格式。
- 非结构化数据(原始视频数据或信号),具有高度的随机性和变化性。
- 半结构化数据(如 Twitter 推文),在形式上有一定的变化性和随机性。
数据可能需要作为流式数据流进行实时解释和分析,也可能被存档并在云中进行深度分析,这是数据摄取阶段。根据用例,数据可能需要在传输过程中与其他来源进行关联;在其他情况下,数据只需简单记录并存储到 Hadoop 数据库等数据湖中。
综上所述,云计算和雾计算共同协作,以规则引擎到复杂事件处理代理等形式运行分析包。架构师必须理解拓扑结构和系统的最终目标,以构建满足当前需求并能适应未来发展的结构。
5. 云与雾在数据分析和机器学习中的协作
5.1 协作的必要性
在物联网环境下,云与雾在数据分析和机器学习方面的协作至关重要。云具有强大的计算资源和存储能力,能够处理大规模的历史数据和复杂的分析任务;而雾计算则靠近数据源,能够实现低延迟的数据处理和实时响应。两者结合可以充分发挥各自的优势,提高物联网系统的性能和效率。
5.2 协作模式
| 协作模式 | 说明 |
|---|---|
| 边缘预处理 - 云端深度分析 | 雾节点对传感器数据进行初步处理,如数据清洗、特征提取等,然后将处理后的数据发送到云端进行深度分析,如机器学习模型训练、长期趋势预测等。例如,在工业物联网中,雾节点对设备传感器数据进行实时监测和异常检测,将异常数据发送到云端进行故障诊断和预测性维护。 |
| 云端模型部署 - 边缘推理 | 云端训练好的机器学习模型部署到雾节点,雾节点利用本地数据进行实时推理。这样可以减少数据传输延迟,提高系统的实时性。例如,在智能交通系统中,云端训练好的目标检测模型部署到路边的雾节点,雾节点实时对摄像头采集的图像进行车辆和行人检测。 |
| 边缘与云端数据交互学习 | 雾节点和云端之间进行数据交互,共同更新和优化机器学习模型。雾节点将本地数据和模型训练结果反馈给云端,云端根据全局数据进行模型更新,然后将更新后的模型下发到雾节点。例如,在智能家居系统中,各个房间的雾节点收集用户的行为数据,与云端进行交互学习,不断优化智能家居的控制策略。 |
5.3 协作流程
graph LR
A[传感器] --> B[雾节点]
B --> C{数据处理决策}
C -->|本地处理| D[雾节点数据分析]
C -->|发送到云端| E[云数据存储]
E --> F[云数据分析与模型训练]
F --> G[云端模型部署]
G --> B
D -->|结果反馈| H[执行器]
F -->|结果反馈| H
6. 云与雾计算在不同场景的应用案例
6.1 智能城市
智能城市是云与雾计算应用的典型场景,涉及交通、能源、环境等多个领域。
-
交通管理
:在城市道路上部署大量的传感器和摄像头,雾节点实时收集交通流量、车辆速度、停车位信息等数据,进行本地处理和分析,实现交通信号灯的智能控制和停车位的实时引导。同时,将数据上传到云端进行宏观交通流量分析和长期趋势预测,为城市交通规划提供决策支持。
-
能源管理
:智能电表和分布式能源设备通过雾节点连接到云平台,雾节点实时监测能源消耗和发电情况,进行本地能源调度和优化。云端根据历史数据和气象信息进行能源预测和全局能源管理,提高能源利用效率。
-
环境监测
:分布在城市各个角落的环境传感器通过雾节点将空气质量、噪声水平、水质等数据上传到云端。雾节点可以实时对数据进行初步分析,当检测到异常情况时及时发出警报。云端对大量的环境数据进行综合分析,为城市环境治理提供科学依据。
6.2 工业物联网
在工业生产中,云与雾计算可以实现设备监控、故障预测、生产优化等功能。
-
设备监控与故障预测
:工业设备上安装的传感器通过雾节点实时收集设备的运行状态数据,如温度、振动、压力等。雾节点对数据进行实时分析,当检测到设备异常时及时发出警报,并将数据上传到云端进行深度故障诊断和预测性维护。云端利用机器学习算法对大量的设备数据进行训练,建立故障预测模型,提前发现设备潜在的故障隐患。
-
生产优化
:雾节点收集生产线上的生产数据,如产量、质量、生产时间等,进行本地生产调度和优化。云端根据全局生产数据和市场需求进行生产计划的制定和调整,实现生产资源的最优配置。
6.3 智能家居
智能家居系统通过云与雾计算实现设备的智能控制和用户体验的提升。
-
设备智能控制
:家中的智能设备如灯光、空调、门锁等通过雾节点连接到云平台,用户可以通过手机 APP 远程控制这些设备。雾节点实时收集设备状态数据,进行本地智能控制,如根据环境光线自动调节灯光亮度。云端根据用户的使用习惯和历史数据进行个性化推荐和场景设置。
-
安全监控
:家庭中的摄像头和传感器通过雾节点实时监测家庭安全情况,当检测到异常情况时及时向用户发送警报。雾节点对视频数据进行本地分析,减少数据传输量和延迟。云端对大量的安全数据进行存储和分析,为家庭安全提供长期保障。
7. 总结与展望
7.1 总结
云计算和雾计算在物联网中发挥着不可或缺的作用。云计算提供了强大的计算和存储能力,能够处理大规模的数据和复杂的分析任务;雾计算则将计算和数据处理靠近数据源,减少了延迟和带宽成本,提高了系统的实时性和安全性。两者相互协作,共同实现了物联网数据的高效处理和分析,为用户提供了更有价值的服务。
7.2 展望
未来,随着物联网技术的不断发展,云与雾计算的应用将更加广泛和深入。一方面,雾节点的计算能力和智能化水平将不断提高,能够处理更复杂的任务;另一方面,云平台将提供更强大的数据分析和机器学习工具,为物联网应用提供更精准的决策支持。同时,云与雾计算的协同机制也将不断优化,实现更高效的数据交互和资源共享,推动物联网技术迈向新的台阶。在设计和构建物联网系统时,架构师需要充分考虑云与雾计算的特点和优势,选择合适的拓扑结构和分析模型,以满足不同场景的需求。
超级会员免费看
2831

被折叠的 条评论
为什么被折叠?



