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