深入解析物聯網操作係統(架構/功能/實例分析)
發布時間:2016-10-20 來源:garryxin 責任編輯:wenwei
【導讀】物聯網操作係統是新一代信息技術的重要組成部分。其英文名稱是IOT(Internet Of Things)。由此,顧名思義,“物聯網就是物物相連的互聯網”。下一代的基礎通信網絡,包括未來的5G,通信網絡架構重構等,為物聯網提供泛連接網絡是核心目標。目前也已經有很多廠商推出解決方案,比如Google的thread/wave,華為的Hi-Link,以及NB-IoT等。
1. 物聯網的主要特點
i. 連接
所(suo)謂(wei)連(lian)接(jie),指(zhi)的(de)是(shi)各(ge)種(zhong)各(ge)樣(yang)的(de)終(zhong)端(duan)設(she)備(bei),都(dou)能(neng)夠(gou)通(tong)過(guo)某(mou)種(zhong)網(wang)絡(luo)技(ji)術(shu),連(lian)接(jie)到(dao)一(yi)個(ge)統(tong)一(yi)的(de)網(wang)絡(luo)上(shang)。任(ren)何(he)終(zhong)端(duan)之(zhi)間(jian)都(dou)可(ke)以(yi)相(xiang)互(hu)訪(fang)問(wen)。下(xia)一(yi)代(dai)的(de)基(ji)礎(chu)通(tong)信(xin)網(wang)絡(luo),包(bao)括(kuo)未(wei)來(lai)的(de)5G,通信網絡架構重構等,為物聯網提供泛連接網絡是核心目標。目前也已經有很多廠商推出解決方案,比如Google的thread/wave,華為的Hi-Link,以及NB-IoT等。
傳統的物聯網連接,都是指物聯網終端設備與物聯網雲平台之間的連接,如下圖:

在這種模式下,物聯網設備通過各種各樣的連接技術,比如WiFi,Ethernet,BLE,Zigbee等(deng)等(deng)技(ji)術(shu),連(lian)接(jie)到(dao)位(wei)於(yu)雲(yun)端(duan)的(de)物(wu)聯(lian)網(wang)平(ping)台(tai)上(shang)。需(xu)要(yao)注(zhu)意(yi)的(de)是(shi),這(zhe)僅(jin)僅(jin)是(shi)一(yi)個(ge)邏(luo)輯(ji)結(jie)構(gou),在(zai)物(wu)理(li)上(shang),物(wu)聯(lian)網(wang)設(she)備(bei)在(zai)接(jie)入(ru)雲(yun)平(ping)台(tai)之(zhi)前(qian),很(hen)可(ke)能(neng)需(xu)要(yao)一(yi)個(ge)物(wu)聯(lian)網(wang)網(wang)關(guan)。因(yin)為(wei)很(hen)多(duo)連(lian)接(jie)技(ji)術(shu)是(shi)無(wu)法(fa)直(zhi)接(jie)連(lian)接(jie)到(dao)位(wei)於(yu)Internet上的物聯網雲平台的,比如Zigbee,BLE,Z-Wave,NFC等等。這些技術的通信範圍是一個小的局域網,比如一個家庭,一間辦公室等。而連入Internet的技術,則往往是WiFi,Ethernet,2/3/4G等這類網絡技術,大部分物聯網設備並不能提供這種連接的支持能力。因此,需要有一個物聯網網關,來彌補這個GAP,完成不同技術之間的轉換。下圖示意了物聯網網關的功能和網絡位置:

物聯網網關往往具備相對強大的計算能力,具備豐富的網絡接口,同時具備消息或數據的彙聚和分解功能。
在這種連接模式下,物聯網雲平台是所有物聯網終端設備的“大腦”,雲平台統一指揮物聯網終端的行為,如果這種連接一旦斷開,那物聯網終端將無所適從,完全失去控製。
更理想的連接,應該是物聯網設備之間,也實現本地的直接連接,如下圖所示:

物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian)也(ye)建(jian)立(li)連(lian)接(jie),同(tong)時(shi)保(bao)留(liu)與(yu)雲(yun)平(ping)台(tai)的(de)連(lian)接(jie)。這(zhe)樣(yang)的(de)好(hao)處(chu)就(jiu)是(shi),一(yi)旦(dan)雲(yun)平(ping)台(tai)的(de)連(lian)接(jie)中(zhong)斷(duan),物(wu)聯(lian)網(wang)終(zhong)端(duan)可(ke)以(yi)采(cai)用(yong)本(ben)地(di)之(zhi)間(jian)的(de)終(zhong)端(duan)連(lian)接(jie),繼(ji)續(xu)提(ti)供(gong)服(fu)務(wu)。同(tong)時(shi),物(wu)聯(lian)網(wang)設(she)備(bei)本(ben)地(di)之(zhi)間(jian)的(de)交(jiao)流(liu)和(he)通(tong)信(xin),直(zhi)接(jie)通(tong)過(guo)本(ben)地(di)連(lian)接(jie)完(wan)成(cheng),而(er)不(bu)用(yong)再(zai)上(shang)升(sheng)到(dao)雲(yun)端(duan)。
要實現這種“雲端連接”加“本地連接”的(de)模(mo)型(xing),需(xu)要(yao)物(wu)聯(lian)網(wang)設(she)備(bei)支(zhi)持(chi)消(xiao)息(xi)中(zhong)繼(ji)功(gong)能(neng)。即(ji)物(wu)聯(lian)網(wang)設(she)備(bei)可(ke)以(yi)把(ba)另(ling)外(wai)的(de)物(wu)聯(lian)網(wang)設(she)備(bei)的(de)消(xiao)息(xi)或(huo)數(shu)據(ju),轉(zhuan)發(fa)到(dao)雲(yun)平(ping)台(tai),同(tong)時(shi)把(ba)雲(yun)平(ping)台(tai)發(fa)下(xia)來(lai)的(de)數(shu)據(ju),轉(zhuan)接(jie)給(gei)另(ling)外(wai)的(de)物(wu)聯(lian)網(wang)設(she)備(bei)。
ii. 協同
協(xie)同(tong),則(ze)是(shi)指(zhi)接(jie)入(ru)網(wang)絡(luo)的(de)任(ren)何(he)設(she)備(bei)之(zhi)間(jian),能(neng)夠(gou)通(tong)過(guo)學(xue)習(xi),實(shi)時(shi)的(de)了(le)解(jie)自(zi)己(ji)和(he)對(dui)方(fang)的(de)能(neng)力(li)和(he)狀(zhuang)態(tai),能(neng)夠(gou)根(gen)據(ju)特(te)定(ding)的(de)輸(shu)入(ru)條(tiao)件(jian),或(huo)者(zhe)特(te)定(ding)的(de)環(huan)境(jing)狀(zhuang)態(tai),多(duo)種(zhong)設(she)備(bei)實(shi)現(xian)有(you)效(xiao)互(hu)動(dong),協(xie)調(tiao)工(gong)作(zuo),完(wan)成(cheng)某(mou)種(zhong)單(dan)一(yi)設(she)備(bei)無(wu)法(fa)完(wan)成(cheng)的(de)工(gong)作(zuo)。協(xie)同(tong)是(shi)物(wu)聯(lian)網(wang)的(de)核(he)心(xin)和(he)本(ben)質(zhi)。協(xie)同(tong)表(biao)現(xian)在(zai)下(xia)麵(mian)幾(ji)個(ge)方(fang)麵(mian):
- 物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian)的(de)自(zi)動(dong)發(fa)現(xian),尤(you)其(qi)是(shi)不(bu)同(tong)功(gong)能(neng),不(bu)同(tong)類(lei)別(bie)的(de)設(she)備(bei),如(ru)何(he)相(xiang)互(hu)發(fa)現(xian)。比(bi)如(ru)在(zai)智(zhi)慧(hui)交(jiao)通(tong)領(ling)域(yu),汽(qi)車(che)靠(kao)近(jin)路(lu)燈(deng)時(shi),應(ying)該(gai)可(ke)以(yi)快(kuai)速(su)發(fa)現(xian)路(lu)燈(deng),並(bing)建(jian)立(li)聯(lian)係(xi)。這(zhe)樣(yang)路(lu)燈(deng)就(jiu)可(ke)以(yi)根(gen)據(ju)與(yu)自(zi)己(ji)建(jian)立(li)聯(lian)係(xi)的(de)汽(qi)車(che)數(shu)量(liang),來(lai)靈(ling)活(huo)調(tiao)度(du)信(xin)號(hao)燈(deng)的(de)閃(shan)爍(shuo)時(shi)間(jian);
- wulianwangshebeizhijiandenenglijiaohu。shebeizhijian,zhiyouxianghulejieduifangdenengli,lejieduifangnengganshenme,cainengshixianyouxiaodejiaohuhexietong。leisizhongguorenzhijiande“找關係”,隻有知道對方是幹什麼的,有哪些能力,才會有目的的去“發起請求”,從而一起協作達到目標;
- 新增物聯網設備或功能的自動傳播。比如在一個局域網(智慧家庭)中,新加入了一個新的功能設備,這個新的設備需要盡快的“融入”原有的設備之中。這包括有一種機製,能夠廣播自己的能力,同時,原有的設備,應該也可以快速的“理解”新加入的設備的功能和角色,這樣後續就又達到一種統一的狀態。
iii. 智能
智能,則是指物聯網設備具備“類似於人”的智慧,比如根據特定條件和環境的自我調節能力,能夠通過持續的學習,不斷優化和改進,更“人性化”的為人類服務。
如果物聯網設備隻是連接在一起,能夠遠程控製,被動的聽從人們的指揮,那不能算是真正的物聯網,隻能算是“控製網”。理li想xiang的de目mu標biao是shi,物wu聯lian網wang設she備bei應ying該gai具ju備bei自zi我wo學xue習xi能neng力li,能neng夠gou通tong過guo積ji累lei過guo往wang的de經jing驗yan或huo數shu據ju,能neng夠gou對dui未wei來lai進jin行xing預yu判pan,為wei人ren們men提ti供gong更geng加jia智zhi能neng的de服fu務wu。這zhe種zhong“機器學習”的能力,我們認為應該屬於物聯網操作係統的一部分,應該能夠抽象成一些基本的服務或API,內置到內核中,供應用開發者或者設備開發者調用。
而(er)且(qie),這(zhe)種(zhong)機(ji)器(qi)學(xue)習(xi)的(de)服(fu)務(wu),不(bu)僅(jin)僅(jin)隻(zhi)是(shi)位(wei)於(yu)終(zhong)端(duan)操(cao)作(zuo)係(xi)統(tong)中(zhong)的(de)一(yi)段(duan)代(dai)碼(ma),還(hai)應(ying)該(gai)有(you)一(yi)個(ge)龐(pang)大(da)的(de)後(hou)台(tai)進(jin)行(xing)支(zhi)撐(cheng)。大(da)量(liang)的(de)計(ji)算(suan)和(he)預(yu)測(ce)功(gong)能(neng),在(zai)後(hou)台(tai)上(shang)執(zhi)行(xing)。而(er)終(zhong)端(duan)上(shang)隻(zhi)是(shi)做(zuo)一(yi)些(xie)簡(jian)單(dan)計(ji)算(suan)和(he)結(jie)果(guo)的(de)執(zhi)行(xing)。這(zhe)樣(yang)終(zhong)端(duan)加(jia)後(hou)台(tai)軟(ruan)件(jian),就(jiu)形(xing)成(cheng)一(yi)個(ge)分(fen)布(bu)式(shi)的(de)計(ji)算(suan)網(wang)格(ge),有(you)效(xiao)分(fen)工(gong),協(xie)同(tong)計(ji)算(suan),有(you)序(xu)執(zhi)行(xing),形(xing)成(cheng)一(yi)個(ge)支(zhi)撐(cheng)物(wu)聯(lian)網(wang)的(de)數(shu)字(zi)神(shen)經(jing)。
2. 物聯網操作係統整體架構概述
wulianwangcaozuoxitongshizhichengwulianwangdaguimofazhandezuihexinruanjian。genjushangmianzongjiedewulianwangdezhuyaotezheng,jiehecaozuoxitongdezhuyaogongnenghefencengjiegou,womenzongjiechuruxiadewulianwangcaozuoxitongzhengtijiagou:

總(zong)體(ti)來(lai)說(shuo),物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)是(shi)由(you)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he),外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian),物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia),通(tong)用(yong)智(zhi)能(neng)引(yin)擎(qing),集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)等(deng)幾(ji)個(ge)大(da)的(de)子(zi)係(xi)統(tong)組(zu)成(cheng)。這(zhe)些(xie)子(zi)係(xi)統(tong)之(zhi)間(jian)相(xiang)互(hu)配(pei)合(he),共(gong)同(tong)組(zu)成(cheng)一(yi)個(ge)完(wan)整(zheng)的(de)麵(mian)向(xiang)各(ge)種(zhong)各(ge)樣(yang)物(wu)聯(lian)網(wang)應(ying)用(yong)場(chang)景(jing)的(de)軟(ruan)件(jian)基(ji)礎(chu)平(ping)台(tai)。需(xu)要(yao)說(shuo)明(ming)的(de)是(shi),這(zhe)些(xie)子(zi)係(xi)統(tong)之(zhi)間(jian)有(you)一(yi)定(ding)的(de)層(ceng)次(ci)依(yi)賴(lai)關(guan)係(xi),比(bi)如(ru)外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian)需(xu)要(yao)依(yi)賴(lai)於(yu)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he),物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)需(xu)要(yao)依(yi)賴(lai)於(yu)外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian),而(er)公(gong)共(gong)智(zhi)能(neng)引(yin)擎(qing),需(xu)要(yao)依(yi)賴(lai)於(yu)下(xia)層(ceng)的(de)內(nei)核(he),外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian),甚(shen)至(zhi)是(shi)物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)等(deng)。在(zai)這(zhe)個(ge)架(jia)構(gou)圖(tu)中(zhong),也(ye)反(fan)映(ying)了(le)這(zhe)種(zhong)層(ceng)次(ci)化(hua)的(de)依(yi)賴(lai)關(guan)係(xi)。
目前主流的物聯網操作係統,比如Google的Brillo,Linux開放基金會的Ostro項目,以及HelloX項目,都遵循這樣一種框架。下麵對這幾個子係統做簡要介紹。
a) 物聯網操作係統內核概述
內核是任何操作係統都有的核心組件,操作係統的核心功能和核心機製,都是在內核中實現的。比如最核心的線程/任ren務wu管guan理li,內nei存cun管guan理li,內nei核he安an全quan和he同tong步bu等deng機ji製zhi。雖sui然ran從cong功gong能neng上shang說shuo,大da部bu分fen操cao作zuo係xi統tong的de內nei核he都dou相xiang差cha不bu大da,但dan是shi在zai這zhe些xie具ju體ti功gong能neng的de實shi現xian上shang,麵mian向xiang不bu同tong領ling域yu的de操cao作zuo係xi統tong,其qi實shi現xian目mu標biao和he實shi現xian技ji術shu都dou是shi不bu同tong的de。
比bi如ru對dui傳chuan統tong的de通tong用yong個ge人ren計ji算suan機ji操cao作zuo係xi統tong來lai說shuo,內nei核he更geng加jia關guan注zhu用yong戶hu交jiao互hu的de響xiang應ying時shi間jian,資zi源yuan的de充chong分fen利li用yong,不bu同tong應ying用yong程cheng序xu之zhi間jian的de隔ge離li和he安an全quan等deng。這zhe是shi與yu其qi應ying用yong場chang景jing有you關guan的de。而er對dui於yu麵mian向xiang嵌qian入ru式shi領ling域yu的de嵌qian入ru式shi操cao作zuo係xi統tong,則ze更geng加jia關guan注zhu對dui中zhong斷duan的de響xiang應ying時shi間jian,更geng加jia關guan注zhu線xian程cheng或huo任ren務wu的de調tiao度du算suan法fa,以yi使shi得de整zheng個ge係xi統tong能neng夠gou在zai可ke預yu知zhi的de時shi間jian內nei,完wan成cheng對dui外wai部bu事shi件jian的de響xiang應ying。
erwulianwangcaozuoxitongdeneihe,youyoubutongyuqitacaozuoxitongdetedian。zuizhuyaodeshiqishensuoxing。wulianwangcaozuoxitongdeneiheyinggainenggoushiyinggezhongpeizhideyingjianhuanjing,congxiaodaojishiK內存的低端嵌入式應用,到高達幾十Mneicundefuzayingyonglingyu,wulianwangcaozuoxitongneihedouyinggaikeyishiying。tongshi,wulianwangcaozuoxitongdeneiheyinggaizugoujieneng,quebaozaiyixienengyuanshouxiandeyingyongxia,nenggouchixuzugouchangdeshijian。biru,neihekeyitigongyingjianxiumianjizhi,baokuoCPU本身的休眠,以便在物聯網設備沒有任務處理的時候,能夠持續處於休眠狀態。在需要處理外部事件時,又能夠快速的喚醒。
物wu聯lian網wang操cao作zuo係xi統tong的de內nei核he也ye應ying該gai具ju備bei嵌qian入ru式shi操cao作zuo係xi統tong的de一yi些xie特te征zheng,比bi如ru可ke預yu知zhi可ke計ji算suan的de外wai部bu事shi件jian響xiang應ying時shi間jian,可ke預yu知zhi的de中zhong斷duan響xiang應ying時shi間jian,對dui多duo種zhong多duo樣yang的de外wai部bu硬ying件jian的de控kong製zhi和he管guan理li機ji製zhi等deng。當dang然ran,物wu聯lian網wang操cao作zuo係xi統tong內nei核he必bi須xu足zu夠gou可ke靠kao和he安an全quan,以yi滿man足zu物wu聯lian網wang對dui安an全quan性xing的de需xu求qiu。
從(cong)功(gong)能(neng)上(shang)說(shuo),與(yu)其(qi)它(ta)操(cao)作(zuo)係(xi)統(tong)基(ji)本(ben)類(lei)似(si),主(zhu)要(yao)包(bao)括(kuo)任(ren)務(wu)管(guan)理(li),內(nei)存(cun)管(guan)理(li),中(zhong)斷(duan)管(guan)理(li),內(nei)核(he)同(tong)步(bu),安(an)全(quan)與(yu)權(quan)限(xian)管(guan)理(li),應(ying)用(yong)管(guan)理(li)等(deng)。為(wei)了(le)確(que)保(bao)內(nei)核(he)的(de)正(zheng)常(chang)運(yun)行(xing),內(nei)核(he)也(ye)應(ying)提(ti)供(gong)內(nei)核(he)統(tong)計(ji)與(yu)監(jian)控(kong)功(gong)能(neng),即(ji)監(jian)視(shi)內(nei)核(he)的(de)運(yun)行(xing)狀(zhuang)態(tai),監(jian)視(shi)內(nei)核(he)對(dui)象(xiang)的(de)數(shu)量(liang)/狀zhuang態tai等deng,為wei維wei護hu或huo開kai發fa人ren員yuan提ti供gong故gu障zhang定ding位wei的de工gong具ju。在zai每mei一yi個ge內nei核he子zi模mo塊kuai中zhong,都dou會hui通tong過guo更geng加jia具ju體ti的de機ji製zhi或huo者zhe算suan法fa,來lai滿man足zu物wu聯lian網wang應ying用yong的de需xu求qiu。同tong時shi確que保bao內nei核he的de整zheng體ti安an全quan性xing和he可ke靠kao性xing。
neiheyeshizhijieyuwulishebeidajiaodaoderuanjian,suoyouduiwulishebeideguanli,baokuowulishebeijiance,wulishebeiqudongchengxujiazaihexiezaidengdenggongneng,yedoushizaineihezhongshixiande。weileyouxiaodeguanliwulishebei,neihexuyaodingyiyitaobiaozhundeshebeiguanlikuangjia,shebeiqudongchengxuxuyaozunxunzheyitaokuangjia,cainengnaruneihedeguanli。weilefangwenduozhongduoyangdewulishebei,neihetongshiyehuidingyiyitaojiaozuoyingjianchouxiangcengderuanjian,zhebenzhishangshiduiyixiechangyongyingjiancaozuodechouxiang,biruduxieshebeipeizhikongjian,youdeCPU是通過I/O接jie口kou來lai訪fang問wen設she備bei空kong間jian的de,有you的de則ze是shi把ba設she備bei配pei置zhi空kong間jian直zhi接jie映ying射she到dao內nei存cun空kong間jian,通tong過guo常chang規gui內nei存cun訪fang問wen來lai讀du取qu設she備bei配pei置zhi空kong間jian。為wei了le適shi應ying這zhe種zhong不bu同tong的de情qing況kuang,內nei核he一yi般ban會hui定ding義yi一yi個ge叫jiao做zuo__device_read和__device_write的(de)宏(hong),根(gen)據(ju)設(she)備(bei)類(lei)型(xing)的(de)不(bu)同(tong),這(zhe)些(xie)宏(hong)定(ding)義(yi)的(de)實(shi)現(xian)代(dai)碼(ma)會(hui)不(bu)同(tong),但(dan)是(shi)對(dui)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)和(he)設(she)備(bei)驅(qu)動(dong)程(cheng)序(xu)來(lai)說(shuo),隻(zhi)需(xu)要(yao)調(tiao)用(yong)這(zhe)兩(liang)個(ge)一(yi)致(zhi)的(de)宏(hong),即(ji)可(ke)對(dui)設(she)備(bei)配(pei)置(zhi)空(kong)間(jian)進(jin)行(xing)訪(fang)問(wen)。這(zhe)就(jiu)是(shi)一(yi)個(ge)典(dian)型(xing)的(de)硬(ying)件(jian)抽(chou)象(xiang)層(ceng)的(de)例(li)子(zi)。
除此之外,物聯網操作係統的內核還提供麵向物聯網應用的常用連接功能,比如對藍牙的支持,對Zigbee的支持,對WiFi的支持,等等。各類領域應用可以直接利用物聯網操作係統內核的這些連接功能,實現最基本的通信需求。
下圖示意了內核的更進一步的功能結構:

b) 外圍功能組件概述
wulianwangcaozuoxitongneihezhishitigongzuijibendecaozuoxitonggongneng,gongwulianwangyingyongchengxutiaoyong。danzhiyouwulianwangcaozuoxitongneiheshiyuanyuanbugoude,zaihenduoqingkuangxia,haixuyaohenduoqitagongnengmokuaidezhichi,biruwenjianxitong,TCP/IP網絡協議棧,數據庫等。我們把這些功能組件從物聯網操作係統內核中獨立出來,組成一個獨立的功能係統,稱為“外圍功能組件”。
之所以把這些功能組件稱為“外圍”,是(shi)因(yin)為(wei)在(zai)很(hen)多(duo)情(qing)況(kuang)下(xia),這(zhe)些(xie)功(gong)能(neng)組(zu)件(jian)都(dou)不(bu)是(shi)必(bi)須(xu)的(de)。而(er)且(qie)在(zai)實(shi)際(ji)的(de)物(wu)聯(lian)網(wang)應(ying)用(yong)中(zhong),這(zhe)些(xie)外(wai)圍(wei)組(zu)件(jian)也(ye)不(bu)會(hui)全(quan)部(bu)被(bei)用(yong)到(dao),大(da)部(bu)分(fen)情(qing)況(kuang)下(xia)用(yong)到(dao)一(yi)到(dao)兩(liang)個(ge)就(jiu)可(ke)以(yi)滿(man)足(zu)需(xu)求(qiu)了(le),其(qi)它(ta)的(de)功(gong)能(neng)組(zu)件(jian)必(bi)須(xu)裁(cai)剪(jian)掉(diao)。因(yin)為(wei)在(zai)物(wu)聯(lian)網(wang)應(ying)用(yong)中(zhong),很(hen)多(duo)情(qing)況(kuang)下(xia)的(de)係(xi)統(tong)硬(ying)件(jian)資(zi)源(yuan)非(fei)常(chang)有(you)限(xian),如(ru)果(guo)保(bao)留(liu)沒(mei)有(you)用(yong)到(dao)的(de)功(gong)能(neng)組(zu)件(jian),會(hui)浪(lang)費(fei)掉(diao)很(hen)多(duo)資(zi)源(yuan)。同(tong)時(shi),保(bao)留(liu)一(yi)些(xie)用(yong)不(bu)到(dao)的(de)組(zu)件(jian),會(hui)對(dui)整(zheng)個(ge)係(xi)統(tong)帶(dai)來(lai)安(an)全(quan)隱(yin)患(huan)。比(bi)如(ru),如(ru)果(guo)物(wu)聯(lian)網(wang)應(ying)用(yong)不(bu)需(xu)要(yao)聯(lian)網(wang),卻(que)保(bao)留(liu)了(le)TCP/IP協議棧功能,則TCP/IP協議棧的BUGhuoloudong,kenenghuibeiliyong,congerduixitongzaochenganquanyingxiang。zhexiewaiweigongnengzujiandoushizhenduiwulianwangcaozuoxitongjinxingdingzhihekaifade,yuwulianwangcaozuoxitongneihezhijiandejiekoufeichangqingxi,jubeigaodudekecaijianxing。
但dan通tong用yong操cao作zuo係xi統tong中zhong,這zhe些xie外wai圍wei組zu件jian的de處chu理li方fang式shi卻que與yu物wu聯lian網wang操cao作zuo係xi統tong不bu同tong,這zhe些xie組zu件jian會hui被bei統tong一yi歸gui類lei到dao內nei核he中zhong,隨sui內nei核he一yi起qi分fen發fa,作zuo為wei一yi個ge整zheng體ti提ti供gong給gei用yong戶hu。即ji使shi應ying用yong程cheng序xu不bu用yong這zhe些xie組zu件jian,也ye不bu能neng把ba這zhe些xie組zu件jian裁cai剪jian掉diao。之zhi所suo以yi這zhe樣yang做zuo,是shi因yin為wei通tong用yong操cao作zuo係xi統tong的de資zi源yuan相xiang對dui豐feng富fu,多duo保bao留liu一yi些xie功gong能neng模mo塊kuai對dui整zheng體ti係xi統tong的de影ying響xiang並bing不bu大da。同tong時shi,通tong用yong操cao作zuo係xi統tong的de安an全quan性xing要yao求qiu相xiang對dui較jiao低di。
物聯網操作係統內核和外圍功能組件結合起來,可以解決物聯網的“連接”需求。這包括內核提供的基本物聯網本地連接(藍牙,Zigbee,NFC,RFID等),以及外圍功能組件中的TCP/IP協議棧等提供的複雜網絡連接。
除TCP/IP網絡協議棧外,常見的外圍組件還包括文件係統,圖形用戶界麵(GUI),安全傳輸協議,腳本語言執行引擎(比如JavaScript語言的執行引擎等),基於TCP/IP協議的安全傳輸協議(SSL/SSH等),C運行庫,在線更新機製(軟件升級/在線更新補丁)等。需要說明的是,TCP/IP協議棧是麵向互聯網設計的通信協議棧,由於物聯網本身特征與互聯網有很大差異,TCP/IP協議棧在應用到物聯網的時候,麵臨許多問題和挑戰,需要對TCP/IP協議棧做一番優化改造。我們把改造之後的TCP/IP協議棧,稱為“麵向物聯網的TCP/IP協議”,簡寫為“TCP/IP@IoT”。下圖示意了常見的物聯網操作係統外圍功能組件:
c) 物聯網協同框架概述
物聯網協同框架是實現物聯網“協同”功能性需求的關鍵功能係統。物聯網操作係統的內核和外圍功能組件,僅僅實現了物聯網設備之間的“連接”功(gong)能(neng)。但(dan)是(shi)我(wo)們(men)知(zhi)道(dao),僅(jin)僅(jin)實(shi)現(xian)物(wu)聯(lian)網(wang)設(she)備(bei)的(de)連(lian)接(jie)上(shang)網(wang),是(shi)遠(yuan)遠(yuan)不(bu)夠(gou)的(de)。物(wu)聯(lian)網(wang)的(de)精(jing)髓(sui)在(zai)於(yu),物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian)能(neng)夠(gou)相(xiang)互(hu)交(jiao)互(hu)和(he)協(xie)同(tong),使(shi)得(de)物(wu)聯(lian)網(wang)設(she)備(bei)能(neng)夠(gou)“充分合作”,相互協調一致,以達到單一物聯網設備無法完成的功能。而物聯網協同框架,就是為物聯網設備之間的協同提供了技術基礎。
一般情況下,物聯網協同框架是一組軟件的集合,由許多個功能相互獨立,但是又相互依賴的軟件模塊組成。比如,Google的Weave物聯網協同框架,是由雲平台組件Weave Cloud,麵向設備端的LibWeave,以及麵向智能手機客戶端的Weave Client等組件組成。Weave Cloud是整個框架的“中心管理器”,所有基於Weave的物聯網設備,首先都連接到Weave Cloud上,接受Weave Cloud下發的指令,並向Weave Cloud上報相關數據。Weave Client則也需通過Weave Cloud來管理和控製基於Weave的物聯網設備,等等。
一般來說,物聯網協同框架至少包括如下功能:
- 物(wu)聯(lian)網(wang)設(she)備(bei)發(fa)現(xian)機(ji)製(zhi)。物(wu)聯(lian)網(wang)設(she)備(bei)一(yi)般(ban)不(bu)提(ti)供(gong)直(zhi)接(jie)的(de)用(yong)戶(hu)交(jiao)互(hu)界(jie)麵(mian),需(xu)要(yao)通(tong)過(guo)諸(zhu)如(ru)智(zhi)能(neng)手(shou)機(ji),電(dian)腦(nao)等(deng)方(fang)式(shi),連(lian)接(jie)到(dao)設(she)備(bei)上(shang),對(dui)設(she)備(bei)進(jin)行(xing)管(guan)理(li)和(he)配(pei)置(zhi)。在(zai)物(wu)聯(lian)網(wang)設(she)備(bei)第(di)一(yi)次(ci)加(jia)電(dian)並(bing)聯(lian)網(wang)之(zhi)後(hou),智(zhi)能(neng)手(shou)機(ji)/電dian腦nao等deng如ru何he快kuai速su準zhun確que的de找zhao到dao這zhe個ge物wu聯lian網wang設she備bei,就jiu是shi物wu聯lian網wang設she備bei發fa現xian機ji製zhi要yao解jie決jue的de問wen題ti。尤you其qi是shi在zai物wu聯lian網wang設she備bei數shu量liang眾zhong多duo,功gong能neng多duo樣yang的de情qing況kuang下xia,如ru何he準zhun確que快kuai速su的de發fa現xian和he連lian接jie到dao物wu聯lian網wang設she備bei上shang,是shi一yi個ge很hen大da的de挑tiao戰zhan。設she備bei發fa現xian機ji製zhi的de另ling外wai一yi個ge應ying用yong場chang景jing,是shi設she備bei與yu設she備bei之zhi間jian的de直zhi接jie交jiao互hu。比bi如ru在zai同tong一yi個ge局ju域yu網wang內nei的de物wu聯lian網wang設she備bei,可ke以yi相xiang互hu發fa現xian並bing建jian立li關guan聯lian,在zai必bi要yao的de時shi候hou能neng夠gou直zhi接jie通tong信xin,相xiang互hu協xie作zuo,實shi現xian物wu聯lian網wang設she備bei之zhi間jian的de“協同”;
- 物聯網設備的初始化與配置管理,包括設備在第一次使用時的初始化配置,設備的認證和鑒權,設備的狀態管理等等;
- 物wu聯lian網wang設she備bei之zhi間jian的de協xie同tong交jiao互hu。這zhe包bao括kuo物wu聯lian網wang設she備bei之zhi間jian的de直zhi接jie通tong信xin機ji製zhi。物wu聯lian網wang協xie同tong框kuang架jia要yao能neng夠gou提ti供gong一yi套tao標biao準zhun或huo規gui範fan,使shi得de建jian立li關guan聯lian關guan係xi的de物wu聯lian網wang設she備bei之zhi間jian,能neng夠gou直zhi接jie通tong信xin,不bu需xu要yao經jing過guo後hou台tai服fu務wu器qi;
- 雲端服務。大部分情況下,物聯網服務需要雲端(即物聯網後台)的(de)支(zhi)持(chi)。物(wu)聯(lian)網(wang)設(she)備(bei)要(yao)連(lian)接(jie)到(dao)雲(yun)端(duan)平(ping)台(tai)上(shang),進(jin)行(xing)認(ren)證(zheng)和(he)注(zhu)冊(ce)。物(wu)聯(lian)網(wang)設(she)備(bei)在(zai)運(yun)行(xing)期(qi)獲(huo)取(qu)的(de)數(shu)據(ju),也(ye)需(xu)要(yao)傳(chuan)送(song)到(dao)雲(yun)端(duan)平(ping)台(tai)上(shang)進(jin)行(xing)存(cun)儲(chu)。如(ru)果(guo)用(yong)戶(hu)與(yu)物(wu)聯(lian)網(wang)設(she)備(bei)距(ju)離(li)很(hen)遠(yuan),無(wu)法(fa)直(zhi)接(jie)連(lian)接(jie),則(ze)用(yong)戶(hu)也(ye)需(xu)要(yao)經(jing)過(guo)雲(yun)端(duan)平(ping)台(tai),來(lai)簡(jian)介(jie)控(kong)製(zhi)或(huo)操(cao)作(zuo)物(wu)聯(lian)網(wang)設(she)備(bei),等(deng)等(deng)。物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)至(zhi)少(shao)要(yao)定(ding)義(yi)並(bing)實(shi)現(xian)一(yi)套(tao)標(biao)準(zhun)的(de)協(xie)議(yi),來(lai)支(zhi)撐(cheng)這(zhe)些(xie)操(cao)作(zuo)。
除chu此ci之zhi外wai,物wu聯lian網wang協xie同tong框kuang架jia還hai必bi須xu實shi現xian一yi些xie基ji本ben的de服fu務wu,來lai支zhi撐cheng上shang述shu功gong能neng。比bi如ru,物wu聯lian網wang協xie同tong框kuang架jia需xu要yao定ding義yi一yi套tao標biao準zhun的de物wu聯lian網wang設she備bei命ming名ming體ti係xi,以yi能neng夠gou準zhun確que唯wei一yi的de標biao識shi每mei一yi台tai物wu聯lian網wang設she備bei。物wu聯lian網wang設she備bei之zhi間jian,以yi及ji用yong戶hu與yu物wu聯lian網wang設she備bei之zhi間jian,在zai相xiang互hu操cao作zuo之zhi前qian,還hai必bi須xu要yao完wan成cheng認ren證zheng和he鑒jian權quan,以yi確que保bao物wu聯lian網wang的de安an全quan,等deng等deng。另ling外wai一yi個ge基ji礎chu服fu務wu,就jiu是shi標biao準zhun的de物wu聯lian網wang操cao作zuo模mo式shi。比bi如ru在zai智zhi能neng家jia電dian應ying用yong中zhong,用yong戶hu可ke以yi通tong過guo一yi個ge標biao準zhun的deOpen命令,來遠程打開空調。通過一個Adjust命ming令ling,來lai調tiao節jie空kong調tiao的de溫wen度du。這zhe些xie標biao準zhun的de命ming令ling必bi須xu由you物wu聯lian網wang協xie同tong框kuang架jia進jin行xing定ding義yi,才cai能neng實shi現xian不bu同tong廠chang商shang,不bu同tong類lei型xing設she備bei之zhi間jian的de互hu操cao作zuo。如ru果guo沒mei有you這zhe些xie標biao準zhun的de操cao作zuo模mo式shi(操作命令),那麼要打開A廠商的空調,是Open命令,要打開B廠商的空調,則可能是Turn On命令,這樣就無法實現相互操作了。
上(shang)述(shu)協(xie)同(tong)功(gong)能(neng)和(he)基(ji)本(ben)服(fu)務(wu),都(dou)是(shi)建(jian)立(li)在(zai)網(wang)絡(luo)通(tong)信(xin)基(ji)礎(chu)之(zhi)上(shang)的(de),協(xie)同(tong)框(kuang)架(jia)還(hai)必(bi)須(xu)實(shi)現(xian)或(huo)者(zhe)選(xuan)擇(ze)一(yi)種(zhong)合(he)適(shi)的(de)網(wang)絡(luo)通(tong)信(xin)協(xie)議(yi)。物(wu)聯(lian)網(wang)的(de)特(te)征(zheng),要(yao)求(qiu)這(zhe)種(zhong)通(tong)信(xin)協(xie)議(yi)盡(jin)可(ke)能(neng)的(de)低(di)功(gong)耗(hao)和(he)高(gao)效(xiao)率(lv)。一(yi)些(xie)常(chang)用(yong)的(de)標(biao)準(zhun)協(xie)議(yi),比(bi)如(ru)CoAP或者MQTT,可以承擔這個功能。大部分物聯網協同框架,比如IoTivity,就是基於CoAP協議的。
下圖示意了物聯網協同框架的主要組成:

xiamiantongguoyigezhihuishangchangdelizi,jinyibushuomingwulianwangxietongkuangjiadezuoyong。zhihuishangchangjiejuefanganzhong,yibandouhuibaokuohuojingtanceqiyuzhihuimenjinxitong。zheliangleiwulianwangshebeizaibeianzhuangzaishangchangzhiqian,bixujingguoanquandechushipeizhi,yiquebaobuhuibeieyikongzhi。chushipeizhiwanchengzhihou,zheliangleishebeihuilianjiedaotongyidexietongkuangjiayunduanxitong,bingshishigengxinqizhuangtai。yucitongshi,huojingtanceqiyehuitongguowulianwangxietongkuangjiadeshebeifaxianjizhi,yumenjinxitongjianlilianxi,bingxianghuzhidaozijidecunzai。yidanhuojingtanceqitancedaohuojingfasheng,zehuizhijiegaosumenjinxitongdakaimenjin,yibianfangbianrenmenjinkuaitaosheng。zhezhongqingkuangxia,ruguomeiyouwulianwangshebeizhijiandezhijietongxingongneng,suoyoudetongxindouxuyaojingguohoutaixitongzhuanjie,namebudanxiangyingshijianhuizengjia,gengzhimingdeshi,yidanyuhoutaizhijiandewuliwangluozhongduan,zezhongduanzhijianjiangwufashixianzidongliandong。zhezhongwangluoguzhang,zaizhuruhuojingdengzainanfashengshi,shizuichangjiande。
weizhichengshangshujizhideyouxiaoyunxing,wulianwangxietongkuangjiahaibixutigongyizhidetongxinxieyihetongxinjishu,wulianwangshebeizhiyaozunxunzhetaoxieyi,jiunenggouxianghushibieduifangdexiaoxi。tongshi,wulianwangxietongkuangjiahaibixutigongyitaoweiyidemingmingguifan,quebaorenheyigewulianwangzhongduanshebei,dounenghuoqudaoweiyidemingzi,qitashebeinenggoutongguozhegeweiyidemingziyuzhijiaohu。tongshi,zhetaoweiyidemingmingguifan,zuihaonenggoubawulianwangzhongduanshebeidegongneng,yetixianchulai。zheyangwulianwangshebeizhijiantongguoshebeimingzi,jiukeyiquedingqitigongdegongneng,congerzuochuyouzhenduixingdedongzuo。birushangshulizi,huojingtanceqikeyimingmingwei“Fire alert detector”,而門禁係統可以命名為“Entrance access control”,這(zhe)樣(yang)這(zhe)兩(liang)者(zhe)可(ke)以(yi)通(tong)過(guo)名(ming)字(zi),就(jiu)知(zhi)道(dao)對(dui)方(fang)的(de)功(gong)能(neng)角(jiao)色(se)。當(dang)然(ran),這(zhe)隻(zhi)是(shi)個(ge)例(li)子(zi),在(zai)實(shi)際(ji)的(de)命(ming)名(ming)係(xi)統(tong)中(zhong),還(hai)是(shi)應(ying)該(gai)有(you)一(yi)套(tao)計(ji)算(suan)機(ji)能(neng)夠(gou)識(shi)別(bie)的(de)編(bian)碼(ma)體(ti)係(xi)。
目(mu)前(qian)物(wu)聯(lian)網(wang)行(xing)業(ye)內(nei)的(de)一(yi)些(xie)協(xie)同(tong)框(kuang)架(jia),基(ji)本(ben)都(dou)是(shi)與(yu)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)獨(du)立(li)的(de),即(ji)這(zhe)些(xie)協(xie)同(tong)框(kuang)架(jia)可(ke)以(yi)被(bei)應(ying)用(yong)在(zai)基(ji)於(yu)任(ren)何(he)操(cao)作(zuo)係(xi)統(tong)的(de)物(wu)聯(lian)網(wang)解(jie)決(jue)方(fang)案(an)中(zhong),隻(zhi)要(yao)這(zhe)些(xie)操(cao)作(zuo)係(xi)統(tong)能(neng)夠(gou)提(ti)供(gong)必(bi)要(yao)的(de)接(jie)口(kou)即(ji)可(ke)。但(dan)采(cai)取(qu)這(zhe)種(zhong)方(fang)式(shi),顯(xian)然(ran)有(you)其(qi)明(ming)顯(xian)的(de)弊(bi)端(duan)。那(na)就(jiu)是(shi)無(wu)法(fa)采(cai)用(yong)一(yi)套(tao)統(tong)一(yi)的(de)代(dai)碼(ma),來(lai)適(shi)應(ying)所(suo)有(you)的(de)操(cao)作(zuo)係(xi)統(tong)。比(bi)如(ru)Google的Waeve,針對Linux和Android等複雜的操作係統,采用C++語言開發了LibWeave組件。而針對資源受限的嵌入式應用場景,則又采用C語言開發了uWeave。這樣對物聯網設備的開發者來說,就不得不掌握兩套完全迥異的API,了解兩套機理完全不同的物聯網協同框架,顯然無法降低成本。
理想的實現方式是,物聯網協同框架能夠與物聯網操作係統內核緊密綁定,隻提供一套API給開發者。通過物聯網操作係統內核本身的伸縮機製,來適應不同的應用場景。比如在沒有WiFi支持的嵌入式場景,物聯網操作係統內核會裁剪掉TCP/IP等組件,而采用低功耗藍牙技術實現數據通信。而如果目標硬件配置了WiFi或者Ethernet等網絡接口設備,則會保留TCP/IP協議棧。不論是哪種形態,物聯網操作係統內核都會提供統一的一套API,給物聯網協同框架使用,即底層的通信機製,對物聯網協同框架是透明的。基於這樣的設計原則,類似Google Weave這樣的物聯網協同框架就無需針對不同的目標硬件設計多套解決方案了,而隻需要一套就可解決問題。
d) 公共智能引擎概述
通(tong)過(guo)物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia),可(ke)以(yi)使(shi)得(de)物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian)建(jian)立(li)關(guan)聯(lian),充(chong)分(fen)協(xie)作(zuo),完(wan)成(cheng)單(dan)一(yi)物(wu)聯(lian)網(wang)設(she)備(bei)無(wu)法(fa)完(wan)成(cheng)的(de)功(gong)能(neng)。但(dan)是(shi)這(zhe)種(zhong)協(xie)同(tong)的(de)功(gong)能(neng),還(hai)是(shi)局(ju)限(xian)於(yu)事(shi)先(xian)定(ding)義(yi)好(hao)的(de)邏(luo)輯(ji)上(shang)。比(bi)如(ru)上(shang)述(shu)智(zhi)慧(hui)商(shang)場(chang)中(zhong)火(huo)警(jing)探(tan)測(ce)器(qi)和(he)門(men)禁(jin)係(xi)統(tong)的(de)例(li)子(zi),必(bi)須(xu)在(zai)領(ling)域(yu)應(ying)用(yong)中(zhong)編(bian)寫(xie)代(dai)碼(ma),告(gao)訴(su)火(huo)警(jing)探(tan)測(ce)器(qi),一(yi)旦(dan)發(fa)生(sheng)火(huo)警(jing),則(ze)告(gao)訴(su)門(men)禁(jin)係(xi)統(tong)打(da)開(kai)門(men)禁(jin)。如(ru)果(guo)沒(mei)有(you)這(zhe)樣(yang)的(de)程(cheng)序(xu)邏(luo)輯(ji),火(huo)警(jing)探(tan)測(ce)係(xi)統(tong)是(shi)不(bu)會(hui)通(tong)知(zhi)門(men)禁(jin)係(xi)統(tong)的(de)。
如(ru)果(guo)希(xi)望(wang)物(wu)聯(lian)網(wang)係(xi)統(tong)超(chao)出(chu)預(yu)定(ding)義(yi)的(de)範(fan)圍(wei),能(neng)夠(gou)達(da)到(dao)一(yi)種(zhong)自(zi)學(xue)習(xi)的(de)程(cheng)度(du),比(bi)如(ru)最(zui)開(kai)始(shi)火(huo)警(jing)探(tan)測(ce)器(qi)並(bing)不(bu)知(zhi)道(dao)在(zai)發(fa)生(sheng)火(huo)警(jing)時(shi)通(tong)知(zhi)門(men)禁(jin)係(xi)統(tong),而(er)是(shi)隨(sui)著(zhe)運(yun)行(xing)時(shi)間(jian)的(de)增(zeng)加(jia),逐(zhu)漸(jian)的(de)“學習”到這種能力。這樣隻有物聯網協同框架就無法做到了,必須引入智能引擎的支持。
物聯網智能引擎,就是指包含了諸如語音與語義識別,機器學習等等功能模塊,以使得物聯網能夠超出“事先定義好”的活動規則,能夠具備像人一樣具備“智慧”denengli。zaiwulianwangzhinengyinqingneidegongnengmokuai,doushijichunengli,keyigonggezhongwulianwangyingyongsuotiaoyong。bijiaodianxingdelizijiushi,zaiwulianwangshebeizhongjiaruyuyinshibiegongneng,renmentongguoziranyuyan,yuwulianwangshebeizhijieduihua,laidadaoxiadazhilingdemude。
另外一個公共智能引擎中的重要模塊,是DSL語言與其對應的處理引擎。DSL(DomainSpecific Language,領域特定語言)是shi針zhen對dui某mou一yi種zhong特te定ding的de應ying用yong領ling域yu開kai發fa的de編bian程cheng或huo操cao作zuo語yu言yan,專zhuan門men應ying用yong於yu一yi個ge相xiang對dui獨du立li的de領ling域yu。這zhe與yu計ji算suan機ji編bian程cheng語yu言yan不bu一yi樣yang,計ji算suan機ji編bian程cheng語yu言yan大da部bu分fen都dou比bi較jiao通tong用yong,可ke以yi為wei多duo種zhong應ying用yong領ling域yu編bian寫xie程cheng序xu。正zheng是shi因yin為wei它ta的de通tong用yong性xing,無wu法fa照zhao顧gu到dao某mou一yi個ge具ju體ti的de領ling域yu,因yin此ci采cai用yong通tong用yong計ji算suan機ji語yu言yan來lai實shi現xian某mou一yi個ge具ju體ti領ling域yu的de應ying用yong時shi,就jiu非fei常chang麻ma煩fan,需xu要yao專zhuan業ye的de程cheng序xu員yuan,經jing過guo複fu雜za的de編bian程cheng工gong作zuo。而erDSL語yu言yan,則ze是shi針zhen對dui某mou一yi個ge很hen細xi的de功gong能neng領ling域yu開kai發fa,專zhuan門men應ying用yong於yu這zhe個ge特te定ding的de領ling域yu。這zhe樣yang就jiu可ke以yi針zhen對dui這zhe個ge特te定ding的de領ling域yu建jian立li一yi些xie內nei置zhi對dui象xiang,定ding義yi領ling域yu特te定ding的de動dong作zuo,並bing根gen據ju領ling域yu的de習xi慣guan,定ding義yi領ling域yu特te有you語yu法fa。采cai用yongDSL語言來編寫領域應用,就非常簡單。
現在有很多軟件工具,可以用於定義DSL,並提供執行解釋引擎。物聯網操作係統的公共智能引擎模塊中,也應該提供DSL語言開發及解釋的功能,以方便物聯網特定場景的調用。
e) 集成開發環境概述
集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)是(shi)任(ren)何(he)一(yi)個(ge)完(wan)備(bei)的(de)操(cao)作(zuo)係(xi)統(tong)所(suo)必(bi)需(xu)提(ti)供(gong)的(de)功(gong)能(neng)組(zu)件(jian),程(cheng)序(xu)員(yuan)通(tong)過(guo)集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)的(de)輔(fu)助(zhu),完(wan)成(cheng)具(ju)體(ti)應(ying)用(yong)的(de)開(kai)發(fa),這(zhe)些(xie)應(ying)用(yong)最(zui)終(zhong)運(yun)行(xing)在(zai)目(mu)標(biao)操(cao)作(zuo)係(xi)統(tong)上(shang)。比(bi)如(ru)針(zhen)對(dui)Linux操作係統的GCC開發工具套件,麵向Windows操作係統的Microsoft Visual Studio集成開發環境,以及跨平台的Eclipse集成開發環境,等等。
開發環境是豐富壯大操作係統生態圈的最核心組件,同時也是形成“二級開發模式”dejichu。suoweierjikaifamoshi,zhideshibaohancaozuoxitongpingtaibenshengongnengkaifadediyijikaifa,yijijiyucaozuoxitongpingtai,jinxingyingyongchengxukaifahuocaozuoxitongneihedingzhideercikaifa。qizhongdiyijikaifa,shiyoucaozuoxitongchangshanghuozhekaiyuanshequwancheng。erdierjideercikaifa,zeshiyoujutideyingyongchangshangkaifawancheng。zhelianggecengcidekaifa,suoyongdegongjushibutongde。zaidiyijikaifazhong,yibancaiyongxitongjidekaifagongju,dabufendoushiminglingxingmoshi,caiyongdekaifayuyan,yeshiyiC/C++,甚(shen)至(zhi)彙(hui)編(bian)語(yu)言(yan)為(wei)主(zhu)。而(er)第(di)二(er)級(ji)開(kai)發(fa)的(de)時(shi)候(hou),操(cao)作(zuo)係(xi)統(tong)基(ji)礎(chu)架(jia)構(gou)已(yi)構(gou)築(zhu)起(qi)來(lai),對(dui)應(ying)的(de)編(bian)程(cheng)開(kai)發(fa)環(huan)境(jing)也(ye)已(yi)經(jing)完(wan)善(shan),因(yin)此(ci)大(da)部(bu)分(fen)是(shi)采(cai)用(yong)圖(tu)形(xing)化(hua)的(de)開(kai)發(fa)環(huan)境(jing)。相(xiang)對(dui)來(lai)說(shuo),第(di)二(er)級(ji)開(kai)發(fa)所(suo)需(xu)要(yao)的(de)係(xi)統(tong)級(ji)的(de)開(kai)發(fa)技(ji)能(neng)也(ye)相(xiang)對(dui)較(jiao)低(di)。注(zhu)意(yi),這(zhe)裏(li)說(shuo)的(de)是(shi)“係統級”的開發技能,主要是指對計算機CPU和(he)硬(ying)件(jian),操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)等(deng)的(de)理(li)解(jie)和(he)技(ji)能(neng),並(bing)不(bu)是(shi)說(shuo)麵(mian)向(xiang)應(ying)用(yong)的(de)開(kai)發(fa)技(ji)能(neng)。實(shi)際(ji)上(shang),不(bu)論(lun)是(shi)哪(na)個(ge)層(ceng)級(ji)的(de)開(kai)發(fa),隻(zhi)要(yao)深(shen)入(ru)進(jin)去(qu),真(zhen)正(zheng)解(jie)決(jue)問(wen)題(ti)了(le),都(dou)不(bu)會(hui)太(tai)簡(jian)單(dan)。
物(wu)聯(lian)網(wang)領(ling)域(yu)也(ye)是(shi)如(ru)此(ci)。在(zai)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)本(ben)身(shen)的(de)開(kai)發(fa)中(zhong),會(hui)采(cai)用(yong)不(bu)同(tong)的(de)相(xiang)對(dui)專(zhuan)業(ye)的(de)開(kai)發(fa)工(gong)具(ju)。在(zai)操(cao)作(zuo)係(xi)統(tong)發(fa)布(bu)之(zhi)後(hou),也(ye)要(yao)提(ti)供(gong)一(yi)套(tao)完(wan)整(zheng)的(de)開(kai)發(fa)工(gong)具(ju),方(fang)便(bian)物(wu)聯(lian)網(wang)領(ling)域(yu)的(de)程(cheng)序(xu)員(yuan)開(kai)發(fa)物(wu)聯(lian)網(wang)應(ying)用(yong)。
一般的集成開發環境是由一係列工具組合而成的,即使是Microsoft的Visual Studio集成開發環境,雖然開起來是一個類似Office Word一yi樣yang的de獨du立li應ying用yong程cheng序xu,程cheng序xu員yuan可ke以yi在zai其qi中zhong完wan成cheng程cheng序xu的de編bian寫xie,編bian譯yi,調tiao試shi,運yun行xing,發fa布bu等deng等deng全quan軟ruan件jian聲sheng明ming周zhou期qi的de所suo有you活huo動dong,但dan是shi它ta也ye是shi由you若ruo幹gan個ge獨du立li工gong具ju組zu合he在zai一yi起qi形xing成cheng的de集ji成cheng軟ruan件jian工gong作zuo台tai,比bi如ru編bian譯yi工gong具ju,連lian接jie工gong具ju,調tiao試shi工gong具ju,軟ruan件jian代dai碼ma一yi致zhi性xing檢jian查zha工gong具ju等deng等deng。
mianxiangwulianwangcaozuoxitongdejichengkaifahuanjingyebuliwai,tashiyouyixiliexianghudulidanyouxianghuyilaideduligongjuzuchengde。zuijibenyeshizuihexindebufen,shikaifayuyan。muqianlaishuo,shimeiyouyitaozhuanmenmianxiangwulianwangyingyongkaifadeyuyande,zhebuliyutuidongwulianwangdedafazhan,yinci,bixuyaoxuanzeyizhongshihewulianwangtediandekaifayuyan。genjuwulianwangbenshendetezheng,shihewulianwangyingyongkaifadeyuyan,bixujubeixialietezheng:
- kaifayuyanbixushinenggoukuayingjianpingtaide。kuayingjianpingtaidehaochushi,zhenduimouyileigongnengxiangtonghuoleisidewulianwangshebeibianxiedeyingyongchengxu,keyizaizheyileiwulianwangshebeishangtongyong,erbuguanzheleishebeishibushitongyigechangjiade。biruzhenduizhinengshexiangtoueryan,A廠商的攝像頭個的配置,可能是ARM的CPU,USB接口,分辨率是1024*768等,而B廠商的攝像頭可能是基於x86的CPU,SPI接口。基於攝像頭編寫一個人臉識別程序,如果采用跨平台的編程語言,則針對A廠商設備編寫的應用程序,可以直接在B廠家的設備上使用。但是如果編程語言不是跨硬件平台的,比如C/C++語言,則針對A廠家的攝像頭編寫的應用程序,必須經過重新編譯(甚至還需要大量的修改)之後,才能在B廠家的攝像頭上運行。物聯網設備的碎片化特征,決定了開發語言必須是跨硬件平台的;
- 開(kai)發(fa)語(yu)言(yan)最(zui)好(hao)是(shi)麵(mian)向(xiang)對(dui)象(xiang)的(de)開(kai)發(fa)語(yu)言(yan)。麵(mian)向(xiang)對(dui)象(xiang)編(bian)程(cheng)方(fang)法(fa),可(ke)以(yi)讓(rang)程(cheng)序(xu)員(yuan)以(yi)更(geng)接(jie)近(jin)實(shi)際(ji)世(shi)界(jie)的(de)方(fang)式(shi)來(lai)理(li)解(jie)應(ying)用(yong)場(chang)景(jing),建(jian)立(li)程(cheng)序(xu)開(kai)發(fa)模(mo)型(xing),同(tong)時(shi)也(ye)可(ke)以(yi)大(da)大(da)加(jia)快(kuai)開(kai)發(fa)速(su)度(du)。對(dui)於(yu)大(da)型(xing)的(de)軟(ruan)件(jian),麵(mian)向(xiang)對(dui)象(xiang)思(si)想(xiang)可(ke)以(yi)簡(jian)化(hua)開(kai)發(fa)維(wei)護(hu)過(guo)程(cheng),降(jiang)低(di)開(kai)發(fa)成(cheng)本(ben)。在(zai)物(wu)聯(lian)網(wang)領(ling)域(yu),麵(mian)向(xiang)對(dui)象(xiang)編(bian)程(cheng)思(si)想(xiang)更(geng)有(you)價(jia)值(zhi)。因(yin)為(wei)我(wo)們(men)麵(mian)對(dui)的(de)是(shi)一(yi)個(ge)一(yi)個(ge)的(de)“物”,每個物體都可以抽象為程序開發領域的一個對象,通過不同對象(物)之間的消息交互,可以快速完成複雜應用係統的開發。要支持麵向對象的編程思想,麵向對象的編程語言是必須的;
- 開發語言最好能支持完善的“事件驅動”機製。與以人為中心的傳統軟件開發模式不同,物聯網時代的軟件,都是受“事件”驅動的。麵向物聯網的程序,大多數情況下處理的是一個一個的外部事件,根據外部事件做出響應。比如一個火警探測設備,會針對“探測到起火”等(deng)異(yi)步(bu)事(shi)件(jian),做(zuo)出(chu)對(dui)應(ying)的(de)動(dong)作(zuo)。物(wu)聯(lian)網(wang)軟(ruan)件(jian)開(kai)發(fa),很(hen)多(duo)情(qing)況(kuang)下(xia)就(jiu)是(shi)編(bian)寫(xie)一(yi)個(ge)一(yi)個(ge)的(de)時(shi)間(jian)處(chu)理(li)程(cheng)序(xu),並(bing)與(yu)事(shi)先(xian)定(ding)義(yi)好(hao)的(de)事(shi)件(jian)關(guan)聯(lian)在(zai)一(yi)起(qi)。這(zhe)樣(yang)一(yi)旦(dan)外(wai)部(bu)事(shi)件(jian)發(fa)生(sheng),則(ze)處(chu)理(li)程(cheng)序(xu)就(jiu)會(hui)被(bei)調(tiao)用(yong)。這(zhe)種(zhong)以(yi)“事件”為中心的物聯網編程方法,必須配以能夠支持完善事件驅動機製的開發語言。
分析目前常見的開發語言,我們認為JavaScript語言是最合適的。更詳細的分析過程,在後麵部分中會詳細描述。
除了編程語言之外,另外一個集成開發環境的核心部件,是“物聯網運行庫”(物聯網Runtime)。任何一種開發語言,都有一個與之對應的運行庫,比如針對C語言的libc,針對Java語言的J2SE/J2EE/J2ME等等配套庫。這些運行庫提供了開發過程中最常用的功能或函數,比如字符串操作,數字操作,I/O,數(shu)據(ju)庫(ku)訪(fang)問(wen),等(deng)等(deng)。物(wu)聯(lian)網(wang)開(kai)發(fa)領(ling)域(yu)也(ye)一(yi)樣(yang),必(bi)須(xu)有(you)一(yi)套(tao)物(wu)聯(lian)網(wang)運(yun)行(xing)庫(ku),來(lai)提(ti)供(gong)最(zui)常(chang)見(jian)的(de)物(wu)聯(lian)網(wang)開(kai)發(fa)功(gong)能(neng)支(zhi)持(chi)。下(xia)列(lie)與(yu)物(wu)聯(lian)網(wang)應(ying)用(yong)開(kai)發(fa)相(xiang)關(guan)的(de)功(gong)能(neng),應(ying)該(gai)在(zai)物(wu)聯(lian)網(wang)運(yun)行(xing)庫(ku)中(zhong)實(shi)現(xian):
- 支持物聯網應用開發的最基本操作,比如字符串操作,文件I/O,網絡功能,任務管理,內存管理,數據庫訪問等;
- 常chang見jian傳chuan感gan器qi的de訪fang問wen接jie口kou,比bi如ru針zhen對dui溫wen度du,濕shi度du,重zhong力li,加jia速su度du,光guang照zhao等deng等deng常chang見jian傳chuan感gan器qi設she計ji一yi套tao標biao準zhun的de訪fang問wen接jie口kou,然ran後hou把ba這zhe一yi套tao訪fang問wen接jie口kou,作zuo為wei物wu聯lian網wang運yun行xing庫ku的de一yi部bu分fen進jin行xing實shi現xian。對dui應ying用yong程cheng序xu來lai說shuo,隻zhi需xu要yao調tiao用yong這zhe些xie接jie口kou即ji可ke訪fang問wen對dui應ying的de傳chuan感gan器qi,而er不bu用yong關guan心xin傳chuan感gan器qi的de物wu理li參can數shu(廠商,接口類型,等等);
- zhichengwulianwangruanjiankaifadejibenbianchengjizhi,birushijianqudongjizhidekuangjia,mianxiangduixiangjizhideduixiangguanli,dengdeng。zhexiejibendejizhi,yexuyaozaiwulianwangyunxingkuzhongshixian,yingyongchengxuzhijietiaoyongjike;
- 公共安全服務。比如用戶或設備認證,訪問鑒權,數據通信加密/解密等。這些基本的安全服務,在幾乎每個物聯網應用場景中都會涉及到,因此作為公共服務,納入物聯網運行庫中進行實現;
- 物聯網協同框架提供的基本服務,也可以納入到物聯網運行庫中,暴露給應用程序。比如IoTivity協同框架的API,CoAP協議的API,都可以作為物聯網運行庫的一部分功能來實現;
- 其它與具體領域相關的公共服務,比如物聯網後台連接服務等,都可以作為領域特定物聯網運行庫的一部分來實現。
物聯網運行庫必須與物聯網開發語言強相關,且物聯網運行庫的大部分代碼,都是由物聯網開發語言實現的。如果以JavaScript作為物聯網開發語言,那麼與之對應的物聯網運行庫,大部分會以JavaScriptyuyanshixian。wulianwangyunxingkuyouliangzhongcunzaifangshi,yizhongshizuoweijichengkaifahuanjingdeyibufen,zaidaimabianyilianjiejieduan,bianyilianjieqicongwulianwangyunxingkuzhongxuanzeyuyingyongchengxuyouguandedaimapianduan,yuyingyongchengxubianyizaiyiqi,xingchengyigekeyunxingdechengxubao。zhezhongmoshixia,buxuyaojiazaiquanbuwulianwangyunxingku,erzhixuyaojiazaiyingyongchengxuxuyaodeyibufenjike。lingwaiyizhongcunzaifangshi,shizaiwulianwangcaozuoxitongdeneihezhong。zhezhongqingkuangxia,wulianwangyingyongchengxuyuwulianwangyunxingkushidulicunzaide,wulianwangyingyongchengxuzaiyunxingshi,caozuoxitonghuigenjuxuyao,linshijiazaiwulianwangyunxingku(或其中的一部分相關內容),支持物聯網應用程序的運行。
除(chu)此(ci)物(wu)聯(lian)網(wang)編(bian)程(cheng)語(yu)言(yan)和(he)物(wu)聯(lian)網(wang)運(yun)行(xing)庫(ku)之(zhi)外(wai),物(wu)聯(lian)網(wang)集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)還(hai)包(bao)括(kuo)代(dai)碼(ma)編(bian)輯(ji)工(gong)具(ju),編(bian)譯(yi)工(gong)具(ju),連(lian)接(jie)工(gong)具(ju),調(tiao)試(shi)工(gong)具(ju)等(deng)等(deng),這(zhe)是(shi)任(ren)何(he)一(yi)個(ge)軟(ruan)件(jian)開(kai)發(fa)環(huan)境(jing)都(dou)需(xu)要(yao)具(ju)備(bei)的(de)。需(xu)要(yao)注(zhu)意(yi)的(de)是(shi),JavaScript語yu言yan是shi解jie釋shi型xing語yu言yan,即ji代dai碼ma可ke以yi被bei語yu言yan解jie釋shi器qi直zhi接jie加jia載zai並bing分fen析xi運yun行xing,不bu需xu要yao事shi先xian編bian譯yi和he鏈lian接jie。在zai這zhe種zhong情qing況kuang下xia,就jiu不bu需xu要yao編bian譯yi鏈lian接jie等deng工gong具ju。但dan是shi調tiao試shi工gong具ju是shi必bi須xu的de。
物(wu)聯(lian)網(wang)應(ying)用(yong)開(kai)發(fa)語(yu)言(yan),物(wu)聯(lian)網(wang)運(yun)行(xing)庫(ku),以(yi)及(ji)對(dui)應(ying)的(de)編(bian)輯(ji),編(bian)譯(yi),連(lian)接(jie),調(tiao)試(shi)等(deng)工(gong)具(ju),組(zu)成(cheng)了(le)物(wu)聯(lian)網(wang)開(kai)發(fa)環(huan)境(jing)的(de)核(he)心(xin)部(bu)分(fen)。除(chu)此(ci)之(zhi)外(wai),為(wei)了(le)方(fang)便(bian)開(kai)發(fa),分(fen)享(xiang),交(jiao)流(liu)的(de)目(mu)的(de),一(yi)個(ge)完(wan)善(shan)的(de)開(kai)發(fa)社(she)區(qu),也(ye)是(shi)必(bi)須(xu)的(de)。開(kai)發(fa)者(zhe)可(ke)以(yi)在(zai)這(zhe)個(ge)社(she)區(qu)上(shang)共(gong)享(xiang)代(dai)碼(ma),討(tao)論(lun)技(ji)術(shu)問(wen)題(ti)等(deng)。更(geng)重(zhong)要(yao)的(de)是(shi),物(wu)聯(lian)網(wang)集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)可(ke)以(yi)與(yu)開(kai)發(fa)社(she)區(qu)緊(jin)密(mi)結(jie)合(he),可(ke)以(yi)把(ba)成(cheng)功(gong)的(de)代(dai)碼(ma)或(huo)有(you)價(jia)值(zhi)的(de)模(mo)塊(kuai),發(fa)布(bu)到(dao)社(she)區(qu)中(zhong)。物(wu)聯(lian)網(wang)開(kai)發(fa)環(huan)境(jing)可(ke)以(yi)直(zhi)接(jie)根(gen)據(ju)程(cheng)序(xu)員(yuan)的(de)需(xu)要(yao),從(cong)社(she)區(qu)中(zhong)下(xia)載(zai)代(dai)碼(ma),並(bing)納(na)入(ru)到(dao)項(xiang)目(mu)中(zhong)。
f) 物聯網領域應用概述
lingyuyingyongshimianxiangbutongwulianwanglingyu,tongguozongheliyongwulianwangcaozuoxitongdegecenggongnengmokuai,jiezhuwulianwangcaozuoxitongjichengkaifahuanjing,kaifachulaidekeyiwanchengyixianghuoduoxiangjutigongnengdeyingyongchengxu。yingyonglingyukeyigenjuxuyao,tiaoyongyigehuoquanbuwulianwangcaozuoxitongdegongneng。biru,ruguoshishixianyigetigongjiandanwangluolianjiedeshishiwendujiyingyong,zezhixuyaoliyongwulianwangcaozuoxitongdeneiheheTCP/IP協(xie)議(yi)棧(zhan)等(deng)外(wai)圍(wei)組(zu)件(jian)即(ji)可(ke)。但(dan)如(ru)果(guo)這(zhe)個(ge)溫(wen)度(du)計(ji)應(ying)用(yong)在(zai)智(zhi)慧(hui)農(nong)業(ye)解(jie)決(jue)方(fang)案(an)中(zhong),根(gen)據(ju)不(bu)同(tong)的(de)溫(wen)度(du),來(lai)實(shi)時(shi)調(tiao)節(jie)通(tong)風(feng)係(xi)統(tong),則(ze)必(bi)須(xu)要(yao)集(ji)成(cheng)物(wu)聯(lian)網(wang)係(xi)統(tong)框(kuang)架(jia),以(yi)使(shi)得(de)溫(wen)度(du)計(ji)與(yu)通(tong)風(feng)係(xi)統(tong)能(neng)夠(gou)建(jian)立(li)聯(lian)係(xi)並(bing)有(you)效(xiao)協(xie)同(tong)。更(geng)進(jin)一(yi)步(bu),如(ru)果(guo)希(xi)望(wang)溫(wen)度(du)計(ji)具(ju)備(bei)某(mou)些(xie)“智慧”degongneng,birunenggoushibierenmendeyuyinzhiling,nenggougenjuzhouweihuanjingdewenduheshidudengxinxi,panduanchushifouxiayu,bingcaiqushidangdongzuodeng,zebixuyaoyougonggongzhinengyinqingdezhichi。
zongzhi,lingyuyingyongshiwulianwangcaozuoxitongdezhijiefuwumubiao,taliyongwulianwangcaozuoxitongzhegejichuruanjianpingtai,binggenjujutilingyudetezheng,laiwanchengmouxiangjutidegongneng。youyulingyuyingyongshiyutedinglingyuqiangxiangguande,bushuyugonggongdepingtairuanjian,yinciwomenbubatazuoweiwulianwangcaozuoxitongdezuchengbufen。danshiweileshuominglingyuyingyongyuwulianwangcaozuoxitongdeguanxi,yeyiqibatatixianzailewulianwangcaozuoxitongdejiagoutuzhong。
g) 物聯網操作係統整體架構總結
綜合上麵的說明,可以把物聯網操作係統的框架做進一步細化,如下圖所示:

前麵講到,物聯網的三個主要特征分別是連接,協同和智能。物聯網的這個整體框架,是與這三個特征分別對應的,如下圖所示:

如果物聯網應用隻希望實現基本的連接功能,那麼隻要保留物聯網操作係統的內核,以及一兩個基本的外圍組件,比如TCP/IP協議棧,就足夠了。
- 如ru果guo物wu聯lian網wang應ying用yong需xu要yao實shi現xian協xie同tong功gong能neng,則ze必bi須xu包bao含han物wu聯lian網wang協xie同tong框kuang架jia這zhe個ge功gong能neng模mo塊kuai。通tong過guo引yin入ru物wu聯lian網wang協xie同tong框kuang架jia,可ke以yi實shi現xian包bao括kuo物wu聯lian網wang應ying用yong終zhong端duan設she備bei之zhi間jian的de交jiao互hu和he協xie同tong,物wu聯lian網wang設she備bei與yu物wu聯lian網wang運yun平ping台tai之zhi間jian的de交jiao互hu和he協xie同tong,甚shen至zhi包bao括kuo物wu聯lian網wang終zhong端duan設she備bei與yu智zhi能neng手shou機ji之zhi間jian的de協xie同tong等deng功gong能neng。
- 如ru果guo僅jin僅jin提ti供gong連lian接jie和he協xie同tong,並bing不bu能neng滿man足zu物wu聯lian網wang的de應ying用yong需xu求qiu,那na麼me物wu聯lian網wang的de領ling域yu應ying用yong可ke以yi把ba物wu聯lian網wang操cao作zuo係xi統tong的de智zhi能neng引yin擎qing利li用yong起qi來lai。一yi個ge典dian型xing的de場chang景jing就jiu是shi,用yong戶hu可ke以yi通tong過guo語yu音yin控kong製zhi物wu聯lian網wang設she備bei,可ke以yi與yu物wu聯lian網wang設she備bei進jin行xing對dui話hua。物wu聯lian網wang係xi統tong可ke以yi通tong過guo學xue習xi,來lai理li解jie用yong戶hu的de行xing為wei,並bing對dui用yong戶hu的de行xing為wei進jin行xing預yu測ce和he反fan饋kui。
可以看出,物聯網操作係統完整的解決了物聯網的三個功能性需求。
最zui後hou需xu要yao說shuo明ming的de是shi,雖sui然ran我wo們men把ba物wu聯lian網wang操cao作zuo係xi統tong分fen為wei了le內nei核he,外wai圍wei組zu件jian等deng四si個ge層ceng次ci,但dan是shi這zhe些xie層ceng次ci之zhi間jian,並bing不bu是shi嚴yan格ge的de涇jing渭wei分fen明ming,而er是shi具ju備bei一yi些xie依yi賴lai關guan係xi的de。比bi如ru外wai圍wei功gong能neng組zu件jian要yao依yi賴lai物wu聯lian網wang操cao作zuo係xi統tong內nei核he機ji製zhi,而er協xie同tong框kuang架jia又you依yi賴lai於yu某mou些xie外wai圍wei功gong能neng組zu件jian。同tong時shi,公gong共gong智zhi能neng引yin擎qing也ye需xu要yao依yi賴lai於yu內nei核he,外wai圍wei組zu件jian等deng來lai作zuo為wei基ji礎chu支zhi撐cheng。這zhe些xie不bu同tong的de功gong能neng層ceng次ci之zhi間jian,通tong過guo預yu先xian定ding義yi好hao的de接jie口kou,既ji能neng夠gou水shui乳ru交jiao融rong的de集ji成cheng在zai一yi起qi,形xing成cheng完wan成cheng的de解jie決jue方fang案an,又you可ke以yi根gen據ju應ying用yong場chang景jing的de需xu求qiu,隻zhi保bao留liu其qi中zhong的de一yi個ge或huo幾ji個ge部bu分fen,而er仍reng然ran可ke以yi整zheng齊qi劃hua一yi。同tong時shi,集ji成cheng開kai發fa環huan境jing提ti供gong統tong一yi的deAPI,使整個係統表現出一致的風格。
i) 常見物聯網操作係統架構分析
i. Google Brillo物聯網操作係統分析
下麵列舉幾個比較典型的物聯網操作係統,來進一步說明物聯網操作係統的功能和架構。首先看一下業界比較有影響力的Brillo操作係統,這是Google發布的專門麵向物聯網應用的操作係統。Brillo的架構如下:

可見,Brillo與Android一樣,仍然使用Linux內核作為其操作係統內核。這樣Linux在物聯網領域應用的一些弊端,就被完整的繼承到了Brillo中。比如,Linux內核對運行內存的要求較高,同時Linux還需要CPU硬件支持MMU(內存管理單元)功能,等等。這樣就間接導致Brillo的運行內存要求較高,按照官方說法,要至少32M內存。同時要求CPU支持MMU功能。這樣大量的低端CPU或MCU,比如STM32係列,就無法運行Brillo,因為這些CPU的片上內存一般不超過1M,同時一般不提供MMU功能。由於這些原因,大大限製了Brillo的應用範圍。
在Linux內核之上,Brillo保留了Android操作係統裏麵的一個硬件訪問層(HAL,Hardware Access Layer)。zhegecengcidezhuyaogongneng,jiushiduidicengdeyingjianjinxingtongyidechouxiang,yigengjiayouhaoyizhidefangshi,tigonggeiyingyongchengxufangwen。conggongnengshangshuo,zheyicengruanjianbingwumingxiandejiazhi,danshiqijianhualeduiyingjiandecaozuo,geichengxukaifadailaijiaodadebianli。anzhaoyibanderuanjianfencengguize,zheyicengruanjianyinggaihaishishuyucaozuoxitongneihedeyibufen,yinweitabingmeiyoutigongewaidefujiagongneng,zaidaimaliangshang,yuneihexiangbi,yefeichangshao,zaimouxieqingkuangxiashenzhikeyihulvediao。yinci,zaizhanshishang,yinggaiyucaozuoxitongneihefangzaiyiqi。danshiGoogle為了區分這一層軟件是來源於Android係統,而不是Linux,因此把它單獨列出來了。
再往上,就是支撐操作係統運行的一些輔助功能組件了。主要有在線更新(OTA Updates),安全相關的一些組件和機製,以及在線數據分析和性能測量等。在線更新機製,可以使運行Brillo操作係統的物聯網設備,在運行過程中就可以更新軟件,而不用中斷運行。這個特性是非常有價值的,Brilloshiyigefuzadexitong,qibanbengengdiehebudingfabubidingfeichangpinfan。ruguobutigongzaixiangengxingongneng,meifabuyigexindebanbenhebuding,douxuyaoxianchanggengxinwulianwangshebei,xianranshibukecaozuode。yinciGoogle設計了這個特性來支撐在線實時軟件更新功能。隻要與Brillo的後台服務器連接上,Brillohuizidongjianzhagengxin,binganpaigengxin,erbuhuiyingxiangshebeidezhengchangyunxing。eranquanjizhizetigongleshebeirenzheng,shujujiamidenggongneng,zheshirenhewangluoliujiejuefanganbixuyaotigongdejizhi,zaihoumianbufenhuixiangxijieshao。erzaixianxingnengtongjihefenxigongneng,zekeyibangzhuyonghushishizhakanhefenxishebeizhuangtai,xingneng,xiaoxishuliangdengshuju,weishebeiweihurenyuantigongyigejichudeguanlipingtai。kaifazhekeyigenjuxuyao,xuanzeqiyonghuoguanbizhexiewaiweifuzhugongneng。
再上麵,就是Weave框架了。Brillo操作係統內嵌了對Weave的支持,把Weave作為支撐物聯網應用的主要功能模塊。但是具有諷刺意味的是,Weave並沒有把Brillo作為唯一的底層操作係統,反而一直強調“跨平台,可移植”等特性。可見,在Google內部,Weave要更強勢一些,Brillo的定位或者價值,仍然存疑。
從架構上看,Brillo是完全符合我們前麵提到的物聯網操作係統參考架構的。比如Linux內核和Android HAL組zu合he到dao一yi起qi,就jiu對dui應ying物wu聯lian網wang操cao作zuo係xi統tong內nei核he這zhe一yi層ceng。在zai線xian升sheng級ji,安an全quan機ji製zhi,性xing能neng測ce量liang和he數shu據ju分fen析xi等deng這zhe些xie輔fu助zhu功gong能neng組zu件jian,對dui應ying於yu外wai圍wei功gong能neng組zu件jian這zhe一yi層ceng。Weave則對應於物聯網協同框架這一層。如下圖所示:

需要說明的是,在Google提供的官方架構圖中,Weave模塊是與OTAUpdates等外圍輔助模塊位於同一個層次的。這樣無法反映出Weave和Brillo之間的關係。Weave是依賴於Brillo操作係統而運行的,Weave又不屬於Brillo操作係統的範疇。因此正確的表示方法應該是把Weave放在Brillo上麵,既體現了依賴邏輯,又體現了這兩者相互獨立的關係。不論哪種處理方式,都不會帶來理解上的偏差。
ii. Ostro物聯網操作係統分析
Ostro項目是由Intel主導創建的一個開源物聯網操作係統項目,它的目的是開發一個針對物聯網應用的專門操作係統,這個操作係統的名字也叫做Ostro。它是基於Linux內核進行裁剪,並針對物聯網領域的智能設備進行定製,專門應用於物聯網的操作係統。
它可以被安裝在USB存儲杆或者SD卡上,可以直接啟動物聯網硬件設備。當然,物聯網應用開發者也可以根據自己的需要,對Ostro進行二次裁剪,自定義一個符合自身應用場景的全新內核。這個特征完全符合物聯網操作係統的要求。
它所宣稱的最主要特征,包括可裁剪,安全,豐富的開發環境,以及麵向物聯網的豐富組件和服務支持等。主要特點如下:
- 基於Linux操作係統進行裁剪,專門用於IoT領域;
- 支持Intel的Quark和Intel Atom處理器;
- 支持Node.js,Python,Java和C/C++等語言進行應用程序開發;
- 程序員可通過RestFUL API,對設備狀態進行查詢。支持符合OCF標準的設備發現機製;
- 支持符合OCF標準的JavaScript API;
- 安全特性,比如可信啟動,應用程序內存隔離,權限管理,OS鏡像完整性驗證等機製;
- 豐富的通信技術支持,包括Bluetooth*/BLE, WiFi, 6LowPAN, 以及CAN bus等;
- 支持VirtualBox虛擬機;
- 可以基於Yocto工具鏈進行編譯開發和裁剪。
下圖示意了Ostro物聯網操作係統的整體架構:

下麵按照從上往下的順序,對Ostro的各個層次做簡要介紹。
IoT應用程序:這個層次包含了所有使用Ostro編程接口所開發的物聯網應用程序。當前的Ostro版本並沒有開發任何特定的應用程序實例,僅僅提供了如何開發應用程序的指導以及一些簡單的代碼片段。隨著Ostro的發展,或許會有針對特定典型場景的物聯網應用程序,比如智慧家庭應用程序,被納入到這個層次中發布。
編程接口:編程接口是Ostro提供給應用程序開發者使用的,用於開發各種各樣的物聯網應用程序。當前來說,Ostro提供了多種多樣的編程接口供程序員根據自己的喜好和特定應用場景調用。主要有:
- Java和Python編程接口,物聯網應用程序開發者可以采用Python和Java語言,開發特定的應用程序。Ostro提供了常用的支持類庫;
- Node.JS編程接口。Ostro提供了Node.JS的運行期支持,以及特定的一些JavaScript API(以Node.JS模塊方式提供)。這些Java Script API涵蓋了相對廣泛的物聯網應用場景,比如包含了開放連接基金會(OCF)定義的API接口。這樣就非常便於物聯網應用程序開發者直接使用這些API,調用IoTivity等協同框架的功能;
- Soletta編程接口。Soletta是一個開源的物聯網應用程序開發框架,它提供了一些常用的物聯網應用開發庫,便於程序員方便快速的開發物聯網應用程序。Soletta是一種編程框架,可以采用傳統的C語言進行應用程序開發,也可以采用一種叫做“基於流的編程語言”(Flow-based Programming)來進行物聯網應用的開發。
總之,Ostra提供了相對豐富的變成框架,供應用開發者選擇。
物聯網協同框架:Ostro內置了對IoTivity的支持。IoTivity 是(shi)一(yi)個(ge)開(kai)源(yuan)的(de)軟(ruan)件(jian)框(kuang)架(jia),用(yong)於(yu)無(wu)縫(feng)的(de)支(zhi)持(chi)設(she)備(bei)到(dao)設(she)備(bei)的(de)互(hu)聯(lian),以(yi)及(ji)人(ren)與(yu)設(she)備(bei)的(de)簡(jian)便(bian)互(hu)聯(lian)。其(qi)主(zhu)要(yao)是(shi)為(wei)了(le)滿(man)足(zu)物(wu)聯(lian)網(wang)開(kai)發(fa)的(de)需(xu)要(yao),構(gou)建(jian)物(wu)聯(lian)網(wang)的(de)生(sheng)態(tai)係(xi)統(tong),使(shi)得(de)設(she)備(bei)和(he)設(she)備(bei)之(zhi)間(jian)可(ke)以(yi)安(an)全(quan)可(ke)靠(kao)的(de)連(lian)接(jie)。而(er)IoTivity 通過提供一係列框架和服務來加速設備的互聯應用開發。該項目由 Open Interconnect Consortium (OIC) 組織讚助,相當於是 OIC 標準的一個參考實現。在本書的第二部分中,有詳細的描述。
Ostro服務:Ostro服務主要是指係統級的一些進程或線程,這些進程或線程負責管理網絡連接,加載必要的支撐服務,以及提供進程間通信(IPC)支持等。在Ostro操作係統中,保留了大部分Linux操作係統所支持的systemd,D-Bus等。
除此之外,在線軟件更新也是Ostro提(ti)供(gong)的(de)基(ji)本(ben)服(fu)務(wu)之(zhi)一(yi)。這(zhe)是(shi)專(zhuan)門(men)為(wei)物(wu)聯(lian)網(wang)應(ying)用(yong)所(suo)提(ti)供(gong)的(de)一(yi)個(ge)基(ji)本(ben)服(fu)務(wu),可(ke)以(yi)快(kuai)速(su)的(de)完(wan)成(cheng)物(wu)聯(lian)網(wang)設(she)備(bei)的(de)軟(ruan)件(jian)更(geng)新(xin),而(er)且(qie)隻(zhi)需(xu)要(yao)最(zui)小(xiao)的(de)軟(ruan)件(jian)下(xia)載(zai)量(liang),隻(zhi)需(xu)要(yao)重(zhong)新(xin)啟(qi)動(dong)必(bi)要(yao)的(de)物(wu)聯(lian)網(wang)設(she)備(bei)即(ji)可(ke),而(er)不(bu)需(xu)要(yao)重(zhong)新(xin)啟(qi)動(dong)所(suo)有(you)的(de)物(wu)聯(lian)網(wang)設(she)備(bei)。
在(zai)線(xian)軟(ruan)件(jian)更(geng)新(xin)是(shi)確(que)保(bao)物(wu)聯(lian)網(wang)可(ke)管(guan)理(li)可(ke)維(wei)護(hu)的(de)核(he)心(xin)機(ji)製(zhi),通(tong)過(guo)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)與(yu)後(hou)端(duan)雲(yun)平(ping)台(tai)的(de)協(xie)同(tong),使(shi)得(de)物(wu)聯(lian)網(wang)設(she)備(bei)的(de)軟(ruan)件(jian)始(shi)終(zhong)保(bao)持(chi)在(zai)最(zui)新(xin)和(he)最(zui)安(an)全(quan)的(de)狀(zhuang)態(tai)。
Ostro基本庫:Ostro基本庫包括隨Linux內核一起發行的最基本運行庫,比如最常用的C運行庫等。當然,Ostro可以根據需要,動態的擴展基本庫的範圍。
Linux內核:Ostro的內核就是通用的Linux內核,它包括了最基本的驅動程序支持,硬件適配支持,網絡支持,文件係統以及設備管理機製等。為了適應物聯網的應用,Ostro對Linux內核做了一些微調,使得內核可以支持更多的傳感器(Sensor),能夠支持更多的連接類型,比如藍牙/WiFi/Zigbee等等。
但是由於Linux內核本身的複雜性和不可分割性,使得Ostro物聯網操作係統很難具備物聯網操作係統所應該具備的高度伸縮性要求。
從上麵的分析中可以看出,Ostro物聯網操作係統與我們定義的物聯網操作係統分層模型基本上是對應的,下圖示意了這種對應關係:

iii. HelloX物聯網操作係統分析
HelloX是由國內操作係統愛好者開發的完全開源物聯網操作係統,下圖示意了HelloX的整體架構:

從整體結構上可以看出,HelloX操作係統也符合物聯網操作係統的分層結構。最下方是驅動程序層,實現了大多數常見硬件的驅動支持,包括USB,以太網,SPI/UART等等。嚴格來說,驅動程序層應該屬於內核的一部分。在HelloX的實現中,為了突出HelloX豐富的驅動支持的特點,把驅動程序單獨拿出來,作為一個層次展示。
在驅動層之上,是內核層。內存管理,任務調度等機製,都是在內核中實現的。與其它物聯網操作係統基於Linux內核定製的思路不同,HelloXdeneiheshigenjuwulianwangdetezheng,wanquanquanxinkaifade。neihezhonggemokuaizhijianshisongouhede,keyigenjuxuyao,linghuodecaijianhuozhezengjiarenheneihemokuai,zheyangjiuquebaoleneihedekeshensuoxing,nenggoumanzuduozhongduoyangdesuipianhuayingjianxuqiu。yekeyigenjuxuyao,tihuanneihezhongdequeshengmokuaihuozhesuanfa,birukeyicaiyongzidingyiderenwutiaodusuanfa,tihuanneihezhongqueshengdejiyuyouxianjilunxundetiaodusuanfa。yekeyicaiyonggengjiashishideneicunfenpeisuanfa(比如固定尺寸鏈表法),來替換內核中缺省的空閑鏈表內存分配算法,等等。對於MMU的支持,HelloX也是作為可選模塊來實現,裁剪掉MMU功能,不會對係統中的其它模塊產生任何功能上的影響(但是內存保護,虛擬內存等機製就不能用了)。
在內核層之上,是外圍組件層。HelloX提供了包括網絡,文件係統,係統調用等在內的多種多樣的外圍組件,供物聯網應用程序開發調用。
目前的HelloX,移植IoTivity物聯網協同框架,作為自己的協同框架。未來根據需要,HelloX會開發更加靈活的物聯網協同框架,與HelloX捆綁使用。
基於這些基本組件和功能,可以基於HelloX操作係統實現廣泛的物聯網應用,比如家庭網關,智能攝像頭,智慧家庭中的家電設備,抄表,e-Health等。目前HelloX已經實現了同多個物聯網雲平台的對接和集成。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻




