之前介绍过EdgeX边缘计算微服务框架简介和边缘计算框架的需求,我们已经了解了边缘计算遇到的五大问题并且如何解决这五大问题的,同时我们了解了为什么不能用平均主义方式设计边缘计算软件以及边缘计算软件主流设计方法,本文为这一系列最后一篇,我们来了解下EdgeX总体架构
作者:与子同袍
首发:物联网前沿技术观察
1.EdgeX的总体架构
1.1系统组成部分
EdgeX的架构与Thingworx Edge SDK或者Azure IoT Edge SDK这些单体程序不同。后者把所有功能都放在一个程序中运行。而EdgeX把边缘计算的任务分到若干个软件模块上完成。每个软件模块负责一个功能内聚的任务。不同软件模块之间通过预先定义好的API接口进行交互。
设备服务负责采集数据及控制设备功能。核心服务负责本地存储分析和转发数据,以及控制命令下发。导出服务负责上传数据到云端或第三方信息系统,以及接收控制命令转发给核心服务。支持服务负责日志记录、任务调度、数据清理、规则引擎和告警通知。
安全服务、管理服务这两个软件模块虽然不直接处理边缘计算的功能性业务,但是对于边缘计算的安全性和易用性来说很重要。
不同服务之间主要采用 RESTful API 接口进行交互。但是有的服务之间为了提高性能,通过消息总线交换数据。
EdgeX可通过Docker等部署工具部署服务。不同服务可以在同一个计算节点上运行,也可以在不同计算节点上运行。
由于采用了微服务风格架构,不同服务可以用不同语言开发,如Java,Go,C语言等。
EdgeX Foundry是一个开源微服务的集合。
EdgeX采用微服务风格架构,使用RAML这一RESTful API建模语言定义了上述6个服务的API接口。
这些微服务组织为四个服务层和两个增强系统服务。
4个服务层是:
- 核心服务层Core Services Layer
- 支持服务层Supporting Services Layer
- 导出服务层Export Services Layer
- 设备服务层Device Services Layer
两个增强基础服务:
- 安全服务
- 系统管理服务
各服务内又包含若干个更细粒度的服务。
1.2总体数据流程
EdgeX的总体数据流是这样的:
• Device Service从设备采集实时数据。
• Device Service把设备实时数据发送给Core Service,并本地持久化存储。
• Core Service把实时数据发送给Export Service,由后者再发送到云端服务器或企业信息系统。
• 数据在边缘侧的分析软件中进行分析,然后根据分析结果通过Command service发送控制命令触发设备动作。
2.EdgeX架构设计指导原则
EdgeX Foundry在进行架构设计时,遵循了如下指导原则:
- Tenet1技术中立:硬件、操作系统、南向协议无关。服务可以部署在边缘计算节点、雾计算节点、云端等地方。
- Tenet2灵活性:可以升级、替换EdgeX的任何一个服务。可以根据EdgeX运行硬件的性能高低进行伸缩。
- Tenet3存储转发:在断网离线的情况下,支持本地存储转发功能。
- Tenet4智能分析:可以在边缘侧进行智能分析,从而降低反应延迟、减少网络流量和云端存储成本。
- Tenet5应用场景支持:支持greenfield和brownfield两种环境下的应用场景。对greenfield和brownfield概念不了解的同学,可以看这篇文章:物联网发展为什么这么慢?Greenfield和Brownfield,到底是什么鬼?
- Tenet6安全、易于管理。
3.EdgeX兼顾了边缘计算各利益方
EdgeX 这样的架构设计,兼顾了各方的利益。
首先是边缘计算硬件OEM商。边缘计算硬件是指PLC控制器、运动控制器、机器人、路由器、Hub、服务器、微数据中心等。由于EdgeX的中立的设计(Tenet1技术中立),他们将很容易把EdgeX边缘计算软件移植到不同操作系统和不同硬件平台上,然后与自己家的云服务对接,就可以给客户提供端到端的完成的物联网解决方案了。
其次是传感器和设备制造商。
他们可以基于EdgeX的设备服务,根据传感器或设备的通讯协议开发相应传感器和设备的设备服务。这些设备服务,可以放到EdgeX的应用软件市场上给第三方免费下载使用,从而促进传感器和设备销售。当然他们也可以对自己开发的设备服务选择收费模式。
由于EdgeX的Tenet2(灵活性),可以很容易的让客户升级、替换传感器和设备制造商提供的设备服务。
还有就是独立软件开发商。他们的特点是在某一个业务领域很强。他们不需要去关心怎么和底层设备打交道。他们只需要去开发安全方面或者规则引擎方面或者数据存储方面的程序,然后把这些程序用EdgeX的相应服务封装以下,就可以在EdgeX的应用软件市场卖产品了。
由于EdgeX的Tenet2(灵活性),可以很容易的让客户升级、替换独立软件开发商提供的数据服务、安全服务、规则引擎服务等。
最后一种是系统集成商。
他们关心的是可以快速重用现有的功能,加上少量定制开发,就可以给客户完成一个物联网项目。有了EdgeX,他们可以从EdgeX的服务市场中寻找所需的设备服务、安全服务、导出服务,然后通过简单配置就可以实现一个边缘计算项目。
如果在应用市场找不到相应的服务软件,那他们也可以选择自己定制开发所需的服务。
系统集成商在实施边缘计算项目时,会遇到greenfield或brownfield应用场景。这时候,根据Tenet5(支持greenfield和brownfield两种应用场景),EdgeX 在这两种情况下都可以适应。
同时由于Tenet6(安全、易于管理),EdgeX 可以让系统集成商的客户对解决方案的安全性放心,同时也可以很容易的使用。这对于边缘计算的最终用户项目落地来说很重要。
由于Tenet1(技术中立),系统集成商可以根据实际现场情况,将不同的微服务部署在不同的位置。
由于Tenet3(存储转发)和Tenet4(智能分析),系统集成商可以在离线断网的情况下,进行存储转发。同时在边缘侧进行分析,降低项目流量成本和云端存储成本。
深入理解边缘计算微服务框架EdgeX Foundry系列:
更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
申请加入物联网技术研讨大佬微信群,请加微信号:iot1999。