張永芳,張換莉
(鄭州工業(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ù)處理和存儲(chǔ)方法在面對(duì)物聯(lián)網(wǎng)數(shù)據(jù)規(guī)模與復(fù)雜性時(shí)面臨著嚴(yán)重的挑戰(zhàn)。為了應(yīng)對(duì)這一問題,邊緣計(jì)算作為一種新興的計(jì)算架構(gòu)被引入,通過將數(shù)據(jù)處理和存儲(chǔ)功能從云端推向網(wǎng)絡(luò)邊緣,有效降低了數(shù)據(jù)傳輸?shù)难舆t和網(wǎng)絡(luò)負(fù)載[3,4]。
文章的主要研究內(nèi)容是深入分析邊緣計(jì)算與物聯(lián)網(wǎng)的集成架構(gòu),并闡明其在數(shù)據(jù)處理和存儲(chǔ)優(yōu)化方面的重要性。文章探討了傳統(tǒng)中心化方法所面臨的挑戰(zhàn),包括高延遲、網(wǎng)絡(luò)擁塞以及數(shù)據(jù)安全性等。針對(duì)這些挑戰(zhàn),提出了一種基于邊緣計(jì)算的綜合數(shù)據(jù)處理和存儲(chǔ)方法。具體而言,所提方法主要包括數(shù)據(jù)去重和數(shù)據(jù)分塊2個(gè)關(guān)鍵步驟。在數(shù)據(jù)去重方面,采用了SHA-1哈希算法,通過計(jì)算數(shù)據(jù)的哈希值來判斷是否存在重復(fù)數(shù)據(jù),從而避免了重復(fù)的存儲(chǔ)和傳輸,節(jié)省了存儲(chǔ)空間,減少了網(wǎng)絡(luò)帶寬的消耗。在數(shù)據(jù)分塊方面,討論了Rabin算法,通過將大規(guī)模的數(shù)據(jù)切分為較小的數(shù)據(jù)片段,實(shí)現(xiàn)了分布式存儲(chǔ)和處理的目標(biāo),從而提高了系統(tǒng)效率。
為了驗(yàn)證提出方法的有效性和性能,進(jìn)行了一系列的實(shí)驗(yàn)與分析。文章通過比較傳統(tǒng)中心化方法和基于邊緣計(jì)算的綜合方法,全面評(píng)估數(shù)據(jù)處理和存儲(chǔ)方面的性能和效果。實(shí)驗(yàn)結(jié)果表明,所提方法能夠顯著降低數(shù)據(jù)傳輸?shù)难舆t和網(wǎng)絡(luò)負(fù)載,并減少了存儲(chǔ)空間的消耗。
傳統(tǒng)的中心化物聯(lián)網(wǎng)(見圖1)和邊緣計(jì)算物聯(lián)網(wǎng)(見圖2)在延遲、網(wǎng)絡(luò)擁塞以及數(shù)據(jù)安全等方面具有不同的特點(diǎn)。其中,中心化物聯(lián)網(wǎng)常包括云端、核心網(wǎng)絡(luò)和物聯(lián)網(wǎng)設(shè)備(終端),而邊緣計(jì)算物聯(lián)網(wǎng)則常包括云端、核心網(wǎng)絡(luò)、邊緣計(jì)算和物聯(lián)網(wǎng)設(shè)備。

圖1 中心化物聯(lián)網(wǎng)架構(gòu)

圖2 邊緣計(jì)算物聯(lián)網(wǎng)架構(gòu)
在延遲方面,邊緣計(jì)算物聯(lián)網(wǎng)通過將數(shù)據(jù)處理和存儲(chǔ)功能推送到網(wǎng)絡(luò)邊緣,縮短了數(shù)據(jù)傳輸?shù)木嚯x和時(shí)間,實(shí)現(xiàn)了更快速的數(shù)據(jù)處理與響應(yīng)。在網(wǎng)絡(luò)擁塞方面,邊緣計(jì)算物聯(lián)網(wǎng)通過在網(wǎng)絡(luò)邊緣部署較強(qiáng)的計(jì)算和存儲(chǔ)資源,將部分?jǐn)?shù)據(jù)處理任務(wù)從云端轉(zhuǎn)移到邊緣節(jié)點(diǎn),減輕了云端的負(fù)擔(dān)。在數(shù)據(jù)安全方面,邊緣計(jì)算物聯(lián)網(wǎng)通過將部分?jǐn)?shù)據(jù)處理和存儲(chǔ)功能移到網(wǎng)絡(luò)邊緣,降低了數(shù)據(jù)傳輸?shù)娘L(fēng)險(xiǎn),提升了數(shù)據(jù)的安全性。
邊緣計(jì)算作為一種分布式計(jì)算范式,通過將計(jì)算和存儲(chǔ)功能推送到網(wǎng)絡(luò)邊緣的邊緣節(jié)點(diǎn)上,與物聯(lián)網(wǎng)設(shè)備進(jìn)行緊密的集成,如圖2所示。在這種架構(gòu)中,高效的數(shù)據(jù)處理和存儲(chǔ)優(yōu)化能有效提升其實(shí)用性。
文章提出的基于數(shù)據(jù)去重和數(shù)據(jù)分塊的綜合數(shù)據(jù)處理與存儲(chǔ)優(yōu)化方法采用的架構(gòu)如圖3所示,該架構(gòu)包括5個(gè)組件。

圖3 基于數(shù)據(jù)去重和數(shù)據(jù)分塊的數(shù)據(jù)處理與存儲(chǔ)優(yōu)化架構(gòu)
(1)傳感器/物聯(lián)網(wǎng)設(shè)備(終端):這些設(shè)備負(fù)責(zé)采集環(huán)境數(shù)據(jù)或監(jiān)測物體狀態(tài),并將原始數(shù)據(jù)傳輸?shù)竭吘壒?jié)點(diǎn)進(jìn)行處理。
(2)邊緣節(jié)點(diǎn):邊緣節(jié)點(diǎn)位于物聯(lián)網(wǎng)設(shè)備附近,提供計(jì)算和存儲(chǔ)能力。它們負(fù)責(zé)接收和處理從傳感器/物聯(lián)網(wǎng)設(shè)備傳輸?shù)臄?shù)據(jù),執(zhí)行數(shù)據(jù)處理和存儲(chǔ)優(yōu)化操作。
(3)數(shù)據(jù)去重模塊:該模塊使用數(shù)據(jù)去重算法(SHA-1哈希算法)識(shí)別和消除重復(fù)的數(shù)據(jù)[5,6]。該模塊通過計(jì)算數(shù)據(jù)的哈希值,并與已存儲(chǔ)的數(shù)據(jù)進(jìn)行比較,以判斷是否存在重復(fù)數(shù)據(jù)。若存在重復(fù)數(shù)據(jù),則會(huì)刪除重復(fù)數(shù)據(jù),僅保留唯一的數(shù)據(jù)。
(4)數(shù)據(jù)分塊模塊:該模塊負(fù)責(zé)將大規(guī)模的數(shù)據(jù)切分為較小的數(shù)據(jù)片段。它使用Rabin算法等分塊算法將數(shù)據(jù)劃分為固定大小的數(shù)據(jù)塊[7,8]。這樣的分塊操作便于后續(xù)的分布式存儲(chǔ)和處理。
(5)分布式存儲(chǔ):經(jīng)過數(shù)據(jù)去重和數(shù)據(jù)分塊處理后的數(shù)據(jù)片段將被存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)中。該系統(tǒng)可以包括多個(gè)邊緣節(jié)點(diǎn)和云端節(jié)點(diǎn),能實(shí)現(xiàn)數(shù)據(jù)的高可用性和容錯(cuò)性。
通過該綜合數(shù)據(jù)處理和存儲(chǔ)優(yōu)化架構(gòu),重復(fù)數(shù)據(jù)被消除,數(shù)據(jù)被分塊存儲(chǔ),可以提高數(shù)據(jù)處理和存儲(chǔ)的效率,減少網(wǎng)絡(luò)傳輸和存儲(chǔ)資源的消耗,也有利于后續(xù)數(shù)據(jù)傳輸和下一步處理。
在該架構(gòu)中,核心是數(shù)據(jù)去重和數(shù)據(jù)分塊。本研究使用SHA-1哈希算法來減少重復(fù)數(shù)據(jù)的存儲(chǔ)和傳輸,并使用Rabin算法將大規(guī)模數(shù)據(jù)劃分為較小的數(shù)據(jù)片段。
SHA-1哈希算法是一種將任意長度的輸入數(shù)據(jù)映射為固定長度哈希值的算法。設(shè)輸入數(shù)據(jù)為消息M,其長度為n位(n為任意正整數(shù))。SHA-1算法的實(shí)現(xiàn)步驟分為5步。
步驟一,填充消息,將消息M進(jìn)行填充,使其長度滿足一定的要求。填充的方式是在消息M的末尾添加位數(shù)為k的填充,使得填充后的消息長度為m位(m=n+k)。
步驟二,劃分消息,將填充后的消息劃分為若干個(gè)固定長度的消息塊,每個(gè)消息塊的長度為L位。
步驟三,初始化哈希值,定義一個(gè)160位的初始哈希值,通常為5個(gè)32位的寄存器(A、B、C、D、E)。
步驟四,迭代壓縮函數(shù),對(duì)每個(gè)消息塊進(jìn)行迭代壓縮函數(shù)的計(jì)算。迭代壓縮函數(shù)由多輪操作組成,每輪操作包括擴(kuò)展消息塊和迭代計(jì)算。擴(kuò)展消息塊將消息塊擴(kuò)展為80個(gè)字(每個(gè)字32位),迭代計(jì)算對(duì)擴(kuò)展后的消息塊進(jìn)行80輪迭代計(jì)算,在每一輪中,根據(jù)當(dāng)前迭代的輪數(shù)和寄存器的值進(jìn)行位運(yùn)算與邏輯運(yùn)算,生成新的寄存器值。
步驟五,輸出哈希值,將最終的寄存器值按照順序拼接起來,得到160位的哈希值,即SHA-1哈希值。
通過SHA-1哈希算法,可以將輸入數(shù)據(jù)映射為固定長度的哈希值,實(shí)現(xiàn)了對(duì)數(shù)據(jù)的唯一性標(biāo)識(shí)和完整性校驗(yàn)的功能。將哈希值作為數(shù)據(jù)的唯一標(biāo)識(shí),并利用哈希值判斷是否存在重復(fù)數(shù)據(jù),可以減少重復(fù)數(shù)據(jù)的存儲(chǔ)和傳輸。使用Rabin算法將去重后的數(shù)據(jù)劃分為固定大小的數(shù)據(jù)片段,便于后續(xù)的分布式存儲(chǔ)和處理操作。
Rabin算法是一種用于數(shù)據(jù)分塊的算法。設(shè)輸入數(shù)據(jù)為消息M,其長度為n位(n為任意正整數(shù))。Rabin算法的實(shí)現(xiàn)步驟分為3步。
步驟一,劃分消息,將消息M劃分為若干個(gè)固定長度的消息塊,每個(gè)消息塊的長度為L位。
步驟二,計(jì)算消息塊的指紋,對(duì)每個(gè)消息塊進(jìn)行指紋計(jì)算。指紋是通過將消息塊的二進(jìn)制表示看作一個(gè)多項(xiàng)式,并對(duì)多項(xiàng)式進(jìn)行計(jì)算,得到的一個(gè)指紋值。
步驟三,分塊,根據(jù)指紋值的特征,將消息劃分為不同的數(shù)據(jù)塊。具體的劃分方法可以根據(jù)指紋值的奇偶性、特定位的取值等來確定。
所用的基本仿真環(huán)境:操作系統(tǒng)為Linux;開發(fā)語言為Python;模擬器為NS-3網(wǎng)絡(luò)仿真工具[9,10]。文章根據(jù)圖3搭建了仿真實(shí)驗(yàn)架構(gòu)。
實(shí)驗(yàn)結(jié)果如表1所示。

表1 實(shí)驗(yàn)結(jié)果
結(jié)果表明,所提出的數(shù)據(jù)處理和存儲(chǔ)優(yōu)化方法在實(shí)驗(yàn)中展現(xiàn)出明顯的性能改進(jìn)。該方法可以縮短數(shù)據(jù)傳輸延遲、降低網(wǎng)絡(luò)負(fù)載和減小存儲(chǔ)空間,可以提高物聯(lián)網(wǎng)系統(tǒng)的效率和性能,并有效應(yīng)對(duì)大規(guī)模數(shù)據(jù)處理和存儲(chǔ)的挑戰(zhàn)。具體來說,通過數(shù)據(jù)去重和數(shù)據(jù)分塊的優(yōu)化方法,數(shù)據(jù)傳輸延遲從52 ms降低到41 ms,實(shí)現(xiàn)了約21%的性能改進(jìn);網(wǎng)絡(luò)負(fù)載從110 Mb/s降低到88 Mb/s,降低了20%;存儲(chǔ)空間從10 GB減少到8.2 GB,實(shí)現(xiàn)了18%的優(yōu)化效果。
文章研究了基于邊緣計(jì)算的物聯(lián)網(wǎng)數(shù)據(jù)處理和存儲(chǔ)優(yōu)化問題,并提出了一種綜合方法。通過引入數(shù)據(jù)去重和數(shù)據(jù)分塊的策略,成功減少了重復(fù)數(shù)據(jù)的存儲(chǔ)和傳輸,并實(shí)現(xiàn)了大規(guī)模數(shù)據(jù)的切分與分布式存儲(chǔ)。實(shí)驗(yàn)結(jié)果表明,所提出的方法能夠顯著降低數(shù)據(jù)傳輸延遲、減輕網(wǎng)絡(luò)負(fù)載,并減少存儲(chǔ)空間的占用,為物聯(lián)網(wǎng)系統(tǒng)提供了高效、可靠的數(shù)據(jù)處理和存儲(chǔ)方案,提升了系統(tǒng)的性能和效率。研究的貢獻(xiàn)在于對(duì)邊緣計(jì)算與物聯(lián)網(wǎng)集成架構(gòu)的分析,并提出了針對(duì)數(shù)據(jù)處理和存儲(chǔ)的綜合優(yōu)化方法。未來的研究可以進(jìn)一步探索其他數(shù)據(jù)處理和存儲(chǔ)優(yōu)化的算法,以提升物聯(lián)網(wǎng)系統(tǒng)的性能與可靠性。