構(gòu)筑基于物聯(lián)網(wǎng)操作系統(tǒng)的物聯(lián)網(wǎng)生態(tài)環(huán)境
最近跟物聯(lián)網(wǎng)行業(yè)和移動(dòng)互聯(lián)網(wǎng)行業(yè)的一些資深從業(yè)人員做了深入交流,就物聯(lián)網(wǎng)操作系統(tǒng)的概念和必要性、定位等進(jìn)行了充分深入的溝通。首先說(shuō)明的是,物聯(lián)網(wǎng)操作系統(tǒng)的概念被廣泛認(rèn)同。同時(shí),對(duì)物聯(lián)網(wǎng)操作系統(tǒng)在整個(gè)物聯(lián)網(wǎng)領(lǐng)域的功能和地位,又有了更進(jìn)一步的認(rèn)識(shí)。下面簡(jiǎn)單總結(jié),供業(yè)界的朋友們參考評(píng)論。
物聯(lián)網(wǎng)操作系統(tǒng)的最基本功能,與Android操作系統(tǒng)在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的地位和作用類(lèi)似。先看一下Android,其***的貢獻(xiàn)在于,實(shí)現(xiàn)了智能終端硬件和軟件的分離。任何應(yīng)用程序開(kāi)發(fā)者,基本不用考慮智能終端的物理硬件配置(CPU型號(hào)、內(nèi)存、各種外設(shè)等),只需根據(jù)Android提供的編程接口編寫(xiě)應(yīng)用程序,就可以運(yùn)行在所有基于Android的智能終端上。硬件的功能是有限的,如果軟件和硬件緊密捆綁不分離,則整個(gè)系統(tǒng)的功能也是有限的。但是一旦把硬件功能剝離出來(lái),則通過(guò)軟件的變動(dòng),可以使得整個(gè)系統(tǒng)的功能大大擴(kuò)充。舉例來(lái)說(shuō),帶閃光燈的拍照手機(jī),如果硬件和軟件捆綁,則其功能就僅僅局限于一臺(tái)照相機(jī)和一部手機(jī)。但是軟硬件分離后,就可以變成手電筒、信號(hào)燈等原來(lái)無(wú)法實(shí)現(xiàn)的功能。對(duì)于物聯(lián)網(wǎng)來(lái)說(shuō),要實(shí)現(xiàn)類(lèi)似移動(dòng)互聯(lián)網(wǎng)一樣的良性發(fā)展,也需要達(dá)到軟硬件分離的效果。物聯(lián)網(wǎng)終端的硬件功能很有限,比如一個(gè)傳統(tǒng)的車(chē)載OBD模塊,僅僅提供定位、GPRS、車(chē)輛信息讀取等功能。但是通過(guò)額外的應(yīng)用軟件,則可以把OBD模塊變成一個(gè)防盜器(事先劃定位置范圍,超出后報(bào)警),甚至其它功能設(shè)備。保險(xiǎn)公司也可以定制開(kāi)發(fā)自己的程序,安裝到OBD上,獲取必要的數(shù)據(jù)。這種通過(guò)軟件創(chuàng)新,把已知(硬件功能)變成未知(軟件功能)的能力,才是激發(fā)人類(lèi)興趣的源泉,也是為行業(yè)帶來(lái)活力的關(guān)鍵。
除此之外,物聯(lián)網(wǎng)還需要達(dá)到另外一種分離:硬件驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核的分離??紤]這樣一種場(chǎng)景:電冰箱的內(nèi)置攝像頭壞了,重新更換了一個(gè)新型號(hào)、功能更強(qiáng)大的攝像頭。這時(shí)候運(yùn)行在冰箱內(nèi)的操作系統(tǒng),必須能夠根據(jù)新攝像頭的硬件特征(比如設(shè)備ID等),自動(dòng)從網(wǎng)上下載對(duì)應(yīng)的驅(qū)動(dòng)程序,然后安裝。這個(gè)過(guò)程對(duì)運(yùn)行在操作系統(tǒng)上的應(yīng)用程序來(lái)說(shuō)是透明的。Android貌似是無(wú)法做到硬件驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核分離的,一旦增加一個(gè)新的硬件,必須編寫(xiě)對(duì)應(yīng)的驅(qū)動(dòng)程序,然后重新編譯Android內(nèi)核。
下圖示意了基于這兩種分離思想(應(yīng)用軟件與硬件分離、設(shè)備驅(qū)動(dòng)與操作系統(tǒng)內(nèi)核分離),構(gòu)筑的一個(gè)物聯(lián)網(wǎng)生態(tài)體系:
圖中的實(shí)線表示***邏輯連接,虛線表示臨時(shí)的邏輯交互。大概過(guò)程是這樣的:
1、 物聯(lián)網(wǎng)終端(大到汽車(chē)、冰箱,小到門(mén)鎖、追蹤卡、手環(huán)等)上運(yùn)行物聯(lián)網(wǎng)操作系統(tǒng),以及基于物聯(lián)網(wǎng)操作系統(tǒng)的應(yīng)用(APP)。APP從“M2M APP Store”上下載;
2、 物聯(lián)網(wǎng)終端上運(yùn)行的應(yīng)用程序,由用戶通過(guò)智能手機(jī)進(jìn)行控制。智能手機(jī)通過(guò)本地通道(比如藍(lán)牙、WiFi、Zigbee等)連接到物聯(lián)網(wǎng)終端,控制終端上的APP的安裝和卸載,以及M2M終端的相關(guān)配置(安全信息等);
3、 一旦物聯(lián)網(wǎng)終端上運(yùn)行了一個(gè)APP,如果該APP是基于client-server模式(比如智能手機(jī)上的微信),則物聯(lián)網(wǎng)終端需要跟APP的“應(yīng)用程序后臺(tái)”進(jìn)行交互,實(shí)現(xiàn)業(yè)務(wù)邏輯;
4、 物聯(lián)網(wǎng)終端跟“終端管理后臺(tái)”建立持久的通信連接,用于實(shí)時(shí)更新物聯(lián)網(wǎng)操作系統(tǒng)內(nèi)核版本、實(shí)時(shí)更新物聯(lián)網(wǎng)終端的硬件驅(qū)動(dòng)程序等。還是上面講的例子,一臺(tái)冰箱更換了內(nèi)置攝像頭,這時(shí)候物聯(lián)網(wǎng)終端需要連接到終端管理后臺(tái),去下載對(duì)應(yīng)的驅(qū)動(dòng)程序。一般情況下,終端管理后臺(tái)由物聯(lián)網(wǎng)終端制造廠商建立并維護(hù),比如針對(duì)家電領(lǐng)域,是由家電廠商建設(shè)的,針對(duì)汽車(chē)領(lǐng)域,則是由車(chē)廠建設(shè);
5、 物聯(lián)網(wǎng)終端上運(yùn)行的APP,由第三方開(kāi)發(fā)者或者ICP/ISP開(kāi)發(fā),并上載到M2M APP Store,供用戶按照需求下載;
6、 物聯(lián)網(wǎng)終端之間能夠通過(guò)本地通信通道(藍(lán)牙、WiFi、Zigbee等)進(jìn)行通信,這種通信無(wú)需借助后臺(tái)。比如,汽車(chē)到達(dá)路口后,可以跟信號(hào)燈通信,向信號(hào)燈注冊(cè)。這樣信號(hào)燈就能夠掌握各個(gè)方向的排隊(duì)汽車(chē)數(shù)量,然后根據(jù)數(shù)量來(lái)決定信號(hào)的變換,達(dá)到優(yōu)化交通的目的。物聯(lián)網(wǎng)終端之間的直接通信(端端通信)是物聯(lián)網(wǎng)關(guān)鍵能力之一,也是物聯(lián)網(wǎng)區(qū)別于移動(dòng)互聯(lián)網(wǎng)的關(guān)鍵地方之一。
為加深對(duì)這個(gè)生態(tài)模型的理解,舉一個(gè)餐飲行業(yè)的例子。先說(shuō)一下需求吧,我經(jīng)常去家門(mén)口的一家餐館吃飯,而且每次去,點(diǎn)的餐食基本都一樣。但現(xiàn)在的問(wèn)題是,每次去都要排隊(duì),點(diǎn)餐,交錢(qián),然后拿餐牌,找座位,等待。顯然這是一個(gè)重復(fù)乏味的過(guò)程,如果能夠通過(guò)自動(dòng)化的物聯(lián)網(wǎng)應(yīng)用,使得這個(gè)過(guò)程簡(jiǎn)化或者自動(dòng)化,那就很理想了。
我們開(kāi)發(fā)一種通用的智能手環(huán),智能手環(huán)上運(yùn)行物聯(lián)網(wǎng)操作系統(tǒng)。手環(huán)除了具備通用的鬧鐘提醒、身體生物指標(biāo)測(cè)量和報(bào)告等功能外,還具備RFID功能,該功能的打開(kāi)與否,由用戶控制,比如甩一下手環(huán)、按一個(gè)按鈕等。在餐館門(mén)口,安裝一套ID識(shí)別設(shè)備,一旦一個(gè)帶手環(huán)的人進(jìn)入餐館,并打開(kāi)了RFID功能,就立即被檢測(cè)到。檢測(cè)設(shè)備把進(jìn)入者的ID上報(bào)給后端服務(wù)器,后端服務(wù)器進(jìn)一步判斷這個(gè)人是否已經(jīng)有消費(fèi)記錄。如果沒(méi)有,OK,遵循通常的點(diǎn)餐、交錢(qián)、等待等流程,但是這個(gè)過(guò)程中,后臺(tái)系統(tǒng)會(huì)建立針對(duì)這個(gè)人的檔案,并記錄其點(diǎn)餐列表、等待時(shí)間、座位號(hào)等信息。
如果這個(gè)人第二次來(lái)就餐,那好了,運(yùn)行在手環(huán)上的APP(由餐館開(kāi)發(fā)并上載到M2M APP Store,由用戶安裝到手環(huán)上)會(huì)立即震動(dòng)提醒消費(fèi)者,并通過(guò)自帶的小屏幕,自動(dòng)把上一次點(diǎn)的餐食列表等信息呈現(xiàn)給消費(fèi)者,讓消費(fèi)者確認(rèn)是否點(diǎn)同樣的餐食。如果確認(rèn)點(diǎn)同樣的餐食,則消費(fèi)者只需要找個(gè)空閑的位置坐下,然后等待即可,手環(huán)上的APP會(huì)自動(dòng)檢測(cè)出座位號(hào),并聯(lián)系餐館的后臺(tái)服務(wù)器下訂單。吃完后,通過(guò)手環(huán)確認(rèn)一下,可自動(dòng)完成支付,甚至可以對(duì)本次消費(fèi)滿意度點(diǎn)評(píng)。顯然,排隊(duì)、點(diǎn)餐、交錢(qián)等過(guò)程完全省略了,大大提升了就餐方便程度。
要實(shí)現(xiàn)這個(gè)過(guò)程,最關(guān)鍵的一點(diǎn)就是,手環(huán)上需要運(yùn)行一個(gè)餐館特定的APP,這個(gè)APP能夠跟RFID聯(lián)動(dòng),并跟餐館后臺(tái)交互,完成就餐過(guò)程的自動(dòng)化。這樣的APP可能有多個(gè),因?yàn)槟憧赡芤ズ芏嗖宛^就餐。如果沒(méi)有物聯(lián)網(wǎng)操作系統(tǒng)的支持,這是無(wú)法做到的。或者說(shuō)也可以做到,但是你的手腕上需佩戴很多手環(huán),一個(gè)餐館一個(gè)。這樣的話,你的職業(yè)也變了,變成餐館的活體廣告牌了。
這個(gè)餐飲行業(yè)的應(yīng)用,幾乎把上面生態(tài)模型中的每個(gè)模塊都涉及到了:手環(huán)與餐館檢測(cè)系統(tǒng)的交互,屬于端端通信,手環(huán)上運(yùn)行的APP,需要從M2M APP Store下載。具體下載哪些餐館的APP,由消費(fèi)者通過(guò)智能手機(jī)控制。手環(huán)上的任何一個(gè)APP,都需要跟自己的后臺(tái)進(jìn)行通信。假設(shè)手環(huán)上的某個(gè)配件(比如某個(gè)按鈕、甚至RFID等)壞了,需要更換一個(gè)新的,這時(shí)候手環(huán)需要跟終端管理后臺(tái)進(jìn)行通信,下載新配件的驅(qū)動(dòng)程序。
上述過(guò)程的最核心需求,就是物聯(lián)網(wǎng)操作系統(tǒng)支持的兩大分離特性:應(yīng)用軟件和硬件分離,操作系統(tǒng)內(nèi)核和硬件設(shè)備驅(qū)動(dòng)程序的分離。
在物聯(lián)網(wǎng)領(lǐng)域,很多情況下,硬件終端的功能比手環(huán)簡(jiǎn)單得多,無(wú)需或者無(wú)法運(yùn)行第三方開(kāi)發(fā)的APP。這種場(chǎng)景下,上述架構(gòu)也可以很好的實(shí)現(xiàn)人與物的交互。舉例來(lái)說(shuō),為了實(shí)現(xiàn)對(duì)環(huán)境的實(shí)時(shí)檢測(cè),未來(lái)可能會(huì)開(kāi)發(fā)很多依靠太陽(yáng)能供電、無(wú)顯示屏等外設(shè)的“環(huán)境監(jiān)測(cè)器”,以公共服務(wù)的形式,安裝到任何可以安裝的地方。用戶通過(guò)智能手機(jī),可以隨時(shí)讀取這些小玩意兒上的檢測(cè)數(shù)據(jù)。這時(shí)候,如果是***次讀取某種型號(hào)監(jiān)測(cè)器上的數(shù)據(jù),則首先用手機(jī)上的M2M APP Store客戶端軟件,掃一下監(jiān)測(cè)器上的二維碼,客戶端會(huì)自動(dòng)根據(jù)二維碼中記錄的信息,到M2M APP Store上下載一個(gè)應(yīng)用程序。這個(gè)應(yīng)用程序調(diào)用藍(lán)牙、Zigbee等無(wú)線服務(wù),從監(jiān)測(cè)器上獲取數(shù)據(jù),然后顯示出來(lái)。
基于這樣的一個(gè)物聯(lián)網(wǎng)生態(tài)環(huán)境,可以改變很多既有的商業(yè)模式,達(dá)到更高效率的整體效果。比如下面這張圖,說(shuō)明了這個(gè)效果:
如果沒(méi)有物聯(lián)網(wǎng)操作系統(tǒng),那么應(yīng)用程序提供商(騰訊/阿里等)就需要跟硬件設(shè)備提供商進(jìn)行緊密捆綁,形成聯(lián)盟。這一個(gè)一個(gè)的聯(lián)盟,有點(diǎn)“龍虎結(jié)姻”的感覺(jué),強(qiáng)強(qiáng)聯(lián)合,但又不是一類(lèi)生物。對(duì)消費(fèi)者來(lái)說(shuō),也非常麻煩。比如你買(mǎi)了跟阿里結(jié)成聯(lián)盟的家電,那么就必須購(gòu)買(mǎi)阿里的智能家居服務(wù),即使騰訊做得更好,你也無(wú)法更換。但是如果有了物聯(lián)網(wǎng)操作系統(tǒng),那么就會(huì)打破這種緊密耦合的關(guān)系。硬件廠商只需要通過(guò)物聯(lián)網(wǎng)操作系統(tǒng),把硬件的能力暴露出來(lái)即可?;ヂ?lián)網(wǎng)廠商只需要開(kāi)發(fā)對(duì)應(yīng)的應(yīng)用程序,放到M2M APP Store即可。具體怎么組合,由最終用戶決定。可能的一種場(chǎng)景是,阿里的家電控制、節(jié)能等功能做得很好,而騰訊的用戶感知、大數(shù)據(jù)分析做得更好,用戶會(huì)在家電上同時(shí)安裝兩個(gè)APP,分別獲取***的體驗(yàn)。顯然,這在沒(méi)有物聯(lián)網(wǎng)操作系統(tǒng)的時(shí)候是無(wú)法做到的。
還有一個(gè)好處,就是讓更專業(yè)的人,去做更專業(yè)的事?;ヂ?lián)網(wǎng)公司聚焦做用戶體驗(yàn),硬件廠商聚焦做硬件,God god and Satan unto Satan。
基于這樣一個(gè)生態(tài)環(huán)境架構(gòu),物聯(lián)網(wǎng)操作系統(tǒng)的架構(gòu)大致如下:
通過(guò)定義標(biāo)準(zhǔn)的硬件驅(qū)動(dòng)程序接口,實(shí)現(xiàn)操作系統(tǒng)內(nèi)核與硬件驅(qū)動(dòng)程序的分離。通過(guò)引入Java虛擬機(jī),并定義基于C語(yǔ)言的標(biāo)準(zhǔn)API接口,實(shí)現(xiàn)應(yīng)用程序與硬件的分離。這與Android的實(shí)現(xiàn)思路有雷同的地方,但是也有不同的地方:
1、 物聯(lián)網(wǎng)操作系統(tǒng)的整體映像尺寸,必須是能夠高度伸縮的,以適應(yīng)硬件資源受限的應(yīng)用場(chǎng)景。比如既能夠適應(yīng)手環(huán)等硬件資源相對(duì)豐富的應(yīng)用場(chǎng)景,也能夠適應(yīng)環(huán)境監(jiān)測(cè)器等不是非常智能的應(yīng)用。具體來(lái)說(shuō),操作系統(tǒng)的尺寸,應(yīng)該能夠從10幾K甚至更小,到數(shù)十M的伸縮量級(jí);
2、 除提供Java接口外,物聯(lián)網(wǎng)操作系統(tǒng)還應(yīng)該提供標(biāo)準(zhǔn)的C語(yǔ)言接口,以應(yīng)對(duì)高效率、高實(shí)時(shí)性的應(yīng)用。比如,物聯(lián)網(wǎng)終端的生產(chǎn)廠商可以使用C接口,開(kāi)發(fā)針對(duì)該硬件的高效應(yīng)用,第三方企業(yè)則可以使用Java接口,開(kāi)發(fā)可廣泛移植到同類(lèi)設(shè)備上的應(yīng)用;
3、 物聯(lián)網(wǎng)操作系統(tǒng)的驅(qū)動(dòng)程序框架,應(yīng)該設(shè)計(jì)的足夠靈活和足夠兼容性,并能夠動(dòng)態(tài)加載和卸載設(shè)備驅(qū)動(dòng)程序;
4、 物聯(lián)網(wǎng)操作系統(tǒng)的版本分支或者變種數(shù)量,會(huì)非常大。針對(duì)每隔行業(yè),甚至每種硬件(比如汽車(chē)、冰箱等),都會(huì)有一個(gè)對(duì)應(yīng)的版本,這需要編譯開(kāi)發(fā)工具進(jìn)行良好的支持。
除此之外,物聯(lián)網(wǎng)操作系統(tǒng)還有很多其它不同于一般智能操作系統(tǒng)的不同之處,在此不做詳細(xì)描述。
***,還是為作者正在主導(dǎo)開(kāi)發(fā)的物聯(lián)網(wǎng)操作系統(tǒng)Hello China做一番招聘廣告。首先說(shuō)明的是,為了適應(yīng)不同的文化背景和國(guó)際化需求,Hello China這個(gè)名字后續(xù)要修改為HelloX,其中的X可以代表任何東西。這樣就貌似有點(diǎn)打招呼的意思,比如“Hello,car”,“Hello,ring”…,通過(guò)這個(gè)操作系統(tǒng),你能夠跟任何東西對(duì)話,符合物聯(lián)網(wǎng)的含義。英文的口號(hào)是“HelloX,through which you can talk to everything.”。
Hello China操作系統(tǒng)的大部分功能都已實(shí)現(xiàn),后續(xù)將向本文描述的物聯(lián)網(wǎng)生態(tài)環(huán)境方向做進(jìn)一步開(kāi)發(fā)。這需要大量的相關(guān)人才的參與,不僅僅是操作系統(tǒng)內(nèi)核的開(kāi)發(fā)人員,更多的是生態(tài)環(huán)境相關(guān)模塊的開(kāi)發(fā)人員:
1、 Java開(kāi)發(fā)人員,聚焦Java虛擬機(jī)的移植和定制、優(yōu)化,以及相關(guān)Java類(lèi)庫(kù)和程序的開(kāi)發(fā);
2、 M2M APP Store開(kāi)發(fā)人員,基于流行的分布式、大數(shù)據(jù)等架構(gòu),這部分也是整個(gè)物聯(lián)網(wǎng)生態(tài)環(huán)境的核心;
3、 編譯環(huán)境的開(kāi)發(fā)和定制,當(dāng)前基于Eclipse開(kāi)放環(huán)境進(jìn)行定制;
4、 硬件驅(qū)動(dòng)程序開(kāi)發(fā)人員,基于HelloX操作系統(tǒng)的驅(qū)動(dòng)程序框架,開(kāi)發(fā)各類(lèi)底層硬件的驅(qū)動(dòng)程序;
5、 操作系統(tǒng)內(nèi)核優(yōu)化和開(kāi)發(fā)。
我們已經(jīng)設(shè)計(jì)了合理的利益分配制度,相信任何參與的人,只要有實(shí)實(shí)在在的付出,總會(huì)得到意料之外的回報(bào)。而且您的有效付出,會(huì)立即得到反饋和確認(rèn)。
同時(shí),物聯(lián)網(wǎng)是被廣泛看好的未來(lái)IT發(fā)展方向,蘊(yùn)藏著無(wú)數(shù)的機(jī)會(huì)。同時(shí)物聯(lián)網(wǎng)也一定是以軟件為主導(dǎo)的行業(yè),這與移動(dòng)互聯(lián)網(wǎng)一樣,硬件和網(wǎng)絡(luò)從來(lái)都是配角。因此,通過(guò)參與物聯(lián)網(wǎng)操作系統(tǒng)的開(kāi)發(fā),對(duì)準(zhǔn)物聯(lián)網(wǎng)生態(tài)環(huán)境,直接切入物聯(lián)網(wǎng)領(lǐng)域的核心,對(duì)個(gè)人來(lái)說(shuō),也是非常難得的發(fā)展機(jī)會(huì)。
因此,物聯(lián)網(wǎng)操作系統(tǒng),或者說(shuō)物聯(lián)網(wǎng)軟件平臺(tái)生態(tài)圈的開(kāi)發(fā),期待您的參與。