單玉東
(青島市技師學(xué)院 山東 青島 266229)
數(shù)據(jù)共享平臺(tái)可以實(shí)現(xiàn)用戶、應(yīng)用系統(tǒng)以及整個(gè)業(yè)務(wù)流程中間的協(xié)同合作以及信息共享[1-2]。因此,這就要求數(shù)據(jù)共享平臺(tái)不僅具有智能化查詢與檢索數(shù)據(jù)信息的功能,還應(yīng)該包括挖掘數(shù)據(jù)信息以及重組信息的功能。對(duì)于物聯(lián)網(wǎng)而言,物聯(lián)網(wǎng)的主要特點(diǎn)是在海量終端生成大量數(shù)據(jù)[3],由于物聯(lián)網(wǎng)數(shù)據(jù)具有數(shù)據(jù)規(guī)模大、結(jié)構(gòu)化強(qiáng)以及時(shí)序性等特征[4],因此設(shè)計(jì)物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)時(shí)應(yīng)考慮物聯(lián)網(wǎng)數(shù)據(jù)的自身特點(diǎn),進(jìn)行多層次平臺(tái)構(gòu)建。區(qū)塊鏈可以被視作一個(gè)共享數(shù)據(jù)庫(kù),存儲(chǔ)于其中的數(shù)據(jù)或信息具有高效采集、不可偽造、身份認(rèn)證、信息追溯、數(shù)據(jù)共享和公開透明等特征。作為鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),區(qū)塊鏈各節(jié)點(diǎn)的數(shù)據(jù)塊會(huì)依照時(shí)間順序進(jìn)行排列,確保數(shù)據(jù)共享的時(shí)效性。同時(shí),區(qū)塊鏈的數(shù)據(jù)可溯源且不可篡改的特點(diǎn),能夠有效確保共享數(shù)據(jù)存儲(chǔ)的安全性。將區(qū)塊鏈技術(shù)架構(gòu)作為數(shù)據(jù)共享平臺(tái)的底層架構(gòu)支持,可以實(shí)現(xiàn)無(wú)需信任的點(diǎn)對(duì)點(diǎn)協(xié)作和交易,為數(shù)據(jù)共享提供了良好的技術(shù)支持[5-6]。基于此,本文設(shè)計(jì)了一種基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái),利用區(qū)塊鏈的多層結(jié)構(gòu)確保海量物聯(lián)網(wǎng)數(shù)據(jù)可以得到較好的共享效果。
依據(jù)物聯(lián)網(wǎng)數(shù)據(jù)共享過(guò)程構(gòu)建區(qū)塊鏈技術(shù)下的物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái),整體的物聯(lián)網(wǎng)數(shù)據(jù)共享過(guò)程為:(1)物聯(lián)網(wǎng)數(shù)據(jù)采集。收集物聯(lián)網(wǎng)內(nèi)資源數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)更新處理后存儲(chǔ)到特定的數(shù)據(jù)庫(kù)中;初始化用戶的身份信息和消息認(rèn)證參數(shù),并向客戶端下發(fā)相關(guān)認(rèn)證參數(shù)。(2)身份認(rèn)證與訪問控制。當(dāng)客戶端獲取物聯(lián)網(wǎng)感知數(shù)據(jù)后,通過(guò)提取數(shù)據(jù)的標(biāo)簽屬性特征,經(jīng)過(guò)身份認(rèn)證與簽名認(rèn)證等處理后,將數(shù)據(jù)回傳至服務(wù)器中[7-8]。(3)數(shù)據(jù)共享的實(shí)現(xiàn)。服務(wù)器收到回傳數(shù)據(jù)后,利用服務(wù)管理智能合約進(jìn)行數(shù)據(jù)查詢,結(jié)合區(qū)塊鏈技術(shù)查詢到所需的存儲(chǔ)于數(shù)據(jù)庫(kù)內(nèi)的目標(biāo)數(shù)據(jù),實(shí)現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)共享。
以物聯(lián)網(wǎng)數(shù)據(jù)共享為基礎(chǔ),利用區(qū)塊鏈技術(shù),將物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)分為4個(gè)層級(jí)(圖1),即數(shù)據(jù)采集、更新和存儲(chǔ)的數(shù)據(jù)層;射頻收發(fā)及RPC通信的網(wǎng)絡(luò)層;服務(wù)管理和交易的合約層;訪問、簽名、認(rèn)證的應(yīng)用層。其中,數(shù)據(jù)層和合約層是區(qū)塊鏈技術(shù)應(yīng)用中具有基礎(chǔ)性特征的數(shù)據(jù)層,有效提高數(shù)據(jù)共享平臺(tái)的數(shù)據(jù)處理能力;網(wǎng)絡(luò)層是共享數(shù)據(jù)高效傳輸必不可少的環(huán)節(jié),能夠提高物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)的數(shù)據(jù)加載能力;應(yīng)用層是確保數(shù)據(jù)可信、安全共享的層級(jí),實(shí)現(xiàn)數(shù)據(jù)有效共享。
數(shù)據(jù)層主要包括數(shù)據(jù)采集模塊、數(shù)據(jù)更新模塊和數(shù)據(jù)存儲(chǔ)模塊。在數(shù)據(jù)采集模塊中,配置的CPU核心控制模塊需具有高處理速度、低能耗以及高性價(jià)比的優(yōu)勢(shì),因此選取了具有32位ARM7TDMI-S架構(gòu)的內(nèi)核,其在輸入和輸出中均可配置靈活接入的通用I/O口。同時(shí),利用STC12C5A32AD單片機(jī)進(jìn)行數(shù)據(jù)的模擬輸入,避免硬件上的直接連接,且該單片機(jī)內(nèi)置10位AD轉(zhuǎn)換器,具有處理速度快及價(jià)格低廉的優(yōu)勢(shì)。在數(shù)據(jù)更新模塊與數(shù)據(jù)存儲(chǔ)模塊中,主要使用的數(shù)據(jù)庫(kù)為MySQL數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),該種數(shù)據(jù)庫(kù)主要用于中小型關(guān)系型數(shù)據(jù)的存儲(chǔ)與管理,該數(shù)據(jù)庫(kù)可以依據(jù)不同的用戶需求進(jìn)行數(shù)據(jù)存儲(chǔ),具有方便查詢的優(yōu)勢(shì)。在數(shù)據(jù)更新模塊中,主要使用UpdateInfo作為在線更新數(shù)據(jù)表,該表中存儲(chǔ)物聯(lián)網(wǎng)感知節(jié)點(diǎn)的ID號(hào)、節(jié)點(diǎn)端硬件配置以及操作系統(tǒng)類型的編碼信息、所運(yùn)行的程序名稱以及需要更新的物聯(lián)網(wǎng)數(shù)據(jù)名稱、類型以及軟件的版本信息,同時(shí)可保存用戶登錄平臺(tái)的用戶名和密碼等用戶信息。
利用nrf24L01單片射頻收發(fā)器件作為網(wǎng)絡(luò)層的無(wú)線模塊,該型號(hào)信號(hào)收發(fā)器具的工作頻段為2.4~2.5 GHz,具有低功耗、傳輸距離較遠(yuǎn)的特點(diǎn)[9]。同時(shí),該層配置區(qū)塊鏈RPC通信模塊,主要具有與區(qū)塊鏈節(jié)點(diǎn)的通信功能。RPC通信示意圖見圖2。
根據(jù)圖2可知,在注冊(cè)中心完成IP、端口和接口的服務(wù),優(yōu)化網(wǎng)絡(luò)層負(fù)載均衡。通過(guò)調(diào)用模塊、傳輸模塊和通信模塊,三者相互作用提升數(shù)據(jù)推送和服務(wù)共享效果。調(diào)用模塊通過(guò)對(duì)物聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行裝封,完成超時(shí)判斷、熔斷和限流,在資源庫(kù)中實(shí)現(xiàn)對(duì)共享數(shù)據(jù)的序列化處理。傳輸模塊通過(guò)協(xié)議編碼的形式完成數(shù)據(jù)格式轉(zhuǎn)換,通過(guò)可讀的格式協(xié)議編碼將數(shù)據(jù)存儲(chǔ)至信息庫(kù),完成數(shù)據(jù)共享傳輸服務(wù)。通信模塊需要利用協(xié)議解碼的方式將信息庫(kù)的共享數(shù)據(jù)進(jìn)行解碼網(wǎng)絡(luò)傳輸,在數(shù)據(jù)庫(kù)中生成具體化參數(shù)信息,為使用者提供集群化的數(shù)據(jù)服務(wù)。
服務(wù)管理模塊主要負(fù)責(zé)服務(wù)管理與服務(wù)上傳,其利用區(qū)塊鏈交互接口包括服務(wù)注冊(cè)接口、服務(wù)交易接口等。服務(wù)管理模塊還可以提供數(shù)據(jù)服務(wù)功能,包括物聯(lián)網(wǎng)數(shù)據(jù)瀏覽、數(shù)據(jù)查詢、數(shù)據(jù)下載、目標(biāo)數(shù)據(jù)挖掘等[10]。其中,數(shù)據(jù)查詢記錄本身是一種交易行為,每一次查詢記錄都會(huì)被記錄下來(lái),永久保存在區(qū)塊鏈數(shù)據(jù)庫(kù)里。查詢記錄的哈希碼將一同被記錄,用于校驗(yàn)查詢時(shí)間、查詢內(nèi)容等細(xì)節(jié)。
應(yīng)用層是底層區(qū)塊鏈模塊,包括身份認(rèn)證合約、訪問控制合約以及簽名認(rèn)證合約等。區(qū)塊鏈技術(shù)可以加密物聯(lián)網(wǎng)內(nèi)所有數(shù)據(jù),且每組數(shù)據(jù)均有單獨(dú)的解密密鑰。利用區(qū)塊鏈的非對(duì)稱加密對(duì)物聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行密鑰存儲(chǔ),提高物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)安全性。應(yīng)用層在本質(zhì)上可理解為是由集合A= {A1,A2,A3,… ,Ai}構(gòu)成的網(wǎng)絡(luò)數(shù)據(jù)集,其中包含公鑰與私鑰兩種加密特性,可實(shí)現(xiàn)物聯(lián)網(wǎng)共享數(shù)據(jù)的加密性上傳與訪問,保證數(shù)據(jù)調(diào)用、數(shù)據(jù)傳輸和數(shù)據(jù)通信的安全性。在應(yīng)用層中,通過(guò)非對(duì)稱加密設(shè)置訪問控制,完成物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)的數(shù)字簽名。基于網(wǎng)絡(luò)數(shù)據(jù)集A內(nèi)的不同特征類型共享數(shù)據(jù)生成訪問控制密鑰:
式中,P為公鑰,I為私鑰,γ為數(shù)據(jù)節(jié)點(diǎn)特征元素,v為數(shù)據(jù)鏈路速率。數(shù)據(jù)集A中的數(shù)據(jù)完成公鑰和私鑰后,發(fā)送公鑰至訪問請(qǐng)求數(shù)據(jù)節(jié)點(diǎn),用以后續(xù)提取共享數(shù)據(jù)時(shí)使用。加密后的數(shù)據(jù)集A根據(jù)合約層的數(shù)據(jù)查詢記錄,對(duì)具體的共享數(shù)據(jù)Ai完成非對(duì)稱式加密。在應(yīng)用層中同意Ai通過(guò)公鑰實(shí)現(xiàn)數(shù)據(jù)傳輸通信。Ai可以通過(guò)建立數(shù)字簽名認(rèn)證不同數(shù)據(jù)接收者,確保共享數(shù)據(jù)的保密性。通過(guò)公式(2)構(gòu)建子簽名Hi:
式中,di為隨機(jī)數(shù),當(dāng)P和I的最大公約數(shù)[gcd (P,I)]為1時(shí),則子簽名Hi的解密存在一定的時(shí)效。在此條件下,Ai完成物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)的密文通信設(shè)定。用私鑰加密共享數(shù)據(jù),利用數(shù)字簽名認(rèn)證完成隨機(jī)對(duì)稱加密。保密層通過(guò)對(duì)使用者的身份認(rèn)證,驗(yàn)證不同訪問簽名的準(zhǔn)確性,若通過(guò)身份驗(yàn)證即可在數(shù)據(jù)層、網(wǎng)絡(luò)層、合約層存儲(chǔ)訪問請(qǐng)求,實(shí)現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)共享的安全性。
物聯(lián)網(wǎng)數(shù)據(jù)具有實(shí)時(shí)性更新以及高并發(fā)請(qǐng)求的特點(diǎn),因此以吞吐量、共享丟包率以及平均處理時(shí)間作為實(shí)驗(yàn)指標(biāo)。選取ECS服務(wù)器用于性能測(cè)試,內(nèi)存為16 Gb,運(yùn)行系統(tǒng)為Windows 7.0,CPU頻率為2.5 GHz。選擇了3個(gè)物聯(lián)網(wǎng)數(shù)據(jù)集分別標(biāo)號(hào)為數(shù)據(jù)集1、數(shù)據(jù)集2和數(shù)據(jù)集3,各數(shù)據(jù)集公開數(shù)據(jù)的占比分別為0.3,0.6和0.9,具體數(shù)據(jù)集信息見表1。
表1 3個(gè)數(shù)據(jù)集基本情況
隨機(jī)選取800個(gè)不同數(shù)據(jù)節(jié)點(diǎn)特征元素的物聯(lián)網(wǎng)數(shù)據(jù)作為測(cè)試對(duì)象,在平均處理時(shí)間為300 ms的設(shè)定下,通過(guò)模擬1 200次的數(shù)據(jù)共享請(qǐng)求,測(cè)試平臺(tái)吞吐量。測(cè)試結(jié)果見圖3。
對(duì)圖3中的吞吐量數(shù)據(jù)進(jìn)行分析可知,隨著測(cè)試次數(shù)的增加吞吐量先增加后下降,在模擬請(qǐng)求次數(shù)為600次時(shí)趨于穩(wěn)定。這是因?yàn)?,在前期的測(cè)試模擬請(qǐng)求過(guò)程中,需要通過(guò)密鑰加密和解密數(shù)據(jù)的交替轉(zhuǎn)換,所以在數(shù)據(jù)處理過(guò)程中產(chǎn)生了一定的數(shù)據(jù)能耗。通過(guò)200次的數(shù)據(jù)轉(zhuǎn)換完成了密鑰的設(shè)置全流程,所以吞吐量后續(xù)保持在穩(wěn)定的數(shù)值區(qū)間范圍內(nèi)。
共享丟包率可以有效反映平臺(tái)的數(shù)據(jù)共享效果。丟包率數(shù)值越小,則平臺(tái)共享效果越好,具體公式如下:
式中,E為測(cè)試中所丟失物聯(lián)網(wǎng)數(shù)據(jù)共享數(shù)量,Q為總體物聯(lián)網(wǎng)數(shù)據(jù)共享信息個(gè)數(shù)。
測(cè)試3個(gè)數(shù)據(jù)集的共享數(shù)據(jù)傳輸速度與收發(fā)數(shù)據(jù)量結(jié)果見表2。
表2 3個(gè)數(shù)據(jù)集的基本測(cè)試結(jié)果
結(jié)合表2數(shù)據(jù),可以看出本文所設(shè)計(jì)對(duì)不同數(shù)據(jù)集的傳輸速率與預(yù)期傳輸速率相差不大,滿足數(shù)據(jù)共享過(guò)程的通信傳輸需求。通過(guò)丟包率結(jié)果可以看出,本文所設(shè)計(jì)系統(tǒng)的丟包率較低,可滿足數(shù)據(jù)共享的實(shí)際需求。
通過(guò)迭代方式,驗(yàn)證平臺(tái)的數(shù)據(jù)共享效率,對(duì)平均處理時(shí)間進(jìn)行測(cè)試,平均處理時(shí)間越短,表明物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)數(shù)據(jù)處理效率越高,平均處理時(shí)間越長(zhǎng),表明物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)數(shù)據(jù)處理效率越低。測(cè)試結(jié)果見圖4。
根據(jù)圖4可知,由于在物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)設(shè)計(jì)中利用區(qū)塊鏈技術(shù),通過(guò)數(shù)據(jù)層、網(wǎng)絡(luò)層、合約層和應(yīng)用層對(duì)物聯(lián)網(wǎng)數(shù)據(jù)共享行為進(jìn)行功能設(shè)定,提升了數(shù)據(jù)共享平均處理時(shí)間。因此,在多次迭代測(cè)試過(guò)程中,隨著迭代次數(shù)的增加,共享數(shù)據(jù)的平均處理時(shí)間在300 ms以下,由此表明物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)數(shù)據(jù)處理效率較高。
針對(duì)物聯(lián)網(wǎng)數(shù)據(jù)共享過(guò)程容易丟包且數(shù)據(jù)共享延時(shí)較長(zhǎng)的問題,本文結(jié)合區(qū)塊鏈技術(shù)設(shè)計(jì)了物聯(lián)網(wǎng)數(shù)據(jù)共享平臺(tái)。實(shí)驗(yàn)發(fā)現(xiàn)所設(shè)計(jì)平臺(tái)共享速度快、傳輸數(shù)據(jù)完整以及可以吞吐量較高的特點(diǎn),表明所設(shè)計(jì)平臺(tái)可為物聯(lián)網(wǎng)數(shù)據(jù)共享提供一定的參考與借鑒。