從商業(yè)角度來看,物聯(lián)網(wǎng) (IoT) 的大部分開發(fā)并不新鮮。無線甚至移動互聯(lián)網(wǎng)連接都是成熟的技術(shù),而嵌入式處理器可以追溯到更遠的地方。對于工業(yè)市場,“工業(yè)物聯(lián)網(wǎng)”已經(jīng)取代“SCADA”(監(jiān)督控制和數(shù)據(jù)采集)作為控制系統(tǒng)架構(gòu),使用計算機、網(wǎng)絡(luò)數(shù)據(jù)通信和過程監(jiān)督管理來控制外圍設(shè)備(物聯(lián)網(wǎng)的“事物”)。大型植物。那么有什么新東西呢?
新的是組合,以及隨之而來的新挑戰(zhàn)。即,支持公司在成本和/或低功耗連接系統(tǒng)上運行時所依賴的所有服務(wù)和商業(yè)模式。
首先制造這些連接設(shè)備具有挑戰(zhàn)性、耗時且成本高昂。但這只是故事的一半。與所有軟件產(chǎn)品一樣,智能設(shè)備若要保持競爭力,就需要發(fā)布后的支持和功能。此外,任何超出初始產(chǎn)品銷售的商業(yè)模式——銷售應(yīng)用程序、流媒體內(nèi)容、按使用付費等——都需要定期更新。如果這種商業(yè)模式發(fā)生變化怎么辦?
與數(shù)字世界的其他部分(PC、智能手機、服務(wù)器等)相反,大多數(shù)低功耗嵌入式系統(tǒng)通常不運行應(yīng)用程序平臺。這意味著產(chǎn)品的軟件沒有很好的架構(gòu),具有清晰的邊界和接口(API 或 ABI)來分離關(guān)注點。添加/修復(fù)一個功能意味著更新整個產(chǎn)品,以及所有額外的(指數(shù))調(diào)試和驗證。
這不僅讓營銷團隊無法按時或按預(yù)算獲得他們的愿望,而且對需要下載大量固件更新并重新啟動設(shè)備以使其生效的最終用戶也很惱火(通常重置他們在這個過程中的配置)。最重要的是,嵌入式程序員并不便宜,因為這項工作所需的難度和廣泛的專業(yè)知識。
但是風景的輕微變化可以立即解決所有這些問題。具體來說,物聯(lián)網(wǎng)的二進制構(gòu)建塊應(yīng)該在單獨的沙箱環(huán)境中開發(fā)和部署,所有這些都在運行語義管理代碼的虛擬化層之上。以最小的開銷,以這種方式沙盒化的嵌入式二進制構(gòu)建塊(通常稱為應(yīng)用程序)可以放在一起構(gòu)建設(shè)備,就像構(gòu)建樂高積木一樣——這種比較在發(fā)布后也很合適,因為設(shè)備可以稍后發(fā)布像移動應(yīng)用程序一樣快速自由地進行修改,從而為業(yè)務(wù)提供更大的靈活性和更少的費用。
部署到沙箱很簡單
這種技術(shù)與它在 DevOps 中的使用方式相去甚遠,在 DevOps 中,沙盒是最常見的。它的用例和基本原理也是如此。但目的大致相同。如前所述,嵌入式系統(tǒng)中缺乏隔離(cpu、內(nèi)存、外圍設(shè)備)使得更新變得如此復(fù)雜。通過消除對整個程序及其特定工具鏈的依賴,這種虛擬化和沙盒組合使開發(fā)人員可以將程序分解為更小的二進制構(gòu)建塊,并且只處理與新功能或更新相關(guān)的二進制構(gòu)建塊。
考慮為移動平臺更新應(yīng)用程序的便利性,這種隔離已經(jīng)內(nèi)置到環(huán)境中。比如說,如果 Angry Birds 的創(chuàng)建者想要在游戲中添加一只新鳥,她只需要接觸與應(yīng)用程序本身相關(guān)的代碼——無需訪問 Android 內(nèi)核(甚至理解它)。要部署它,她只需通過一輪快速驗證并將應(yīng)用程序推送到目標生態(tài)系統(tǒng)的貨架上(這里是云上的應(yīng)用程序商店)。從那里,設(shè)備可以無縫更新,可能作為后臺進程。
更新/升級/修復(fù)嵌入式固件并不是那么容易,但是當每個二進制構(gòu)建塊都被沙盒化時,開發(fā)人員可以擁有這種體驗。就像他們的名字一樣,一切都變得簡單和增量:更新、調(diào)整、調(diào)試、附加組件等。
開發(fā)人員和最終用戶的簡單性并不是以這種方式進行沙盒的唯一好處。由于您能夠在嵌入式系統(tǒng)上進行部分軟件更新,因此還可以在部署時節(jié)省帶寬。此外,沙盒允許您為給定的二進制構(gòu)建塊設(shè)置強權(quán)限,說明二進制構(gòu)建塊何時可以和不能訪問其他二進制構(gòu)建塊,以及它們對 CPU、RAM 或硬件外圍設(shè)備等資源的訪問權(quán)限。
如何為軟件構(gòu)建塊構(gòu)建沙箱
沙盒下方的虛擬化層是關(guān)鍵。它不僅在不提供內(nèi)存管理單元 (MMU) 的小型處理器上啟用沙盒,而且已經(jīng)朝著減少發(fā)布后費用的目標邁出了一步。例如,虛擬化 Java 環(huán)境可以利用更現(xiàn)代的代碼實踐來實現(xiàn)簡單性、可重用性和抽象性,并允許開發(fā)團隊由供應(yīng)量更大的程序員組成。出于與沙盒相同的許多原因,它還增加了設(shè)備的安全性。
一個自然的回擊可能是虛擬化環(huán)境和沙盒層會增加昂貴的開銷,尤其是對于非常小的系統(tǒng),如可穿戴設(shè)備或電池供電的傳感器。然而,當今市場上的軟件可以處理這些環(huán)境,只需幾千字節(jié)的閃存占用空間和非常少的額外 RAM。建立在虛擬化層之上的典型沙盒層總重不到 45 Kb。
那么美元從哪里來?
三個地方。首先,一旦您處理沙盒和虛擬化,您就進入了一個經(jīng)濟的工業(yè)流程,您可以重用創(chuàng)建的二進制構(gòu)建塊,這些構(gòu)建塊現(xiàn)在已經(jīng)在您公司的“貨架”上可用。這實際上是公司可以擁有的最大資產(chǎn)之一。而且由于虛擬化總是伴隨著模擬——二進制構(gòu)建塊可以在虛擬設(shè)備上運行,就好像它們在真實設(shè)備上運行一樣——它大大降低了項目的財務(wù)風險,因為更容易預(yù)先驗證規(guī)范。收益是眾所周知的:更多的市場份額、更多的利潤和更快的速度。
其次,虛擬化和沙盒的結(jié)合減少了保持連接設(shè)備最新和具有競爭力的成本。如前所述,當更新/修復(fù)您的設(shè)備就像更新應(yīng)用程序一樣簡單時,您可以繞過修改、測試和驗證整個固件的耗時過程。收益適用于研發(fā)和維護成本。
第三,它在發(fā)布后開辟了全新的收入來源。由于可更新,設(shè)備可以集成一個生態(tài)系統(tǒng),其中新服務(wù)的“按使用付費”是規(guī)則。您的營銷團隊可以根據(jù)客戶的使用情況調(diào)整產(chǎn)品,同時每月收取費用,從而輕松測試新想法;您可以銷售訂閱服務(wù),提供對基于 Web 的服務(wù)的訪問權(quán)限,例如監(jiān)控、警報或流式傳輸/可下載內(nèi)容;或者您可以將其與更大的商業(yè)模式聯(lián)系起來——我們自己的合作伙伴之一,一家公用事業(yè)公司的子公司,將這種方法用于幫助業(yè)主管理燃氣賬單的設(shè)備。收益是新的收入來源。
最好的是,你可以改變主意。當設(shè)計/更新智能設(shè)備與現(xiàn)在一樣是一項重大承諾時,新的競爭對手或消費者需求的突然變化意味著要深入削減您的利潤以跟上。通過沙盒和虛擬化實現(xiàn)的發(fā)布后靈活性使您能夠盡可能靈活地使用在更大設(shè)備上運行的軟件產(chǎn)品。
盈利能力是物聯(lián)網(wǎng)通向無處不在的唯一障礙。如果我不得不猜測,我會說現(xiàn)在 80% 的智能設(shè)備公司都會失敗。不是因為技術(shù)知識差,而是因為微不足道的流血而死。當前市場只會為智能設(shè)備支付這么多錢,這僅略高于(當前)平均開發(fā)成本。
迫使市場承受更高的價格,要么是壟斷,要么是奇跡。但正如我們所見,其他所有盈利途徑都需要軟件。沙盒/虛擬化組合就是要快速;低成本(通過重用二進制構(gòu)建塊);低風險; 靈活應(yīng)對市場的演變;并可選擇允許新的經(jīng)常性收入。這是針對復(fù)雜經(jīng)濟問題的簡單軟件解決方案,沒有真正的缺點。沙盒/虛擬化組合是將物聯(lián)網(wǎng)設(shè)備轉(zhuǎn)變?yōu)橛麡I(yè)務(wù)所需的最后一個“塊”。
審核編輯:郭婷
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44719瀏覽量
374331 -
虛擬化
+關(guān)注
關(guān)注
1文章
373瀏覽量
29816
發(fā)布評論請先 登錄
相關(guān)推薦
評論