总体架构

核心服务层

核心数据微服务

搜集持久化设备和传感器等边缘设备数据,支持导出到云。目前,数据本地存储交互通过REST APIs,未来会支持更多协议:MQTT, AMQP等。数据导出到Export Service layer,通过ZeroMQ、MQTT。persist.data=false,数据不存核心数据,直接通过消息队列到达Export Service layer。本服务是唯一能获得设备数据的服务。
查询数据流程图

添加属性流程图

命令微服务

负责把命令从北端传到南端,不允许非法命令与设备交互。命令主要来自一下:其他微服务命令(本地边缘数据分析、规则引擎微服务)、其他应用命令(系统管理agent关闭一个设备)和外部系统命令(修改一系列设备设置文件)。命令微服务提供统一规范方式与设备通信,GET命令获取设备数据;PUT命令下发action或下发配置数据。命令微服务通过设备服务同设备交互,不直接交互设备。
查询命令流程图

发送命令流程图

元数据微服务

元数据微服务主要包括管理设备配置文件,包括设备信息、设备数据结构类型和设备命令。每个被EdgeX 管理的设备,都在元数据有关联ID,设备关联设备配置文件和设备服务。元数据微服务管理设备服务信息,其他微服务通过设备服务同设备交互。设备服务,对应一特定设备协议,比如Modbus设备服务,负责管理所有Modbus设备。本服务是唯一能获得设备、设备配置和设备服务的微服务。数据本地存储交互通过REST API,未来会支持更多协议:MQTT, AMQP等
架构图

启动设备流程图

添加设备流程图

配置注册微服务

管理EdgeX Foundry微服务配置、执行参数和状态。提供微服务启动所需配置,如端口号等。各微服务启动,注册自身信息到本服务。对于注册服务,采用ping各微服务方式来探活, 频率每10 seconds一次。配置发生变更,本服务会及时通知对应微服务,配置信息会覆盖微服务内置配置信息,可支持动态切换环境,满足微服务架构动态扩展需求。在配置注册微服务不可用时,微服务可脱离本服务,使用自身内嵌配置启动。交互方式:RESTful APIs。 
配置注册服务交互图

支撑服务层

通知告警微服务

告警通知微服务负责在设备发生故障,生成告警,发生告警到目的应端目前支持e-mail 和 REST 回调。通知分两种,NORMAL和CRITICAL,CRITICAL立刻发送通知到分发协调组,NORMAL等待消息调度器统一处理。可扩展,按需起调度器处理通知作业。
架构图

左边:API提供给其他微服务和应用调用,能通过 REST, AMQP, MQTT,或者其他标准应用协议,目前支持REST。
右边:消息订阅者通过订阅RESTful,订阅特定类型通知。消息接收者,在事件发生时,可通过SMS、, e-mail, REST callback, AMQP, MQTT等。
发现告警流程图

响应告警流程图

日志微服务

通过RESTful APIs提交日志请求、查询历史日志、移除历史日志,用LOGBack做日志框架,可以通过文件或MongoDB持久化日志。
架构图

日志请求流程图

调度微服务

EdgeX 的调度服务及其轻量,只负责定时清理设备数据。默认每30分钟执行一次,调用Core Data API执行清理任务

规则引擎微服务

规则引擎提供了一种边缘事件触发机制,监控边缘设备数据。符合条件,触发行为,通过命令服务下发指令。内核引擎采用Drools,由JBoss社区提供的开源规则引擎。规则引擎启动会自动注册到输出客户端注册服务,检测设备数据对于重要敏感案例,规则引擎可以直接对接核心数据微服务,需要设置配置文件,export.client=true。通过RESTful API动态添加规则。
架构图

添加规则流程图

输出服务

客户端注册微服务

输出客户端注册微服务让客户端注册为数据接收者,按需过滤流转数据。Clients on-gateway:包括本地分析服务,事件处理器,规则引擎等。Clients off-gateway:经典企业云系统或网关聚合系统,提供历史数据和更深层次数据分析能力。通过REST API创建新请求,更新存在请求,删除请求。
架构图

分发微服务

分发微服务,基于EAI技术,管道过滤体系。通过消息队列,接收数据,过滤、传输和格式化数据,通过REST, MQTT, 0MQ分发数据到特定注册客户端。
分发流程图

系统管理服务

系统管理模块提供微服务安装、升级、启动、停止和监控功能

安全服务

支持AAA访问控制,AES256数据加密,唯一证书认证,HTTPS协议流程数据。

设备服务层

虚拟设备微服务

模拟不同协议设备,生成Events and Readings到核心数据微服务,通过H2 database存储虚拟设备资源。用户通过命令微服务下发命令到
。虚拟设备服务依赖数据微服务和元数据微服务,启动会ping核心数据和元数据微服务,超时时间600秒,未ping通,启动失败。虚拟设备服务启动初始化过程中,会在元数据微服务创建设备,设备配置,设备服务。
架构图

原理篇总体结合官网和自己理解
英文版请登入官网
https://wiki.edgexfoundry.org/display/FA/EdgeX+Foundry+Microservices+Architecture

EdgeX Foundry理论篇相关推荐

  1. 艾伟_转载:学习 ASP.NET MVC (第五回)理论篇

    本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回) ...

  2. 一步步教你轻松学朴素贝叶斯模型算法理论篇1

    一步步教你轻松学朴素贝叶斯模型理论篇1 (白宁超2018年9月3日17:51:32) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受欢迎,对 ...

  3. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  4. 解密回声消除技术之一(理论篇)

    http://hulong988.blog.51cto.com 解密回声消除技术之一(理论篇) 2009-06-11 22:24:58 标签:语音 职场 休闲 通讯 原创作品,允许转载,转载时请务必以 ...

  5. 【机器学习】Logistic Regression 的前世今生(理论篇)

    Logistic Regression 的前世今生(理论篇) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上 ...

  6. php switch 函数,PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

    Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择.以PHP来说,switch(开关语句)常和case break default一起使用 典型结构 switch($control ...

  7. 基于 OpenYurt EdgeX Foundry 的云边端一体化解决方案

    作者|VMWare 主任工程师:刘武明.浙江大学 SEL 实验室研究生:陈涛 审核&校对:溪洋.海珠 编辑&排版:雯燕 背景介绍 边缘计算区别于传统的中心云计算模式,并被广泛地应用于汽 ...

  8. dma访问主存时_DMA导致Cache数据一致性问题的原因及其解决方式(理论篇)

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 唉!嫉妒之心真的能俘获它所接触到的任何目标啊--"欲加之罪,何患无辞"呢?"觉悟高的"更有" ...

  9. 程序 峰谷值 提取_医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇...

    医学影像组学特征值(Radiomics Features)提取之pyradiomics(一)理论篇 pyradiomics是一个开源的python软件包,可以从医学影像中提取出Radiomics影像组 ...

最新文章

  1. python websocket server_用Python实现一个简单的WebSocket服务器
  2. VTK修炼之道16:图像处理_窗口分割和图像融合(ViewportvtkImageBlend)
  3. sql server 存储过程中使用变量表,临时表的分析(续)
  4. html5纪念日期代码,HTML5适合的情人节礼物有纪念日期功能
  5. Python安装scikit-learn包
  6. 物联网中使用的常见通信技术
  7. js触发click事件
  8. fanuc机器人刷机教程_发那科Fanuc机器人编程操作视频教程
  9. Ubuntu安装sasquatch时执行./build.sh报错:--no-check-certificate
  10. 计算机硬盘内存不足什么原因,电脑硬盘内存不足怎么办
  11. 创意字体设计,创意思路哪里找
  12. 数据结构与算法--线性表
  13. NB-IOT经典案例
  14. Mindjet MindManager 2018 版本下载
  15. [分享]RFID之我的M1离线卡爆破过程
  16. 《三十岁前的每一天》--水湄物语 读后感
  17. MXNet -aws深度学习框架之选择
  18. onmouseover和onmouseout的烦恼
  19. 痴情不是罪过 忘情不是洒脱
  20. 计算网站流量,选择适合带宽或月流量

热门文章

  1. MySQL笔记9:内连接、左连接、右连接以及全连接查询
  2. 线程:volatile关键字
  3. 数据结构:插入排序(Insertion sort)
  4. Linux系统环境查看已经登录用户信息及管理
  5. 亚太运营商在5G速率上领先
  6. Linux01-Linux编辑内核定制属于自己的内核49
  7. [gist]Android SHA-1
  8. 超全超实用的Javascript类库和jQuery插件大全之二:文字处理,表格和列表处理,实用......
  9. Python print函数不换行操作
  10. ZBrushCore中文版