汽車行業正在接受發明真正聯網汽車的想法。他們看到了利用從車輛收集的遙測數據來創造新的收入機會和建立更強大的客戶體驗的機會和好處。然而,成功推出可擴展以支持遠距離和各種環境條件下的數百萬輛汽車的聯網汽車服務可能會帶來一些嚴峻的挑戰。
對于大多數聯網汽車服務,汽車和云之間的雙向通信是必需的,盡管一些邊緣處理可以使聯網汽車更加獨立于云。連接車輛將遙測數據發送到云端,并啟用預測性維護、輔助駕駛、應急響應等應用。同樣,車輛需要能夠從云端接收消息以響應遠程命令,如遠程門鎖和解鎖、遠程激活喇叭或燈,改變交通環境等。
實現汽車到云的通信可以使用標準的 Web 消息傳遞協議(如 HTTP)來處理。然而,考慮到車輛的 IP 地址在從蜂窩網絡轉移到網絡時會不穩定,因此云到汽車的通信可能需要不同類型的通信系統。
除了雙向消息傳遞挑戰之外,聯網汽車服務還面臨許多其他獨特的技術挑戰:
連接性通常不可靠,因為汽車可以通過網絡盲點。與云重新連接的過程可能會導致響應時間變慢和消息丟失。
由于蜂窩網絡性能,網絡延遲可能再次成為問題。對于響應式用戶體驗,汽車必須能夠處理網絡延遲。
云平臺需要能夠向上和向下擴展,以支持在不同時間點連接的數百萬輛汽車。
聯網車輛需要在受信任的環境中運行,這樣黑客就無法控制汽車。
許多公司已嘗試使用 HTTP 和 SMS 來實施聯網汽車服務。為了與汽車建立連接,云平臺會向車輛發送一條短信,其中包含一個用于發起 HTTP 請求/響應連接的 URL。然而,這種模式已被證明是不可靠的,并且通常會導致用戶體驗緩慢。在某些情況下,從手機應用程序發送的遠程命令最多需要 30 秒才能完成請求。從移動應用程序解鎖車門 30 秒并不是汽車公司希望為客戶提供的用戶體驗類型。
MQTT 的發布/訂閱協議旨在解決聯網汽車服務的挑戰,非常適合在汽車和云平臺之間移動數據。
事實證明,MQTT 解決了創建可擴展且可靠的聯網汽車服務的許多挑戰,例如:
MQTT 允許在汽車和云之間建立持久的永遠在線連接。當網絡連接可用時,車輛將向 MQTT 代理發布數據,并將近乎實時地從同一代理接收訂閱數據。如果網絡連接不可用,車輛將等到網絡可用后再嘗試傳輸數據。當車輛離線時,broker 會緩存數據,并會在車輛重新上線后立即傳送數據。
MQTT 實現了三種消息傳遞服務質量級別:最多一次傳遞、至少一次傳遞和恰好一次傳遞。這使得創建以可靠方式運行的聯網汽車服務成為可能。MQTT 的高級消息保留策略和離線消息隊列對于適應網絡延遲和不可靠的移動網絡至關重要。
無法通過 Internet 尋址運行 MQTT 客戶端的汽車。運行在每輛車上的 MQTT 客戶端負責使用 TLS 與云中的 MQTT 代理建立安全的持久 TCP 連接。這意味著汽車上沒有公開的公共互聯網端點,因此沒有人可以直接連接到汽車。這使得汽車幾乎不可能在互聯網上受到黑客的直接攻擊。
MQTT 代理可以部署到在私有或公共云基礎架構上運行的集群節點。這允許代理根據嘗試連接的車輛數量擴大和縮小規模。