Edgex foundry - 面向物联网端的边缘计算开源平台


Apache
跨平台
Java

软件简介

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 的应用领域主
要在工业物联网,如智能工厂、智能交通等场景,以及其他需要接入多种传感器和设备的场景。