王曦
摘要:物聯網是傳統(tǒng)互聯網在現代社會應用的拓展和延伸,同時伴隨著大數據時代的到來。作為典型的分布式存儲系統(tǒng),哈希算法完全適應于物聯網的應用環(huán)境。本文主要分析研究哈希算法在物聯網數據存儲方面的典型應用,輔助完成物聯網分布式數據存儲。同時,通過定義吞吐量及響應延時等性能指標,作者在OPNET Modeler仿真軟件中進行簡單的仿真驗證,進而對基于哈希算法的存儲器模型進行性能評估。
關鍵詞:物聯網;哈希算法;分布式存儲;數據存儲;
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)27-0226-03
傳統(tǒng)的互聯網應用模式已經不能滿足用戶種類繁多的需求及傳統(tǒng)行業(yè)的發(fā)展需要,物聯網應運而生?!拔锫摼W”被稱作是繼計算機和互聯網之后的又一次信息領域革命[1]。物聯網被定義為是利用射頻識別設備、紅外傳感設備、全球定位系統(tǒng)(GPS)、激光掃描儀等信息采集設備,根據設定的規(guī)則,把任何物品與互聯網相連接,使用各種通信方式進行信息交互,以實現智能化定位、識別、監(jiān)控和管理的特定網絡[2-3]。物聯網應用涵蓋了日常生活的機會所有領域,包括建筑、交通、通信、農業(yè)、工作及電商平臺等,具體應用如圖1所示[4]。
物聯網是以互聯網技術為前提的條件下而建立起來的,并將其客戶端拓展到所有物品與所有物品之間,進行數據通信和信息交互的全新網絡應用模式[5]。物聯網主要分為感知層、網絡層以及應用層等三個層次[6],其承載著海量用戶數據及其傳輸過程任務,優(yōu)秀的存儲模型至關重要。
物聯網系統(tǒng)作為典型的分布式存儲系統(tǒng),是大量普通PC服務器通過Internet互聯,對外作為一個整體提供存儲服務,其具有可擴展性、低成本、高性能、易用性等優(yōu)點[7-8]。
本文主要分析研究哈希算法在物聯網數據存儲方面的典型應用,輔助完成物聯網分布式數據存儲。同時,通過定義吞吐量及響應延時等性能指標,作者在OPNET Modeler仿真軟件中進行簡單的仿真驗證,進而對基于哈希算法的存儲器模型進行性能評估。
1 哈希算法在物聯網中的應用
1.1 物聯網系統(tǒng)結構
物聯網是以互聯網技術為前提的條件下而建立起來的,并將其客戶端拓展到所有物品與所有物品之間,進行數據通信和信息交互的全新網絡應用模式[9]。它也是互聯網應用和發(fā)展的結果和總結。物聯網主要分為感知層、網絡層以及應用層等三個層次。
(1)感知層涵蓋條形碼和識別設備、射頻標簽和識別器、圖像采集儀、全球定位設備及其他傳感器網絡設備,主要功能是感知環(huán)境,獲取數據信息,這與人體結構中皮膚和五官的功能類似。
(2)網絡層類似于物聯網的神經中樞系統(tǒng),主要完成信息交互及處理。網絡層囊括了通信系統(tǒng)、網絡處理中心、信息處理中心以及智能事務應用處理中心等。網絡層對感知層采集的信息進行分類處理,準備傳送到不同的應用模式中。
(3)應用層融合了物聯網的應用模式與用戶需求,實現其智能化管理。應用層結合了物聯網技術與傳統(tǒng)行業(yè),完成行業(yè)多種態(tài)勢的運行機制,此過程類似于與社會職能分配,最終形成智能化人類社會。
1.2 哈希算法在物聯網存儲方面的應用設計
物聯網系統(tǒng)區(qū)別于傳統(tǒng)單機系統(tǒng)在于能夠將數據分布到多個節(jié)點,并在多個節(jié)點之間實現負載均衡。將數據分散到多臺機器后,需要盡量保證多臺機器之間的負載是相對均衡的。影響和評價網絡存儲負載的因素有多種,包括設備的負載值、CPU運行情況、內存容量以及網絡等資源占用情況、數據讀寫請求數等,物聯網系統(tǒng)需要可以判斷網絡是否負載過重,并且能夠自適應地將其應用服務遷移到負載壓力相對較小的設備中去,實現自動負載均衡[10]。
哈希數據分布采用典型的哈希算法。哈希算法的思想是:系統(tǒng)的所有節(jié)點均可被分配隨機值, 值組成哈希環(huán)。當需要進行數據存儲時,根據計算得來的(主鍵)的哈希值,然后按照順時針方向將其存放第一個與該哈希值的值匹配的所在的位置處。該哈希算法的優(yōu)點在于節(jié)點的加入或者刪除操作僅僅會對哈希環(huán)中相鄰節(jié)點產生影響,而對其他節(jié)點不會產生影響。
如圖2所示,將哈??臻g的大小定義為,典型哈希算法如下:
Step1:首先求出每個服務器的值,將其配置到一個的圓環(huán)區(qū)間上;
Step2:其次使用同樣的方法求出待存儲對象的主鍵哈希值,也將其配置到這個圓環(huán)上;
Step3:然后從數據映射的位置開始順時針查找,將數據分布到找到的第一個服務器節(jié)點。
為了查找集群中的服務器,需要維護每臺機器在哈希環(huán)中位置信息,本文采用的復雜度的獲取位置信息的方法。
將哈希空間定義為(即),以典型的Chord數據存儲系統(tǒng)為例,為了提高查找的效率,其在所有服務器中維護一個長度為的路由表。
其中代表哈希環(huán)中某個服務器的表示ID,路由表中的第個元素描述了編號為的所有后繼節(jié)點。
如果位置信息占用的空間容量,每臺服務器均對其前一個以及后一個節(jié)點的位置信息有所記錄。由于其維護的節(jié)點位置信息的空間復雜度為,而且每一次查找均可能會遍歷整個哈希環(huán)中的所有服務器節(jié)點,因此時間復雜度為,其中,N表示服務器數量。本文通過維護的容量信息,查找的時間復雜度改進為。
2 哈希算法的物聯網應用測試
為了驗證本文設計的應用了哈希算法的物聯網存儲系統(tǒng)的通信效果,作者在OPNET Modeler仿真軟件中進行仿真驗證,分析存儲性能和網絡性能等相關指標。
2.1 衡量指標定義
物聯網數據存儲系統(tǒng)常見的評價指標主要包括系統(tǒng)的吞吐能力和系統(tǒng)的響應時間。本文通過下式的平均值進行吞吐量定義,其中表示吞吐量,為仿真單位周期,和分別表示單位時間內的讀操作數和寫操作數。
系統(tǒng)的響應延遲,指從某個請求發(fā)出到接收到返回結果消耗的時間。為了體現系統(tǒng)整體性能,本文統(tǒng)計平均響應延時,假設成功獲取組數據,則通過下式計算,
上式中,表示第個分組的響應延時。
2.2 哈希算法存儲系統(tǒng)性能分析
在OPNET Modeler仿真實驗中,設計兩臺服務器節(jié)點,每臺服務器分別連接5個存儲單元,服務器之間能通過有線網絡進行通信,10個物聯網感知器通過用戶服務器對存儲單元進行讀操作和寫操作。讀操作即定時從存儲單元獲得信息,寫操作為定時將物聯網感知器采集的信息發(fā)送給存儲器進行保存,發(fā)送及接收頻率為10M/ms,且根據設定的哈希分布規(guī)則選取目標存儲器,仿真時間為20min,然后統(tǒng)計仿真結果進行對比分析。
通過測試10臺存儲單元所存儲的數據容量,由結果可知,各存儲器所存儲的信息含量基本相等,基本維持在11718M左右,體現了本文設計的存儲模型具有較好的公平性和一致性,不會對某一個存儲單元或者服務器造成應用壓力。
平均吞吐量及響應延時與順序分布的存儲器模型相比,性能有所改善,圖3的仿真結果表明本文設計的基于哈希分布的分布式存儲模型使系統(tǒng)的吞吐量增加了12.2%,響應延時減少了9.8%。如果集群規(guī)模數量過多,不能保證所有的服務器在同一個機架下,系統(tǒng)設計以及性能分析都會有所不同。只有理解存儲系統(tǒng)的底層設計和實現,并在實踐中不斷地練習,性能估算才會更加準確。整體而言,哈希算法可以使存儲器的網絡性能有所提高。
3 結論
物聯網是傳統(tǒng)互聯網在現代社會應用的拓展和延伸,同時伴隨著大數據時代的到來。作為典型的分布式存儲系統(tǒng),哈希算法完全適應于物聯網的應用環(huán)境。本文主要分析研究哈希算法在物聯網數據存儲方面的典型應用,輔助完成物聯網分布式數據存儲。同時,通過定義吞吐量及響應延時等性能指標,作者在OPNET Modeler仿真軟件中進行仿真驗證,進而對基于哈希算法的存儲器模型進行性能評估。仿真結果表明本文設計的基于哈希分布的分布式存儲模型較順序存儲分布策略使系統(tǒng)在通信性能方面有了顯著的提高。作者也會在今后的研究工作中對哈希算法等數據結構在物聯網中的應用設計進行進一步的優(yōu)化。
參考文獻:
[1] Gubbi J, Buyya R, Marusic S, et al. Internet of Things (IoT): A Vision, Architectural Elements, and Future Directions [J]. Future Generation Computer Systems, 2012, 29(7):1645–1660.
[2] Zhu Q, Wang R, Chen Q, et al. IOT Gateway: BridgingWireless Sensor Networks into Internet of Things[C]// 2010 IEEE/IFIP International Conference on Embedded and Ubiquitous Computing. IEEE Computer Society, 2010:347-352.
[3] Kopetz H. Internet of Things [M]// Real-Time Systems. Springer US, 2011:307-323.
[4] Chalkiadaki M, Magoutis K. Managing Service Performance in the Cassandra Distributed Storage System[C]// 2013 IEEE 5th International Conference on Cloud Computing Technology and Science. IEEE Computer Society, 2013:64-71.
[5] Trushkowsky B, Bod&#, Peter K, et al. The SCADS director: scaling a distributed storage system under stringent performance requirements[C]// Usenix Conference on File & Storage Technologies. USENIX Association, 2011:163-176.
[6] Vermeulen A H, Atlas A B, Barth D M, et al. Distributed storage system with web services client interface: US, US 7716180 B2[P]. 2010.
[7] Lubbers C E. Atomic cache transactions in a distributed storage system: US, US 20060294300 A1[P]. 2006.
[8] Rozsnyai S, Slominski A, Doganata Y. Large-Scale Distributed Storage System for Business Provenance[C]// 2011 IEEE 4th International Conference on Cloud Computing. IEEE Computer Society, 2011:516-524.
[9] Tanimura Y, Hidetaka K, Kudoh T, et al. A distributed storage system allowing application users to reserve I/O performance in advance for achieving SLA[C]// IEEE/ACM International Conference on Grid Computing. IEEE, 2010:193-200.
[10] Choi S C, Youn H Y, Choi J S. Symmetric tree replication protocol for efficient distributed storage system[C]// Computational Science - ICCS 2003, International Conference, Melbourne, Australia and St. Petersburg, Russia, June 2-4, 2003. Proceedings, Part III. 2003:474-484.