玩转物联网之MQTT

物联网概述

物联网——即Internet-of-Things,其实这个概念由来已久,简单来说,物联网是物与物、人与物之间的信息传递与控制简称。它和能源、电子信息、医疗、交通、零售、物流、工业制造等行业息息相关。要实现物联网,首先须要将具有信息感知和通讯能力的设备嵌入到咱们关心的物品中,使其能链接到因特网或企业网络之上,实现互联互通。以后,互通的物品不只要经过设备采集信息、实现智能的感知,更要结合一切先进的信息处理、数据挖掘等手段,与业务应用相结合,从后台到前端设备,实现智能的控制。一句话来理解物联网就是把全部物品经过信息传感设备与互联网链接起来,以实现智能化识别和管理。前端

MQTT简介

MQTT是一个由IBM开发的物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带 宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设 备,作了特殊的优化,使得其能适应各类物联网应用场景。web

MQTT 既有彻底高级版能够在 TCP/IP 上运行,也有简化版 MQTT-SN 用于非 IP 设备。其发布/订阅模式可以在让拓扑结构进行扩展的同时保留实时的特性以及服务质量的可配置性。docker

MQTT的设计思想是开源、可靠、轻巧、简单,MQTT的传输格式很是精小,最小的数据包只有2个比特,且无应用消息头。MQTT能够保证消息的可 靠性,它包括三种不一样的服务质量(最多只传一次、最少被传一次、一次且只传一次),若是客户端意外掉线,可使用“遗愿”发布一条消息,同时支持持久订 阅。MQTT在物联网应用中的优点有:安全

 

  • 可靠传输。MQTT能够保证消息可靠安全的传输,并能够与企业应用简易集成。
  • 消息推送。支持消息实时通知、丰富的推送内容、灵活的Pub-Sub以及消息存储和过滤。
  • 低带宽、低耗能、低成本。占用移动应用程序带宽小,而且带宽利用率高,耗电量较少。

 

物联网接入的挑战

当前物联网领域的消息传输依采用单一的实施规范,它是在互联网基础上的延伸和扩展的网络,用户端从传统的计算机延伸和扩展到了任何物品与物品之间,物品经过嵌入的传感器进行信息采集,而后经过小型计算设备进行网络信息交换与通讯。然而当前移动互联网正处于起步阶段,物联网中的数据传输会面临不少问题,好比在网络不稳定的状况下,如何保证数据的传输没有问题,如何保证数据不被重复发送,链接断开后如何进行重连。整体来讲,物联网的接入会面临如下几个方面的挑战:微信

 

  • 设备、传感器。物联网接入对终端采集和控制设备要求高,且终端的改造以及网络费用成本也比较高。另外,其对终端的能耗要求也比较高。
  • 通讯协议。设备每每不具有较高的计算能力和存储空间,所以很难支持诸如 HTTP、SSL 和 XML 这样的传输协议,它须要一套简单高效的传输协议以知足通讯需求。
  • 网络。现有的网络传输贷款良莠不齐,传输网络不稳定。
  • 信息安全。如何保证信息传输的安全以及业务层身份鉴别。

 

基于物联网的MQTT技术则刚好能够很好地弥补这一方面的缺陷,在云计算和移动设备之间架起一道桥梁,在低带宽和不稳定的网络环境中提供可靠的网络服务。网络

对于信息安全,并不只仅是信息传输安全,物联网时代的安全是物理安全、信息采集安全、信息传输安全和信息处理安全的综合,物联网时代还须要一个强大的云以完成信息传输安全,信息处理安全以及信息的存储,分析等,固然您还须要一个强大的服务管理系统来管理您为了处理特定的业务逻辑而运行的服务。架构

使用MQTT链接云

设备使用MQTT客户端能够在特定的主题上发布消息,也能够经过订阅特定的主题以接收其余设备或者用户发布的消息,从而实现M2M,M2P,P2M的通讯。并发

下图是使用MQTT做为设备接入协议的总体解决方案。分布式

云网关gateway负责设备的接入,协议适配,消息转发等功能,若是要支持海量设备的接入,gateway集群是必须的。微服务

设备管理负责设备接入认证,设备与用户绑定,操做受权等相关的功能。

帐号管理负责用户帐号安全认证,受权认证等相关的功能,同时也支持第三方帐号安全认证。

云服务负责设备业务逻辑。不一样的设备厂商都有一套本身的业务逻辑和服务,这种服务能够和容易的运行在云端提供的容器中,使用基于容器的微服务使得应用程序可以更快地进行建立,而且更易于维护,同时 又可以获得更高的质量。而数据的存储和分析使用云平台提供的通用的存储服务和大数据分析引擎。

用户只要注册帐号,绑定设备,就能够经过手机APP,微信或者web等终端轻松查看设备信息,与设备进行交互操做。

此解决方案具备的优点有:

·  移动设备

   能在 8bit 位处理器上很好的运行 C /JavaScript/Java 的 client 库分别只有 30/75/100KB

   在移动设备上耗电率低,大约只须要 HTTP 的一半

·  很好的适应各类复杂网络,特别是受限网络

   预期并适应频繁的网络中断,能应对低速、低质量的网络

   压缩优化事后的协议,能够有效下降网络流量,从而节约网络成本

   完成一样的数据通讯,MQTT 只须要 HTTP 约 1/4 得数据流量

·  发布 - 订阅的消息通讯协议,容许一条消息只发布一次,即可被多个消费端(应用程序 / 设备)所接收

   实现系统间松耦合,简化开发,方便扩展,整合。

·  提供灵活便捷的系统整合能力

   使用微服务+docker的方式,快速部署高效运行云端服务

   提供可靠的设备管理和帐号管理体系,您只须要关注核心业务

   提供通用的数据存储和数据分析服务

   提供与第三方云平台的对接功能

   提供协议适配功能,客户端可使用多种通讯协议与设备进行通讯。

·  提供丰富的安全性

   使用 SSL 提供的认证和加密来保证传输安全性

   采用帐号安全认证+设备安全认证结合的方式保证内容安全

·  强大的性能提升系统的高可靠性

   高链接数下系统低计算资源使用

   高链接数下系统高信息处理速度

·  提供多种消息服务质量,知足不一样场景需求

   0 :消息最多被传递一次,好比通常类广告,通知

   1 :消息会被传递但可能会重复传递,好比帐户余额通知

   2 :消息保证传递且仅有一次传递,好比交易支付批复通知

结束语

人类正走向“物联网”时代,可是这个过程可能须要很长的时间。毫无疑问,若是“物联网”时代来临,人们的平常生活将发生翻天覆地的变化。无论物联网如何发展,在将来几年,相信MQTT的应用会愈来愈广。

做者:贺大伟,AbleCloud云平台高级开发工程师。曾在大唐负责通讯领域LTE协议一致性仪表软件开发,负责高性能10000兆安网闸捕包平台开发和参与网络分析系统架构设计开发。2014年加入AbleCloud,主要负责AbleCloud云平台设备接入网关和OTA升级分布式开发部署维护等工做,对分布式,高并发充满兴趣。

相关文章
相关标签/搜索