
物聯(lián)網(wǎng)(IoT)的開(kāi)發(fā)者可以選擇很多方法來(lái)創(chuàng )建與物聯(lián)網(wǎng)云服務(wù)的連接,每一個(gè)都有不同的優(yōu)劣權衡。 怎么知道哪個(gè)選擇是較好的呢?
將物聯(lián)網(wǎng)連接到云服務(wù)時(shí),最快最簡(jiǎn)單的方法就是使用一個(gè)全功能的物聯(lián)網(wǎng)軟件代理,就像那些物聯(lián)網(wǎng)平臺供應商提供的那樣。產(chǎn)品代理被集成到無(wú)線(xiàn)物聯(lián)網(wǎng)模塊硬件中,代表了黑箱方法。 物聯(lián)網(wǎng)云連接的另一種簡(jiǎn)單方法是使用由亞馬遜AWS、微軟Azure等IoT平臺提供的SDK,這就是白箱方法。
然而,還有一種灰箱方法,就是使用便攜式IoT軟件代理。便攜式代理就像一個(gè)強大的 SDK,具有模塊化的選項,提供各種物聯(lián)網(wǎng)的連接能力。
下面介紹一下黑箱、白箱和灰箱的連接性運行情況。

產(chǎn)品級代理: IoT云服務(wù)連接性的黑箱方法
產(chǎn)品級的IoT軟件代理對一個(gè)具體的無(wú)線(xiàn)物聯(lián)網(wǎng)模塊硬件模型進(jìn)行了預配置。IoT模塊,有時(shí)也被稱(chēng)為無(wú)線(xiàn)芯片,提供了基本的通信電路,使連接的產(chǎn)品能夠使用Wi-Fi、蜂窩或藍牙等無(wú)線(xiàn)協(xié)議發(fā)送和接收數據。
產(chǎn)品級代理為處理物聯(lián)網(wǎng)產(chǎn)品連接到特定IoT云服務(wù)的各種細節提供了廣泛的功能集,例如消息處理、調度、OTA更新、用戶(hù)注冊和故障排除等。但是它們代表了一種黑箱方法,因為所有這些內置的能力基本上是不可見(jiàn)或不可觸及的。
黑箱方法的優(yōu)點(diǎn)
物聯(lián)網(wǎng)產(chǎn)品的開(kāi)發(fā)者不必擔心需要掌握物聯(lián)網(wǎng)云連接所需要的所有工程技能和專(zhuān)業(yè)知識, 特別是對于IoT新生產(chǎn)商和制造他們的第一個(gè)連接性產(chǎn)品,產(chǎn)品級代理可以顯著(zhù)加速上市時(shí)間。連接性的產(chǎn)品制造商可以降低他們的IoT開(kāi)發(fā)成本,以及相關(guān)的風(fēng)險和難題。
黑箱方法的缺點(diǎn):
由于產(chǎn)品級代理面向特定物聯(lián)網(wǎng)云的訪(fǎng)問(wèn)與特定模塊的硬件,產(chǎn)品代理軟件和模塊硬件是一個(gè)整體方案包。想要連接到特定IoT云服務(wù)的開(kāi)發(fā)者不能自主選擇一個(gè)IoT模塊,因為它還沒(méi)有經(jīng)過(guò)測試和認證,不能一起工作。這個(gè)過(guò)程可能要花費幾個(gè)月的時(shí)間。使用產(chǎn)品級代理的方法要求制造商購買(mǎi)一個(gè)額外的微控制器,將他們的物聯(lián)網(wǎng)應用程序加載到它上面,并對微控制器進(jìn)行編程,以便與無(wú)線(xiàn)模塊對話(huà)。 這項要求增加了BOM費用。產(chǎn)品級代理在本質(zhì)上是一個(gè)封閉的系統,經(jīng)驗豐富的開(kāi)發(fā)者可能會(huì )因為物聯(lián)網(wǎng)云服務(wù)連接選項缺乏靈活性而感到不爽。

SDK: IoT云服務(wù)連接性的白箱方法
SDK只提供通過(guò)底層和標準化協(xié)議進(jìn)行通信的通用庫。IoT產(chǎn)品的制造商通過(guò)這些標準化協(xié)議建立了他們自己的消息和數據模型,包括 MQTT,CoAP 和 HTTP等。
SDK代表了一個(gè)白箱方法,因為它們可以被開(kāi)發(fā)者調整和定制。事實(shí)上,SDK要求物聯(lián)網(wǎng)產(chǎn)品制造商承擔了IoT中的大部分任務(wù)。
白箱方法的優(yōu)點(diǎn):
連接性產(chǎn)品的制造商在決定在物聯(lián)網(wǎng)云連接中包含什么功能以及如何實(shí)現這些功能方面有著(zhù)較大的靈活性。他們可以選擇使用任何無(wú)線(xiàn)物聯(lián)網(wǎng)模塊,基于價(jià)格或最適合其產(chǎn)品特性或設計目標的功能。如果不需要購買(mǎi)額外的微控制器來(lái)配合無(wú)線(xiàn)模塊一起使用的話(huà),制造商可以比使用產(chǎn)品級代理降低 BOM 成本。
白箱方法的缺點(diǎn):
需要足夠的內部工程團隊和IoT專(zhuān)家來(lái)處理發(fā)展、測試、實(shí)現和支持 IoT 云連接的所有復雜細節,同時(shí)還要確保云連接與物聯(lián)網(wǎng)解決方案的其他端到端需求進(jìn)行無(wú)縫互動(dòng)。所有的物聯(lián)網(wǎng)云連接工程和內部測試增加了制造商的風(fēng)險。DIY可能會(huì )延長(cháng)開(kāi)發(fā)時(shí)間,提高物聯(lián)網(wǎng)項目的成本,除非內部團隊對IoT項目非常熟悉。

便攜式代理: IoT云服務(wù)連接的灰箱方法
便攜式IoT軟件代理是將設備連接到物聯(lián)網(wǎng)云的一種新方法。便攜式代理可以從任何蜂窩或 Wi-Fi模塊連接到特定的IoT云服務(wù)。它除了SDK提供的底層連接外,還管理了物聯(lián)網(wǎng)云連接的連通性、可靠性和安全性。
便攜式代理把驅動(dòng)程序或特定于連接性的協(xié)議棧從在無(wú)線(xiàn)模塊層面解耦出來(lái)。在架構上,便攜式代理通過(guò)兩個(gè)抽象層進(jìn)行交互: 頂部的應用層和下面的物聯(lián)網(wǎng)平臺適配層。
應用層包括由IoT云服務(wù)提供商提供的一組接口A(yíng)PI,用于將主機應用程序與便攜式代理進(jìn)行集成。適配層與底層物聯(lián)網(wǎng)云平臺交互,封裝了底層接口和平臺依賴(lài)代碼,并將其轉換為由物聯(lián)網(wǎng)平臺提供商指定的IoT云服務(wù)API。這些適配層API與便攜式代理一起集成了一個(gè)基于平臺的實(shí)用工具庫。
便攜式代理有一個(gè)模塊化的設計,允許添加物聯(lián)網(wǎng)組件,例如,調度器,OTA更新,Wi-Fi 設置等。同樣在模塊化的基礎上,便攜式代理也可以提供各種聯(lián)網(wǎng)設備的設置和由物聯(lián)網(wǎng)云平臺提供商提供的用戶(hù)注冊機制。
便攜式代理是一種灰箱方法,功能介于SDK和產(chǎn)品級代理的能力之間。
灰箱方法的優(yōu)點(diǎn)
便攜式代理將SDK的靈活性與生產(chǎn)級代理的一些已經(jīng)成熟的品質(zhì)結合了起來(lái)。它們包括針對應用程序和適應層的嚴格測試套件,以幫助確保組件和端到端級別物聯(lián)網(wǎng)功能的穩定。
便攜式代理可以通過(guò)允許制造商跳過(guò)漫長(cháng)昂貴的測試和認證流程,將物聯(lián)網(wǎng)云平臺與特定的無(wú)線(xiàn)模塊配對,從而大大縮短了產(chǎn)品進(jìn)入市場(chǎng)所需的時(shí)間。
由于它們不再局限于一個(gè)經(jīng)認證的蜂窩或 Wi-Fi 模塊列表,所以制造商可以使用便攜式代理方法,即使IoT模塊沒(méi)有經(jīng)過(guò)所選物聯(lián)網(wǎng)云服務(wù)的認證,仍然可以與任何無(wú)線(xiàn)模塊供應商談判來(lái)節省成本。與產(chǎn)品級代理相比,便攜式代理商不需要購買(mǎi)單獨的微控制器來(lái)降低BOM的成本。
與此同時(shí),便攜式代理商比SDK方式提供了更多的物聯(lián)網(wǎng)連接。無(wú)線(xiàn)模塊制造商可以使用便攜式代理設計和提供一個(gè)更多樣化的模塊,為更廣泛的客戶(hù)更方便地創(chuàng )造物聯(lián)網(wǎng)產(chǎn)品,也可以將特定物聯(lián)網(wǎng)云服務(wù)的支持作為其無(wú)線(xiàn)模塊產(chǎn)品營(yíng)銷(xiāo)的一個(gè)差異化特性。
灰盒方法的缺點(diǎn):
使用便攜式代理的制造商需要做更多的開(kāi)發(fā)工作,而不像產(chǎn)品級代理那樣來(lái)建立物聯(lián)網(wǎng)。因此,便攜式代理需要相對高水平的內部專(zhuān)門(mén)知識來(lái)開(kāi)發(fā)和定制產(chǎn)品的各個(gè)方面。便攜式代理只在特定的IoT云平臺上工作,所以在物聯(lián)網(wǎng)設計選擇方面,它們比sdk提供的靈活性要小。

什么是理想的選擇?
黑箱,白箱,灰箱,哪種才是IoT云服務(wù)連接的理想方法呢? 這取決于設計目標,對物聯(lián)網(wǎng)產(chǎn)品的經(jīng)驗水平,需要多快地進(jìn)入市場(chǎng),預算,BOM目標,以及計劃為物聯(lián)網(wǎng)產(chǎn)品制造多少量。
如果缺乏強大的內部物聯(lián)網(wǎng)產(chǎn)品專(zhuān)業(yè)團隊,產(chǎn)品級代理可以快速且風(fēng)險較小地進(jìn)入市場(chǎng)。 如果有一個(gè)龐大且穩定的物聯(lián)網(wǎng)資深團隊,SDK提供了最終的靈活性,可以幫助節省BOM的成本。
如果對物聯(lián)網(wǎng)產(chǎn)品開(kāi)發(fā)能力已經(jīng)達到了一定的信心,或者如果想用不同的無(wú)線(xiàn)模塊對現有產(chǎn)品進(jìn)行改造,便攜式代理是一個(gè)吸引人的選擇。使用便攜式代理,可以獲得SDK方式的大部分靈活性以及一些產(chǎn)品級代理的質(zhì)量保證,還可以跳過(guò)等待最佳無(wú)線(xiàn)模塊商用的時(shí)間、費用和麻煩,這樣設計才能獲得物聯(lián)網(wǎng)云平臺的認證。