EdgeXFoundry 是一个面向工业物联网边缘计算开发的标准化互操作性框架,部署于路由器和交换机等边缘设备上,为各种传感器、设备或其他物联网器件提供即插即用功能并管理 它们,进而收集和分析它们的数据,或者导出至边缘计算应用或云计算中心做进一步处理。EdgeXFoundry 针对的问题是物联网器件的互操作性问题。目前,具有大量设备的物联网产生大量数据,迫切需要结合边缘计算的应用,但物联网的软硬件和接入方式的多样性给数据 接入功能带来困难,影响了边缘计算应用的部署。EdgeXFoundry 的主旨是简化和标准化工业物联网边缘计算的架构,创建一个围绕互操作性组件的生态系统。
图2展示了EdgeX Foundry的架构。在图中的最下方是“南侧”,指的是所有物联网器件, 以及与这些设备,传感器或其他物联网器件直接通信的边缘网络。在图的最上方是“北侧”, 指的是云计算中心或企业系统,以及与云中心通信的网络部分。南侧是数据产生源,而北侧 收集来自南侧的数据,并对数据进行存储、聚合和分析。如图2所示,EdgeXFoundry 位于 南侧和北侧两者之间,由一系列微服务组成,而这些微服务可以被分成 4个服务层和2个底层增强系统服务。微服务之间通过一套通用的Restful应用程序编程接口(API)进行通信。
图2- EdgeXFoundry的架构图
BACNET:楼宇自动化与控制网络
BLE:低功耗蓝牙
MQTT:消息队列遥测传输
OPC-UA:OPC统一框架
REST:RESTful应用程序编程接口
SDK:软件开发工具包
SNMP:简单网络管理协议
VIRTUAL:虚拟设备
(1)设备服务层。设备服务层主要提供设备接入的功能,由多个设备服务组成。每个设备服务是用户根据设备服务软件开发工具包(SDK)编写生成的一个微服务。EdgeXFoundry使用设备文件去定义一个南侧设备的相关信息,包括源数据格式,存储在EdgeXFoundry 中 的数据格式以及对该设备的操作命令等信息。设备服务将来自设备的数据进行格式转换,并 发送至核心服务层。目前,EdgeX Foundry提供了消息队列遥测传输协议(MQTT)、ModBus串行通信协议和低功耗蓝牙协议(BLE)等多种接入方式。
(2)核心服务层。核心服务层由核心数据、命令、元数据、注册表和配置4个微服务组件 组成。核心数据微服务存储和管理来自南侧设备的数据、元数据微服务存储和管理设备的元 数据。命令微服务将定义在设备文件的操作命令转换成通用的API,提供给用户以监测控制 该设备。注册表和配置微服务存储设备服务的相关信息。
(3)支持服务层。支持服务层提供边缘分析和智能服务,以规则引擎微服务为例,允许用户设定一些规则,当检测到数据满足规则要求时,将触发一个特定的操作。例如规则引擎可 监测控制温度传感器,当检测到温度低于25度时,触发对空调的关闭操作。
(4)导出服务层。导出服务层用于将数据传输至云计算中心,由客户端注册和分发等微服务组件组成。前者记录已注册的后端系统的相关信息,后者将对应数据从核心服务层导出至 指定客户端。
(5)系统管理和安全服务:系统管理服务提供安装、升级、启动、停止和监测控制EdgeX Foundry 微服务的功能。安全服务用以保障来自设备的数据和对设备的操作安全。
最新版本的 EdgeXFoundry 没有为用户自定义应用提供计算框架,用户可以将应用部署在网络边缘,将该应用注册为导出客户端,进而将来自设备的数据导出至应用来处理。EdgeX Foundry 的设计满足硬件和操作系统无关性,并采用微服务架构。EdgeXFoundry 中的所有微服务能够以容器的形式运行于各种操作系统,且支持动态增加或减少功能,具有可扩展性。EdgeXFoundry 的主要系统特点是为每个接入的设备提供通用的 RestfulAPI以操控该设备, 便于大规模地监测控制物联网设备,满足物联网应用的需求。EdgeXFoundry 的应用领域主 要在工业物联网,如智能工厂、智能交通等场景,以及其他需要接入多种传感器和设备的场景。