張琴利 馬耀華 肖坤 謝敬豐 潘俊
(中核蘭鈾公司,甘肅蘭州 730065)
一種應(yīng)用于物聯(lián)網(wǎng)的實時數(shù)據(jù)存儲技術(shù)
張琴利 馬耀華 肖坤 謝敬豐 潘俊
(中核蘭鈾公司,甘肅蘭州 730065)
該文以飛鄰研發(fā)中心飛鄰平臺為例,著重論述了一種實時數(shù)據(jù)存儲服務(wù)解決方案。
物聯(lián)網(wǎng) 哈希表 TimesTen 時間戳
當物聯(lián)網(wǎng)與互聯(lián)網(wǎng)和移動通訊網(wǎng)相連,就可隨時隨地全方位“感知”對方,這就是物聯(lián)網(wǎng)帶來的變化。飛鄰產(chǎn)品SMC系統(tǒng)從底層終端設(shè)備采集數(shù)據(jù)到中間服務(wù)數(shù)據(jù)解析、處理到客戶端UI的動態(tài)監(jiān)控,是一個完整的監(jiān)控系統(tǒng)。數(shù)據(jù)緩存模塊提供以a.h(攜帶時間戳的ReadKey)為關(guān)鍵字的特定時間點/時間段的歷史數(shù)據(jù)服務(wù),UI可以利用數(shù)據(jù)緩存服務(wù)實現(xiàn)歷史數(shù)據(jù)展示,也可以進行二次包裝進一步提供數(shù)據(jù)回放服務(wù)等功能。
物聯(lián)網(wǎng)指的是將各種信息傳感設(shè)備與互聯(lián)網(wǎng)結(jié)合而形成的一個巨大網(wǎng)絡(luò),其中非常重要的技術(shù)是RFID電子標簽技術(shù)。這個網(wǎng)絡(luò)中,系統(tǒng)可以自動的、實時的對物體進行識別、定位、追蹤、監(jiān)控并觸發(fā)相應(yīng)事件。
是一種時間表示方式。
有序HASH內(nèi)存表是目前速度最快功能最強大的數(shù)據(jù)結(jié)構(gòu),能保持超大規(guī)模數(shù)據(jù)。
TimesTen應(yīng)用于需要快速響應(yīng)時間的數(shù)據(jù)庫。
圖1 實時數(shù)據(jù)庫的結(jié)構(gòu)
在我國,控制層和管理層的計算機應(yīng)用逐步形成了規(guī)模,但是這兩個層次之間的數(shù)據(jù)交換仍是人工的,管理者不能及時掌握工廠的整體信息??梢?我們需要一種系統(tǒng)使生產(chǎn)過程控制和管理相結(jié)合。這種系統(tǒng)具有生產(chǎn)數(shù)據(jù)自動采集、數(shù)據(jù)過濾儲存和智能分析等功能,使用戶可以收集、儲存、查看、分析、控制、管理工廠信息、使生產(chǎn)更有效率。具體連接過程見圖1。
存儲中實時數(shù)據(jù)的保存就是模型中緩存管理的位置。在飛鄰平臺里,緩存管理主要針對實時數(shù)據(jù)的歷史數(shù)據(jù)的存儲。數(shù)據(jù)存儲服務(wù)在飛鄰平臺中位置見圖2。
飛鄰平臺中有一個非常重要的高級服務(wù)DataCenter;它提供給各基礎(chǔ)服務(wù)通訊接口,負責協(xié)調(diào)各模塊之間的數(shù)據(jù)通信和管理。
數(shù)據(jù)緩存的用戶分為三類:
(1)飛鄰內(nèi)部用戶如診斷服務(wù),工作流等;(2)行業(yè)應(yīng)用軟件開發(fā)商;(3)行業(yè)系統(tǒng)集成開發(fā)商。
針對數(shù)據(jù)緩存服務(wù)的三類用戶,提供獨立通道服務(wù)使用模式和命令交互使用方式。獨立通道服務(wù)使用模式見圖3。
數(shù)據(jù)緩存服務(wù)與UI以命令方式交互見圖4。
圖2 數(shù)據(jù)存儲服務(wù)在飛鄰系統(tǒng)中位置
圖3 獨立通道模式
圖4 命令方式
(1)用戶注冊模塊:使用DataServer統(tǒng)一接口,由用戶動態(tài)注冊需要進行緩存的數(shù)據(jù)標志;用戶注冊時要輸入唯一標識鍵值便于用戶讀入;創(chuàng)建索引表;并根據(jù)輸入確定初始化內(nèi)存存儲區(qū)數(shù)據(jù)結(jié)構(gòu)。(2)用戶數(shù)據(jù)寫入模塊:提供寫入數(shù)據(jù)的方法,對寫入的鍵進行篩選,把注冊鍵的值寫入到對應(yīng)的內(nèi)存緩存區(qū)中。(3)數(shù)據(jù)存儲方式可配置:數(shù)據(jù)緩存最重要的技術(shù)點是緩存寫入的存儲模型,如可采用HASH TABLE,實時數(shù)據(jù)庫等方法。為實現(xiàn)不同場景對性能、功能的不同需求,緩存寫入模型應(yīng)做到靈活可配置。初步規(guī)劃實現(xiàn)基于Hash map和實時數(shù)據(jù)庫兩種存儲模型。(4)用戶數(shù)據(jù)讀取模塊:用戶提交要從緩存讀取的數(shù)據(jù)鍵和條件,模塊根據(jù)鍵查找數(shù)據(jù)存儲區(qū),然后根據(jù)條件篩選后把結(jié)果集返回給用戶。(5)緩存數(shù)據(jù)表維護、監(jiān)控模塊(預(yù)留):提供用于對大量存儲區(qū)數(shù)據(jù)的維護、監(jiān)控數(shù)據(jù)的狀態(tài)等功能。
從實現(xiàn)考慮,緩存存儲接口定義為抽象類,用戶繼承后可以靈活二次開發(fā),生成自己的數(shù)據(jù)緩存服務(wù)dll文件。
編程人員基于二次開發(fā)接口完成以哈希表作為存儲載體的驅(qū)動和基于TimesTen實時數(shù)據(jù)庫為存儲載體的驅(qū)動,加載服務(wù)進行了測試,性能基本符合設(shè)計要求。
本數(shù)據(jù)存儲技術(shù)初步測試結(jié)果表明這種存儲方案能夠滿足實時數(shù)據(jù)存儲要求。且服務(wù)配置靈活、提供豐富的二次開發(fā)接口;因此,針對物聯(lián)網(wǎng)復(fù)雜、實時性較高的應(yīng)用領(lǐng)域,也是一個不錯的數(shù)據(jù)存儲方案。
[1]郎銳,羅發(fā)根.Visual C++網(wǎng)絡(luò)通信程序開發(fā)指南.北京:機械工業(yè)出版社,2004年.
[2]W.Richard Stevens. The Socket Networking API. Addison-Wesley,2004.
This paper take the Feeling Research Center SMC platform as example, mainly discuss a technical solution of real-time data storage .
Internet of Things Hash Table TimesTen Timestamp
張琴利(1977-),女,漢族 ,陜西人,工程師,中核蘭鈾公司。
馬耀華(1978-),女,漢族 甘肅人,工程師,中核蘭鈾公司。
謝敬豐(1971-),男,漢族 甘肅人,高級工程師,中核蘭鈾公司。