EdgeX Foundry简介

前言

EdgeX Foundry(https://www.edgexfoundry.org/)是由Linux基金会运营的厂商中立的开放源码项目,旨在为物联网边缘计算创建公共开放的框架。该项目的核心是基于与硬件和操作系统完全无关的参考软件平台建立的互操作框架,使能即插即用的组件生态系统,统一市场,加速物联网方案的部署。EdgeX Foundry使有意参与的各方在开放与互操作的物联网方案中自由协作,无论他们是使用公开标准或私有方案。

目前已有超过65家企业支持并参与EdgeX Foundry项目,其中Anolog Deivces、Dell EMC和SamSung是白金会员,包括VMware、AMD、Ubuntu、Toshiba在内的51家企业和组织是银牌会员,Cloud Foundry、RIOT、ULE Alliance、Zephyr、OMG、IIC等物联网相关项目和组织也与其结成了协作关系。

VMware中国研发中心几乎是自EdgeX Foundry刚起步时就开始关注它,并于2017年夏天起组织专人开始调研,逐步熟悉它的设计架构和代码实现。因为VMware是EdgeX Foundry的共同发起方和银牌会员,我们的目标确定为结合自身的vGateway项目(工业物联网网关虚拟化),探索EdgeX Foundry在基于虚拟化网关的边缘计算中应用时,可能遇到的问题和可行的方案。

我们在探索EdgeX Foundry的过程中发现并解决了不少关于设计、开发、测试、部署等各个环节的问题。鉴于至今尚无中国大陆地区内的组织加入EdgeX Foundry,这里我们把获得的心得体会、经验教训分享给社区。也希望能够吸引更多的同行关注物联网领域、加入EdgeX Foundry,共同构建最棒的物联网及边缘计算解决方案。

概述

EdgeX Foundry的原始代码主要来自Dell的Fuse项目,以Apache 2.许可证发布。主要编程语言是Java,整体框架采用SpringBoot、Spring Framework、Docker、Consul等微服务注册和配置中心等技术构成。

其中核心微服务有8个:分别是core-data、command、metadata、consul、mongodb、edgex-files、log、notification服务,这是启动EdgeX Foundry工程的最小环境依赖

下图是EdgeX Foundry的整体架构,可大略分为东、南、西、北、中几个部分:

南侧为设备微服务(device service),用于连接物理设备,如传感器、摄像头等,每个设备微服务都有自己与特定设备连接的驱动代码,需要用户针对自己的设备数据传输协议编写数据驱动代码,EdgeX Foundry提供SDK-tool工具用于快速生成设备微服务整体结构中的通用代码部分,开发者只需根据EdgeX Foundry指定的task标志完成指定位置的代码编写即可。具体参见https://wiki.edgexfoundry.org/

北侧为导出微服务(export service),用于企业用户远程读取设备数据,开发者需要针对自己的业务需求,可以调用Export微服务的相关API,读取针对某个特定设备的数据。

中心为核心微服务,主要用于存储设备元数据,解析传递命令,存储设备数据等。

整体框架的大致流程如下:

设备微服务读取device.profile文件存储到metadata微服务,profile文件中存储了特定设备的元数据信息,包括该设备的数据key,能够执行的命令等。

向设备发送命令,必须经过comand微服务,调用comand微服务的API,可以得到设备的所有命令信息,该服务经过调用metadata微服务存储的设备元数据信息后,发送到设备微服务,设备微服务在通过特定的协议(通常需要针对您的设备开发)发送到真实物理设备。

北侧端的导出服务,有特定的API,开发人员开发的微服务需要注册到北侧导出微服务后才能得到设备数据,注册的微服务可以是本地和远程,本地可用于边缘计算后上传到企业中心,远程是企业用户中心直接读取走设备数据。

EdgeX Foundry已经开发的规则引擎微服务就是一种注册到北侧端的本地服务,用于实时分析设备数据后执行特定的规则,触发相应的命令发送给设备。目前北侧端的导出微服务,支持Http和zeromq协议注册。

在我们前一阶段针对Edgex Foundry项目的探索工作中,已经完成了如下目标:

基于DockerSwarm的跨主机网络实现全域名访问,并基于此扩展了EdgeX Foundry的混合开发环境;

移植EdgeXFoundry到虚拟化网关中,并连接真实物理设备、读取传感器数据;

针对EdgeX Foundry在单物理机(网关)上运行的宕机风险,提出了部署集群化网关的方案。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180502G0XFCC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券