概述
EdgeXFoundry最开始是由Dell公司运行IOT网关上构建的零碎,起初开源进去。EdgeXFoundry就像是硬件与软件之间的一个中间件,南向连贯各种设施和传感器,北向连贯应用程序。EdgeXFoundry框架有四个服务层和两个根底零碎服务,别离是设施服务层(Device Service),外围服务层(Core Service),反对服务层(Supporting Service)还有应用服务层(Application Services);以及平安服务(Security)和系统管理服务(Management)。
EdgeXFoundry零碎架构图
Device Service(设施服务层)
Device Service在零碎架构图中位于最底层的地位,是与硬件(设施和传感器)交互的一层。南向的设施如机房服务器、精细空调、路由器等等,传感器如温湿度计、烟感器等等。
Device Service设施服务能够通过与每个设施之间的协定进行通信,设施服务将友IoT对象生成和通信的数据转换为通用的EdgeXFoundry数据结构,并将转换后的数据发送到外围服务层(Core Service)以及其余层的微服务。简略来说,Device Service负责采集设施数据,完事将数据发送给其余层或其余服务;设施服务充当EdgeX与理论设施和传感器的接口
Device Service(设施服务)在首次启动的时候会做这些事件:
- 建设无关设施服务和设施的参考消息
- 让EdgeX其余局部晓得DeivceService
设置设施服务(Device Service)将通过Edgex治理设施
这时候我问各位bro一个问题,Device Service能够独自运行吗,如果能要怎么独自运行?独自运行之后如何跟Core Service进行数据传输?答案是必定的。EdgeX的微服务的单个实例能够散布在多个主机平台上。一个或多个EdgeX微服务的主机平台称为节点。
#### Core Service(外围服务层)
外围服务是EdgeX的外围局部,是南北桥的中介。Core Service蕴含 外围数据(coreData),命令(Command),元数据(Metadata),注册表和配置(Registry & Config) 等这些微服务。
元数据(metadata)
元数据会存储连贯到EdgeX对象的元数据存储库和相干的治理服务。 元数据提供新设施与设施服务配对的能力。简略来说设施配置文件Device Profile就是上传到元数据中存储。能够通过GET向metadata获取所有的Device Profile,PUT和ID更新配置文件,通过POST创立一个全新的DeviceProfile文件。(DeviceProfile设施配置文件记录了设施的名称形容版本生产商,有哪些属性和办法等等)
元数据微服务晓得该如何与传感器、其余服务(外围数据coredata ,外围命令core command)进行通信。元数据能治理连贯到EdgeX的设施、晓得设施报告的数据以及晓得如何向设施发送命令;但元数据就如同幕后大BOSS,老板嘱咐员工去做事;元数据不会通过Device Service和core Data进行数据采集;同样元数据不会向设施间接发送命令,命令由外围命令(core Command)和设施服务(Device Service)执行。
外围数据(coreData)
外围数据微服务为采集回来的数据提供长久化的服务。Device Service采集来的数据流到coreData,coreData会将数据存储到零碎边缘(如网关)并提供肯定的安全性性和爱护,直到数据向北挪动。说到外围数据,绕不开的还有Event/Readings。Event代表一个或多个传感器读数的汇合,传感器采集到数据后发送的EdgeX是一个事件。Reading代表设施或传感器的响应。
命令(Command)
命令是通用的,标准化的。个别发送两类指令给设施——GET&PUT。GET命令从设施申请数据,这罕用于申请设施获取最新的传感器数据。PUT指令则会发送指令给设施,使其开关机或作出一些调整。
Suppoting Service (反对服务层)
反对服务包含宽泛的微服务,包含边缘剖析、日志记录、调度和数据清理等;反对服务包含规定引擎、打算、日志记录、警报和告诉。目前在EdgeX v1.2版本中曾经弃用了Logging服务,日志记录会在EdgeX当前的版本中被删除。
Alerts & Notifications (警报和告诉)
在EdgeX框架中告诉是十分重要的,当紧急事件产生时接管方可选适当的形式收取告诉,包含SMS,邮件,REST回调,MQTT等等。告诉微服务接管告诉时,告诉都在外部传递到告诉处理程序。告诉处理程序首先会保留告诉,而后给定告诉为紧急时将其立刻传递到散发帮助器,若是失常状况则将消息传递到音讯调度程序。
Rules Engine & Kuiper Rules Engine
规定引擎在EdgeX v1.2中曾经被启用。在Geneva中EdgeX与 EMQ X Kuiper单干。而Kuiper是一个轻量级的开源软件,实现物联网边缘剖析和流解决,用户能够实现疾速的数据处理并编写SQL语句。Kuiper规定引擎基于三个局部组成,Source、 SQL、Sink
Source是流数据的源头,能够是MQTT服务器,也能够是EdgeX的音讯总线。SQL是解决指定业务逻辑的中央,用于提取、过滤或转换数据。Sink用于将剖析后果发送到特定指标,例如将后果发送给MQTT代理。(关系如下图)
Scheduling (打算)
其实这就是一个外部调度的时钟,能够设置间隔时间操作。
Security (平安组)
平安组能够包含Edgex治理的设施,传感器和其余IoT对象的数据和管制。平安组次要有两个组件,别离是:
Security store——用于提供平安的地位来保留EdgeX秘密。EdgeX秘密是其余服务连贯到云零碎的数据库拜访明码。
- 在Security store微服务中存储了各种机密信息如令牌、明码、证书等等。Security store与其余微服务之间的通信由TLS爱护。
API gateway——用作反向代理,以限度对Edgex REST资源的拜访和管制操作。
- API 网关是所有EdgeX REST通信的单入口,是内部客户端与EdgeX微服务之间的一层爱护,可房子和未经受权拜访EdgeX REST API。API网关接管客户端申请,验证客户端身份,并将申请重定向到相干微服务。
Management (系统管理工具)
系统管理工具为内部管理系统提供了核心联系点,以启动/进行/重新启动EdgeX服务,获取服务的状态/运行状况或获取EdgeX服务的指标.
写在最初:
本文只是对EdgeX框架的大抵介绍,自己对EdgeX框架也是初步理解,若有不对的中央请斧正。还有,如果你感觉我写得还有点意思,请关注公众号 ProgrammerHe , 我在公众号等你。
本文由博客群发一文多发等经营工具平台 OpenWrite 公布