亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JavaScript 的邊緣計(jì)算架構(gòu)研究

        2020-01-06 06:26:50張金輝考書健
        設(shè)備管理與維修 2019年21期
        關(guān)鍵詞:數(shù)據(jù)庫智能設(shè)備

        張金輝,考書健

        (1.上海同磊土木工程技術(shù)有限公司,上海 200092;2.同濟(jì)大學(xué),上海 200092)

        0 引言

        鑒于互聯(lián)網(wǎng)的連接速率和連接可靠性,物聯(lián)網(wǎng)傳感器采集的數(shù)據(jù)無法完全依賴云端服務(wù)器來及時(shí)處理,因此有必要在傳感器的附近配置小巧、省電、廉價(jià)、有限處理能力的智能末端系統(tǒng),將那些時(shí)延敏感應(yīng)用就近在這些末端系統(tǒng)解決,并及時(shí)反饋給用戶,亦可降低云中心服務(wù)器處理和網(wǎng)絡(luò)通信的負(fù)荷[1-2],這就是新近被提出的邊緣計(jì)算(也有稱之為霧計(jì)算)。

        物聯(lián)網(wǎng)智能末端系統(tǒng)要整合其內(nèi)部的、外部的各類采集器和傳感器。各廠家有各自的驅(qū)動,各類采集器和傳感器有各自的應(yīng)用特點(diǎn),如何實(shí)現(xiàn)“融會貫通”?新的采集器和傳感器層出不窮,新的末端應(yīng)用也與時(shí)俱進(jìn),系統(tǒng)開發(fā)與發(fā)布如何跟上?這是物聯(lián)網(wǎng)邊緣計(jì)算、及其產(chǎn)業(yè)發(fā)展需要解決的關(guān)鍵問題。

        邊緣計(jì)算的稱謂較為寬泛,涉及到具體傳感器及采集系統(tǒng),下文稱物聯(lián)網(wǎng)智能末端系統(tǒng)可能更為具象。

        1 技術(shù)研究

        從整個(gè)物聯(lián)網(wǎng)系統(tǒng)來看,物聯(lián)網(wǎng)智能末端系統(tǒng)一般處于整個(gè)物聯(lián)網(wǎng)系統(tǒng)處理信息功能的最末端。它一頭連接著采集器和傳感器,或者有些采集器和傳感器本身就在物聯(lián)網(wǎng)智能末端系統(tǒng)的設(shè)備中;另一頭則與云中心服務(wù)器交互,通常是提交數(shù)據(jù),并獲取云中心服務(wù)器的綜合處理服務(wù)[3-4]。末端系統(tǒng)以無人干涉的自動運(yùn)行方式為主,配置和設(shè)定也應(yīng)由云中心服務(wù)器為主來完成,降低末端系統(tǒng)的平臺要求和操作難度;有些末端系統(tǒng)也備有操作界面給用戶提供應(yīng)用服務(wù),比如聯(lián)網(wǎng)的血壓計(jì)——體質(zhì)健康物聯(lián)網(wǎng)智能末端系統(tǒng)。

        末端系統(tǒng)采用工業(yè)嵌入式系統(tǒng)是完全可以實(shí)現(xiàn)的,缺點(diǎn)是通用性不足。鑒于Android 系統(tǒng)由智能手機(jī)開始,得益于其開源、可定制和廣大用戶熟悉使用的優(yōu)勢,已經(jīng)滲入到很多智能應(yīng)用領(lǐng)域,比如平板電腦、智能家電、戶外智能屏幕、工業(yè)手持機(jī)、以及智能儀器等等。從靈活性、通用性、及易用性和操作界面角度出發(fā),Android 系統(tǒng)更適宜構(gòu)建物聯(lián)網(wǎng)智能末端系統(tǒng)。為此谷歌也做出了積極回應(yīng),專門對Android 操作系統(tǒng)作了精簡,并強(qiáng)化了物聯(lián)網(wǎng)功能,開發(fā)出了適用于物聯(lián)網(wǎng)應(yīng)用的Brillo 操作系統(tǒng)??紤]到設(shè)備的普及性與運(yùn)用的熟練性,本項(xiàng)目還是采用普通的Android 系統(tǒng)來作研究。

        Android 中的應(yīng)用通常是由Java 開發(fā),打包成APK 安裝包發(fā)布,通常APK 包安裝后,功能就固定了,升級功能則需要重新安裝升級包,或升級插件。這對于以自動運(yùn)行為主的末端系統(tǒng)就不大合適了,尤其是一些安裝在人員難以抵達(dá)其位置的末端系統(tǒng)。通過主動推送升級包來自動升級是個(gè)不錯(cuò)的解決辦法,主動推送插件升級效果更好,不過這樣的升級過程會影響末端系統(tǒng)的運(yùn)行,還不夠輕量。更值得關(guān)注的是Android 應(yīng)用不論是窗口界面,還是后臺服務(wù)、消息機(jī)制、數(shù)據(jù)庫訪問、以及推送升級機(jī)制等,都有其特定的框架結(jié)構(gòu),與運(yùn)行在PC 和服務(wù)器端的應(yīng)用很少有通用性,難以復(fù)用,必須單獨(dú)開發(fā)與維護(hù)管理。這不論對物聯(lián)網(wǎng)系統(tǒng)集成開發(fā)供應(yīng)商,還是采集器和傳感器專業(yè)開發(fā)供應(yīng)商都會是個(gè)不小的負(fù)擔(dān)。

        目前,Node.js 在服務(wù)器端應(yīng)用有著良好的口碑,尤其適合物聯(lián)網(wǎng)的數(shù)據(jù)采集和處理[5],做Web 應(yīng)用還可在前后臺共用同樣的開發(fā)語言。在PC 端,得益于JS 控件技術(shù)的飛速發(fā)展,混合Web 技術(shù)實(shí)現(xiàn)桌面應(yīng)用也有了長足的發(fā)展,比如QQ 的騰訊網(wǎng)迷你版、有道詞典、網(wǎng)上銀行客戶端、風(fēng)暴影音等等。Android 中也有基于Chrome 的WebView 技術(shù),可開發(fā)混合Web 技術(shù)的移動APP,還可實(shí)現(xiàn)Java 與JavaScript 交互操作。并且Web 中的數(shù)據(jù)庫IndexedDB 也已經(jīng)納入HTML5 標(biāo)準(zhǔn),并被主流瀏覽器實(shí)現(xiàn)。因此下面嘗試運(yùn)用Web 技術(shù),尤其是以JavaScript 開發(fā)語言為基礎(chǔ)骨干,輔以Android JDK,IndexedDB 數(shù)據(jù)庫,實(shí)現(xiàn)Android 物聯(lián)網(wǎng)智能末端系統(tǒng);并通過系統(tǒng)層次、模塊的劃分,以及設(shè)備差異性封裝,盡可能與PC 和服務(wù)器端復(fù)用JavaScript 代碼,降低整個(gè)物聯(lián)網(wǎng)系統(tǒng)的復(fù)雜程度,提高開發(fā)與維護(hù)效率。

        2 架構(gòu)設(shè)計(jì)

        基于JavaScript 的Android 物聯(lián)網(wǎng)智能末端系統(tǒng),從技術(shù)上主要?jiǎng)澐謱觾蓚€(gè)層次:底層用JavaScript 封裝了Android 設(shè)備的功能和服務(wù)作為基礎(chǔ),供上層調(diào)用;上層用HTML+JavaScript 實(shí)現(xiàn)末端系統(tǒng)各種應(yīng)用模塊,并集成為系統(tǒng)。

        業(yè)務(wù)功能方面,末端系統(tǒng)主要包括采集、傳輸、存儲、處理、展示、上傳、遷移等功能。其中,采集與傳輸?shù)幕A(chǔ)通信功能,以及驅(qū)動Android 設(shè)備本身自帶的智能傳感器需要用Android 的JDK 來實(shí)現(xiàn),還有自動觸發(fā)的服務(wù)也需要JDK 來實(shí)現(xiàn),因此將它們做在底層并用JavaScript 封裝,便于上層調(diào)用。采集與傳輸?shù)臉I(yè)務(wù)邏輯功能以及處理、展示、上傳、遷移等對數(shù)據(jù)和代碼的操作,都可以用HTML+JavaScript 實(shí)現(xiàn),因此將它們做為上層,并劃分出合理的層次模塊,集成為系統(tǒng)(圖1)。

        圖1 Android 物聯(lián)網(wǎng)智能末端系統(tǒng)結(jié)構(gòu)

        Android 設(shè)備對外連接方式主要有USB、藍(lán)牙、WLAN/LAN(ZigBee、RS485、CAN 等連接方式都有成熟的轉(zhuǎn)換模塊,以可轉(zhuǎn)化為前述的主要連接方式,會更易使用,成本也很低)。WebView的JavaScript 可以發(fā)出HTTP 請求,但無法開啟HTTP 服務(wù)端,也不能發(fā)起或監(jiān)聽Socket 連接,更不能連接USB 和藍(lán)牙,因此這些只有采用Android JDK 來實(shí)現(xiàn),并與JavaScript 打通,交互調(diào)用,最后由JavaScript 封裝。JavaScript 的封裝應(yīng)與Node.js 的對應(yīng)模塊保持一致,以便與PC 和Server 端的代碼通用。

        底層“JavaScript 封裝的基礎(chǔ)”可以設(shè)計(jì)為固定的(除非有技術(shù)提高引起版本升級),統(tǒng)一成通用的標(biāo)準(zhǔn)接口,如查找設(shè)備(search)、連接設(shè)備(connect)、讀取設(shè)備(read)、寫入設(shè)備(write)、斷開設(shè)備(disconnect)、啟動服務(wù)(start)、關(guān)閉服務(wù)(stop)等。統(tǒng)一了底層的接口標(biāo)準(zhǔn)之后,在其支撐之上,各應(yīng)用模塊都可用JavaScript 或HTML+JavaScript(有界面時(shí)用HTML 搭建)實(shí)現(xiàn)。這些是廣泛普及的技術(shù),有利于物聯(lián)網(wǎng)集成開發(fā)供應(yīng)商和傳感器專業(yè)開發(fā)供應(yīng)商去開發(fā)、升級和集成物聯(lián)網(wǎng)系統(tǒng)。

        更重要的是JavaScript 以及嵌入其代碼中的HTML 是可以遷移的,甚至遷移到數(shù)據(jù)庫中保存和管理。這樣不同智能傳感器的數(shù)據(jù)采集模塊可以用函數(shù)形式封裝;不同智能傳感器的數(shù)據(jù)展示也可以做成頁面的上的widget,用JavaScript 繪出,封裝在函數(shù)里。這些都可由專業(yè)的傳感器開發(fā)供應(yīng)商來提供,同時(shí)開放保存在IndexedDB 中的數(shù)據(jù)格式,作為給集成開發(fā)供應(yīng)商的接口,由集成商完成物聯(lián)網(wǎng)系統(tǒng)集成。

        上層“HTML+JavaScript 實(shí)現(xiàn)的應(yīng)用模塊集成”中的模塊主要分成五大類:操作展示界面、數(shù)據(jù)處理、數(shù)據(jù)庫、數(shù)據(jù)采集以及數(shù)據(jù)上傳。數(shù)據(jù)庫是上層里的中心,里面的數(shù)據(jù)可按下文所述的雙層對象數(shù)據(jù)格式保存;操作展示界面由HTML 混合JavaScript構(gòu)建,可以查看數(shù)據(jù)、展示結(jié)果、設(shè)置參數(shù)、控制采集和上傳。其中,數(shù)據(jù)采集和數(shù)據(jù)上傳可以由操作界面直接觸發(fā),也可以指令后臺服務(wù)自動按參數(shù)規(guī)則進(jìn)行。

        (1)操作展示界面。操作展示界面用HTML+JavaScript 來實(shí)現(xiàn),其中HTML 文件內(nèi)只有些框架,具體內(nèi)容由JavaScript 來生成,JavaScript 的模塊可以由集成開發(fā)供應(yīng)商提供,或委托給專業(yè)開發(fā)供應(yīng)商,甚至也可由用戶自己開發(fā)。

        (2)數(shù)據(jù)采集。末端系統(tǒng)采集智能傳感器數(shù)據(jù)的功能一般需要放在后臺自動執(zhí)行,不受APP 操作干擾,因此有必要用后臺的服務(wù)來定時(shí)觸發(fā),或?qū)崟r(shí)不間斷運(yùn)行。因此通過Activity 把Service 也與JavaScript 打通,觸發(fā)交互,JavaScript 可啟動和關(guān)閉Service,Service 則可觸發(fā)JavaScript 驅(qū)動net 模塊去采集數(shù)據(jù)。

        (3)數(shù)據(jù)上傳。將采集得的數(shù)據(jù),按云端物聯(lián)網(wǎng)服務(wù)器要求的格式,發(fā)送給云端物聯(lián)網(wǎng)服務(wù)器,可以是自動傳,或手動通過界面操作傳。上傳方式可以用WebService、消息隊(duì)列、FTP 等。

        (4)存儲管理。采集的數(shù)據(jù)可以存儲于文件,但是管理起來比較復(fù)雜,要管理好數(shù)據(jù),最好存于數(shù)據(jù)庫。Android 中有多種嵌入式數(shù)據(jù)庫,如SharePreference、SQLite 等。但是,考慮到與PC和Server 端Web 的代碼通用性,采用IndexedDB 來存儲數(shù)據(jù)比較適合。

        考慮到接收各種智能傳感器的數(shù)據(jù),數(shù)據(jù)格式可以采用分層的方式,上面層規(guī)定統(tǒng)一通用的數(shù)據(jù)格式,下面層再根據(jù)智能傳感器的種類不同,分別確定不同的數(shù)據(jù)格式(這也是選用JSON格式的IndexedDB 的原因之一),其最簡單的數(shù)據(jù)格式如下:

        這是用于存儲采集數(shù)據(jù)的數(shù)據(jù)庫存儲對象(Object Store,相當(dāng)于關(guān)系數(shù)據(jù)庫的表)結(jié)構(gòu),上面一層規(guī)定的就3 個(gè)字段,其中類型和版本對下層數(shù)據(jù)”data”起標(biāo)識作用,當(dāng)需要分析其中數(shù)據(jù)時(shí),可找到對應(yīng)的分析和展示函數(shù)。這樣,在新智能傳感器接入時(shí),數(shù)據(jù)庫就不用去定義新結(jié)構(gòu),集成開發(fā)供應(yīng)商也不用去開發(fā)專門的程序,而由專業(yè)開發(fā)供應(yīng)商提供(在下文的“代碼遷移”內(nèi)容中有進(jìn)一步說明)。

        這種集成設(shè)備的方式與用設(shè)備驅(qū)動的方式不同,其接合點(diǎn)在數(shù)據(jù)庫的結(jié)構(gòu),而不在驅(qū)動接口函數(shù),更適用于物聯(lián)網(wǎng)快速擴(kuò)展,連接更多的設(shè)備。因?yàn)榧幢愣唐趦?nèi)不能作綜合分析,但至少可快速接上設(shè)備,采集、存儲和展示數(shù)據(jù)。

        (5)數(shù)據(jù)處理。主要是需要后臺自動加工數(shù)據(jù),用以滿足展示界面使用需要,以及上傳服務(wù)器對數(shù)據(jù)的要求。也包括對數(shù)據(jù)的自動清理等。

        (6)代碼遷移。這里的代碼遷移不是不同平臺移植代碼,而是要傳遞分發(fā)代碼。這種分發(fā)不是打補(bǔ)丁升級安裝軟件,而是需要某個(gè)功能時(shí)就去獲取相應(yīng)的函數(shù)模塊,并存于數(shù)據(jù)庫以備調(diào)用,不需要了,就從數(shù)據(jù)庫中刪去。

        JavaScript 函數(shù)可保存于變量,并進(jìn)一步以JSON 格式保存于數(shù)據(jù)庫(這也是選擇JavaScript 開發(fā)語言為基礎(chǔ)骨干的原因之一),因此智能傳感器專業(yè)開發(fā)供應(yīng)商在供應(yīng)智能傳感器的同時(shí),可以提供采集、處理、甚至展示用的JavaScript 函數(shù)模塊。Android 物聯(lián)網(wǎng)末端系統(tǒng)在接入智能傳感器時(shí),去下載對應(yīng)的程序模塊以匹配對應(yīng)的智能傳感器。當(dāng)更換智能傳感器時(shí),則更換相應(yīng)的程序模塊。

        3 應(yīng)用實(shí)現(xiàn)

        建筑結(jié)構(gòu)健康監(jiān)測分兩個(gè)階段:施工階段與運(yùn)營階段。在施工階段,現(xiàn)場條件差、變化因素多,結(jié)構(gòu)監(jiān)測很難用局域聯(lián)網(wǎng)的方式,即現(xiàn)場難以服務(wù)器系統(tǒng)局域聯(lián)網(wǎng)。因此可以將服務(wù)器系統(tǒng)異地架設(shè),通過互聯(lián)網(wǎng)與手持式Android 物聯(lián)網(wǎng)智能末端系統(tǒng)連接。末端系統(tǒng)通過USB、藍(lán)牙直連傳感器采集設(shè)備,或通過便攜式網(wǎng)絡(luò)轉(zhuǎn)換設(shè)備,比如串口服務(wù)器和小型無線路由器等,在走到設(shè)備邊上采集數(shù)據(jù),判斷數(shù)據(jù)是否正常,再上傳至服務(wù)器(施工完畢進(jìn)入運(yùn)營階段后,再將服務(wù)器移至現(xiàn)場組網(wǎng),并不間斷采集)。按以上分析設(shè)計(jì),開發(fā)出了施工監(jiān)測用的Android 物聯(lián)網(wǎng)末端系統(tǒng)——監(jiān)測隨身寶,很好地完成了施工階段監(jiān)測任務(wù)。具體應(yīng)用及技術(shù)說明如下。

        打開APP,可點(diǎn)出菜單選擇菜單項(xiàng)(圖2):進(jìn)入項(xiàng)目界面(圖3),可選擇工作的項(xiàng)目;進(jìn)入采集界面(圖4),可點(diǎn)開傳感器類型,選擇具體傳感器采集數(shù)據(jù)。

        采集數(shù)據(jù)如圖5 所示,數(shù)據(jù)保存的同時(shí)顯示出來。上傳數(shù)據(jù)如圖6 所示,點(diǎn)擊[提交]采集存儲的數(shù)據(jù)即可上傳到服務(wù)器中。

        其中,采集數(shù)據(jù)的代碼從服務(wù)器獲取,并保存在IndexedDB數(shù)據(jù)庫中(圖7);采集獲得的數(shù)據(jù)也臨時(shí)保存在IndexedDB 數(shù)據(jù)庫中(圖8)。

        采集數(shù)據(jù)的代碼從IndexedDB 數(shù)據(jù)庫中取出,還原為可執(zhí)行的函數(shù)被界面所調(diào)用(圖9),也就是“2.架構(gòu)設(shè)計(jì)”中定義的“應(yīng)用模塊集成(上層)”。

        支撐“應(yīng)用模塊集成(上層)”的“基礎(chǔ)(底層)”,若Javascript 無法實(shí)現(xiàn)的,則由Java 模塊來實(shí)現(xiàn),并開放接口給Javascript,由Javascript 封裝后,提供“應(yīng)用模塊集成(上層)”使用(圖10)。

        圖2 選擇菜單項(xiàng)

        圖3 選擇項(xiàng)目

        圖4 選擇傳感器點(diǎn)位

        圖5 采集數(shù)據(jù)

        圖6 上傳數(shù)據(jù)

        圖7 存儲在IndexedDB 數(shù)據(jù)庫中的JS 代碼

        圖8 存儲在IndexedDB 數(shù)據(jù)庫中的數(shù)據(jù)

        圖9 存儲在IndexedDB 數(shù)據(jù)庫中的數(shù)據(jù)

        圖10 被Javascript 封裝的“基礎(chǔ)(底層)”

        4 展望

        以上的方案完整地實(shí)現(xiàn)了物聯(lián)網(wǎng)智能末端系統(tǒng)功能,并在結(jié)構(gòu)性態(tài)健康監(jiān)測中得到了良好的應(yīng)用效果。其中統(tǒng)一底層Javascript 封裝標(biāo)準(zhǔn)、以及IndexedDB 中存儲數(shù)據(jù)和函數(shù)模塊標(biāo)準(zhǔn),可能為物聯(lián)網(wǎng)智能末端系統(tǒng)產(chǎn)業(yè)開辟出廣闊的前景。另若自主知識產(chǎn)權(quán)的AliOS、華為的OS 能考慮這個(gè)技術(shù)方向,就更值得期待了。

        不過在技術(shù)上,目前也還有個(gè)明顯的缺陷:易于遷移的JS 代碼還沒有安全防范措施,既容易被植入惡意代碼,也容易泄露代碼的技術(shù)知識。將來若Docker+NodeJS 能運(yùn)行于Android 系統(tǒng),則用后臺服務(wù)方式,將采集、傳輸、甚至部分處理和展示封裝到Docker 容器中作為插件模塊來遷移,形成更安全的隔離運(yùn)行,再加上加密和權(quán)限保護(hù)等措施,Android物聯(lián)網(wǎng)末端系統(tǒng)會變得完善安全,插件模塊的技術(shù)知識也可獲得較好的保護(hù)。而WebView 技術(shù)則可專注于人機(jī)界面功能。

        基于JavaScript 的物聯(lián)網(wǎng)末端系統(tǒng),畢竟是一個(gè)新生的事物,難免會有其他不足之處。上面所提到的缺陷也可探討其他的方案措施,如沙箱環(huán)境可在后續(xù)的實(shí)踐中進(jìn)一步發(fā)展和完善。

        猜你喜歡
        數(shù)據(jù)庫智能設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        智能前沿
        文苑(2018年23期)2018-12-14 01:06:06
        智能前沿
        文苑(2018年19期)2018-11-09 01:30:14
        智能前沿
        文苑(2018年17期)2018-11-09 01:29:26
        智能前沿
        文苑(2018年21期)2018-11-09 01:22:32
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        數(shù)據(jù)庫
        亚洲自偷自偷偷色无码中文| 国产精品狼人久久影院软件介绍| 人人妻人人澡人人爽人人dvd| аⅴ资源天堂资源库在线| 国产nv精品你懂得| 国产精品亚洲美女av网站| 99久久精品人妻少妇一| 99久久99久久精品免费看蜜桃 | 插入中文字幕在线一区二区三区| 日本成人精品在线播放| 精品久久久久久无码人妻蜜桃| 一本色道av久久精品+网站| 欧美综合区自拍亚洲综合| 亚洲国产国语对白在线观看| 一二区成人影院电影网| 国产免费一区二区三区在线观看| 国产极品美女到高潮视频| 亚洲精品98中文字幕| 婷婷色婷婷开心五月四房播播| 欧美自拍视频在线| 国产成人激情视频在线观看| 国产精品久久久免费精品| 人人爽久久涩噜噜噜av| 亚洲tv精品一区二区三区| 亚洲偷自拍国综合第一页国模| 久久久久久自慰出白浆| 久久久久久久综合狠狠综合| 99日本亚洲黄色三级高清网站| 水蜜桃男女视频在线观看网站| 让少妇高潮无乱码高清在线观看| 中文字幕天堂在线| 亚洲一区二区三区一区| 国精产品一区一区二区三区mba | 欧美成人三级网站在线观看| 91麻豆精品一区二区三区| 综合国产婷婷精品久久99之一| 久久综合精品国产二区无码| 国产成人精品三上悠亚久久| 蜜臀av在线一区二区尤物| 少女韩国电视剧在线观看完整| 国产成人午夜精品免费视频|