新聞中心
小編給大家分享一下怎樣選擇一個(gè)物聯(lián)網(wǎng)項(xiàng)目的語(yǔ)言,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
要選擇物聯(lián)網(wǎng)項(xiàng)目使用的語(yǔ)言,您首先必須了解物聯(lián)網(wǎng)生態(tài)系統(tǒng)。這一點(diǎn)非常重要,因?yàn)椴煌?jí)別的軟件和固件所使用的處理器架構(gòu)和資源相差很大。
首先,對(duì)用于軟件開發(fā)的物聯(lián)網(wǎng)設(shè)備進(jìn)行一個(gè)簡(jiǎn)單的分類
物聯(lián)網(wǎng)設(shè)備分類
位于底部的是邊緣設(shè)備。這些設(shè)備和周圍的世界互動(dòng),代表了可穿戴和其他互聯(lián)設(shè)備。這些設(shè)備采集并創(chuàng)造數(shù)據(jù),通過(guò)致動(dòng)器與世界互動(dòng)。
中間的級(jí)別是網(wǎng)關(guān)。這些設(shè)備屬于中間設(shè)備,用于將數(shù)據(jù)傳輸?shù)狡渌到y(tǒng),以進(jìn)行處理。網(wǎng)關(guān)也可以從許多邊緣設(shè)備中收集數(shù)據(jù),提供一條連接終端設(shè)備的控制路徑。
位于頂部的是云。云是一系列可擴(kuò)展計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)資源,能夠?qū)K端設(shè)備和網(wǎng)關(guān)收集的數(shù)據(jù)進(jìn)行存儲(chǔ)、分析和可視化處理。
3個(gè)級(jí)別的示例包括面向終端設(shè)備的英特爾Galileo開發(fā)板和英特爾Curie計(jì)算模塊、網(wǎng)關(guān)級(jí)別的英特爾物聯(lián)網(wǎng)網(wǎng)關(guān)和云級(jí)別的WindRiver*Helix*LabCloud。
由于物聯(lián)網(wǎng)生態(tài)系統(tǒng)分為多個(gè)層面,現(xiàn)在讓我們來(lái)了解每個(gè)級(jí)別所使用的語(yǔ)言。
終端設(shè)備
以可穿戴設(shè)備為代表的終端設(shè)備,由于受到空間和功率的限制,通常采用資源受限的嵌入式系統(tǒng)。如圖2所示,英特爾Curie模塊和紐扣差不多大,由硬幣大小的小型電池供電。由于英特爾Curie模塊資源極少,適合它的常用語(yǔ)言包括匯編語(yǔ)言和C語(yǔ)言。盡管C語(yǔ)言是嵌入式固件開發(fā)的通用語(yǔ)言,但有時(shí)仍需將盡可能多的指令寫入設(shè)備。在這種情況下,匯編語(yǔ)言是一個(gè)絕佳的選擇。其缺點(diǎn)是需要較長(zhǎng)的開發(fā)時(shí)間,時(shí)間長(zhǎng)短取決于您對(duì)該語(yǔ)言的熟練程度。
英特爾Curie計(jì)算模塊
英特爾Edison開發(fā)板是終端設(shè)備的另一個(gè)例子(見圖3),您可以將它用于可穿戴設(shè)備或通用物聯(lián)網(wǎng)產(chǎn)品中。和集成了一臺(tái)微控制器的英特爾Curie模塊不同,英特爾Edison開發(fā)板采用雙核英特爾凌動(dòng)處理器,計(jì)算能力顯著增強(qiáng)(和SD卡一樣大)。由于英特爾Edison開發(fā)板運(yùn)行Linux*,C語(yǔ)言是比較理想的選擇,但是您也可以使用其它語(yǔ)言,包括Python*和Node.js*。Python*適合快速構(gòu)建原型和產(chǎn)品部署,但是性能低于本地編譯的C語(yǔ)言。如果您使用英特爾XDK,可以利用Node-RED*運(yùn)行Node.js*(Java*)。Node-RED*幫助您輕松構(gòu)建和運(yùn)行數(shù)據(jù)流,提供了一種圖形開發(fā)方法。運(yùn)用Java*語(yǔ)言知識(shí)能使該環(huán)境變得更強(qiáng)大。
英特爾Edison開發(fā)板
網(wǎng)關(guān)
在網(wǎng)關(guān)級(jí)別,來(lái)源于各種設(shè)備的數(shù)據(jù)通過(guò)若干總線傳輸至網(wǎng)關(guān),進(jìn)行數(shù)據(jù)傳送和分析,因此,網(wǎng)關(guān)的計(jì)算能力顯著提升。由于計(jì)算性能卓越,網(wǎng)關(guān)可以運(yùn)行更強(qiáng)大的語(yǔ)言或解釋性語(yǔ)言,進(jìn)一步提升性能。
英特爾物聯(lián)網(wǎng)網(wǎng)關(guān)提供各種設(shè)計(jì),從單個(gè)芯片上的單核英特爾Quark系統(tǒng),到四核英特爾凌動(dòng)或英特爾酷睿處理器(見圖4)。這些平臺(tái)支持WindRiverLinux*7或SnappyUbuntu*Core(Linux*)。
一臺(tái)英特爾物聯(lián)網(wǎng)網(wǎng)關(guān)
除了C語(yǔ)言和C語(yǔ)言(后者適合更高性能的設(shè)備),您還可以使用Python*,但是需要更高的執(zhí)行速度。還可以使用基于Java的Node.js*,后者非常適合創(chuàng)建或連接至web服務(wù)和云服務(wù)。
云級(jí)別的計(jì)算能力顯著增強(qiáng),語(yǔ)言選擇也更為豐富。云的內(nèi)部部署若干臺(tái)服務(wù)器,這些服務(wù)器采用高能效英特爾凌動(dòng)和英特爾酷睿處理器,以及具備高計(jì)算密度的英特爾至強(qiáng)處理器。云內(nèi)部編寫的應(yīng)用滿足各種需求,同樣地,云內(nèi)部使用的語(yǔ)言也有很大的差異。您可以利用大數(shù)據(jù)框架(如ApacheHadoop*)來(lái)處理物聯(lián)網(wǎng)邊緣設(shè)備產(chǎn)生的海量數(shù)據(jù)?;贖adoop的查詢語(yǔ)言(如ApacheHive*)支持借助類似結(jié)構(gòu)化查詢語(yǔ)言(SQL)的查詢對(duì)大型數(shù)據(jù)集進(jìn)行計(jì)算。ApachePig*有助于PigLatin腳本語(yǔ)言對(duì)大型數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。
數(shù)據(jù)分析和可視化處理也是云內(nèi)部的關(guān)鍵應(yīng)用,受多種編程語(yǔ)言支持。R語(yǔ)言是用于統(tǒng)計(jì)計(jì)算和可視化的常見語(yǔ)言和環(huán)境,最近日益流行。Julia語(yǔ)言也是不錯(cuò)的選擇。Julia是一種高性能的動(dòng)態(tài)語(yǔ)言,在設(shè)計(jì)時(shí)充分考慮了云計(jì)算。
您可以使用幾種語(yǔ)言創(chuàng)建web服務(wù),發(fā)揮云內(nèi)部數(shù)據(jù)的價(jià)值,這些語(yǔ)言包括Java*、Node.js*以及服務(wù)器端和客戶端Java*。由于云內(nèi)部存在眾多框架和支持語(yǔ)言(如Rails和Ruby),因此,云級(jí)別的語(yǔ)言選擇非常豐富,且日益擴(kuò)大
以上是“怎樣選擇一個(gè)物聯(lián)網(wǎng)項(xiàng)目的語(yǔ)言”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁(yè)名稱:怎樣選擇一個(gè)物聯(lián)網(wǎng)項(xiàng)目的語(yǔ)言-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://fisionsoft.com.cn/article/jodpo.html