物聯網——即Internet-of-Things,其實這個概念由來已久,簡單來講,物聯網是物與物、人與物之間的信息傳遞與控制簡稱。它和能源、電子信息、醫療、交通、零售、物流、工業製造等行業息息相關。要實現物聯網,首先需要將具備信息感知和通信能力的設備嵌入到我們關心的物品中,使其能連接到網際網路或企業網絡之上,實現互聯互通。之後,互通的物品不僅要通過設備採集信息、實現智能的感知,更要結合一切先進的信息處理、數據挖掘等手段,與業務應用相結合,從後臺到前端設備,實現智能的控制。一句話來理解物聯網就是把所有物品通過信息傳感設備與網際網路連接起來,以實現智能化識別和管理。
MQTT是一個由IBM開發的物聯網傳輸協議,它被設計用於輕量級的發布/訂閱式消息傳輸,旨在為低帶寬和不穩定的網絡環境中的物聯網設備提供可靠的網絡服務。MQTT是專門針對物聯網開發的輕量級傳輸協議。MQTT協議針對低帶寬網絡,低計算能力的設備,做了特殊的優化,使得其能適應各種物聯網應用場景。
MQTT 既有完全高級版可以在 TCP/IP 上運行,也有簡化版 MQTT-SN 用於非 IP 設備。其發布/訂閱模式能夠在讓拓撲結構進行擴展的同時保留實時的特性以及服務質量的可配置性。
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升級分布式開發部署維護等工作,對分布式,高並發充滿興趣。