EdgeX Foundry 架构介绍

一、架构图

EdgeX 采用微服务风格架构,这些微服务组织为四个服务层和两个底层系统服务。

四个服务层为:

  • 应用服务层 Application Services Layer

  • 支持服务层 Supporting Services Layer

  • 核心服务层 Core Services Layer

  • 设备服务层 Device Services Layer

两个底层系统服务:

  • 安全服务 Security

  • 系统管理服务 System Management

各服务内又包含若干个更细粒度的服务。

二、服务层

1、核心服务层 Core Services Layer

核心服务是将有关连接哪些"事物"、哪些数据流经以及如何配置 EdgeX 的大多数先天知识驻留在 EdgeX 实例中的地方。核心由以下微服务组成:

  • 核心数据 Core data:从南侧对象收集的数据的持久性存储库和关联的管理服务。

  • 命令 Command:促进和控制从北侧到南侧的致动请求的服务。

  • 元数据 Metadata:有关连接到 EdgeX Foundry 的对象的元数据的存储库和关联的管理服务。元数据提供了预配新设备并将其与其拥有的设备服务配对的功能。

  • 注册表和配置 Registry and Configuration:为其他 EdgeX Foundry 微服务提供有关 EdgeX Foundry 和微服务配置属性(即初始化值存储库)中相关服务的信息。

核心服务提供事物和 IT 系统之间的中介通信。

2、支持服务层 Supporting Services Layer

支持服务包括广泛的微服务,包括边缘分析(也称为本地分析)。正常的软件应用程序职责,如调度程序和数据清理(在 EdgeX 中也称为清理)由支持服务层中的微服务执行。

这些服务通常需要一定数量的核心服务才能运行。在所有情况下,支持服务都可以被视为 可选 服务,也就是说,根据用例需求和系统资源,它们可以被排除在 EdgeX 部署之外。

配套服务包括:

  • 规则引擎 Rules Engine:参考实施边缘分析服务,根据 EdgeX 实例收集的传感器数据在边缘执行 if-then 条件驱动。此服务可以通过特定于用例的分析功能来替换或增强。

  • 调度程序 Scheduler:一个内部 EdgeX"时钟",可以在任何 EdgeX 服务中启动操作。在指定的配置时间,服务将通过 REST 调用任何 EdgeX 服务 API URL 以触发操作。例如,调度程序服务会定期调用核心数据 API,以清理已成功从 EdgeX 导出的旧检测事件。

  • 警报和通知 Alerts and Notifications:为 EdgeX 服务提供发送警报或通知的中央设施。这些是发送到另一个系统或监视 EdgeX 实例的人员的通知(内部服务通信通常更直接地处理)。

3、应用服务层 Application Services Layer

应用程序服务是将检测到的数据从 EdgeX 提取、处理/转换并将发送到您选择的端点或进程的方法。如今,EdgeX 提供了应用程序服务示例,将数据发送到许多主要的云提供商(Amazon IoT Hub、Google IoT Core、Azure IoT Hub、IBM Watson IoT...)、MQTT(s) 主题和 HTTP(s) REST 端点。

应用程序服务基于"函数管道(functions pipeline)"的思想。函数管道是按指定顺序处理消息(在本例中为 EdgeX 事件消息)的函数集合。管道中的第一个函数是触发器。触发器开始执行函数管道。例如,触发器类似于消息队列中的消息。然后,每个函数对消息执行操作。常用功能包括过滤、转换(即转换为 XML 或 JSON)、压缩和加密功能。当消息通过所有函数并设置为接收器时,函数管道结束。将生成的消息放入要发送到 Azure 或 AWS 的 MQTT 主题中是接收器完成应用程序服务的示例。

4、设备服务层 Device Services Layer

设备服务将"事物"(即传感器和设备)连接到 EdgeX 的其余部分。

设备服务是与"事物"交互的边缘连接器,包括但不限于:警报系统、家庭和办公楼中的供暖和空调系统、照明、任何行业的机器、灌溉系统、无人机、当前自动化交通(例如某些铁路系统)、当前自动化工厂和家中的电器。未来,这可能包括无人驾驶汽车和卡车、交通信号灯、全自动快餐设施、全自动自助杂货店、从患者那里获取医学读数的设备等。

设备服务可以同时为一个或多个事物或设备(传感器、执行器等)提供服务。设备服务管理的设备可以是简单的单个物理设备以外的设备。该设备可以是另一个网关(以及该网关的所有设备)、设备管理器、充当 EdgeX Foundry 设备或设备集合的设备聚合器。

设备服务通过每个设备对象的本机协议与设备、传感器、执行器和其他 IoT 对象通信。设备服务将 IoT 对象生成和通信的数据转换为通用的 EdgeX Foundry 数据结构,并将转换后的数据发送到核心服务层,以及 EdgeX Foundry 其他层中的其他微服务。

EdgeX附带了许多设备服务,涉及许多常见的物联网协议,例如Modbus,BACnet,MQTT等。

三、系统服务层

1、安全服务 Security

EdgeX Foundry 的安全元素保护由 EdgeX Foundry 管理的设备,传感器和其他物联网对象的数据和控制。基于 EdgeX 是"网络边缘的供应商中立开源软件平台"这一事实, EdgeX 安全功能也建立在开放接口和可插拔、可更换模块的基础上。

有两个主要的 EdgeX 安全组件。

  • 安全存储(security store),用于提供保存 EdgeX 机密的安全位置。EdgeX 机密的示例包括其他服务和令牌用于连接到云系统的数据库访问密码。

  • API 网关充当反向代理,用于限制对 EdgeX REST 资源的访问并执行访问控制相关工作。

2、系统管理服务 System Management

系统管理设施为外部管理系统提供了中心联系点,以启动/停止/重新启动 EdgeX 服务、获取服务的状态/运行状况或获取有关 EdgeX 服务的指标(例如内存使用情况),以便可以监控 EdgeX 服务。

相关推荐
追风林1 分钟前
mac m1 docker本地部署canal 监听mysql的binglog日志
java·docker·mac
芒果披萨15 分钟前
El表达式和JSTL
java·el
duration~1 小时前
Maven随笔
java·maven
zmgst1 小时前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
€☞扫地僧☜€1 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
跃ZHD1 小时前
前后端分离,Jackson,Long精度丢失
java
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习