張永芳,張換莉
(鄭州工業(yè)應(yīng)用技術(shù)學(xué)院,河南 鄭州 451100)
隨著物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,大量傳感器和設(shè)備的廣泛應(yīng)用導(dǎo)致了海量的數(shù)據(jù)生成和傳輸[1,2]。然而,傳統(tǒng)的中心化數(shù)據(jù)處理和存儲方法在面對物聯(lián)網(wǎng)數(shù)據(jù)規(guī)模與復(fù)雜性時面臨著嚴(yán)重的挑戰(zhàn)。為了應(yīng)對這一問題,邊緣計算作為一種新興的計算架構(gòu)被引入,通過將數(shù)據(jù)處理和存儲功能從云端推向網(wǎng)絡(luò)邊緣,有效降低了數(shù)據(jù)傳輸?shù)难舆t和網(wǎng)絡(luò)負載[3,4]。
文章的主要研究內(nèi)容是深入分析邊緣計算與物聯(lián)網(wǎng)的集成架構(gòu),并闡明其在數(shù)據(jù)處理和存儲優(yōu)化方面的重要性。文章探討了傳統(tǒng)中心化方法所面臨的挑戰(zhàn),包括高延遲、網(wǎng)絡(luò)擁塞以及數(shù)據(jù)安全性等。針對這些挑戰(zhàn),提出了一種基于邊緣計算的綜合數(shù)據(jù)處理和存儲方法。具體而言,所提方法主要包括數(shù)據(jù)去重和數(shù)據(jù)分塊2個關(guān)鍵步驟。在數(shù)據(jù)去重方面,采用了SHA-1哈希算法,通過計算數(shù)據(jù)的哈希值來判斷是否存在重復(fù)數(shù)據(jù),從而避免了重復(fù)的存儲和傳輸,節(jié)省了存儲空間,減少了網(wǎng)絡(luò)帶寬的消耗。在數(shù)據(jù)分塊方面,討論了Rabin算法,通過將大規(guī)模的數(shù)據(jù)切分為較小的數(shù)據(jù)片段,實現(xiàn)了分布式存儲和處理的目標(biāo),從而提高了系統(tǒng)效率。
為了驗證提出方法的有效性和性能,進行了一系列的實驗與分析。文章通過比較傳統(tǒng)中心化方法和基于邊緣計算的綜合方法,全面評估數(shù)據(jù)處理和存儲方面的性能和效果。實驗結(jié)果表明,所提方法能夠顯著降低數(shù)據(jù)傳輸?shù)难舆t和網(wǎng)絡(luò)負載,并減少了存儲空間的消耗。
傳統(tǒng)的中心化物聯(lián)網(wǎng)(見圖1)和邊緣計算物聯(lián)網(wǎng)(見圖2)在延遲、網(wǎng)絡(luò)擁塞以及數(shù)據(jù)安全等方面具有不同的特點。其中,中心化物聯(lián)網(wǎng)常包括云端、核心網(wǎng)絡(luò)和物聯(lián)網(wǎng)設(shè)備(終端),而邊緣計算物聯(lián)網(wǎng)則常包括云端、核心網(wǎng)絡(luò)、邊緣計算和物聯(lián)網(wǎng)設(shè)備。
圖1 中心化物聯(lián)網(wǎng)架構(gòu)
圖2 邊緣計算物聯(lián)網(wǎng)架構(gòu)
在延遲方面,邊緣計算物聯(lián)網(wǎng)通過將數(shù)據(jù)處理和存儲功能推送到網(wǎng)絡(luò)邊緣,縮短了數(shù)據(jù)傳輸?shù)木嚯x和時間,實現(xiàn)了更快速的數(shù)據(jù)處理與響應(yīng)。在網(wǎng)絡(luò)擁塞方面,邊緣計算物聯(lián)網(wǎng)通過在網(wǎng)絡(luò)邊緣部署較強的計算和存儲資源,將部分?jǐn)?shù)據(jù)處理任務(wù)從云端轉(zhuǎn)移到邊緣節(jié)點,減輕了云端的負擔(dān)。在數(shù)據(jù)安全方面,邊緣計算物聯(lián)網(wǎng)通過將部分?jǐn)?shù)據(jù)處理和存儲功能移到網(wǎng)絡(luò)邊緣,降低了數(shù)據(jù)傳輸?shù)娘L(fēng)險,提升了數(shù)據(jù)的安全性。
邊緣計算作為一種分布式計算范式,通過將計算和存儲功能推送到網(wǎng)絡(luò)邊緣的邊緣節(jié)點上,與物聯(lián)網(wǎng)設(shè)備進行緊密的集成,如圖2所示。在這種架構(gòu)中,高效的數(shù)據(jù)處理和存儲優(yōu)化能有效提升其實用性。
文章提出的基于數(shù)據(jù)去重和數(shù)據(jù)分塊的綜合數(shù)據(jù)處理與存儲優(yōu)化方法采用的架構(gòu)如圖3所示,該架構(gòu)包括5個組件。
圖3 基于數(shù)據(jù)去重和數(shù)據(jù)分塊的數(shù)據(jù)處理與存儲優(yōu)化架構(gòu)
(1)傳感器/物聯(lián)網(wǎng)設(shè)備(終端):這些設(shè)備負責(zé)采集環(huán)境數(shù)據(jù)或監(jiān)測物體狀態(tài),并將原始數(shù)據(jù)傳輸?shù)竭吘壒?jié)點進行處理。
(2)邊緣節(jié)點:邊緣節(jié)點位于物聯(lián)網(wǎng)設(shè)備附近,提供計算和存儲能力。它們負責(zé)接收和處理從傳感器/物聯(lián)網(wǎng)設(shè)備傳輸?shù)臄?shù)據(jù),執(zhí)行數(shù)據(jù)處理和存儲優(yōu)化操作。
(3)數(shù)據(jù)去重模塊:該模塊使用數(shù)據(jù)去重算法(SHA-1哈希算法)識別和消除重復(fù)的數(shù)據(jù)[5,6]。該模塊通過計算數(shù)據(jù)的哈希值,并與已存儲的數(shù)據(jù)進行比較,以判斷是否存在重復(fù)數(shù)據(jù)。若存在重復(fù)數(shù)據(jù),則會刪除重復(fù)數(shù)據(jù),僅保留唯一的數(shù)據(jù)。
(4)數(shù)據(jù)分塊模塊:該模塊負責(zé)將大規(guī)模的數(shù)據(jù)切分為較小的數(shù)據(jù)片段。它使用Rabin算法等分塊算法將數(shù)據(jù)劃分為固定大小的數(shù)據(jù)塊[7,8]。這樣的分塊操作便于后續(xù)的分布式存儲和處理。
(5)分布式存儲:經(jīng)過數(shù)據(jù)去重和數(shù)據(jù)分塊處理后的數(shù)據(jù)片段將被存儲在分布式存儲系統(tǒng)中。該系統(tǒng)可以包括多個邊緣節(jié)點和云端節(jié)點,能實現(xiàn)數(shù)據(jù)的高可用性和容錯性。
通過該綜合數(shù)據(jù)處理和存儲優(yōu)化架構(gòu),重復(fù)數(shù)據(jù)被消除,數(shù)據(jù)被分塊存儲,可以提高數(shù)據(jù)處理和存儲的效率,減少網(wǎng)絡(luò)傳輸和存儲資源的消耗,也有利于后續(xù)數(shù)據(jù)傳輸和下一步處理。
在該架構(gòu)中,核心是數(shù)據(jù)去重和數(shù)據(jù)分塊。本研究使用SHA-1哈希算法來減少重復(fù)數(shù)據(jù)的存儲和傳輸,并使用Rabin算法將大規(guī)模數(shù)據(jù)劃分為較小的數(shù)據(jù)片段。
SHA-1哈希算法是一種將任意長度的輸入數(shù)據(jù)映射為固定長度哈希值的算法。設(shè)輸入數(shù)據(jù)為消息M,其長度為n位(n為任意正整數(shù))。SHA-1算法的實現(xiàn)步驟分為5步。
步驟一,填充消息,將消息M進行填充,使其長度滿足一定的要求。填充的方式是在消息M的末尾添加位數(shù)為k的填充,使得填充后的消息長度為m位(m=n+k)。
步驟二,劃分消息,將填充后的消息劃分為若干個固定長度的消息塊,每個消息塊的長度為L位。
步驟三,初始化哈希值,定義一個160位的初始哈希值,通常為5個32位的寄存器(A、B、C、D、E)。
步驟四,迭代壓縮函數(shù),對每個消息塊進行迭代壓縮函數(shù)的計算。迭代壓縮函數(shù)由多輪操作組成,每輪操作包括擴展消息塊和迭代計算。擴展消息塊將消息塊擴展為80個字(每個字32位),迭代計算對擴展后的消息塊進行80輪迭代計算,在每一輪中,根據(jù)當(dāng)前迭代的輪數(shù)和寄存器的值進行位運算與邏輯運算,生成新的寄存器值。
步驟五,輸出哈希值,將最終的寄存器值按照順序拼接起來,得到160位的哈希值,即SHA-1哈希值。
通過SHA-1哈希算法,可以將輸入數(shù)據(jù)映射為固定長度的哈希值,實現(xiàn)了對數(shù)據(jù)的唯一性標(biāo)識和完整性校驗的功能。將哈希值作為數(shù)據(jù)的唯一標(biāo)識,并利用哈希值判斷是否存在重復(fù)數(shù)據(jù),可以減少重復(fù)數(shù)據(jù)的存儲和傳輸。使用Rabin算法將去重后的數(shù)據(jù)劃分為固定大小的數(shù)據(jù)片段,便于后續(xù)的分布式存儲和處理操作。
Rabin算法是一種用于數(shù)據(jù)分塊的算法。設(shè)輸入數(shù)據(jù)為消息M,其長度為n位(n為任意正整數(shù))。Rabin算法的實現(xiàn)步驟分為3步。
步驟一,劃分消息,將消息M劃分為若干個固定長度的消息塊,每個消息塊的長度為L位。
步驟二,計算消息塊的指紋,對每個消息塊進行指紋計算。指紋是通過將消息塊的二進制表示看作一個多項式,并對多項式進行計算,得到的一個指紋值。
步驟三,分塊,根據(jù)指紋值的特征,將消息劃分為不同的數(shù)據(jù)塊。具體的劃分方法可以根據(jù)指紋值的奇偶性、特定位的取值等來確定。
所用的基本仿真環(huán)境:操作系統(tǒng)為Linux;開發(fā)語言為Python;模擬器為NS-3網(wǎng)絡(luò)仿真工具[9,10]。文章根據(jù)圖3搭建了仿真實驗架構(gòu)。
實驗結(jié)果如表1所示。
表1 實驗結(jié)果
結(jié)果表明,所提出的數(shù)據(jù)處理和存儲優(yōu)化方法在實驗中展現(xiàn)出明顯的性能改進。該方法可以縮短數(shù)據(jù)傳輸延遲、降低網(wǎng)絡(luò)負載和減小存儲空間,可以提高物聯(lián)網(wǎng)系統(tǒng)的效率和性能,并有效應(yīng)對大規(guī)模數(shù)據(jù)處理和存儲的挑戰(zhàn)。具體來說,通過數(shù)據(jù)去重和數(shù)據(jù)分塊的優(yōu)化方法,數(shù)據(jù)傳輸延遲從52 ms降低到41 ms,實現(xiàn)了約21%的性能改進;網(wǎng)絡(luò)負載從110 Mb/s降低到88 Mb/s,降低了20%;存儲空間從10 GB減少到8.2 GB,實現(xiàn)了18%的優(yōu)化效果。
文章研究了基于邊緣計算的物聯(lián)網(wǎng)數(shù)據(jù)處理和存儲優(yōu)化問題,并提出了一種綜合方法。通過引入數(shù)據(jù)去重和數(shù)據(jù)分塊的策略,成功減少了重復(fù)數(shù)據(jù)的存儲和傳輸,并實現(xiàn)了大規(guī)模數(shù)據(jù)的切分與分布式存儲。實驗結(jié)果表明,所提出的方法能夠顯著降低數(shù)據(jù)傳輸延遲、減輕網(wǎng)絡(luò)負載,并減少存儲空間的占用,為物聯(lián)網(wǎng)系統(tǒng)提供了高效、可靠的數(shù)據(jù)處理和存儲方案,提升了系統(tǒng)的性能和效率。研究的貢獻在于對邊緣計算與物聯(lián)網(wǎng)集成架構(gòu)的分析,并提出了針對數(shù)據(jù)處理和存儲的綜合優(yōu)化方法。未來的研究可以進一步探索其他數(shù)據(jù)處理和存儲優(yōu)化的算法,以提升物聯(lián)網(wǎng)系統(tǒng)的性能與可靠性。