物聯網——即Internet-of-Things,其實這個概念由來已久,簡單來說,物聯網是物與物、人與物之間的信息傳遞與控制簡稱。它和能源、電子信息、醫療、交通、零售、物流、工業製造等行業息息相關。要實現物聯網,首先須要將具有信息感知和通訊能力的設備嵌入到咱們關心的物品中,使其能鏈接到因特網或企業網絡之上,實現互聯互通。以後,互通的物品不只要經過設備採集信息、實現智能的感知,更要結合一切先進的信息處理、數據挖掘等手段,與業務應用相結合,從後臺到前端設備,實現智能的控制。一句話來理解物聯網就是把全部物品經過信息傳感設備與互聯網鏈接起來,以實現智能化識別和管理。前端
MQTT是一個由IBM開發的物聯網傳輸協議,它被設計用於輕量級的發佈/訂閱式消息傳輸,旨在爲低帶 寬和不穩定的網絡環境中的物聯網設備提供可靠的網絡服務。MQTT是專門針對物聯網開發的輕量級傳輸協議。MQTT協議針對低帶寬網絡,低計算能力的設 備,作了特殊的優化,使得其能適應各類物聯網應用場景。web
MQTT 既有徹底高級版能夠在 TCP/IP 上運行,也有簡化版 MQTT-SN 用於非 IP 設備。其發佈/訂閱模式可以在讓拓撲結構進行擴展的同時保留實時的特性以及服務質量的可配置性。docker
MQTT的設計思想是開源、可靠、輕巧、簡單,MQTT的傳輸格式很是精小,最小的數據包只有2個比特,且無應用消息頭。MQTT能夠保證消息的可 靠性,它包括三種不一樣的服務質量(最多隻傳一次、最少被傳一次、一次且只傳一次),若是客戶端意外掉線,可使用「遺願」發佈一條消息,同時支持持久訂 閱。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升級分佈式開發部署維護等工做,對分佈式,高併發充滿興趣。