在物聯網領域多年的開發和架構經曆,使我接觸到了不同領域的物聯網解決方案,比如智能家居中對空調,熱水器,洗衣機,室燈等家用裝置的單品控制,比如智能辦公中通過人臉識别對閘機和門禁進行開關控制,再比如智能建築中的對高空吊欄危險系數的實時預警等,均反映了物聯網正在以前所未有的速度不斷的影響着我們的衣食住行,不斷的改變人們的生活,使我們的生活更高效,更便捷,更安全。
物聯網通訊方式經過多年的疊代,目前以mqtt的通訊協定最為流行。這裡我們以mqtt的協定來講解應用端對消息的處理,應用端mqtt的消息處理方式大緻可以分為兩類:用戶端消息處理,應用服務端消息處理。
一.用戶端消息處理
首先我們看一下用戶端消息處理的架構,見下圖:

用戶端消息處理的方式主要的适用場景是在裝置端和用戶端的資訊直接互動,有一定的私密性。比如智能家居場景,使用者通過手機控制自己家裡的裝置。 下面我們來看一下方案實作。
1.1私有解決方案搭建
MqttBroker可以采用mosquitto作為mqtt的broker,mosquitto一款實作了消息推送協定 MQTT的開源消息代理軟體,提供輕量級的,支援可釋出/可訂閱的的消息推送模式,使裝置對裝置之間的短消息通信變得簡單。連結位址:
https://mosquitto.orgMqttClient可采用流行的eclipse paho,eclipse paho旨在提供可伸縮的開放和标準的 Machine-to-Machine (M2M) 以及物聯網消息協定的用戶端開源實作。Paho 初始提供 MQTT 釋出/訂閱實作,且多語言支援,主要支援的語言有java,python,javascript,GoLang,C,C++,C#,android service,Embedded C/C++。連結位址:
http://www.eclipse.org/paho/downloads.php1.2采用阿裡雲物聯網平台
MqttBorker由阿裡雲提供,阿裡雲提供海量裝置接入,通過物聯網平台的配置就可以實作通道功能。另外阿裡雲提供豐富的MqttClient的SDK,具體參照
https://helpcdn.aliyun.com/document_detail/42648.html?spm=a2c4g.11186623.6.643.1eb83f69Cad1OX二.應用服務端消息處理
我們看一下應用服務端消息處理的架構,見下圖:
應用服務端消息處理的方式主要的适用場景是裝置的上報資訊需要業務服務節點進行統一處理後再對裝置發起指令控制。比如智慧辦公的門禁場景,門禁攝像頭采集到使用者臉部資訊,通過mqtt broker發送到伺服器後,有消息中間件轉發給各個業務節點(這裡是人臉識别服務節點),識别成功後将開關的控制指令通過mqtt broker發送給裝置進行門禁控制。 下面我們來看一下方案實作。
2.1私有解決方案搭建
MqttBroker和MqttClient可以參照上例用戶端消息處理的mosquitto和eclipse paho,消息中間件可以采用rabbitmq來進行消息轉發。連結位址:
http://www.rabbitmq.com2.2采用阿裡雲物聯網平台
MqttBroker和MqttClient可以參照上例用戶端消息處理的說明,另外消息轉發可以采用阿裡雲MNS服務實作消息轉發拉取功能。 以上是IoT應用端消息處理的兩種政策的分享,希望對大家有用。
原文作者:辰雲
點選檢視原文