在最近短短数月的时间内,亚马逊、微软、谷歌、通用电气等国外云计算巨头先后密集地发布了物联网平台以及开发套件,而百度开放云也于今年3月份在国内率先推出物联网(IoT)服务,并率先成为国内可以原生支持MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议的公有云厂商,目前已经开放公测。值得注意的是,这些厂商都不约而同选择了MQTT协议,并进行了不同程度的支持,引发了众多物联网领域知名企业和创业公司的密切关注。
随着物联网日益深入人们的生产和生活之中,对物联网统一标准的呼声也愈发迫切。众所周知,当前物联网并没有形成广泛统一的行业标准,有大量制造商与供应商希望尽早从大热的智能设备和物联网潮流中淘到真金白银,各自形成了不同的技术联盟,比如AllSeen、IIC、OIC、Homekit等等。但幸运的是,IBM推出的MQTT开放协议已有17年历史,已经先期在2014年被国际标准化组织定义为物联网的推荐协议。在应用层传输协议这个领域,它已经走在了其它协议的前面,作为轻量级双向消息传输协议,得到了广泛而有力的支持,已然成为事实上的行业标准。
MQTT到底有哪些优势
MQTT协议究竟凭借什么优势战胜众多的挑战者,成为物联网市场的宠儿呢?来看看它为物联网量身打造的真功夫吧!
转换成本低:MQTT是开源的协议,而且是基于TCP/IP发展的,所以无须对目前广泛使用的以太网进行链路改造,便可以顺利部署实施。同时市场上还有超过80种开发语言的客户端或者开发包,便于开发者进行应用开发、集成和测试。
硬件要求低:因为MQTT是为物联网专门设计的协议,所以协议属于特别轻量级,充分考虑了嵌入式设备有限的计算能力和内存容量。例如一个MQTT的客户端程序甚至只有30K的大小,能耗也更低。同时MQTT还提供简化版MQTT-SN兼容更多非IP设备。
网络要求低:传统的传输协议都是假定基于稳定网络传输的,而MQTT却是为不稳定的物联网场景的网络而设计的传输协议。在物联网应用场景的网络中,线路可能会频繁中断,设备可能会产生故障离线。为了在非常恶劣的环境中仍旧保持消息可达率,MQTT的最小传输字节只需要两个字节。同时MQTT还提供了设备“遗言”等特性,当一台设备连不上网络的时候(野外设备常常有),会有一套机制允许设备“退休”前发送一条特别的消息给服务端,告知维护人员或者相关程序。
安全性高:安全对于几乎所有的项目都是一个挑战,对于物联网项目更是如此。比如前段时间国内某著名家电企业的智能洗衣机,使用了某著名电商基于XMPP协议的物联网平台,不费吹灰之力便被黑客攻破并远程遥控,给智能家居的发展带来了一些阴影,今年的3.15晚会上也再次曝光了智能家电的安全性问题。究其本质,在于物联网系统的设计中最基本的安全设计被工程师轻视了,才导致整个系统的崩塌。对于物联网面对的安全挑战,MQTT协议则可以提供多层次的安全特性,在网络层支持VPN等传统网络安全服务;在传输层上可以使用TLS加密;在应用层提供了客户标识(Client Identifier)以及用户名密码,不但传输的内容是二进制字节,而且还支持SSL加密。
一对多消息发布:MQTT采用了消息队列典型的发布和订阅的模式。这种模式除了可以进行一对一的消息传输,还可以进行一对多的消息传输,可以应用在物联网的很多场景里。比如发布某一个设备故障的消息后,订阅了此设备消息的管理程序或者人员都可以收到故障消息,各自进行对应的处理,大大降低了各应用程序之间消息处理时的耦合性。
消息不重不丢:MQTT提供了三种消息质量的服务供开发者选择,服务于不同的物联网场景。值得一提的是MQTT对于消息不重不丢的支持,对于物联网项目实现高可靠性的服务尤其重要。在保证消息不重复、不遗漏的情况下,MQTT的能耗是其它传统传输模式的1/4或者更低。
MQTT与云端结合
传统的互联网协议越来越难以满足物联网的需要。海量的物联网设备需要对采集的数据进行传输、存储、变形和分析,目前国内大量设备仍旧是通过HTTP或者TCP的方式发送数据到云端,普遍为低效且不稳定的传输而困扰。虽然采用HTTP的学习成本很低,但随着各大云计算厂商推出的物联网平台,HTTP的低门槛优势也将逐渐消失。
MQTT与云端的结合成为发展趋势。拿百度开放云的物联网服务来说,它提供了全托管的MQTT云服务,因此用户不需要操心MQTT服务端的搭建、管理和运维,不用担心消息的并发处理能力、转发速度和安全性,甚至连配套的数据存储和分析套件都可以轻松在云端配置。而在云另一端的设备端,仅需要嵌入MQTT客户端便可让数据更高效、更低成本的流动起来,提供更多数据洞察,来增加企业竞争力,驱动业务创新。
图:百度开放云的物联网云服务实现MQTT与云端的结合
在未来,MQTT协议适用的场景将非常广泛。从最传统的物联网到车联网、智能家居、智慧商场、工业4.0等等,都是适用于MQTT的应用场景,甚至包括很多新一代的即时通讯工具或者消息服务,比方说Facebook的所有移动应用都是采用MQTT来进行高效传输的。也正因为此,百度开放云在国内率先对MQTT进行原生支持,以期望打破行业与行业之间、各应用场景之间的界限。在整体架构上,百度开放云搭建了五大业务场景,全面建构物联网社会:智能家居、智能穿戴、车联网、工业4.0和智慧城市。基于MQTT与云端的结合,通过物联网服务,百度开放云可以支撑各种类型的物联网项目,充分“连接人与服务”,实现让人从网络“感知真实世界”的物联网发展核心目标。
相信,随着MQTT协议在国内的广泛应用,更多的智能设备、智能装备、智能工厂等物联网方向的项目将接入云平台,MQTT协议的覆盖面将会更加广泛。对于未来MQTT的发展之路,让我们拭目以待!
百度开放云物联网服务公测申请地址:https://bce.baidu.com/product/apply/iot.html