物聯網(Internet of things,loT)涉及到人類生活的各個方面,對于提高國民生活質量、推動經濟發展具有十分重要的意義。現已經成為學術界和工業界的關注焦點,甚至升級為很多國家的發展戰略,如歐洲的“e-Europe”、美國的“智慧地球”以及我國的“感知中國”戰略。
從數據處理角度,物聯網自下而上可以分為感知層、網絡層、數據層以及應用層,如圖l所示。可以看到,數據層在整個物聯網體系結構中起到了承上啟下的作用,向下服務于感知網絡,向上為各類應用作有力支撐,其核心功能之一是存儲物聯網感知數據,將數據以一定的形式記錄于存儲介質中。感知數據反映了物理世界特定條件下的真實狀態,因而蘊涵了大量直接的或不為人們所知的潛在的有價值信息,借助于信息處理技術可實現物聯網智能化應用;而作為記錄感知數據的手段,數據存儲系統可以保證感知數據的持續累積,為物聯網提取信息、挖掘知識提供實時的或大量的歷史數據,是實現物聯網智能化應用的關鍵角色。因此,設計良好的數據存儲方案對于推動物聯網發展、實現物聯網價值的最大化具有不可替代的作用。
圖1 物聯網層次
本文開展了物聯網存儲模式與方案研究,首先分析了物聯網數據特征為存儲帶來韻挑戰,并基于此提出物聯網存儲的需求,根據需求給出物聯網存儲方案定性評價指標;其次,對物聯網數據存儲模式進行分類,并根據這些分類介紹物聯網存儲的研究現狀與進展,同時對典型的物聯網存儲技術及方案進行了比較分析;之后根據物聯網應用分類指出適合相應應用特性的存儲模式;最后對物聯網存儲進一步工作進行了總結。
1.物聯網數據存儲挑戰與需求
1.1 物聯網數據特征與挑戰
物聯網數據來源于大規模異構感知設備,描述著數以十億計的物理世界對象,總體而言其呈現以下主要特征:
a)多源異構。物聯網數據來源于不同的感知設備,如RFID識讀器、視頻設備、溫度傳感器、濕度傳感器等,源自這些設備的數據有著不同的語義及結構。
b)超大規模。物聯網部署了數量巨大的感知設備,這些設備的持續感知將以前所未有的速度產生數據,導致數據規模的急劇膨脹,形成了海量數據。
c)時空關聯。物聯網系統中每一個采樣數據都具備時間和空間屬性,用于描述物體狀態在時間和空間上的動態變化。
d)多維標量。物聯網應用通常集成了多個不同種類的感知設備,可同時感知多個指標量(即多維事件),因而物聯網采樣數據通常是多維甚至是高維的。
e)冗余度高。物聯網應用中存在采樣頻率過高以及不同的感知設備對同一個物體同時感知等情況,這類情況導致了大量的冗余數據。
上述特征為物聯網數據存儲實現帶來了巨大挑戰:a)物聯網多源異構數據給存儲與共享形成了不少難題,需要對數據的表達進行細致的考慮.b)數據規模巨大,對海量存儲空間有強烈需求;c)感知信息具有時空關聯的特性,蘊藏了海量有價值的信息,存儲系統需要支持從不同空間區域上的多粒度分級存儲和檢索,以改善資源利用率并提高信息獲取效率;d)(實時的、歷史的)多維事件的檢測不僅需要考慮效率,還需要在具有不確定性(缺失、噪聲等)的情況下保證較高的準確率;e)冗余數據占據了過多的存儲空間與網絡流量,需要適當地壓縮、去重以保證數據質量。因而物聯網存儲系統相對于傳統互聯網存儲面臨著更多更新的難題,需要專門研究以支持物聯網智能應用。
1.2 物聯網數據存儲需求
為應對物聯網的挑戰,應用于物聯網的存儲系統須滿足以下需求:
a)開放兼容,即物聯網信息服務系統具備良好的開放性。接口與交互協議須便于物聯網信息的發現、定位和獲取,使得物聯網信息的共享成為可能;兼容多種物聯網技術,屏蔽多種數據接口帶來的復雜性,物聯網數據可用于數據挖掘、狀態跟蹤等各類應用,兼容多源、異構的物聯網有助于縮減應用開發成本,降低使用代價。
b)動態擴展。它包括兩方面:(a)存儲能力動態可擴展,具備伴隨數據規模增大可無限橫向擴展的能力,同時也具備需求完成后釋放資源的能力,良好的彈性是應對物聯網海量數據存儲的基本前提;(b)數據結構動態可擴展,即數據不要固定結構,可根據需求靈活定制數據格式。物聯網數據具有多源、異構的特點,固定結構難以應對此類數據的管理,靈活結構可解決此難題。
c)可靠高效,即支持高并發及高可用性。物聯網存在大量網關同時向信息服務系統寫數據以及大量用戶同時查詢數據的情景,信息服務系統需對這類高并發場景提供良好支持;另一方面,還應在部分節點失效的情況下,整個系統依然可提供正常信息服務,即具備高容錯能力,這是信息服務系統可用的關鍵。
d)安全可信。物聯網信息服務系統健康地運維需要健全的安全體系支持,系統的開放性對維護數據安全、提高隱私保護帶來了更大的挑戰。構建于安全可信框架下的物聯網信息服務是推動用戶廣泛接受必須滿足的條件,也是物聯網普及應用的前提。
2.物聯網數據存儲評價指標
根據物聯網數據存儲需求,可以從以下幾個方面展開對物聯網數據存儲方案的評價:
a)開放性(openness),指系統具有開放性質的措施和形式,其他系統能夠方便地接人,可以通過約定的規則或協議交換數據、協同工作、共享資源。
b)擴展性(scalability),指在通過增加設備等手段提升存儲能力的同時,系統整體性能不會受到顯著的消極影響。
c)靈活性(flexibility),在此指存儲系統可應對異構的數據,靈活調整數據結構。
d)可靠性(reliability),指系統在一定時間內無故障地完成指定任務的可能性,通常可以用平均無故障時衡量。
e)高效性(efficiency),指系統在完成特定任務時占用較少的時間和資源。
f)安全性(security),指系統可以通過如訪問控制、加密等安全手段確保數據的私密性。
g)可用性(usability),指系統易用程度,是否可輕松高效地完成特定范圍的任務。
h)實時性(real-time),指系統中數據的產生到獲取經歷的時延小于限定時間。
其中,評價指標a)對應于開放兼容的需求;評價指標b)c)對應于動態擴展的需求;評價指標d)e)對應于可靠高效的需求;評價指標f)對應于安全可信的需求;評價指標g)對應于系統普適需求;評價指標h)對應于部分應用特別需求。
3.物聯網存儲研究進展與比較分析
3.1 存儲模式分類
物聯網整體是由若干局域感知網絡構成,感知網絡之間基于互聯網、衛星等手段實現互連互通。從網絡構成角度劃分,物聯網數據存儲模式主要分為兩大類:
a)網內存儲模式。利用感知網絡自身的存儲能力記錄感知數據;通常感知設備都具備一定的存儲空間,以WSN為例,除電源、傳感單元、處理器等部件外,也配備了存儲單元,可以保存一定量的數據。網內存儲還可細分為兩類:(a)本地存儲,感知數據生成后就地存儲于產生它的感知節點中;(b)分布存儲,感知數據分布存儲于感知網絡的某些或全部節點中,通過分布式機制實現對數據的訪問。
b)網外存儲模式。感知數據由各個節點產生后,由專門的節點負責數據集成,并借助網絡、無人機等設施與感知網絡外部建立通信,最終以人工收集、自動推送或定期詢問等方式將感知數據發送至網絡外的存儲系統集中存儲,查詢處理可以在網外存儲系統中直接完成,無須與感知網絡建立通信。
不同存儲模式的工作重點有所差別,對于網內存儲模式,既需要關注于對感知數據的網內處理與存儲以實現高效節能,也需要實現快速、可靠的信息收集與統計,有效減少掃描時延并確保魯棒性,并在具有不確定性的實時數據流基礎上提供可靠的事件查詢結果;對于網外存儲模式,需要關注大規模數據下的分片存儲與查詢優化處理,兼容多源異構數據的存儲與表達,提供多級時間、空間粒度下對于復雜事件的查詢支持,并在多用戶、多任務、高并發情況下保持較高的性能。
圖2是對本節所介紹的物聯網存儲分類及總結。從圖中可以看到,這兩類模式從技術上來講最基本的存儲手段有四種:8)文件系統,將感知數據以文件的形式(如XML文件或純文本)存儲于文件系統中,文件系統包括了本地文件系統,以及建立于本地文件系統之上的分布式文件系統;b)數據庫,將感知數據以結構化、半結構化或非結構化等形式存儲于數據庫中;c)混合式,將文件系統與數據庫結合,在數據庫中存儲的不是原始感知數據,而是數據的索引,原始數據以文件形式存儲于文件系統中,可充分利用兩者存儲不同類型數據特有的優勢;d)云平臺,其技術基礎實質上仍是分布式文件系統或數據庫,作為一項新興技術和新的服務模式,具有(計算資源與存儲空間)彈性、開放、高性能等優勢,但其內部環境復雜也引發了更多的數據安全等問題,與物聯網的結合需要專門的研究。
圖2 物聯網存儲分類及技術
3.2 典型存儲技術及方案
3.2.1 基于文件系統的物聯網存儲
文件系統包括本地文件系統以及建立于本地文件系統之上的分布式文件系統。
本地文件系統是指文件系統管理的物理存儲資源直接連接在本地節點上,處理器通過系統總線可以直接訪問。建立于本地文件系統上的方案如在TinyOS上使用XML存儲數據以實現嵌入式設備提供Web服;將所有數據都存儲于PML文件中,實現了一個物聯網的數據服務器;為優化PML存儲,提出了一個PML壓縮算法"J。但基于本地文件系統的方案整體較少,僅在一些早期方案或小規模、簡單應用中被采用,究其原因:a)本地文件系統功能有限,僅提供基本的存儲與文件索引功能,無法很好地支持大規模數據處理;b)橫向擴展困難也是限制本地文件系統應用的一個重要原因;C)將不同設備上的本地文件系統連接協同工作需要大量額外工作,增加了使用成本;d)本地文件系統通常運行于獨立的設備之上,當設備失效時容易造成數據丟失,可靠性不強。
鑒于本地文件系統的上述局限,一些研究關注于使用分布式文件系統存儲物聯網數據。這類文件系統建立于本地文件系統之上,通過網絡將若干存儲節點相連,邏輯上將獨立的存儲節點聚合為一個文件系統整體,統一管理這些節點的物理資源,同時提供并發控制以實現多用戶文件訪問,可以解決I/O瓶頸、空間動態擴展等問題。分布式文件系統是近年來的一個研究熱點。典型的分布式文件系統為Xyratex的Lustre、谷歌的GFS以及Apache項目中的HDFS等。圖3展示了分布式文件系統一般架構。該類系統主要由兩類角色構成:a)元數據服務器,用于保存元數據(文件名、文件路徑、數據塊索引等),并監測其他服務器狀態,扮演整個集群的管理角色;b)用戶數據服務器,用于存儲用戶數據,一般情況下數據會將數據備份到不同機架的若干服務器上,以防止數據因部分節點失效而丟失,同時提供機架感知功能,客戶端訪問數據時確保從最近的機架以最快的速度獲取數據。
圖3 分布式文件系統架構
對于存儲物聯網數據,分布式文件系統較本地文件系統的優點是顯而易見的:a)只需簡單地配置即可輕松地將集群擴展到數萬節點,適用于存儲物聯網海量數據;b)提供并發訪問控制,并可以根據數據分布優化訪問,提高多任務環境下物聯網應用效率;c)將節點失效視為常態,容錯性高,提供了健全的數據備份及恢復機制,確保數據的可靠性;d)吞量大,適合大規模數據應用;e)一次寫,多次讀,與物聯網數據讀寫模式一致;f)一些分布式文件系統還支持上層海量數據處理工具,如Hadoop中的MapReduce,有助于挖掘物聯網數據潛在信息。
然而,無論是本地文件系統還是分布式文件系統,都存在一些不可避免的問題:a)文件結構定制化程度高,與實際應用部分耦合,不利于不同應用共享數據;b)數據冗余度大,清理困難,浪費存儲空間,容易造成數據的不一致;c)文件大小不一,物聯網數據的不確定性容易產生大量小文件,對這類文件的處理需要根據不同的文件系統作專門的研究;d)以文件為單位管理數據,通常僅針對少量關鍵字進行索引,檢索困難,對物聯網數據,特別是海量物聯網數據的多維度、多粒度的分級檢索支持度差;e)文件系統不能很好地支持在線數據流處理,無法滿足部分物聯網應用的實時性要求。因此,基于文件系統的方案并不適用于存儲物聯網數據。
3.2.2 基于數據庫的物聯網存儲
主流的數據庫技術分為關系型數據庫(relational database management system,RDBMS)和非關系型數據庫(not only SQL,NoSQL)兩類。關系型數據庫以結構化的方式存儲數據,提供標準的SQL語言,具有強大的查詢功能;非關系型數據庫是目前一個新的數據庫研究熱點,通常以鍵值對的形式存儲數據,已成功應用于互聯網大數據處理。
感知網絡內部使用的數據庫系統與網外存儲模式使用的數據庫系統由于設備不同,兩者設計上有較大差異,本節將分別從網內和網外兩個方面闡述基于數據庫的物聯網存儲。
1)網內存儲模式中數據庫的應用
感知網絡內部可通過某種策略確定數據在節點中的分布,這類存儲系統典型的代表有TinyDB、Cougar等。TinyDB是用于存儲WSN感知數據的分布式數據庫原型系統,它將整個感知網絡內的數據都散列到指定的節點進行存儲和管理,提供類SQL接口,用戶無須了解WSN具體結構,可以相同的語言查詢數據。關于TinyDB已有較多的研究。Cougar功能與TinyDB類似,如圖4所示,在理念上與TinyDB最大的不同是將無線傳感器網絡節點劃分為若干簇,客戶前端可與任意簇頭交互,簇頭同時負責與簇內其他節點的通信;相對于Ti-nyDB側重為數據管理提供底層系統框架,并對查詢引擎進行優化,Cougar更側重于有效通信機制的建立,并盡可能減少查詢引起的通信能量消耗。
圖4 Cougar系統架構
TinyDB與Cougar都是基于傳統的關系型數據庫模型.部分研究將目光轉移到了新數據庫存儲技術,如文獻嘗試基于非關系型數據庫Redis 22實現無線傳感器網絡的查詢系統,用于取代TinyDB。
但上述這些工作實質上都是數據庫技術向感知網絡的簡單擴展,需要針對感知網內數據特點開展更有針對性的工作,因而部分研究為上述工作進行了優化,提出了一些改進的存儲方案及策略。多數感知網絡能量有限,節能極為重要,文獻關注到了感知網絡能量問題,提出了無線傳感網絡中一種能量有效的存儲方法,采用動態規劃方法確保所有存儲節點能量均衡且所有節點能耗最小由于多數存儲策略只以節能為目的,很少顧及節點有限的存儲容量,文獻在優化存儲的過程中,重點關注如何節省空間,設計的一種小波漸近數據壓縮算法在耗能相當的情況下節省了節點存儲容量。感知設備還存在多維甚至高維的情況,文獻指出支持多維查詢的數據存儲方法DIM(distributed index for multi—dimensional data)和Pool算法存在熱點、規模擴展性差、平均查找代價過大、可操作性不足等問題,并基于K-D樹提出了一種支持多維查詢的數據存儲策略,在一定程度上解決了DIM以及Pool算法存在的問題。此外,由于傳感器自身或環境的原因可能產生不精確或缺失的數據,感知數據具有一定的不確定性,文獻針對這種不確定數據流提出了基于滑動窗口的概率閾值頻繁項查詢算法,但該算法僅考慮了數據集中的情況.在分布式環境下并不適用;文獻提出了基于過濾策略的分布式聚類算法,并設計了分布式環境下不確定數據的表示和存儲方法。上述研究都是從數據特征角度分析并解決問題,而文獻則從用戶的角度出發,指出不同查詢用戶所關心事件的粒度不同,并提出了一套基于環結構的傳感器網絡多分辨率數據存儲機制,提供了多分辨率層次結構的存儲查詢機制來有效地支持不同粒度由粗到細的查詢請求。
以上這些方案一定程度上解決了能耗、感知數據流的不確定性以及多維數據的優化查詢等問題,但目前對于傳感數據的統計特性以及感知數據之間的關聯性研究仍顯不足另外,由于多數方案的查詢都需要在整個感知網絡內部廣播,因此網內存儲模式隨著網絡規模的增大,能量的消耗將隨之加快,限制了應用規模,擴展性不強。
2)網外存儲模式中數據庫的應用
關系型數據庫技術成熟,其中一些典型的產品如MySQL、SQL server以及DB2等已經廣泛應用于互聯網、金融、企業以及教育等行業,其功能與性能得到了長時間驗證,因此,當前網外模式多數物聯網存儲方案都選擇這種技術為基礎”。數據庫的使用一定程度上減少了數據管理的難度,使得具體應用與數據得以分離,但簡單地推廣至物聯網很難滿足其需求。因此一些研究針對物聯網數據的特性提出了相應的解決方案。文獻在分析物品移動路徑特征與采樣數據實際應用狀況的基礎上,針對物流倉儲提出了一個面向RFID海量數據的新數據模型RFID—Cuboids,該模型在完整保存了物品狀態變化的同時還顯著地進行了數據壓縮,由于多數存儲方案如文獻一樣,僅針對物聯網某一個方面、某一種技術或某一個業務領域,應用場景具有較大的局限性。文獻面向整個物聯網,特別針對物聯網數據時空關聯特性,在改良RDBMS基礎上提出了兼容鍵值(key—value)查詢方式的數據庫模型RDB—KV、該方案將物聯網數據分為數值型和多媒體型。并最終將所有物聯網數據都轉換為數值型進行存儲,對于一些較大的或重復程度較高的數據,僅提取一些關鍵幀,在保證數據正確性的同時,有效減少數據量,提高數據質量;然而該方案核心技術為RDBMS,盡管RDB—KV將所有數據都存人一張表中,避免了join(連接)操作帶來的性能損耗。但由于RDBMS采用r鎖機制,該方案擴展性較差,在性能及并發性方面表現并不理想:文獻分析了物聯網環境下數據庫系統面臨的挑戰,指出傳統關系型數據庫的SQL已不適合時間序列數據的查詢一文獻也指出RDBMS在應對物聯網感知數據時具有以下不足:a)傳統數據庫系統難以存儲管理海量的感知數據;b)多數情況下,為滿足實時性,只需得到一定誤差范圍內的近似結果,傳統的RDBMS很難支持任何近似查詢操作。對于一些聚集查詢請求,RDBMS需要掃描外存中的關系表數據來得到查詢結果,這個過程會產生許多I/O操作,不滿足數據流系統中的實時查詢要求。
因此,一些新興的數據庫技術得到了不少關注,尤其是NoSQL,該技術由于性能、擴展性方面的優勢已在互聯網中處理大數據方面有較成功的應用。NoSQL與RDBMS在設計理念上有較大差異,關系型數據庫的數據格式固定,每一行數據都具有相同的字段.這方便了不同表之間連接查詢操作,但也是性能瓶頸的主因而NoSQL具備以下特點:a)擴展簡單,能方便地水平擴展集群,輕松應對海量數據存儲;b)性能高,NoSQL遵循BASE(basically available(基本可用)、soft state(軟狀態)、eventually consistency(最終一致性))模型,犧牲高一致性以獲得高性能;c)結構靈活,NoSQL允許每一行有不同字段,并可隨意增刪,操作靈活且減少了時間和空間開銷,適用于高效存取異構數據。當前,較為流行的開源NoSQL數據庫有MongoDB、CouchDB-8、HBase、Redis以及Cassandra、”等;應用較廣的非開源數據庫有谷歌的Bigtable。以及亞馬遜的Dynamo等。
已有少量工作將NoSQL數據庫應用于物聯網領域,文獻將NoSQL應用構建物聯網異構多媒體數據存儲架構,但這項工作較為初步;NoSQL技術種類眾多,陔方案并未給出合理的選擇依據。文獻在對比了不同NoSQL特性的基礎上,針對感知數據的海量異構性基于NoSQL提出了一套存儲方案,該方案對異構物聯網數據提出統一的表達形式,并通過預處理、數據分布等策略減少冗余數據量,提高了數據質量但這些方案對物聯網感知數據的時空關聯性以及數據不確定性方面并沒有展開有效的工作,對于如何使用NoSQL應對物聯網數據的種類特性研究還不夠全面。
3.2.3 合式
部分應用出于自身的考慮設計了數據庫與文件系統結合使用的方式。由于感知節點資源有限,混合式對于感知網絡內部實現起來較為困難,這種方式多出現于網外存儲模式中。
文獻針對智能電網數據存儲,設計了BDBMS與本地文件系統結合的存儲架構,將數據存儲于文件系統中,而文件路徑及時間信息則存儲于數據庫中。該方案實際上是對本地文件系統方案的改進,提高了文件的檢索效率,使得存儲空間的擴展變得簡單,是一種輕量化設計,實現容易,開發工程量小。但這種改進收益并不大,對該方案進行的仿真實驗結果表明,其執行時間較長,性能差;進一步地,通過分析可得,這類方案使得數據與應用的禍合度更高,若有其他需求須重新設計;另外,由于數據庫中的索引信息定制程度高,開放性并不理想,難以實現與其他系統的互操作,且由于實現機制簡單,不能很好地保證數據的完整性和可靠性。
文獻使用分布式文件系統HDFS與數據庫HUADINGS構建了智慧醫療應用,較文獻工作更為合理,對不同格式數據進行了分類存儲,非結構化數據存儲于文件系統中,而結構化數據則存儲于數據庫中,用于借助數據庫的強大查詢功能支持語義規則分析。
混合式可以利用數據庫與文件系統各自的優點,但由于涉及了兩類存儲系統,在訪問數據時較單一的系統而言增加了額外的開銷,系統性能也會受到消極影響。可以看到,如果應用中涉及了結構化、半結構化以及非結構化等多種復雜的數據,將數據庫與文件系統結合是一個不錯的選擇,也有利于針對不同類型的數據存儲上進行優化;但如果數據類型單一,如文獻展示的應用,則無須采取這種方式。
3.2.4 基于云平臺的物聯網數據存儲
云計算是一種大規模的分布式計算模式,帶動了一種將應用作為服務的新趨勢,使得硬件與軟件通過互聯網可以被充分地使用。物聯網存在大量數據密集型應用,這些應用需要對海量數據進行處理,云平臺有助于解決物聯網自身平臺存儲空間有限、計算性能差等問題,提高環境感知能力以及數據的收集和存儲效率,并提供高效的在線處理感知數據的能力。鑒于云平臺的這些優勢,已有大量工作開展了基于云平臺的物聯網數據存儲研究,如文獻設計了一個基于云平臺的高效海量數據處理模型,可以同時處理物聯網產生的結構化、半結構化和非結構化數據;文獻不僅考慮了數據格式問題,更關注了物聯網系統間的互操作性、系統安全、數據服務質量以及存儲空間的動態擴展,基于云計算為物聯網智慧醫療提出了一個開放、安全以及靈活的平臺,探索了彈性的物聯網服務;大量的應用與異構感知節點的接人使得大規模數據處理變得十分困難,文獻考慮到了不斷增長的物聯網實體及多種多樣的信息帶來的物聯網設備管理失控問題,并在開放性上較文獻做了更多實踐,融合了物聯網一些先進的技術和新的標準,如鏈接傳感數據(linked sensor data)、語義傳感網本體以及CoAP協議,使得整個數據管理框架面向底層感知網絡以及上層智能應用都具備很好的開放性。實時性是物聯網應用的另一個重要需求,與應用交互的設備如傳感器等對海量存儲、高性能計算能力有非常高的要求。文獻研究了物聯網與云計算的結合以解決大數據面臨的問題,提高了數據實時性,以實現用戶可以在任何時間、任何地點對任何物體的訪問。除去數據的實時性,大量冗余數據也為云平臺與物聯網的結合帶來了挑戰。文獻在保證數據實時性的基礎上,設計了一個空間有界(space-bounded)的數據摘要結構,極大地減少了數據量,并基于時間滑動窗口(time sliding window)的聚合算法確保了數據的準確性。
云平臺為物聯網數據存儲提供了彈性的、開放的、實時的、高效的服務,卻加重了數據隱私和安全問題。文獻對結合云平臺的智能電網風險進行了分析,指出了云平臺下數據面臨的七個安全風險,雖然部分研究[”一川提出了一些方法保證云平臺環境下數據的安全,但目前還沒有一個系統的框架應對上述所有風險。
3.3 物聯網存儲模式比較分析
3.2節詳細闡述了各類存儲模式所使用的技術及基于這些技術的方案。可以看到最基本的存儲技術雖然只有數據庫與文件系統兩類,但這些技術內部又有更細的劃分,基于這些技術衍生出的具體方案及改進方案更為多樣,難以枚舉出所有的方案,因此,在對比不同的存儲模式時僅選取了其中的一些典型方案作為代表。表1是根據3.2節中的分析得到的結果,其中符號“V”表明該類物聯網存儲方案在對應的指標上具有較好的表現,下面根據這些指標進行詳細的闡述。
表1 物聯網存儲模式比較
a)在開放性方面。網內的存儲模式通常較為封閉,與其他系統通信困難、協同性較差,通常兩個感知網絡之間的數據交換需要借助翻譯模塊,洲實現。但翻譯模塊通常是定制的,難以兼容所有種類的感知網絡,即便是同一種物聯網技術內部也存在標準不一的情況,要為所有感知技術都建立通信橋梁將更加困難。網外模式中由于本地文件系統缺乏對外的標準接口,不利于外部系統從中獲取數據,因而開放性相比其他幾類較差。
b)在擴展性方面。網內模式的存儲空間通常是由感知網絡節點的存儲容量所決定的,部分類型感知設備,如RFID的手持識讀器可以通過更換存儲卡獲取更大的容量,但對于廣泛應用的WSN,一旦部署完成(如通過無人機拋灑至一個廣大區域進行環境監測),則幾乎不能更換設備,因此這類模式的存儲空間受到了感知網絡節點物理空間的限制。在網外模式中,本地文件系統缺乏協同機制以利用不同機器上的存儲空間,通常只能縱向擴展,即增加機器本身的存儲空間,但獨立的機器所能管理的空間是有限的,因此本地文件系統的擴展性并不理想,而其他幾類則可以通過橫向擴展輕松獲得更大的空間。
c)在靈活性方面。網內數據庫模式大多采用的是關系型模型,這類模型數據格式固定,難以靈活增刪字段,雖有一些初步的工作將NoSQL引人這類模式應對異構數據,但還未得到廣泛應用。因此整體上來講,網內模式的數據靈活性是較差的。在網外模式中,由于非關系型數據庫系統與云平臺的應用,數據格式上能支持結構化、半結構化以及非結構化等數據,數據類型上也可應對復雜的多媒體數據,因而基于這幾類技術的方案都具備較好的靈活性。
d)在可靠性方面。網內存儲模式由于感知節點存儲空間與計算資源的限制,難以提供數據冗余備份,一點感知節點失效,將可能導致部分或全部的數據丟失,系統魯棒性較差。網外存儲模式中,基于本地文件系統的存儲方案通常存儲于單臺機器上,備份困難,容易存在單點失效的問題,而其他幾類技術的方案通常都能夠通過網絡利用本地甚至異地的多臺機器存儲空間,并提供完善的備份與同步機制,因而數據的可靠性能得到良好的保證。
e)在高效性方面。網內存儲模式的查詢通常需要洪泛,這種工作模式下即便是單次查詢,也會引發大量不必要的開銷,因而完成數據訪問的效率較低。網外存儲模式中將數據庫與文件系統混合應用的方案。需要部署兩類系統,而這兩類系統間需要額外的通信開銷完成任務,文獻實驗表明其性能較其他幾類使用單一系統的方案有較大的劣勢。
f)在安全性方面。由于物聯網的日益普及,而感知數據多涉及敏感、隱私信息,其安全問題得到了特別的關注。在網內存儲模式方面,針對如何保護網內數據安全已有較多的研究,一些典型的方案如WSN中的TinySec和SenSec安全操作系統、RFID網絡中的Hash-lock協議、公鑰密碼機制等,這些方案能一定程度地保護感知網內數據安全,但這些方案整體還并不完善。由于感知網絡環境的特殊性易被攻破,部分方案由于算法復雜度較高,在實際中難以部署到資源受限的感知設備中。在網外存儲模式中,應用防火墻、訪問控制以及認證機制等設置便可較好地保護數據安全;然而由于云平臺環境復雜,面臨的安全風險更高,目前還未有系統的方案能夠較好地應對云平臺下數據安全問題。
g)在可用性方面。無論網內還是網外存儲模式,采用RD-BMS的方案都可以提供標準的SQL查詢語言,接口單一,查詢語言對用戶友好程度高、易于理解,因而基于RDBMS的方案可用性較高。而基于非關系型數據庫的方案,由于NoSQL種類眾多,并沒有統一的查詢語言,雖然部分系統能提供功能強大的查詢語法(如MongoDB查詢語法幾乎可以與SQL一一對應,并支持空間數據的查詢),但因為各類系統使用的語言不一致,導致了使用成本的增加,可用性較基于RDBMS的方案差。基于文件系統的方案,雖然部分分布式文件系統提供了一定功能的數據處理工具,但整體上定制程度高,用戶端工作量較大,難以輕松利用一些簡單SQL語言便可實現的功能,因此基于文件系統的方案可用性是最差的。
h)在實時性方面。網內存儲模式由于可以直接與感知網絡交互,數據的實時性得到了最大化的保證。而網絡外部存儲模式由于需要將數據通過通信網絡傳輸到外部存儲系統集中存儲,因此增加了通信時延;此外,由于網絡造成的能量消耗較高,無法一有數據產生便傳送至外部存儲,需要累積一定量一次性傳輸,以減少頻繁網絡交互帶來的能量消耗,因而網外存儲模式的實時性要遠低于網內存儲模式。
3.4 不同存儲模式應用范圍
根據物聯網應用對數據量的需求可以將應用分為數據稀疏型和數據密集型兩大類。前者一般應用簡單,多為數據的直接獲取和展示,用戶通過查詢所得到的結果一般是最初輸人數據的實例,最多再加上一些簡單處理如求和、平均、極大、極小等;而后者一般應用較為復雜,需要大量數據支持,并運用多種數據處理手段從數據中挖掘出數據之間蘊涵的關系以及感興趣的知識。另一方面,從數據的實時性要求角度可以將物聯網應用劃分為實時性應用、半實時性應用以及歷史數據應用、實時性應用要求數據產生與獲得之間的時延很小,一旦生成便盡可能快地獲得;半實時性應用對時延的要求稍有放寬(如獲取智能交通應用關于某時段交通路況的信息),幾分鐘甚至上小時的時延是可以容忍的;歷史數據應用則通常需要較大的數據量的累積,因而并不關心數據的實時性,新產生的數據對數據處理結果幾乎沒有影響。
根據上述分析,可以界定不同存儲模式的適用范圍,進而得到圖5展示的物聯網應用與存儲模式的對應關系。網內存儲模式由于數據量小、數據簡單、實時性高,因而用于實時性或半實時性應用;網外存儲模式往往具備良好的硬件、完善的數據接口以及強大的功能,能夠很好地支撐數據處理,從海量感知數據中獲取有價值的信息,因此適用于數據密集型的應用。同時,部分方案能夠支持在線對歷史數據流的處理,因而也適用于如文獻所示的高速公路車速監控、股票趨勢預測等半實時性應用。
圖5 物聯網應用分類與存儲分類對應關系
4.物聯網數據存儲趨勢與下一步工作
根據上述分析可以得出,物聯網由于本身的技術多樣性、應用廣泛性等特點,多種存儲方案并存是其發展的必然結果,沒有一種模式或一種方案能解決所有問題。另一方面,可以根據物聯網存儲的發展總結出一個明顯的趨勢:從最早的一維數據到現在的多維數據,從早期數據的簡單呈現到目前的基于海量數據的信息處理,物聯網應用越來越復雜,智能化程度也日益增加,對存儲系統的要求也隨之增高,不同的存儲模式(網內存儲模式、網外存儲模式)在不同類型(實時性、半實時性、歷史數據)的應用中將會朝著更為安全、開放、兼容、高效等方向發展,以應對物聯網數據的各類特性,滿足智能化應用需求。但要達到這些目標,下一步工作還需要在以下幾個方面完善。
對于網內存儲模式:8)開放性方面,還缺乏標準的數據交換機制,感知網絡內部現存了多種數據交換協議,如PML、M2MXML以及NGTP等,不同的協議定義的數據格式各異,且限制在特定領域內有效,僅靠翻譯模塊實現不同感知網絡之間的數據交換具有較大的局限性;b)可靠性方面,內部存儲模式易受網絡內分組丟失和節點失效的情況影響而丟失數據,雖有一些工作關注到這樣的問題,但效果并不明顯;c)安全性方面,現有的解決方案在理論上都能一定程度地確保數據安全,但網內存儲模式中節點資源有限,現有的方法往往能耗較高,實際部署較為困難;d)實時性方面,雖然網內存儲模式具備天然的實時性優勢,但目前的應用已并非簡單的數據獲取與展示,在線實時的復雜事件檢測仍然是一個難點。由于復雜事件檢測的應用場景一般為分布式環境,數據在匯集到中心節點時,由于網絡延遲或其他不確定因素,在數據流中可能存在數據亂序的情況,如何在保證在線復雜事件檢測完整性和一致性的前提下去除亂序數據的影響,也是需要考慮的問題。
對于網外存儲模式:a)在高效性方面,絕大部分方案都基于RDBMS,由于其本身的局限性,在海量數據背景下很難提供高性能查詢,對于并發的支持度也很低,雖然有部分方案嘗試使用了NoSQL提高性能,但存儲策略還較為初步;b)可用性方面,服務功能還相當局限,SQL已不再適應物聯網時空相關性及動態流式等特征,而NoSQL大多數情況下也僅能支持功能有限的鍵值查詢,雖然有工作將RDBMS與鍵值結合,但其方案還并不成熟,缺乏復雜、靈活的查詢服務;c)靈活性方面,異構感知數據的存儲管理已超越了以往的時空數據管理的范疇,現實世界的物理對象還具備多種屬性,雖然文獻提出了統一的表達方式,但其數據類型僅限于數值型,未能概括物聯網所有數據類型,因而物聯網數據存儲的面對異構數據的靈活度還有待加強;d)安全性方面,基于云平臺的方案問題尤為突出,已有的方法能一定程度地解決云平臺數據的安全性和私密問題,但各個方法之間相對獨立,缺乏系統性工作;e)其他方面,對感知數據的關聯性研究當前還相對空白,如何支持不同應用數據之間的關聯挖掘,以達到協同工作的目的將需要專門的研究工作。
此外,部分應用需要將網內存儲模式與網外存儲模式相結合,如在網內存儲模式的實時數據流中捕獲即時發生的事件,同時利用網外存儲模式中的海量歷史數據發掘與事件相關的信息,這是未來物聯網應用的一個趨勢,兩種模式之間的協同需要考慮效率、帶寬占用、能量消耗等方面之間的平衡,同時如何確定最佳的服務方式(如API調用、訂單服務、實時推送等)也需要細致的考量。
5.結束語
本文從感知網絡構成方式角度將物聯網數據存儲分為網內存儲模式和網外存儲模式,并根據物聯網數據特征得出物聯網存儲需求,依據這些需求導出開放性、擴展性、靈活性、高效性、可靠性、可用性、安全性、實時性八個指標,對比評價了不同存儲模式下的存儲方案。本文將物聯網應用分為實時性、半實時性以及歷史數據應用,根據應用特征界定了不同的存儲模式及方案應用范圍,并在最后分析了物聯網存儲發展趨勢,同時基于當前工作的不足,介紹了下一步不同模式的物聯網存儲研究工作的重點。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:物聯網存儲模式與方案研究
本文網址:http://www.guhuozai8.cn/html/consultation/10839312897.html