GDE專欄 | 物聯網到底是什麼?

谷歌開發者_發表於2017-02-20

文| Google 開發技術專家 (GDE) 王玉成 (York Wang)

640?wx_fmt=jpeg

2016 年 12 月,Google 釋出了 Developer Preview 版的 Android Things,該平臺為利用 Android 這一世界上最受支援的作業系統的強大功能構建物聯網產品鋪平了廣闊的道路。嚴格意義上來講,它並不是一個全新的作業系統,而是通過同樣是 Google 開發的物聯網作業系統 Brillo 改進優化的。


今天,就跟大家說說 Android Things 的前世與今生,以及它與 Brillo 的淵源,到底它解決了什麼問題?



什麼是物聯網?

640?wx_fmt=png


想知道為什麼人們需要 Android Things,首先需要搞清楚什麼是物聯網:

以前我們在聊到物聯網的話題時,只知道物聯網使我們的生活更智慧、更輕鬆、更高效。可以方便地控制智慧裝置。


即使最簡單的控制裝置,也會要求物聯網具有三個最基本層次,每個層次的功能有所不同,春節剛過,我們就以春節回家為例,來說說物聯網的這幾個層次和它的功能。


  • 物聯網 - 回家過年

  • 感知層 - 給不同長輩購買禮物

  • 傳輸層 - 乘坐各種交通工具攜帶禮物回家

  • 應用層 - 把禮物送到長輩手中


全面感知:

感知層需要解決資料來源頭的問題。怎麼去搜集各種原始資料?物聯網的物,即萬物,資料蒐集有多樣性,我們需要靠各種感測器去感知不同的資訊。就比如春節回老家前,我們需要給家裡不同的長輩準備不同的禮物,比如爸爸可能需要一瓶好酒,奶奶可能需要一雙好的保暖鞋,爺爺可能需要一個好的柺杖……每個人的需求可能是不同的。


可靠傳遞:

傳輸層解決資料的傳輸通路的問題。資料通路依靠各種協議,這些繁雜的協議,面對如何去實現自由的協議轉換呢?春節回老家過年,先坐火車,再做公交,再坐大巴,有可能坐牛車……當你換乘交通工具時,完成的是協議的轉換,而你所帶的禮物,就是需要安全傳送的資料資訊。當你把禮物帶回老家,物聯網的資料才完好無損的到達目的地。


智慧處理:

應用層解決資料如何處理。經過長途跋涉,過年終於回老家了。這些禮物,需要你進行分類,然後再走親訪友,給不同的人送不同的東西。物聯網的資料處理也就是這樣:把蒐集到的各種原始的資料,轉換成我們需要的資訊。



作業系統

640?wx_fmt=jpeg


物聯網的資料傳輸這麼簡單?那為什麼還要弄這麼複雜的作業系統?別急,我們還是拿春運來解釋。


先自我羨慕一把,春運來回,我都成功搶到了火車硬臥票。如果你和我一樣給爺爺帶是急需的藥品,春節回家又不一定能買到票,你可以提前一個月快遞,畢竟藥品先到更重要。當然,也有人把幾個月都沒洗的衣服,一起帶回去讓家人洗,暫且這也算給家人的新年禮物吧 ´・ω・`


在物聯網的資料分析中,藥品是屬於那一類必須快速傳遞的資訊,髒衣服是屬於不怎麼急的資訊。這時候,簡單的、單一的傳輸路徑就出了問題了。有的智慧裝置,是支援多種傳輸模式的,比如串列埠傳遞控制資訊,3G 上網路卡傳遞必須實時接收的資訊。如果春節你的家人都很忙,你也不會帶一大堆髒衣吧?物聯網的感測器裝置,也有基本的決策功能,資料在節點上積累很多時,哪些先發,哪些後發?專業術語叫同步和非同步,都是根據整個系統的不同而定的。


問:上面內容都看了,還是沒有理解物聯網到底是幹啥的?

答:再經歷一次春運吧 :-)


物聯網的最小模型就和春運帶禮物是一樣的。但是,在實際的工程應用中,會複雜很多。在春運中,碰到的各種難題對應著物聯網系統的各種問題。但是任何工程問題,都是在最小系統上,再針對易用性,安全性,穩定性……做一些複雜的功能開發,最終形成一個穩健的系統。可以這麼說,如果把春運的各個環節的問題都解決了,你就可以做物聯網的方案商了 :-)


Google 利用物聯網作業系統來解決資料的收集和可靠傳遞,利用 Google Cloud 來解決資料智慧處理。那麼,Google 的物聯網作業系統又經歷了哪些變化呢?



前世:Brillo

640?wx_fmt=png


Brillo 是在 2015 Google I/O 大會上釋出的一款產品。也是 Google 的第一款物聯網作業系統。帶來了一個簡單的 bsp 移植的模型,方便硬體廠商快速匯入 Brillo 系統到他們自己的晶片/開發板上。並研發了 Weave 通訊協議,解決物聯網系統中多樣化的通訊協議的問題。Brillo 適用於物聯網閘道器類似的產品,以前在 Google Device 推出過一款基於 Brillo 的路由器。



今生: Android Things

640?wx_fmt=jpeg


Android Things 是 2016 年 12 月份推出的物聯網作業系統。做為 Brillo 的優化,主要做了以下改變:

  1. Brillo 只能用 C/C++ 做開發,但是 Android Things,可以用 java 進行開發,而且做了 Android 系統的所有測試。也就是說,Android 的開發人員,能夠很快的轉換到 Android Things 的應用開發上來;

  2. Android Things 應用研發週期,跟 Android 的研發週期相同,可以直接用 Android Studio 來開發,用 adb 進行連線...

  3. Android Things 的 SDK 是 Android SDK 的子集;

  4. 完美支援 OTA;

  5. 已經有四款開發板作為原型開發;

  6. 可以輕易的通過 Google Cloud 使用 Firebase,極大的加快了資料的處理速度;

  7. 整合的 Weave 協議,可以方便的搞定各種無線協議的連線。


這些改變使得 Android Things 不僅僅是一個物聯網作業系統,而且是一個可以快速做智慧硬體開發的平臺。


說這些條條框框還是不太好理解,後續會對每一點做詳細的解釋。



後記

640?wx_fmt=png


作為 Android Things 專題系列的第一篇,主要說到物聯網到底是什麼?Brillo 的產生的原因、以及在系統設計初衷、應用開發的特點,實際上還只是 Android Things 的皮毛。Android Things 專題後續會詳細講解包括功能、軟硬體開發環境、以及一個完整的示例,讓大家得心應手的用 Android Things 開發出自己的應用。


物聯網領域有多大,Android Things 的天地就有多大,你可以盡情的發揮!


希望大家有什麼問題和建議,及時通過留言方式反饋給我,在專題的後續中,我會盡量的滿足大家的要求。



推薦文章:

Android Things Developer Preview 2 釋出

Android Things揭開面紗

Android無處不在,Android開發者大有可為


640?wx_fmt=gif

相關文章