韓春雷,范文新,楊 清,黃澤宇,陳美燕
(1.中國電子科技集團公司第二十研究所,陜西 西安 710068;2.西北大學 信息科學與技術學院,陜西 西安 710127)
硬件、軟件和通信技術的快速發展使物聯網(IoT)能夠為人們生活的各個方面提供各種智能解決方案,使得智能醫療、交通、農業和娛樂等物聯網系統在學術界和工業界受到越來越多的關注。物聯網應用產生大量需要處理和存儲的數據,而物聯網設備往往缺乏足夠的處理和存儲資源。云計算為支持物聯網的系統提供基礎設施、平臺和軟件服務,通過這些系統,物聯網應用程序可以在CSS代理云服務器中處理、存儲和分析其生成的數據。盡管云平臺為物聯網設備提供了多樣的計算和存儲資源,但云服務器駐留在遠離物聯網設備的多跳處,這會導致高傳播和排隊延遲。因此,云服務器不能單獨為實時物聯網應用程序(例如,智能交通、智能醫療保健、緊急情況和實時控制系統)提供最佳服務。此外,將分布式物聯網設備產生的海量數據轉發到云存儲系統進行處理和存儲,可能會導致云存儲系統過 載,影響系統的后續使用。
區塊鏈是一種加密的分布式計算機存儲系統,旨在創建實時、防篡改的記錄。如果將物聯網和區塊鏈相結合,理論上就有了一種可驗證、安全、永久性的方法來記錄物聯網智能設備處理的數據。
通過使用區塊鏈技術實現通信和存儲操作具有多種優勢。首先是監管問題。由于數據交易發生在多個專有網絡之間并有多個組織運營,其記錄的永久不可篡改性意味著可以實現跟蹤;并且區塊鏈記錄本質上是透明的(即任何授權連接到網絡的人都可以跟蹤和分析所有的活動)。如果某個節點發生故障,數據泄露,那么區塊鏈的記錄可以更加容易地識別到薄弱環境并且采取糾正措施。其次,使用加密和分布式存儲意味著供應鏈中參與的各方都會信任所有的數據;并且各個節點機器會自動安全地記錄所有的交易細節,而無需任何人的監督。如果沒有提供擁有區塊鏈數據的寫訪問權的私鑰(在當前情況下,數據寫入的權限一直掌握在所有節點的手中),任何人都無法用不準確的信息對區塊鏈中存儲的數據進行覆蓋。第三,一些區塊鏈網絡(如以太坊)提供的智能合約支持創建滿足條件實施的協議。第四,區塊鏈在改善物聯網環境的安全方面有相當大的空間。例如,智能家居設備可以訪問人們日常生活中的全部個人信息,這些數據必須與其他服務共享并經過分析才能得到有用結論。但是這也意味著受到黑客攻擊的可能性更大。
為了解決上述問題,本文提出了一種混合的物聯網框架,將邊緣和云計算結合成為一種新的分布式計算范式。通過區塊鏈進行分散的數據管理,所以該體系結構在邊緣計算范式上具有分布式的特點。另外,混合結構還具有大數據生態系統的數據管理功能,有助于對區塊鏈中大量數據進行管理,這種混合體系優化了當前的端到端結構。
現有的將物聯網系統和云計算集成的框架大概分為兩種類型:第一種側重于特定應用的系統,另一種則是提供通用的PaaS模型。Rahmani等人為支持物聯網的醫療保健系統開發了一個基于通用原型的框架,以促進本地存儲和數據處理。在此框架中,云端充當數據分析和決策制定的后端系統。Azimi等人采用樹莓派和Intel Edison開發板在物聯網中作為邊緣節點,通過身份認證來保護數據的隱私;但在這個框架中,是采用云端來存儲數據的。Chen開發了智能城市監控,在這個框架中,邊緣設備主要進行必要的數據處理和相關決策的執行。
為了促進物聯網和云端的集成,Yangui等人開發了一個以云端為中心的PaaS框架。PaaS有助于開發不同的應用程序,以及對邊緣節點進行管理。Bruneo等人也提出了一個以邊緣設備為核心的PaaS框架,在計算合理的物聯網設備上部署和執行多個應用程序,該框架基于云端的安全特性,處理異構相關的各種應用程序。此外,Verba等人提出了一種網關架構,通過網關進行身份驗證來協助傳遞消息。該框架支持網關和云端中心的橫向集成,用于應用部署和任務遷移。Yi等人為集成環境提出了一個綜合的PaaS框架,其中框架里的所有節點都被虛擬化。Mohamed等人還設計了一個面向服務的框架,通過邊緣設備和云端提供智能管理城市的服務。在這個框架中,服務分為兩種類型:第一個是管理框架的核心操作,包括資源管理和安全保障;另一種類型是包含特定的應用要求。而框架的安全性由身份驗證和訪問機制保證。
在上述框架中,邊緣和遠程資源的計算能力還沒有被充分利用。在某些情況下,將計算全部集中到云端節點會增加整體的部署成本和資源消耗。此外,大多數框架都忽略了計算基礎設施內的異構性。它們很難同時支持多個應用的部署。然而本文提出的基于物聯網的無線傳感混合區塊鏈結構可以通過區塊鏈確保數據的完整性,并且協助實現了用戶認證和數據加密的功能;整個架構將部分計算分離到邊緣節點上,緩解了中心節點的計算壓力,充分利用了邊緣設備的計算力,并且減少了邊緣與中心的通信次數,大大降低了整個系統的通信壓力。
本文提出一種新的混合架構來監控和管理物聯網系統,如圖1所示。

圖1 混合區塊鏈結構
現有的智能家居系統是通過無線傳感網絡來監控智能家居發生的所有活動,并且通過無線傳感網絡將采集的數據發送給區塊鏈,在云端實現數據的存儲,這樣就可以實現區塊鏈中所有的優點。本文提出的物聯網監控的新架構中為智能設備配備了傳感器和控制傳感器的樹莓派。每個智能節點由不同的收發器組成,能夠捕獲數據并將其納入WSN;傳感器包含一個加速度計LIS3DH模型,能夠準確測量不同范圍(0和±16)的加速度,并且能夠自動調整到使用條件,始終保持恒定的精度。在溫度控制中采用TC1047A超低功耗的傳感器,實現對溫度數據的采集。該系統還集成了一個通過GNSS網絡進行定位的定位系統,通過MAX-M8Q模型來接收GPS、Galileo和GLONASS的標準位置信息。對于功耗測量,集成了霍爾效應傳感器SCT-013-000,可以實現高達100 A的功耗測量,其自身電阻率為3 Ω·m。上述這些傳感器都是由Microchip公司生產的微型控制器(MCU)進行控制,該單片機基于超低功耗的ARM Cortex-M0+架構,采用IEEE 802.15.4通信協議,同時使用樹莓派4B作為邊緣路由器使用。在這種方式下,不同種類的傳感器采集數據,將數據傳輸到樹莓派4B中,并在樹莓派4B中將收集到的數據進行加密,構建區塊鏈子鏈;最后將構建好的區塊鏈子鏈插入到云端的主鏈中,減少了節點數據與云端進行頻繁的數據上傳,分散了與云端的通信壓力。
智能控制器管理IoT節點及其所有WSN節點。每個物聯網節點都從其傳感器收集數據,然后樹莓派在主鏈(區塊鏈)中執行智能合約。智能控制器具有礦機處理單元,以提高樹莓派的計算能力。該模塊為樹莓派4B提供了處理能力,使其能夠在合理的時間內執行一些簡單的計算。通過這種方式,數據可以在ETL(Extract Transform and Load)過程中從物聯網設備轉換到邊緣計算層的區塊鏈,而不是直接在區塊鏈中,這大大降低了云端主鏈在轉換數據和構建區塊時的能耗,使得智能控制器可以以更低的能耗完成同樣的工作。同時,通過使用智能合約創建了一個在樹莓派4B上執行的側鏈,其中存儲了該智能設備在WSN節點收集的所有數據。智能合約驗證智能設備的身份,一旦將WSN節點識別為成員,智能合約就會執行一個事件,將數據發送到側鏈。一旦智能合約被驗證通過(即數據完全插入側鏈),側鏈就會插入主鏈。云端區塊鏈主鏈是用智能設備構建的子鏈并對子鏈進行合并構建的。為了構建區塊鏈,本文的新架構顯示了使用側鏈(即小型區塊鏈預處理數據)在物聯網設備和區塊鏈之間構建中間層(即邊緣計算層)的新穎性。這些邊鏈通過在靠近數據源的網絡邊緣執行數據處理來優化發送到區塊鏈的事務。通過執行具有WSN數據的側鏈,減少了WSN節點(即傳感器)和區塊鏈之間的通信。這種方法需要利用無法持續連接到區塊鏈網絡的邊緣計算資源,以減少物聯網層中的計算資源的浪費。通過邊緣計算將應用程序、數據和計算能力推離區塊鏈。作為一種計算范式,邊緣計算也被稱為網格處理、點對點計算、自動和分散計算。邊緣計算相對于當前計算的優勢在于:(1)需要通過網絡傳輸的數據量要小得多;(2)消除(或減少)集中計算;(3)虛擬化能力提升了可擴展性。
為了評估整個框架的性能,準備了由多個云端和邊緣節點組成的集成計算環境。表1描述了服務器和相關運行組件的完整配置。用來構建區塊鏈的各個節點采用的環境統一為Docker環境,共構建了7個服務器節點,除了1個節點是提供給客戶進行相關操作控制的,其余節點都分配了內部私有IP地址,用來實現內部的數據傳輸和認證;6個節點中有3個遠端服務器,作為數據存儲的區塊鏈主鏈。有2個樹莓派4B作為邊緣設備,用來收集各個傳感器采集到的相關數據和構建子鏈,并且執行智能合約,在智能合約執行結束后將子鏈數據上傳到云端,插入到云端主鏈中,減少邊緣設備與主鏈之間的通信次數。同時,使用一個單片機作為邊緣設備之間的控制中心。

表1 集成計算環境中的服務器配置示例
圖2代表了壓縮和未壓縮的情況下該框架不同組件的平均Docker的大小。壓縮后的Docker鏡像大小是根據多個架構的Docker hub中存儲的Docker鏡像的平均大小獲取的,而未壓縮的Docker鏡像大小是根據從實例提取的Docker鏡像的平均大小獲取的。壓縮后的Docker鏡像的大小表明該框架是輕量級的,可以在不同平臺上下載,范圍從幾兆字節到最大100 MB。此外,未壓縮的Docker鏡像大小證明該框架組件不占用過多的存儲空間。

圖2 各個部分組件的平均大小
圖3顯示了在混合架構中不同組件運行時平均占用RAM大小的情況。從圖中可以看出,本文所提出的框架占用內存量非常少,滿足了在邊緣設備上的部署,不同組件占用的內存量從25 MB到45 MB不等。但是對現有的邊緣設備來說,各個組件依舊可以部署在不同的邊緣設備上,對資源要求很低。因此從整體性能上分析,整個框架并沒有過多地占用物理資源,并且更好地利用了現有邊緣節點自帶的資源,通過分布式結構使各個組件能合理地運行。

圖3 各個組件運行時平均RAM使用的情況
圖4展示了混合架構的不同組件 在使用時的平均啟動時間,包含啟動容器所需要的時間,直到它們處于完全可用的狀態后再繼續處理后續傳入的請求。由圖4發現,此框架只需要幾秒鐘就可以實現全部啟動,進入處理狀態;并且該系統啟動的時間與它現有的硬件資源有關,如果需要更快的啟動速度,可以采取運算性能更好的邊緣設備,將會大大提升整體響應速度。此外,在部署階段,它極大程度地擴展了很多重要的場景,使得整體應用前景更為廣泛。

圖4 各組件平均響應時長
圖5中描述了混合架構在不同實驗設置下生成的任務數量。據觀察,與在云端生成的任務數、在云端與邊緣端生成風熱任務數相比,僅在邊緣端部署時可以生成較多的任務數。之所以發生這種情況是因為邊緣端更加靠近數據源,它可以快速交付上一項任務的結果,同時生成下一項任務,中間所需要通信延時較少,而只使用云端將會導致云端與傳感器節點距離過遠,任務交付與生成都有較大的時間延時,所以生成的任務量較少。但是,如果只在邊緣端進行計算,處理數據的速度過慢,反而會影響處理數據的整體速度,相比之下云端有著更高的數據處理速度。通過圖5發現,將邊緣端和云端相結合,在生成較多的任務數的同時還能有較高的數據處理速度,所以本文的混合架構有著較為平衡的性能。

圖5 不同模塊性能對比
本文提出了一個基于物聯網的無線傳感網絡的混合區塊鏈結構。該結構充分利用了邊緣節點的計算能力,將云端的一部分計算壓力分散到剩余的邊緣節點上,在邊緣節點上進行子鏈的構造,等待智能合約全部完成后將子鏈插入到云端的主鏈中,這樣可以減少邊緣端和云端的通信壓力,使得系統具有更好的可擴展性。本文還測試了框架的各個組件占用資源的情況以及各個組件的系統完全響應時間。通過實驗證明了所提出的框架滿足邊緣設備資源的實際情況,并且整個系統具備較高的任務處理能力和數據處理速度,可以顯著提高區塊鏈處理吞吐量和效率。在實際使用中可滿足不同的應用場景,具有很大的實用價值。整個系統是分布式架構,可以隨著邊緣節點的分布和云端節點數量的增加進行適當的擴展,滿足更高的性能要求。