物聯(lián)網(wǎng)大致可分為感知層、網(wǎng)絡(luò )層、設備管理層、應用層等四個(gè)層次。其中最能體現物聯(lián)網(wǎng)特征的,就是物聯(lián)網(wǎng)的感知層。感知層由各種各樣的傳感器、協(xié)議轉換網(wǎng)關(guān)、通信網(wǎng)關(guān)、智能終端等終端設備組成。這些終端大部分都是具備計算能力的微型計算機。運行在這些終端上最重要的系統軟件就是所謂的物聯(lián)網(wǎng)操作系統。對于物聯(lián)網(wǎng)發(fā)展而言,“碎片化”是主要的問(wèn)題,其中芯片、傳感器、通信協(xié)議、應用場(chǎng)景千差萬(wàn)別。比如無(wú)線(xiàn)通信標準,有Wi-Fi、BLE、ZigBee、NFC、Thread、NB-IoT、LoRa、Sigfox、Gprs、4G等。很明顯,技術(shù)方案不統一,體系結構不一致,阻礙了物聯(lián)網(wǎng)的發(fā)展,也局限了物聯(lián)網(wǎng)的互聯(lián)互通。但從已有產(chǎn)品和宣傳信息來(lái)看,其基本的技術(shù)特征已初顯端倪。概括來(lái)講,物聯(lián)網(wǎng)操作系統應具有以下技術(shù)特征: 1、跨硬件平臺 物聯(lián)網(wǎng)應用最重要的是必須跨硬件平臺運行,即編寫(xiě)的物聯(lián)網(wǎng)應用程序,能夠在多種不同的目標硬件設備上運行,而不用重新修改甚至編譯應用程序。如果開(kāi)發(fā)語(yǔ)言不是跨硬件平臺的,只針對一種硬件平臺開(kāi)發(fā),當面對硬件配置各不相同和物聯(lián)網(wǎng)設備的千差萬(wàn)別時(shí),就需要針對不同的CPU類(lèi)型,不同的硬件配置,分別進(jìn)行開(kāi)發(fā)和部署,這顯然是無(wú)法滿(mǎn)足物聯(lián)網(wǎng)硬件碎片化特征的需要。由于物聯(lián)網(wǎng)設備硬件配置千差萬(wàn)別,硬件與軟件不匹配則導致的錯誤會(huì )大大增加。而采用跨硬件平臺開(kāi)發(fā)語(yǔ)言的好處,就是可以限制錯誤范圍,不會(huì )因為應用程序層面的錯誤,而導致整個(gè)系統崩潰。安卓系統就是采用去跨硬件平臺的構架,才能夠在不同硬件配置的手機上運行相同的應用程序,大大降低了應用程序的開(kāi)發(fā)工作量。 2、面向對象機制 所謂的面向對象,就是在編程的時(shí)候盡可能去模擬真實(shí)的現實(shí)世界,按照現實(shí)世界中的邏輯去處理問(wèn)題,分析問(wèn)題,更容易解決大型的復雜的業(yè)務(wù)邏輯。在物聯(lián)網(wǎng)領(lǐng)域,面向對象編程方法,可以讓程序員以更接近現實(shí)世界的方式來(lái)理解應用場(chǎng)景,建立程序開(kāi)發(fā)模型,把每個(gè)物體都可以抽象為程序開(kāi)發(fā)領(lǐng)域的一個(gè)對象,通過(guò)不同對象之間的消息交互,可以快速完成復雜的應用系統開(kāi)發(fā),同時(shí)也可以簡(jiǎn)化開(kāi)發(fā)維護過(guò)程,降低開(kāi)發(fā)成本,加快開(kāi)發(fā)速度。相比傳統的模塊化編程,面向對象編程更適合物聯(lián)網(wǎng)應用開(kāi)發(fā),也更具有價(jià)值。 3、高效的開(kāi)發(fā)方式 C和C++都更接近底層設計,當你在需要對硬件進(jìn)行非常精細的監測和控制時(shí),他們都是很好的選擇,但這也意味著(zhù)所寫(xiě)出的代碼移植性比較差。而Java是一種面向對象的開(kāi)發(fā)語(yǔ)言,擁有非常好的移植性,編譯器中幾乎不存在任何硬件依賴(lài)性。為了實(shí)現對特定硬件部分的精準控制,Java需要借助硬件所支持的庫并從中調用通用代碼。從經(jīng)濟角度上看,Java是一門(mén)非常強大的語(yǔ)言,對Java代碼的一次投入可以在多個(gè)不同的平臺收獲果實(shí)。Java同時(shí)也是當前人氣最高的主流編程語(yǔ)言之一,被應用于成千上萬(wàn)計算機科學(xué)與電子工程技術(shù)項目當中。因此懂得Java的人才可以從市場(chǎng)上輕松找到。 4、開(kāi)發(fā)組件豐富 物聯(lián)網(wǎng)操作系統因為是對物應用場(chǎng)景的感知和控制,感知的方式千差萬(wàn)別,應用場(chǎng)景各不相同,同時(shí)哪怕最簡(jiǎn)單的物聯(lián)網(wǎng)設備也要具無(wú)線(xiàn)和有線(xiàn)的聯(lián)網(wǎng)功能,網(wǎng)絡(luò )通信協(xié)議的多樣性,云端接入的復雜性,都要求物聯(lián)網(wǎng)操作系統具備豐富組件支持,把常用的傳感器和聯(lián)網(wǎng)協(xié)議和云接入方案,全部按照組件的形式開(kāi)放出來(lái),使用者不需要關(guān)心太多的物理層功能,專(zhuān)心進(jìn)行業(yè)務(wù)邏輯處理,加快物聯(lián)網(wǎng)產(chǎn)品上市速度。 5、占用極低的硬件資源 物聯(lián)網(wǎng)是一個(gè)數以千億計設備總量的市場(chǎng),他的特點(diǎn)就是品種多,數量多,對硬件成本要求苛刻,這就要求物聯(lián)網(wǎng)操作系統運行的硬件平臺不能太高,要平衡開(kāi)發(fā)效率和硬件成本的關(guān)系。 ![]() 物聯(lián)網(wǎng)碎片化特點(diǎn)必將導致物聯(lián)網(wǎng)操作系統的多樣性。短時(shí)間內,很難形成像智能手機中Android和ios兩家獨占市場(chǎng)的局面,以下簡(jiǎn)單介紹幾款物聯(lián)網(wǎng)操作系統。 1. AliOS Things 面向IoT領(lǐng)域的輕量級物聯(lián)網(wǎng)嵌入式操作系統,搭建云端一體化IoT基礎設備!』Linux平臺,提供MCU虛擬化環(huán)境,開(kāi)發(fā)者直接在Linux平臺上開(kāi)發(fā)硬件無(wú)關(guān)的IoT應用和軟件庫,使用GDB/Valgrind/SystemTap等PC平臺工具診斷開(kāi)發(fā)問(wèn)題。 2. Andorid Things 作為 Andorid 系統的一個(gè)分支版本,類(lèi)似于可穿戴和智能手表用的Andorid Wear。使用一種名為 Weave的通信協(xié)議,實(shí)現設備與云端相連,并且與谷歌助手等服務(wù)交互,面向所有Java開(kāi)發(fā)者。該操作系統能夠支持一系列物聯(lián)網(wǎng)設備的計算平臺,其中包括英特爾Edison 平臺,NXP公司的Pico平臺,以及“黑莓派3”。 3. RUFF 采用JavaScript語(yǔ)言,專(zhuān)為硬件開(kāi)發(fā)而設計,兼容多個(gè)平臺的運行環(huán)境,不僅支持嵌入式Linux,還支持MCU單片機領(lǐng)域等。擁有大量的開(kāi)發(fā)API接口,也能在Rapsberry Pi等常見(jiàn)開(kāi)發(fā)板上運行。 4. mbed OS 由ARM開(kāi)發(fā),專(zhuān)門(mén)為運行ARM處理器的物聯(lián)網(wǎng)設備而設計。包含了C++應用程序網(wǎng)絡(luò ),公司也提供其他開(kāi)發(fā)工具和相關(guān)的設備服務(wù)器。默認情況下,mbed OS是事件驅動(dòng)的單線(xiàn)程架構,而非多線(xiàn)程(實(shí)時(shí)操作系統)環(huán)境。 5. 鈦極OS 該系統基于Java語(yǔ)言進(jìn)行嵌入式開(kāi)發(fā),將Java虛擬機移植到低資源MCU芯片中,由內核掌管底層硬件資源,實(shí)現軟硬件分離,伸縮性非常強,可以在編譯時(shí),裁剪掉不需要的模塊,來(lái)匹配低端硬件的需求。不僅可以更好的擴大物聯(lián)網(wǎng)應用程序的運行范圍,而且能夠降低開(kāi)發(fā)效率和開(kāi)發(fā)難度,快速推動(dòng)物聯(lián)網(wǎng)生態(tài)圈發(fā)展。 ![]() 從技術(shù)層面看,物聯(lián)網(wǎng)操作系統仍處在研發(fā)階段,至今尚無(wú)一個(gè)比較完善的可商業(yè)應用的物聯(lián)網(wǎng)標準操作系統,物聯(lián)網(wǎng)時(shí)代最大的問(wèn)題之一就在于溝通,不同設備之間不同標準的溝通、軟件與硬件的溝通。而采用Java來(lái)開(kāi)發(fā)智能硬件的鈦極OS實(shí)現了這種溝通的可行性,并保證了溝通的實(shí)效性和高效化。全球又有大量的Java開(kāi)發(fā)者,根據Oracle和ARM估計,全球大約有45萬(wàn)的嵌入式軟件工程師,而IT業(yè)約有900萬(wàn)的Java開(kāi)發(fā)人員。這無(wú)疑是給物聯(lián)網(wǎng)行業(yè)帶來(lái)了巨大的增長(cháng)潛力。 |