在由兩部分組成的系列文章的第一部分中,我們將討論現(xiàn)代、分布式、物聯(lián)網(wǎng)和物聯(lián)網(wǎng)數(shù)據(jù)應(yīng)用程序開發(fā)、部署和持續(xù)支持所面臨的挑戰(zhàn)。具體涉及的是跨我們稱之為技術(shù)“孤島”的開發(fā)挑戰(zhàn),以及跨云、霧和邊緣計(jì)算節(jié)點(diǎn)進(jìn)行安全可靠部署以滿足現(xiàn)代應(yīng)用需求的挑戰(zhàn)。
隨著物聯(lián)網(wǎng)市場的成熟,本文將考慮出現(xiàn)一個(gè)跨越網(wǎng)絡(luò)的抽象層和計(jì)算模型。這些可以從單個(gè)統(tǒng)一的程序員角度跨異構(gòu)計(jì)算端點(diǎn)和通信層網(wǎng)絡(luò)進(jìn)行應(yīng)用程序和系統(tǒng)開發(fā)。
隨著物聯(lián)網(wǎng)的迅速崛起,以及物聯(lián)網(wǎng)設(shè)備的生產(chǎn)和多樣性的增加,我們已經(jīng)看到創(chuàng)新技術(shù)大大提高了生產(chǎn)力和/或產(chǎn)生了全新的商業(yè)模式。與此同時(shí),現(xiàn)代嵌入式和物聯(lián)網(wǎng)解決方案是分布式和異構(gòu)的,硬件目標(biāo)包括低功耗8位MCU,輕量級但功能強(qiáng)大的網(wǎng)絡(luò)網(wǎng)關(guān)以及互聯(lián)網(wǎng)云服務(wù)器的近乎無限的資源。
現(xiàn)代物聯(lián)網(wǎng)解決方案需要跨不同開發(fā)平臺(tái)或“孤島”的專業(yè)知識(shí)。我們使用術(shù)語“孤島”來表示分段的開發(fā)和部署流程以及實(shí)現(xiàn)網(wǎng)絡(luò)覆蓋的物聯(lián)網(wǎng)解決方案所需的工具。隨著開發(fā)從云轉(zhuǎn)移到系統(tǒng)中的嵌入式組件,需要越來越專業(yè)化和昂貴的人才,這些人才仍然被鎖定在給定的開發(fā)孤島中。這是因?yàn)殚_發(fā)高效、安全和可靠的嵌入式軟件仍然需要高度專業(yè)化的知識(shí),而這些知識(shí)伴隨著陡峭且通常成本高昂的學(xué)習(xí)曲線。
很多時(shí)候,云和應(yīng)用程序開發(fā)人員認(rèn)為理所當(dāng)然的高級抽象并沒有找到嵌入式開發(fā)的方式。也就是說,在跨多個(gè)團(tuán)隊(duì)、工具和目標(biāo)開發(fā)和部署功能時(shí)保持敏捷性即使不是不可能,也是很困難的——后勤挑戰(zhàn)減緩了產(chǎn)品實(shí)施和創(chuàng)新的步伐。
這個(gè)問題的實(shí)際體現(xiàn)可能是一個(gè)現(xiàn)代無人機(jī)平臺(tái),包括用于數(shù)據(jù)收集的云服務(wù)器,高性能網(wǎng)絡(luò)網(wǎng)關(guān)以及本地設(shè)備上的網(wǎng)絡(luò)。此外,無人機(jī)本身可能由一個(gè)強(qiáng)大的應(yīng)用處理器組成,可能運(yùn)行Linux或其他操作系統(tǒng),各種裸機(jī)8位MCU處理功能,如無刷電機(jī)控制,以及各種GPU,攝像頭和具有不同可編程性的硬件加速器。
許多行業(yè)參與者已經(jīng)開始認(rèn)識(shí)到這個(gè)快速增長的問題,例如英特爾公司,他最近表示,“嵌入式和物聯(lián)網(wǎng)之間的一個(gè)關(guān)鍵區(qū)別是連接性。我們正在從孤立的設(shè)備過渡到一組能夠感知周圍環(huán)境的連接設(shè)備。
“如果你考慮所有進(jìn)行分析的加速器 - CPU,圖形,視頻加速器,深度學(xué)習(xí)引擎,FPGA - 你談?wù)摰氖?-5種不同的編程環(huán)境。這與舊的工具環(huán)境不同。工具的完成方式必須允許開發(fā)人員盡可能無縫地在云、網(wǎng)關(guān)和設(shè)備的所有這些加速器之間移動(dòng)工作負(fù)載和加速。
物聯(lián)網(wǎng)和數(shù)據(jù)
有些人可能會(huì)說,物聯(lián)網(wǎng)的革命也可以被認(rèn)為是由DoT或物聯(lián)網(wǎng)數(shù)據(jù)驅(qū)動(dòng)的。因此,收集、過濾、規(guī)范化、處理和存儲(chǔ)數(shù)據(jù)的高效、經(jīng)濟(jì)的基礎(chǔ)設(shè)施應(yīng)該是任何物聯(lián)網(wǎng)部署的核心。
對于許多企業(yè)而言,云已成為分析、存儲(chǔ)和可視化物聯(lián)網(wǎng)數(shù)據(jù)的主要選擇。然而,由于延遲,可用性,成本和隱私等明顯原因,大多數(shù)人都會(huì)同意某些處理需要在數(shù)據(jù)源(即物聯(lián)網(wǎng)設(shè)備)附近完成,其中包括邊緣和霧計(jì)算。結(jié)果是,在許多情況下,構(gòu)建、部署和支持端到端 IoT 數(shù)據(jù)管道是一種平衡行為,用于決定應(yīng)該在云中完成什么,哪些應(yīng)該在邊緣或其他地方完成,跨越多個(gè)開發(fā)目標(biāo)、生態(tài)系統(tǒng)和開發(fā)人員資源。
這部分是由于云中的部署是眾所周知的,特別是因?yàn)橄馎WS這樣的云供應(yīng)商已經(jīng)通過各種工具和服務(wù)進(jìn)行了大規(guī)模的數(shù)據(jù)分析和渲染,變得越來越萬無一失。對于大多數(shù)企業(yè)來說,如何在邊緣最好地構(gòu)建、部署和支持?jǐn)?shù)據(jù)驅(qū)動(dòng)的計(jì)算基礎(chǔ)設(shè)施仍然是一個(gè)最佳實(shí)踐,幾乎沒有指導(dǎo)或誤導(dǎo)的原則。這在一定程度上與物聯(lián)網(wǎng)系統(tǒng)的異構(gòu)性有關(guān),這些系統(tǒng)在硬件和軟件架構(gòu)、軟件打包和安全功能方面可能大不相同。
具有類似重要性和當(dāng)今該領(lǐng)域的一大缺失部分是以數(shù)據(jù)為中心的邊緣計(jì)算基礎(chǔ)架構(gòu)。此類基礎(chǔ)設(shè)施需要能夠:
標(biāo)準(zhǔn)化 IoT 數(shù)據(jù)的引入和規(guī)范化方式
提供劃分和分配數(shù)據(jù)處理工作負(fù)載的系統(tǒng)方法
自動(dòng)擴(kuò)展數(shù)據(jù)處理任務(wù),以適應(yīng)各種數(shù)據(jù)復(fù)雜性和數(shù)量
簡化 AI/ML 推理函數(shù)的構(gòu)建方式并將其部署到邊緣
開發(fā)和部署挑戰(zhàn)
市場上有一些袖珍解決方案可以解決其中一兩個(gè)挑戰(zhàn)。例如,AWS 綠草服務(wù)允許您在嵌入式邊緣網(wǎng)關(guān)上運(yùn)行微服務(wù)(以 Lambda 函數(shù)的形式);Azure IoT Edge 提供類似功能,但顯式容器化應(yīng)用的形式除外。
然而,在撰寫本文時(shí),這些服務(wù)包含了物聯(lián)網(wǎng)和邊緣部署的過度簡化模型,并且在將聚合數(shù)據(jù)發(fā)送到云之前,目前無法在大型物聯(lián)網(wǎng)邊緣設(shè)備網(wǎng)絡(luò)上實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)處理功能。
這部分是由于這些開發(fā)人員已經(jīng)強(qiáng)烈接受了構(gòu)建安全云支持的Web應(yīng)用程序的復(fù)雜,敏捷的開發(fā)方法,而嵌入式世界在很大程度上已經(jīng)落后了。云和應(yīng)用程序開發(fā)人員認(rèn)為理所當(dāng)然的高級抽象在很大程度上沒有找到嵌入式開發(fā)的方式,這通常使其成為開發(fā)完整解決方案最慢最痛苦的方面。
O‘Reilly最近的一份出版物很好地總結(jié)了這一挑戰(zhàn)的各個(gè)方面。《重新思考編程》一文指出,“編程世界將越來越多地分為訓(xùn)練有素的專業(yè)人士和那些沒有深厚背景但有很多構(gòu)建經(jīng)驗(yàn)的人。前者構(gòu)建工具,框架,語言和平臺(tái);后一組連接事物并構(gòu)建網(wǎng)站,移動(dòng)應(yīng)用程序等。2
因此,我們不僅要解決系統(tǒng)架構(gòu)(云、霧、設(shè)備/嵌入式)中各種孤島的開發(fā)挑戰(zhàn),還要知道如何促進(jìn)構(gòu)建者以一種不需要深入了解底層硬件架構(gòu)等的務(wù)實(shí)方式部署、配置、重新配置和支持這些健壯的系統(tǒng)。
例如,考慮部署一個(gè)包含圖 1 中體系結(jié)構(gòu)的應(yīng)用程序。嵌入式節(jié)點(diǎn)可以是低功耗的 8 位、16 位或 32 位 MCU 或 DSP 目標(biāo),需要深入了解底層硬件架構(gòu),并且通常需要牢牢掌握 C 編程語言。該器件可以與各種致動(dòng)器、傳感器和串行通信協(xié)議(如 I2C、UART 等)接口。
圖 1.直接與云計(jì)算通信的嵌入式設(shè)備示例。
相反,圖 1 右側(cè)的云數(shù)據(jù)存儲(chǔ)通常是一個(gè)高度配置的多核服務(wù)器,具有 GB 的內(nèi)存,可能運(yùn)行強(qiáng)大的虛擬化操作系統(tǒng),并執(zhí)行在具有更高級編程語言的抽象框架中構(gòu)建的應(yīng)用程序。
云存儲(chǔ)可以執(zhí)行數(shù)據(jù)記錄、事件處理和類似功能。
正如人們所期望的那樣,為每個(gè)設(shè)備的邏輯編程需要不同級別的底層架構(gòu)知識(shí)(或者在云設(shè)備的情況下,可能根本沒有知識(shí)),使用截然不同的框架,編程語言和操作系統(tǒng)支持級別(或者在嵌入式節(jié)點(diǎn)的情況下根本沒有操作系統(tǒng))。
現(xiàn)在考慮相同的應(yīng)用程序,但部署在圖 2 所示的體系結(jié)構(gòu)上。雖然該架構(gòu)仍然包括嵌入式和云節(jié)點(diǎn),但集成了一個(gè)霧網(wǎng)關(guān),用于記錄,分析,推理或其他邏輯。該節(jié)點(diǎn)可以是一個(gè)精心配置的多核Linux架構(gòu),該架構(gòu)C++等可編程。
圖 2.將霧與云計(jì)算相結(jié)合的嵌入式設(shè)備示例。
這當(dāng)然會(huì)引發(fā)許多問題:
現(xiàn)有應(yīng)用程序如何跨此不斷發(fā)展的體系結(jié)構(gòu)進(jìn)行遷移?
如果有多個(gè)嵌入式節(jié)點(diǎn)和/或多個(gè)霧節(jié)點(diǎn),該怎么辦?
跨不同硬件目標(biāo)(包括不同級別的計(jì)算資源、操作系統(tǒng)支持、帶寬和連接性)遷移應(yīng)用程序的系統(tǒng)方法是什么?
此外,還必須考慮從頭開始支持安全性,不同類型的通信鏈路和開發(fā)范式。
顯然,開發(fā)、部署和持續(xù)支持的問題很快就會(huì)在孤立的體系結(jié)構(gòu)中以及在組織中孤立的開發(fā)和部署團(tuán)隊(duì)中得到解決!
期待
隨著物聯(lián)網(wǎng)和DoT應(yīng)用的未來需要嵌入式計(jì)算、霧計(jì)算和云計(jì)算協(xié)同運(yùn)行,項(xiàng)目經(jīng)理和開發(fā)人員都必須注意構(gòu)建和部署這些解決方案所需的人力資源和資本。
高級云開發(fā)人員可能不具備嵌入式硬件的復(fù)雜知識(shí),并且很多時(shí)候不具備這些系統(tǒng)所需的系統(tǒng)級理解和編程技能。同樣,嵌入式開發(fā)人員很可能沒有意識(shí)到云開發(fā)中迅速出現(xiàn)的高級開發(fā)框架和工具。
必須注意協(xié)調(diào)許多移動(dòng)部件,以實(shí)現(xiàn)這些系統(tǒng)的統(tǒng)一和異構(gòu)開發(fā)、部署和持續(xù)支持。
然而,與此同時(shí),孤島的集成遠(yuǎn)遠(yuǎn)超出了給定目標(biāo)節(jié)點(diǎn)的開發(fā)。必須考慮設(shè)備之間的各種通信通道,以及部署給定物聯(lián)網(wǎng)應(yīng)用程序的基礎(chǔ)設(shè)施的維護(hù)。此外,在應(yīng)用程序部署的整個(gè)生命周期中,必須持續(xù)維護(hù)安全配置信息和安全層本身的部署。當(dāng)物聯(lián)網(wǎng)應(yīng)用程序中一個(gè)計(jì)算節(jié)點(diǎn)的應(yīng)用程序代碼、安全層或配置更新時(shí),不僅需要針對支持該應(yīng)用程序的其他軟件和系統(tǒng)對其進(jìn)行測試和驗(yàn)證,還需要協(xié)同部署。這種迭代部署周期通常由多個(gè)互連的軟件模塊和層組成(請注意,一些是專有的,一些是第三方或開源的),必須跨開發(fā)團(tuán)隊(duì)和企業(yè)進(jìn)行考慮。
在本文的第 2 部分中,我們將解決給定 IoT 部署孤島中的特定開發(fā)挑戰(zhàn)。然后,我們進(jìn)一步深入研究面向未來的潛在解決方案,這些解決方案有助于構(gòu)建這些類型的孤島跨越系統(tǒng),并考慮給定組織內(nèi)的語言和部署方案。
審核編輯:郭婷
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2914文章
44978瀏覽量
377480 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9335瀏覽量
86139 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5518瀏覽量
121608
發(fā)布評論請先 登錄
相關(guān)推薦
宇樹科技在物聯(lián)網(wǎng)方面
物聯(lián)網(wǎng)就業(yè)有哪些高薪崗位?
哪些專業(yè)適合學(xué)習(xí)嵌入式開發(fā)?
物聯(lián)網(wǎng)學(xué)習(xí)路線來啦!
物聯(lián)網(wǎng)技術(shù)的挑戰(zhàn)與機(jī)遇
物聯(lián)網(wǎng)技術(shù)的未來發(fā)展
潤和軟件星閃派物聯(lián)網(wǎng)開發(fā)套件資料+答疑帖
淺談物聯(lián)網(wǎng)的優(yōu)缺點(diǎn)
什么是物聯(lián)網(wǎng)技術(shù)?
機(jī)動(dòng)車控制應(yīng)用中的當(dāng)前遙感技術(shù)
![機(jī)動(dòng)車控制應(yīng)用中<b class='flag-5'>的當(dāng)前</b>遙感<b class='flag-5'>技術(shù)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
請問物聯(lián)網(wǎng)智能方向主要用什么芯片和技術(shù)開發(fā)呢?
?13種值得關(guān)注的物聯(lián)網(wǎng)傳感器
梯云物聯(lián):電梯物聯(lián)網(wǎng)行業(yè)的未來挑戰(zhàn)與企業(yè)壁壘
![梯云<b class='flag-5'>物</b>聯(lián):電梯<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>行業(yè)的<b class='flag-5'>未來</b><b class='flag-5'>挑戰(zhàn)</b>與企業(yè)壁壘](https://file1.elecfans.com//web2/M00/C5/FC/wKgaomX6SJyAONffAACMfWTc0pI023.jpg)
如何解決物聯(lián)網(wǎng)設(shè)備的安全問題
![如何解決<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>設(shè)備的安全問題](https://file1.elecfans.com/web2/M00/C3/0C/wKgaomXgK6CAC7KIAAA1N-ZafyM276.png)
淺析泛在電力物聯(lián)網(wǎng)發(fā)展形態(tài)與挑戰(zhàn)
![淺析泛在電力<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>發(fā)展形態(tài)與<b class='flag-5'>挑戰(zhàn)</b>](https://file1.elecfans.com//web2/M00/C1/EA/wKgaomXb_6qAVVxOAAiMB2B1OoU682.png)
評論