風起云涌的物聯網,隨著國內外大公司的入局,形式也逐漸明朗起來。物聯網不僅僅是硬件接入的一個網,還是接入后,大數據的存儲、分析和呈現,以及人工智能技術的深度介入,對各類企業的生產、運維、管理帶來的改變。本篇文章以微軟的Azure云、百度的物接入及物解析云平臺、阿里的物聯網開發套件為切入點,深入介紹相關物聯網平臺的技術特色,技術路線。希望能給物聯網從業者一些參考和啟示。
云山霧罩的物聯網隨著國內外一些大公司的大力推進,面目日漸清晰。今年年初筆者因項目的關系深入了解了當前主流的物聯網云平臺,又有了不同的感悟。在細說這幾個物聯網云平臺之前,筆者先簡單介紹一下如今的物聯網。
現在的物聯網,必不可少的三要素分別是:云、手機和智能硬件。例如,當前現象級應用摩拜單車就是一個典型案例。
智能硬件的作用:一是控制車鎖的開啟;二是獲取當前GPS坐標;三是和云端通信,發送位置、車鎖狀態信息和接收云端指令;
手機就是實現用戶管理、掃碼和位置呈現等功能;
云的主要作用是數據接入,指令發出。另外一個重要功能也許是大數據分析,比如車共享頻次,故障收集分析等等。
以上結構可以稱之為是當前一個典型物聯網應用,是智能硬件和云結合的一個最佳范例。產品功能簡單明確,利于復制數量。有了量,也便于大數據分析。智能家居一些應用,其實也可以按這種類似的模式去經營實現。如小米不到千元的智能家居套件,在我親身試用的大半年里,整體感覺還是非常不錯的。
在前幾年,智能硬件比較火的時候,第三方云平臺,也可以說是智能硬件云平臺也是非常熱絡的,比如Yeelink、機智云等。不過去年年底咨詢Yeelink創始人姜兆寧的時候,姜總表示這種模式已經很難持續,目前是專注做Yeelight。機智云是國內比較有影響的第三方物聯網云平臺,我也曾和北京的團隊有過深入的交流,對于物聯網云平臺對接第三方硬件,發展的并不是如想象的那么順利。
從摩拜單車、小米智能家居到Yeelink、Yeelight和機智云,似乎隱約告訴我們,智能硬件和云平臺緊密結合,做成一個封閉的私有的體系,才更有價值。
那問題來了,微軟云、百度云、阿里云做公共物聯網云平臺,其價值點又在哪里?和以前出現的物聯網云平臺有什么異同?
都說2016年是物聯網元年,在這個年頭的三月份,微軟Azure平臺的IoT Hub開始支持MQTT,百度差不多也是在這個時候推出了基于MQTT的物聯網平臺,阿里是在下半年推出了基于MQTT協議的物聯網開發套件(亞馬遜、華為、騰訊也各有很好的物聯網云平臺,在此就不一一展開說明)。
這里不得不提一下MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸),是IBM公司1999年開發出來的通信技術。最大的特點是消息質量可以分三種:最多一次,最少一次和僅有一次(本文中所述的三種物聯網平臺,第三種消息質量“僅有一次”當前是不支持的)。另外MQTT不僅可以構建在TCP/IP協議棧之上,目前百度和阿里云的物聯網平臺也支持基于Web Socket之上的構建。
以前的物聯網云平臺在筆者眼中更像一個大應用平臺,而不是一個基礎平臺,類似工控中的組態軟件,把物理上的一個個參數,抽象為一個個IO變量,比如布爾型的開關、浮點型的溫濕度、整型的燈光亮度、當然還包括一些二進制數據的攝像頭數據。這種架構,其實比較適合參變量相對少的智能家居及智能硬件。但是對比較復雜的工控類應用來說,如果每種數據都抽象為一個IO點,那么都需要配置,適用性就不那么強了。現如今的三大物聯網平臺,就是把硬件和云端通信進行了簡化,即數據上傳和下發。正是因為這種機制,反而通用性更強了。
換而言之,以前的物聯網云平臺更在意接入環節,重在通道。而現在的物聯網云平臺,接入僅僅只是其中的一環而已。
數據采集環節支持三種方式,Event Hubs、Service Bus和IoT Hub。其中IoT Hub支持三種通信協議HTTPS、AMQP和MQTT,對Azure云來說,三種協議不需要預先在云中設定,自適應。從應用的角度來看,HTTPS、AMQP和MQTT三種協議沒有太大的區別,同時微軟也是刻意隱藏了三種通信的區別,總體來說就是數據上傳和數據下發。不過這里需要指出的是,針對數據下發而言HTTPS的代價還是比較高的,需要不斷請求服務器,以獲取數據下發的內容。
微軟云平臺的接入僅僅是其中一個環節。更為重要的是數據的存儲、分析,還有展現。特別是數據和分析部分,是大數據的基礎,后續所謂的人工智能會基于這些環節發揮重要作用。
百度物聯網云平臺
百度物聯網云平臺分為物接入IoT Hub、物解析IoT Parser和物管理IoT Device等。事實上,百度物聯網云平臺和微軟類似,其重點也并非接入環節,而是其重金下注的人工智能部分。
從上圖可以看出數據采集后的存儲、處理、分析環節也是百度的一個重點,在這個環節,百度的一些人工智能,深度學習的技術可以融入進來。
百度物聯網平臺雖然和微軟一樣,也支持MQTT,但是與微軟的不同之處在于,百度號稱支持原生MQTT。即MQTT協議不僅僅是一個通信信道了,而是充分發揮了MQTT本身的優勢,比如信息的發布/訂閱(微軟的信息發布和訂閱是固定的,單一的)。但是這種靈活性,個人認為有些粗糙了。這對基于該平臺開發的用戶來說,需要比較強的規劃能力,否則很容易造成信息風暴。
此外值得一提的是,微軟的云必須是SSL加密才能運行云和端通信,但是百度物聯網云并不強制用戶一定加密。
阿里的物聯網開發套件
阿里似乎比較低調,其物聯網平臺稱之為物聯網套件IoT Kit。和微軟、百度物聯網平臺一樣,也是支持MQTT通信協議。不過相對于微軟的封裝和百度的完全開放不同,阿里的物聯網套件平臺做了半封裝,比如發布和訂閱和微軟一樣,預先定義了一些關鍵字,并且除此之外還可以自定義??梢哉f是介于微軟和百度之間的一種模式。并且其通信加密要求是最高的,SSL的版本必須是TLSV1.1或TLSV1.2 版本。
和微軟及百度相比,阿里的物聯網平臺稍有一些簡單,其重點一是接入,二是數據導出。提供了相對豐富的API對外接口,對有些智能硬件廠商來說,是一個好消息,相當于阿里提供了一個云端API接口,方便和第三方合作方進行系統級別的開發合作。
三大平臺對比
從開發的角度來看,微軟的物聯網云平臺SDK最豐富完善,提供了各種示例,有設備端的、有網關、有云端等等。百度相對小氣,其MQTT的SDK就是百度物聯網平臺的SDK了。阿里的物聯網平臺也是介于二者之間,特別是在設備端提供了一些基于芯片層面的接入源碼,另外API接口部分也提供不少示例。
通過以上種種的介紹,我們之前提到的另外一個問題的答案就昭然若揭了。
微軟云、百度云和阿里云等公司做公共物聯網云平臺,其價值點在于數據采集后的價值,及基于大數據分析下的各種衍生價值。換句話說未來大數據的“金礦”的價值,在于如何挖掘和利用?;谶@一點,微軟和百度似乎走在了前列。
談及此處,筆者個人一直秉持的理念也逐漸清晰起來,做有影響力的云平臺,還是要靠大公司,而不是自己再去造輪子。在PC時代無論是谷歌、百度還是騰訊等巨頭,也是基于Windows等操作系統成就了自己。同樣在物聯網時代,基于這些大公司的物聯網平臺,站在巨人肩上,去成就另外一個層面的偉大。
所以在物聯網飛速發展的時代,我的重點放在了設備端。從2001就開始從事工控領域的我,絕不會把物聯網云平臺下的端,僅僅抽象為一個設備,一個網關,其中個人認為這只是冰山一角而已,會有更為廣闊的操作空間。
物聯網時代已經來臨,云端有云端的機會,大數據挖掘有大數據挖掘的機會,設備端也有設備端的機會,就看如何去迎接這個新時代的到來了。