天天看點

構築基于物聯網作業系統的物聯網生态環境

最近跟物聯網行業和移動網際網路行業的一些資深從業人員做了深入交流,就物聯網作業系統的概念和必要性、定位等進行了充分深入的溝通。首先說明的是,物聯網作業系統的概念被廣泛認同。同時,對物聯網作業系統在整個物聯網領域的功能和地位,又有了更進一步的認識。下面簡單總結,供業界的朋友們參考評論。

物聯網作業系統的最基本功能,與Android作業系統在移動網際網路領域的地位和作用類似。先看一下Android,其最大的貢獻在于,實作了智能終端硬體和軟體的分離。任何應用程式開發者,基本不用考慮智能終端的實體硬體配置(CPU型号、記憶體、各種外設等),隻需根據Android提供的程式設計接口編寫應用程式,就可以運作在所有基于Android的智能終端上。硬體的功能是有限的,如果軟體和硬體緊密捆綁不分離,則整個系統的功能也是有限的。但是一旦把硬體功能剝離出來,則通過軟體的變動,可以使得整個系統的功能大大擴充。舉例來說,帶閃光燈的拍照手機,如果硬體和軟體捆綁,則其功能就僅僅局限于一台照相機和一部手機。但是軟硬體分離後,就可以變成手電筒、信号燈等原來無法實作的功能。對于物聯網來說,要實作類似移動網際網路一樣的良性發展,也需要達到軟硬體分離的效果。物聯網終端的硬體功能很有限,比如一個傳統的車載OBD子產品,僅僅提供定位、GPRS、車輛資訊讀取等功能。但是通過額外的應用軟體,則可以把OBD子產品變成一個防盜器(事先劃定位置範圍,超出後報警),甚至其它功能裝置。保險公司也可以定制開發自己的程式,安裝到OBD上,擷取必要的資料。這種通過軟體創新,把已知(硬體功能)變成未知(軟體功能)的能力,才是激發人類興趣的源泉,也是為行業帶來活力的關鍵。

除此之外,物聯網還需要達到另外一種分離:硬體驅動程式與作業系統核心的分離。考慮這樣一種場景:電冰箱的内置攝像頭壞了,重新更換了一個新型号、功能更強大的攝像頭。這時候運作在冰箱内的作業系統,必須能夠根據新攝像頭的硬體特征(比如裝置ID等),自動從網上下載下傳對應的驅動程式,然後安裝。這個過程對運作在作業系統上的應用程式來說是透明的。Android貌似是無法做到硬體驅動程式與作業系統核心分離的,一旦增加一個新的硬體,必須編寫對應的驅動程式,然後重新編譯Android核心。

下圖示意了基于這兩種分離思想(應用軟體與硬體分離、裝置驅動與作業系統核心分離),構築的一個物聯網生态體系:

構築基于物聯網作業系統的物聯網生态環境

圖中的實線表示永久邏輯連接配接,虛線表示臨時的邏輯互動。大概過程是這樣的:

1、              物聯網終端(大到汽車、冰箱,小到門鎖、追蹤卡、手環等)上運作物聯網作業系統,以及基于物聯網作業系統的應用(APP)。APP從“M2M APP Store”上下載下傳;

2、              物聯網終端上運作的應用程式,由使用者通過智能手機進行控制。智能手機通過本地通道(比如藍牙、WiFi、Zigbee等)連接配接到物聯網終端,控制終端上的APP的安裝和解除安裝,以及M2M終端的相關配置(安全資訊等);

3、              一旦物聯網終端上運作了一個APP,如果該APP是基于client-server模式(比如智能手機上的微信),則物聯網終端需要跟APP的“應用程式背景”進行互動,實作業務邏輯;

4、              物聯網終端跟“終端管理背景”建立持久的通信連接配接,用于實時更新物聯網作業系統核心版本、實時更新物聯網終端的硬體驅動程式等。還是上面講的例子,一台冰箱更換了内置攝像頭,這時候物聯網終端需要連接配接到終端管理背景,去下載下傳對應的驅動程式。一般情況下,終端管理背景由物聯網終端制造廠商建立并維護,比如針對家電領域,是由家電廠商建設的,針對汽車領域,則是由車廠建設;

5、              物聯網終端上運作的APP,由第三方開發者或者ICP/ISP開發,并上載到M2M APP Store,供使用者按照需求下載下傳;

6、              物聯網終端之間能夠通過本地通信通道(藍牙、WiFi、Zigbee等)進行通信,這種通信無需借助背景。比如,汽車到達路口後,可以跟信号燈通信,向信号燈注冊。這樣信号燈就能夠掌握各個方向的排隊汽車數量,然後根據數量來決定信号的變換,達到優化交通的目的。物聯網終端之間的直接通信(端端通信)是物聯網關鍵能力之一,也是物聯網差別于移動網際網路的關鍵地方之一。

為加深對這個生态模型的了解,舉一個餐飲行業的例子。先說一下需求吧,我經常去家門口的一家餐館吃飯,而且每次去,點的餐食基本都一樣。但現在的問題是,每次去都要排隊,點餐,交錢,然後拿餐牌,找座位,等待。顯然這是一個重複乏味的過程,如果能夠通過自動化的物聯網應用,使得這個過程簡化或者自動化,那就很理想了。

我們開發一種通用的智能手環,智能手環上運作物聯網作業系統。手環除了具備通用的鬧鐘提醒、身體生物名額測量和報告等功能外,還具備RFID功能,該功能的打開與否,由使用者控制,比如甩一下手環、按一個按鈕等。在餐館門口,安裝一套ID識别裝置,一旦一個帶手環的人進入餐館,并打開了RFID功能,就立即被檢測到。檢測裝置把進入者的ID上報給後端伺服器,後端伺服器進一步判斷這個人是否已經有消費記錄。如果沒有,OK,遵循通常的點餐、交錢、等待等流程,但是這個過程中,背景系統會建立針對這個人的檔案,并記錄其點餐清單、等待時間、座位号等資訊。

如果這個人第二次來就餐,那好了,運作在手環上的APP(由餐館開發并上載到M2M APP Store,由使用者安裝到手環上)會立即震動提醒消費者,并通過自帶的小螢幕,自動把上一次點的餐食清單等資訊呈現給消費者,讓消費者确認是否點同樣的餐食。如果确認點同樣的餐食,則消費者隻需要找個空閑的位置坐下,然後等待即可,手環上的APP會自動檢測出座位号,并聯系餐館的背景伺服器下訂單。吃完後,通過手環确認一下,可自動完成支付,甚至可以對本次消費滿意度點評。顯然,排隊、點餐、交錢等過程完全省略了,大大提升了就餐友善程度。

    要實作這個過程,最關鍵的一點就是,手環上需要運作一個餐館特定的APP,這個APP能夠跟RFID關聯,并跟餐館背景互動,完成就餐過程的自動化。這樣的APP可能有多個,因為你可能要去很多餐館就餐。如果沒有物聯網作業系統的支援,這是無法做到的。或者說也可以做到,但是你的手腕上需佩戴很多手環,一個餐館一個。這樣的話,你的職業也變了,變成餐館的活體廣告牌了。

這個餐飲行業的應用,幾乎把上面生态模型中的每個子產品都涉及到了:手環與餐館檢測系統的互動,屬于端端通信,手環上運作的APP,需要從M2M APP Store下載下傳。具體下載下傳哪些餐館的APP,由消費者通過智能手機控制。手環上的任何一個APP,都需要跟自己的背景進行通信。假設手環上的某個配件(比如某個按鈕、甚至RFID等)壞了,需要更換一個新的,這時候手環需要跟終端管理背景進行通信,下載下傳新配件的驅動程式。

上述過程的最核心需求,就是物聯網作業系統支援的兩大分離特性:應用軟體和硬體分離,作業系統核心和硬體裝置驅動程式的分離。

在物聯網領域,很多情況下,硬體終端的功能比手環簡單得多,無需或者無法運作第三方開發的APP。這種場景下,上述架構也可以很好的實作人與物的互動。舉例來說,為了實作對環境的實時檢測,未來可能會開發很多依靠太陽能供電、無顯示屏等外設的“環境監測器”,以公共服務的形式,安裝到任何可以安裝的地方。使用者通過智能手機,可以随時讀取這些小玩意兒上的檢測資料。這時候,如果是第一次讀取某種型号監測器上的資料,則首先用手機上的M2M APP Store用戶端軟體,掃一下監測器上的二維碼,用戶端會自動根據二維碼中記錄的資訊,到M2M APP Store上下載下傳一個應用程式。這個應用程式調用藍牙、Zigbee等無線服務,從監測器上擷取資料,然後顯示出來。

基于這樣的一個物聯網生态環境,可以改變很多既有的商業模式,達到更高效率的整體效果。比如下面這張圖,說明了這個效果:

構築基于物聯網作業系統的物聯網生态環境

如果沒有物聯網作業系統,那麼應用程式提供商(騰訊/阿裡等)就需要跟硬體裝置提供商進行緊密捆綁,形成聯盟。這一個一個的聯盟,有點“龍虎結姻”的感覺,強強聯合,但又不是一類生物。對消費者來說,也非常麻煩。比如你買了跟阿裡結成聯盟的家電,那麼就必須購買阿裡的智能家居服務,即使騰訊做得更好,你也無法更換。但是如果有了物聯網作業系統,那麼就會打破這種緊密耦合的關系。硬體廠商隻需要通過物聯網作業系統,把硬體的能力暴露出來即可。網際網路廠商隻需要開發對應的應用程式,放到M2M APP Store即可。具體怎麼組合,由最終使用者決定。可能的一種場景是,阿裡的家電控制、節能等功能做得很好,而騰訊的使用者感覺、大資料分析做得更好,使用者會在家電上同時安裝兩個APP,分别擷取最好的體驗。顯然,這在沒有物聯網作業系統的時候是無法做到的。

還有一個好處,就是讓更專業的人,去做更專業的事。網際網路公司聚焦做使用者體驗,硬體廠商聚焦做硬體,God god and Satan unto Satan。

基于這樣一個生态環境架構,物聯網作業系統的架構大緻如下:

構築基于物聯網作業系統的物聯網生态環境

通過定義标準的硬體驅動程式接口,實作作業系統核心與硬體驅動程式的分離。通過引入Java虛拟機,并定義基于C語言的标準API接口,實作應用程式與硬體的分離。這與Android的實作思路有雷同的地方,但是也有不同的地方:

1、               物聯網作業系統的整體映像尺寸,必須是能夠高度伸縮的,以适應硬體資源受限的應用場景。比如既能夠适應手環等硬體資源相對豐富的應用場景,也能夠适應環境監測器等不是非常智能的應用。具體來說,作業系統的尺寸,應該能夠從10幾K甚至更小,到數十M的伸縮量級;

2、               除提供Java接口外,物聯網作業系統還應該提供标準的C語言接口,以應對高效率、高實時性的應用。比如,物聯網終端的生産廠商可以使用C接口,開發針對該硬體的高效應用,第三方企業則可以使用Java接口,開發可廣泛移植到同類裝置上的應用;

3、               物聯網作業系統的驅動程式架構,應該設計的足夠靈活和足夠相容性,并能夠動态加載和解除安裝裝置驅動程式;

4、               物聯網作業系統的版本分支或者變種數量,會非常大。針對每隔行業,甚至每種硬體(比如汽車、冰箱等),都會有一個對應的版本,這需要編譯開發工具進行良好的支援。

除此之外,物聯網作業系統還有很多其它不同于一般智能作業系統的不同之處,在此不做較長的描述。

最後,還是為作者正在主導開發的物聯網作業系統Hello China做一番招聘廣告。首先說明的是,為了适應不同的文化背景和國際化需求,Hello China這個名字後續要修改為HelloX,其中的X可以代表任何東西。這樣就貌似有點打招呼的意思,比如“Hello,car”,“Hello,ring”…,通過這個作業系統,你能夠跟任何東西對話,符合物聯網的含義。英文的口号是“HelloX,through which you can talk to everything.”。

Hello China作業系統的大部分功能都已實作,後續将向本文描述的物聯網生态環境方向做進一步開發。這需要大量的相關人才的參與,不僅僅是作業系統核心的開發人員,更多的是生态環境相關子產品的開發人員:

1、               Java開發人員,聚焦Java虛拟機的移植和定制、優化,以及相關Java類庫和程式的開發;

2、               M2M APP Store開發人員,基于流行的分布式、大資料等架構,這部分也是整個物聯網生态環境的核心;

3、               編譯環境的開發和定制,目前基于Eclipse開放環境進行定制;

4、               硬體驅動程式開發人員,基于HelloX作業系統的驅動程式架構,開發各類底層硬體的驅動程式;

5、               作業系統核心優化和開發。

我們已經設計了合理的利益配置設定制度,相信任何參與的人,隻要有實實在在的付出,總會得到意料之外的回報。而且您的有效付出,會立即得到回報和确認。

同時,物聯網是被廣泛看好的未來IT發展方向,蘊藏着無數的機會。同時物聯網也一定是以軟體為主導的行業,這與移動網際網路一樣,硬體和網絡從來都是配角。是以,通過參與物聯網作業系統的開發,對準物聯網生态環境,直接切入物聯網領域的核心,對個人來說,也是非常難得的發展機會。

是以,物聯網作業系統,或者說物聯網軟體平台生态圈的開發,期待您的參與。歡迎聯系:

QQ/微信:89007638

Email:[email protected]

QQ群:38467832

轉載請注明作者和出處。

繼續閱讀