Mainflux 学习笔记
Mainflux是一个由法国的创业公司开发并维护的开源的物联网云平台,Mainflux使用Go语言、微服务的框架。Mainflux支持多种接入设备,包括设备、用户、APP;支持多种协议,包括HTTP、MQTT、WebSocket、CoAP,并支持他们之间的协议互转。
Mainflux的南向接口连接设备,北向接口连接应用,提供一个完整的从设备端到平台到应用的解决方案。
概述
Mainflux提供以下服务:
- 在设备和应用之间提供消息的扭转,包括HTTP、MQTT、WS、CoAP;
- 系统管理;
- 设备管理-南向接口;
- 应用管理-北向接口;
- 用户管理;
- 数据存储-时序数据库;
- 复杂的消息处理,基于系统事件总线NATS,通过规则引擎,根据时间数据流进行事件触发;

消息扭转及协议转换
Mainflux能够实现设备与应用之间的通信,完成消息的上传及消息的下发;或者设备与设备,应用与应用之间的通信。
系统管理
- 用户
用户是指使用Mainflux的人员,包括多个角色(管理员、应用创建者、开发人员),这些角色如果有权限,将会管理设备、应用以及channel。 - 客户端
客户端主要分两类,一类是设备;一类是应用; - 设备
设备主要是功耗受限、内存受限、计算能力受限的一些设备,这类设备倾向于使用MQTT、CoAP协议,在加密手段上使用DTLS而不是TLS,对于这类设备Mainflux主要提供MQTT以及CoAP来连接设备。对于一些运算资源丰富的设备,提供HTTP、WebSocket协议。 - 应用
应用主要运行在业务服务器,应用的连接主要通过HTTP REST或者WebSockets,可以双向通信。当然,应用也可以选择MQTT或者CoAP这些协议。 - 通道(连接)
通道是Mainflux中的重要的通信模型,它是对双向消息流的一个表述,可以把他理解为连接,具体表现就是MQTT的topics,设备和应用可以在一个消息通道上订阅或发布topic。所有流过通道的数据流都会在数据库总持久化。 - 设备管理
Mainflux提供了用于描述系统中设备的模型,模型能够表征设备的状态。每一个连接到Mainflux的设备在数据库中都拥有他们自己的模型,这些由设备自己更新。如果一个设备需要更新状态,直接发送UPDATE的请求给Mainflux即可,这个更新对于需要获取其信息的应用端或者其他设备也会得到更新,反之亦然。
Mainflux维护者所有的这些内部设备模型,保持连接,并管理这些设备,获取他们的信息:- 连接了多少设备;
- 他们分布在哪里;
- firmware的版本是多少;
- 电池的状态怎么样;
- 设备的序列号是什么;
Mainflux还可以发送各种各样的指令给设备: - 打开或关闭设备;
- OTA升级;
- 设备分组或者更换访问权限;
- …
- 用户和应用管理
Mainflux是一个多用户和多组织的应用管理平台。Mainflux的开发者可以创建基于Mainflux的多用户应用,而不需要自己管理这些用户,也即是说Mainfl

Mainflux是一个开源的物联网云平台,支持多种设备接入和协议,包括HTTP、MQTT、WebSocket、CoAP。平台提供设备、应用和用户管理,支持消息处理、数据存储和安全机制。Mainflux采用微服务架构,使用Go语言开发,支持多用户和多组织应用管理。
最低0.47元/天 解锁文章
1390

被折叠的 条评论
为什么被折叠?



