張玉杰, 張婷婷
(陜西科技大學(xué) 電氣與信息工程學(xué)院, 陜西 西安 710021)
面向物聯(lián)網(wǎng)系統(tǒng)歷史數(shù)據(jù)服務(wù)的設(shè)計與實現(xiàn)
張玉杰, 張婷婷
(陜西科技大學(xué) 電氣與信息工程學(xué)院, 陜西 西安 710021)
物聯(lián)網(wǎng)系統(tǒng)中大量的用戶終端及設(shè)備終端之間的信息交互會產(chǎn)生海量的異構(gòu)數(shù)據(jù)流,數(shù)據(jù)中心需要及時分析和處理這些數(shù)據(jù),選擇對用戶有用的數(shù)據(jù)進行存儲,可以便于對設(shè)備的當(dāng)前與歷史狀態(tài)進行查詢,同時為設(shè)備的大數(shù)據(jù)服務(wù)提供數(shù)據(jù)基礎(chǔ).針對此問題,同時結(jié)合物聯(lián)網(wǎng)系統(tǒng)異構(gòu)型數(shù)據(jù)存儲的特點和通信實時性、可靠性需求以及對不同終端的通用性,提出一種結(jié)合MongoDB數(shù)據(jù)庫、RESTful Web Service、MQTT通信、JMS消息服務(wù)等技術(shù)的物聯(lián)網(wǎng)系統(tǒng)歷史數(shù)據(jù)的管理及存儲系統(tǒng)架構(gòu),實現(xiàn)各設(shè)備節(jié)點歷史數(shù)據(jù)的獲取、選擇性存儲、刪除及查詢等功能,并可適用于不同設(shè)備終端.該系統(tǒng)架構(gòu)經(jīng)過長期測試,可實現(xiàn)物聯(lián)網(wǎng)系統(tǒng)中各設(shè)備節(jié)點數(shù)據(jù)的獲取和集中管理,并可有效提高數(shù)據(jù)庫的存儲效率及存儲利用率.
物聯(lián)網(wǎng)系統(tǒng); 歷史數(shù)據(jù); 選擇性存儲; 集中管理
Abstract:The information exchange between a large number of user terminals and equipment terminals in the Internet of Things system will produce massive heterogeneous data streams.The data center needs to analyze and process these data in time and select the useful data for users to store,in order to facilitate the current and historical status of the equipment to query,and provide data base for equipment large data services.In view of this problem,a management and storage system architecture of historical data of Internet of Things System combined of MongoDB database,RESTful Web Service,MQTT communication,JMS message service was put forward to meet the characteristics of heterogeneous data storage system and the real-time communication,reliability requirements and the versatility of different terminals.For the result,the system can achieve the device node historical data acquisition,selective storage,delete and query functions,and can be applied to different equipment terminals.Through long-term testing,the system architecture can be achieved in the Internet of Things in the system node data acquisition and centralized management,and can effectively improve the database storage efficiency and storage utilization.
Keywords:IOT system; history data; selective storage; centralized management
近年來,隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)設(shè)備的增多,對海量設(shè)備的歷史數(shù)據(jù)進行集中存儲與查詢處理尤為重要.通過對海量設(shè)備歷史數(shù)據(jù)的集中管理,一方面,用戶可以直接獲得任一設(shè)備的當(dāng)前與歷史狀態(tài),通過對群體數(shù)據(jù)進行分析,可以實現(xiàn)對復(fù)雜事件與規(guī)律的感知[1].另一方面,還使得物物互聯(lián)、基于物的搜索引擎、采樣數(shù)據(jù)的統(tǒng)計分析與數(shù)據(jù)挖掘[2]等成為可能.然而物聯(lián)網(wǎng)系統(tǒng)中大量的用戶終端及設(shè)備終端之間的信息交互會產(chǎn)生海量的異構(gòu)數(shù)據(jù)流,使得數(shù)據(jù)規(guī)模呈爆發(fā)式增長態(tài)勢[3].因此數(shù)據(jù)中心需要及時地分析和處理這些數(shù)據(jù),選擇對用戶有用的數(shù)據(jù)進行存儲,進而滿足用戶對海量設(shè)備歷史數(shù)據(jù)的集中管理的需求.
同時物聯(lián)網(wǎng)系統(tǒng)中各終端數(shù)據(jù)靈活多變,數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型呈多樣化,數(shù)據(jù)的存儲處理較為復(fù)雜;終端設(shè)備多樣化,計算能力有限的設(shè)備在低帶寬、不可靠的網(wǎng)絡(luò)信道上遠(yuǎn)程通訊實時性差、可靠性差[4].基于此,提出一種結(jié)合RESTful Web Service、MongoDB數(shù)據(jù)庫、MQTT通信、JMS消息服務(wù)等技術(shù)的物聯(lián)網(wǎng)系統(tǒng)歷史數(shù)據(jù)的管理及存儲系統(tǒng)架構(gòu).該系統(tǒng)支持不同規(guī)模數(shù)據(jù)(實時的、歷史性的)的信息處理,并具有通用性,可實現(xiàn)不同終端的接入及管理.
系統(tǒng)由云平臺、設(shè)備端和用戶端三部分組成.設(shè)備端與云平臺建立實時通信連接,將傳感數(shù)據(jù)傳輸?shù)皆破脚_;云平臺采用面向資源架構(gòu)以統(tǒng)一資源描述的方式,并結(jié)合數(shù)據(jù)庫,實現(xiàn)對用戶和設(shè)備資源的注冊、存儲和管理.同時,云平臺授權(quán)用戶通過B/S或C/S架構(gòu)實現(xiàn)對資源的訪問和操作.系統(tǒng)的基本框架圖如圖1所示.
圖1 系統(tǒng)基本框架圖
根據(jù)功能需求,云平臺主要包括API接口、數(shù)據(jù)存儲、MQTT通信服務(wù)以及數(shù)據(jù)運算處理等模塊,下面對云平臺中各模塊做詳細(xì)介紹.
1.1 Restful API
根據(jù)物聯(lián)網(wǎng)系統(tǒng)的需求,采用REST風(fēng)格的Web服務(wù)封裝用戶、設(shè)備和數(shù)據(jù)管理的業(yè)務(wù)流程接口.REST(Representational State Transfer)是一種分布式軟件架構(gòu)風(fēng)格,RESTful Web服務(wù)是使用HTTP和REST原理實現(xiàn)的Web服務(wù).通常,RESTful Web服務(wù)應(yīng)該定義以下方面:Web服務(wù)的基/根URI,支持MIME類型的響應(yīng)數(shù)據(jù)(包括 JSON/XML/ATOM 等),以及服務(wù)支持的操作集合[5].
在RESTful架構(gòu)中,建立一套友好的API函數(shù),通過URL描述終端,以HTTP常用操作實現(xiàn)資源的CURD(增刪改查)等功能,該系列API既可適應(yīng)不同平臺,具有跨平臺、跨語言的優(yōu)勢[6].另外,本系統(tǒng)選用JSON型數(shù)據(jù)格式[7]實現(xiàn)數(shù)據(jù)的請求與響應(yīng),在不同終端接入云平臺時,均需對數(shù)據(jù)格式進行解析和處理轉(zhuǎn)化為JSON格式,以實現(xiàn)對不同終端的通用性.
1.2 MongoDB數(shù)據(jù)庫
MongoDB 是一種文檔型非關(guān)系型數(shù)據(jù)庫,它不需要預(yù)先定義模式和數(shù)據(jù)庫結(jié)構(gòu),支持的數(shù)據(jù)結(jié)構(gòu)較為松散,適合物聯(lián)網(wǎng)系統(tǒng)中海量的結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的存儲[8].文檔(document)是MongoDB的核心概念,由多個鍵及其相應(yīng)的值有序地存放在一起組成.若干個文檔便組成集合(collection),集合類似于關(guān)系型數(shù)據(jù)庫中的表,可包括多個文檔.多個集合可以組成一個數(shù)據(jù)庫,一個 MongoDB的實例可以承載多個數(shù)據(jù)庫,每個數(shù)據(jù)庫之間可以是完全獨立的[9].
1.3 MQTT通信
MQTT是基于TCP/IP的即時通訊協(xié)議,采用輕量級基于代理的發(fā)布/訂閱式消息傳輸模式.MQTT協(xié)議具有以下特點:采用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,有效解除應(yīng)用程序耦合;MQTT協(xié)議本身的開銷很小,幀格式較為精簡;具有心跳包機制,可維持與服務(wù)器的長連接;支持QoS服務(wù),提供了三種消息發(fā)布服務(wù)質(zhì)量[10].
以上MQTT協(xié)議的這些特性對計算能力有限,網(wǎng)絡(luò)低帶寬且不可靠的低端嵌入式硬件設(shè)備意義巨大,解決了物聯(lián)網(wǎng)系統(tǒng)中傳感設(shè)備和控制設(shè)備的遠(yuǎn)程通訊實時性差和可靠性差等關(guān)鍵問題.
1.4 JMS消息服務(wù)
JMS(Java Message Service,Java消息服務(wù)應(yīng)用程序接口),是一個Java平臺中關(guān)于面向消息中間件的API,能夠通過消息收發(fā)服務(wù)從一個 JMS 客戶機向另一個 JMS客戶機發(fā)送消息.用于在兩個應(yīng)用程序之間,或分布式系統(tǒng)中創(chuàng)建、發(fā)送、接收和讀取消息,進行異步通信[11].JMS應(yīng)用由JMS提供者、JMS客戶端、消息、受管理對象四部分組成,大部分消息傳送產(chǎn)品都支持點對點或發(fā)布/訂閱消息兩種傳送模式.
由于云平臺需要完成各終端數(shù)據(jù)的接收、解析、存儲、反饋等各種復(fù)雜操作,而對于一個云平臺整體架構(gòu)設(shè)計來說,每一個模塊都有其特定的功能,為了協(xié)調(diào)各模塊的工作,保障各模塊間通信正常,需要通過消息隊列的方式實現(xiàn)各模塊間異步通信,保證云平臺工作正常進行,同時提高數(shù)據(jù)的處理效率.在本系統(tǒng)中選用JSM服務(wù)器實現(xiàn)云平臺各模塊間消息傳遞及異步通信.
2.1 數(shù)據(jù)關(guān)系分析
為方便物聯(lián)網(wǎng)系統(tǒng)中對用戶和設(shè)備的管理,需對數(shù)據(jù)庫中一些概念做明確的解釋及規(guī)定.將物聯(lián)網(wǎng)系統(tǒng)中的用戶端的信息統(tǒng)稱為用戶;將設(shè)備端信息統(tǒng)稱為設(shè)備;將某一個硬件系統(tǒng)或某一項目稱為產(chǎn)品,產(chǎn)品是同一個硬件系統(tǒng)中所有設(shè)備的集合;將傳感器采集的溫度、濕度、光照、圖像等實時數(shù)據(jù)的抽象描述稱為設(shè)備的數(shù)據(jù)點[12],將采集到的數(shù)據(jù)點的數(shù)據(jù)稱為歷史數(shù)據(jù).
在MongoDB數(shù)據(jù)庫中建立用戶(users)、產(chǎn)品(products)、設(shè)備(devices)、歷史數(shù)據(jù)(datas)四個集合,四個集合是依次包含的關(guān)系,四個集合的關(guān)系結(jié)構(gòu)圖如圖2所示.每個集合都有自己的主鍵,作為該集合的唯一標(biāo)識,集合之間通過將父集合主鍵嵌入子集合的形式,來確定集合之間的包含關(guān)系.
圖2 集合關(guān)系圖
2.2 數(shù)據(jù)集合設(shè)計
通常情況下,MongoDB數(shù)據(jù)庫具有以下設(shè)計原則:優(yōu)先考慮內(nèi)嵌文檔,將子集合以數(shù)組形式嵌入父集合中;需要單獨訪問一個對象時,將父集合的objectId引入到子集合中[13].根據(jù)以上設(shè)計原則,結(jié)合各集合中文檔的具體內(nèi)容,設(shè)計各集合如表1所示.根據(jù)四個集合的關(guān)系,依次將父集合的標(biāo)識存儲在子集合中,便于對子集合的數(shù)據(jù)進行管理.
表1 數(shù)據(jù)庫集合設(shè)計
在完成對用戶、產(chǎn)品、設(shè)備的創(chuàng)建操作以后,本節(jié)就設(shè)備數(shù)據(jù)的采集、對數(shù)據(jù)點的歷史數(shù)據(jù)進行選擇性存儲及用戶端對歷史數(shù)據(jù)的獲取等過程進行方案設(shè)計.此部分工作涉及RESTful API、MongoDB數(shù)據(jù)庫、MQTT服務(wù)器、JMS消息服務(wù)器等多項技術(shù),系統(tǒng)框圖如圖3所示.
圖3 歷史數(shù)據(jù)服務(wù)框圖
用戶端通過訪問API接口控制設(shè)備數(shù)據(jù)的保存、取消保存以及刪除等操作,API接口將接收到的指令信息通過JMS消息服務(wù)器傳遞給JMS客戶端,JMS客戶端通過對消息類型進行解析,控制MQTT客戶端對設(shè)備數(shù)據(jù)的訂閱或取消訂閱,同時,MQTT客戶端將接收到的設(shè)備數(shù)據(jù)存儲在數(shù)據(jù)庫中.
3.1 創(chuàng)建數(shù)據(jù)點
在進行數(shù)據(jù)選擇性存儲之前,首先需要創(chuàng)建數(shù)據(jù)點,用于對歷史數(shù)據(jù)的過濾和篩選.用戶端訪問"創(chuàng)建數(shù)據(jù)點"的URL,通過POST方法將數(shù)據(jù)點信息發(fā)送給云平臺.云平臺以產(chǎn)品標(biāo)識productId及設(shè)備mac地址為條件,在數(shù)據(jù)庫中的設(shè)備集合devices中查詢到相應(yīng)的設(shè)備,并添加該數(shù)據(jù)點信息,包括數(shù)據(jù)點名稱nodeName、類型nodeType,默認(rèn)數(shù)據(jù)存儲狀態(tài)為false.數(shù)據(jù)點成功創(chuàng)建后,將在數(shù)據(jù)庫中生成的數(shù)據(jù)點唯一標(biāo)識nodeId返回給用戶.
3.2 設(shè)置數(shù)據(jù)點存儲狀態(tài)
用戶根據(jù)系統(tǒng)需求,設(shè)置某個數(shù)據(jù)點的存儲屬性,實現(xiàn)對某個數(shù)據(jù)點歷史數(shù)據(jù)的選擇性存儲.云平臺通過產(chǎn)品標(biāo)識productId、設(shè)備mac地址及數(shù)據(jù)點標(biāo)識nodeId為查詢條件,在數(shù)據(jù)庫devices集合中查找到相應(yīng)的數(shù)據(jù)點信息,并修改數(shù)據(jù)點的存儲Store屬性.
通過發(fā)布/訂閱消息傳送方式,建立JMS客戶端將產(chǎn)品標(biāo)識productId、設(shè)備mac地址、數(shù)據(jù)點標(biāo)識nodeId以及相應(yīng)的歷史數(shù)據(jù)存儲狀態(tài)(store/unstore)通過JMS服務(wù)器傳遞至JMS客戶端.JMS客戶端通過對消息進行解析,控制MQTT客戶端訂閱或取消訂閱MQTT服務(wù)器中設(shè)備端發(fā)布的數(shù)據(jù)點的數(shù)據(jù)信息.
2.1 過表達(dá)B7-H3對乳腺癌細(xì)胞活力的影響 將轉(zhuǎn)染了空載體和B7-H3真核表達(dá)載體的細(xì)胞接種于96孔板中,分別于培養(yǎng)不同時間后用MTT法檢測細(xì)胞的活力,過表達(dá)B7-H3后明顯抑制了MDA-MB-231細(xì)胞的活力。見圖1。
3.3 存儲歷史數(shù)據(jù)
為提高數(shù)據(jù)庫的存儲利用率,將MQTT客戶端接收到的設(shè)備端的數(shù)據(jù)以內(nèi)嵌文檔的形式存儲在歷史數(shù)據(jù)(datas)集合中,但由于MongoDB對文檔的最大限制為16 M,所以在數(shù)據(jù)存儲時應(yīng)注意由于文檔超限而引起數(shù)據(jù)庫存儲故障,因而在數(shù)據(jù)存儲前應(yīng)對已經(jīng)存儲的歷史數(shù)據(jù)集合進行一些集合長度判斷和處理,數(shù)據(jù)存儲過程的流程圖如圖4所示.
圖4 歷史數(shù)據(jù)存儲過程流程圖
在數(shù)據(jù)處理過程中,以數(shù)據(jù)點名稱nodeName為條件對MQTT客戶端接收到的消息進行篩選.經(jīng)過長期測試,設(shè)置歷史數(shù)據(jù)文檔中內(nèi)嵌文檔最大長度為10 000.為提高數(shù)據(jù)集合的遍歷效率,在datas集合中添加count參數(shù),每插入一條數(shù)據(jù)只需將count值加1,插入數(shù)據(jù)前判斷count值即可.避免采用查詢數(shù)組的長度的方式,造成MongoDB讀寫頻繁而鎖死[15].
3.4 刪除歷史數(shù)據(jù)
在執(zhí)行“刪除設(shè)備”、“刪除產(chǎn)品”或“刪除數(shù)據(jù)點”的命令時,除了在數(shù)據(jù)庫中進行相應(yīng)的操作外,還需要取消MQTT客戶端對設(shè)備端數(shù)據(jù)的訂閱,同時刪除其相對應(yīng)的歷史數(shù)據(jù)記錄.
通過發(fā)布/訂閱消息傳送方式,建立JMS客戶端將產(chǎn)品標(biāo)識productId、設(shè)備mac地址、數(shù)據(jù)點標(biāo)識nodeId以及刪除操作(delete)通過JMS服務(wù)器傳遞至JMS客戶端.JMS客戶端控制MQTT客戶端取消訂閱設(shè)備端發(fā)布的數(shù)據(jù)點的數(shù)據(jù)信息.
在刪除歷史數(shù)據(jù)時,在歷史數(shù)據(jù)集合datas中以數(shù)據(jù)點標(biāo)識nodeId為查詢條件,將其相對應(yīng)的歷史數(shù)據(jù)記錄刪除.
3.5 查看歷史數(shù)據(jù)
用戶端通過訪問“查詢歷史數(shù)據(jù)”的API接口將數(shù)據(jù)點標(biāo)識nodeId發(fā)送到云平臺,云平臺在歷史數(shù)據(jù)集合中以nodeId作為查詢條件,查詢到符合條件的歷史數(shù)據(jù),經(jīng)過整合后以數(shù)組形式反饋給用戶端.用戶端可以用圖表形式整合歷史數(shù)據(jù),觀察數(shù)據(jù)的走向趨勢,并可根據(jù)歷史數(shù)據(jù)進行專家系統(tǒng)診斷,發(fā)現(xiàn)設(shè)備的一些潛在問題等.
以阿里云服務(wù)器為載體,搭建系統(tǒng)測試平臺.首先在云服務(wù)器上搭建Apache Tomcat服務(wù)器(HTTP服務(wù)器)、MongoDB數(shù)據(jù)庫、Apache ActiveMQ服務(wù)器(JMS服務(wù)器)、Apache Apollo服務(wù)器(MQTT服務(wù)器)[16],然后將編譯好的程序部署在云平臺上.API接口程序測試?yán)没鸷鼮g覽器的HttpRequester工具,數(shù)據(jù)庫測試采用數(shù)據(jù)庫可視化工具Robomongo,采用MQTT客戶端web版測試工具模擬硬件設(shè)備,向云服務(wù)器發(fā)送數(shù)據(jù).
4.1 數(shù)據(jù)選擇性存儲測試
如圖5(a)所示,以“演示設(shè)備”中三個數(shù)據(jù)點temp、hum、light為例,測試數(shù)據(jù)的選擇性存儲實現(xiàn),將temp和light數(shù)據(jù)點的存儲狀態(tài)設(shè)為true(存儲),hum數(shù)據(jù)點的存儲狀態(tài)設(shè)置為false(不存儲).
如圖5(b)所示,通過MQTT客戶端測試工具上傳temp、hum和light三個數(shù)據(jù)點的數(shù)據(jù)值,圖5(c)所示歷史數(shù)據(jù)集合(datas)中由數(shù)據(jù)點標(biāo)識(nodeId)對比可看出,temp和light的歷史數(shù)據(jù)保存下來,且格子存放在不同文檔中,而hum數(shù)據(jù)點的歷史數(shù)據(jù)未保存.
(a)數(shù)據(jù)點存儲狀態(tài)設(shè)置
(b)MQTT客戶端發(fā)布數(shù)據(jù)
(c)歷史數(shù)據(jù)集合存儲結(jié)果圖5 數(shù)據(jù)選擇性存儲測試
4.2 數(shù)據(jù)存儲效率測試
以“演示設(shè)備”中數(shù)據(jù)點temp為例,如圖6所示,將MQTT客戶端接收到數(shù)據(jù)的時間及數(shù)據(jù)成功存儲在歷史數(shù)據(jù)集合中的時間輸出,通過兩個時間的時間差為測試標(biāo)準(zhǔn),分別測試當(dāng)數(shù)據(jù)點temp中歷史數(shù)據(jù)的條數(shù)為0條、100條、1 000條、5 000條、9 999條時所用的時間進行對比.在此基礎(chǔ)上,在“演示設(shè)備”中創(chuàng)建10個數(shù)據(jù)點,并將其存儲狀態(tài)都設(shè)為true,采用MQTT客戶端測試工具同時上傳10個數(shù)據(jù)點的數(shù)據(jù),查看上述數(shù)據(jù)存儲時間變化趨勢.如表2所示,當(dāng)數(shù)據(jù)增多時,數(shù)據(jù)存儲所用時間呈增長趨勢;且隨著數(shù)據(jù)點增多,數(shù)據(jù)存儲時間也增加,但總體變化較小,維持在10 ms到25 ms之內(nèi).
圖6 數(shù)據(jù)處理時間輸出
已插入內(nèi)嵌文檔個數(shù)1個數(shù)據(jù)點所用時間/ms10個數(shù)據(jù)點所用時間/ms010151001117100014185000172199992125
4.3 數(shù)據(jù)庫存儲利用率測試
本系統(tǒng)歷史數(shù)據(jù)的存儲采用內(nèi)嵌文檔的形式,圖7(a)、(b)分別為內(nèi)嵌文檔形式存儲10 000條歷史數(shù)據(jù)及不使用內(nèi)嵌文檔存儲的形式數(shù)據(jù)庫內(nèi)存大小的對比.由圖7可得,使用內(nèi)嵌文檔數(shù)據(jù)集合內(nèi)存為1 048 560 byte,而不使用內(nèi)嵌文檔數(shù)據(jù)集合內(nèi)存為2 400 000 byte,使用內(nèi)嵌文檔形式存儲比不使用內(nèi)嵌文檔存儲數(shù)據(jù)庫內(nèi)存節(jié)省56.31%,因此利用內(nèi)嵌文檔存儲方式可增加數(shù)據(jù)庫存儲利用率.
(a)使用內(nèi)嵌文檔存儲
(b)不使用內(nèi)嵌文檔存儲圖7 數(shù)據(jù)庫存儲利用率測試
本文結(jié)合物聯(lián)網(wǎng)系統(tǒng)異構(gòu)型數(shù)據(jù)存儲和通信實時性、可靠性需求,提出一種物聯(lián)網(wǎng)系統(tǒng)歷史數(shù)據(jù)的管理及存儲系統(tǒng)架構(gòu).該架構(gòu)通過RESTful Web Service、MongoDB數(shù)據(jù)庫、JMS消息服務(wù)器、MQTT通信等技術(shù)實現(xiàn)不同設(shè)備節(jié)點中,不同數(shù)據(jù)點的歷史數(shù)據(jù)的選擇性存儲,通過設(shè)置可實現(xiàn)歷史數(shù)據(jù)的有效感知,避免物聯(lián)網(wǎng)系統(tǒng)中海量數(shù)據(jù)的冗余.同時利用內(nèi)嵌文檔形式存儲歷史數(shù)據(jù),有效地提高了數(shù)據(jù)庫的存儲利用率,除此之外還實現(xiàn)了對歷史數(shù)據(jù)的刪除及查詢等功能.該架構(gòu)支持物聯(lián)網(wǎng)系統(tǒng)中不同規(guī)模包括實時的和歷史性的數(shù)據(jù)信息處理及管理功能,并具有通用性,實現(xiàn)不同終端的接入及管理,可廣泛應(yīng)用于不同行業(yè)物聯(lián)網(wǎng)應(yīng)用中.
[1] 丁治明,高 需.面向物聯(lián)網(wǎng)海量傳感器采樣數(shù)據(jù)管理的數(shù)據(jù)庫集群系統(tǒng)框架[J].計算機學(xué)報,2012,35(6):1 175-1 182.
[2] Jeffrey Dean,Sanjay Ghemawat.MapReduce:Simplified data processing on large clusters[J].OSDI,2008,51(1):107-113.
[3] 于宏文.智能電網(wǎng)調(diào)度控制系統(tǒng)中歷史數(shù)據(jù)服務(wù)優(yōu)化方案[J].電力系統(tǒng)自動化,2016,40(19):113-117.
[4] 東 輝.物聯(lián)網(wǎng)通信技術(shù)的發(fā)展現(xiàn)狀及趨勢綜述[J].通信技術(shù),2014,47(11):1 233-1 239.
[5] 章武媚.基于RESTful Web技術(shù)的資源管理系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2014,31(5):23-28.
[6] 左文娟,張秋菊.基于REST物聯(lián)網(wǎng)監(jiān)控系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2016,37(1):21-25.
[7] 龔建華.JSON格式數(shù)據(jù)在Web開發(fā)中的應(yīng)用[J].辦公自動化應(yīng)用,2013(20):46-48.
[8] 鐘 麟,員建廈.一種基于 MongoDB 的大數(shù)據(jù)管理架構(gòu)[J].計算機與網(wǎng)絡(luò),2016(5):62-74.
[9] Ktistina Cbodorow.MongoDB權(quán)威指南[M].程顯峰.北京:人民郵電出版社,2011.
[10] 張亞慧.物聯(lián)網(wǎng)環(huán)境下輕量級發(fā)布訂閱系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2015.
[11] Eric Jendrock.Java EE 7 權(quán)威指南[M].蘇金國,江健.北京:機械工業(yè)出版社,2015.
[12] 陳文藝.基于MongoDB的物聯(lián)網(wǎng)開放平臺數(shù)據(jù)存儲設(shè)計[J].西安郵電大學(xué)學(xué)報,2016,21(2):78-82.
[13] 李曉娟.物聯(lián)網(wǎng)中海量數(shù)據(jù)管理技術(shù)研究[D].廣州:廣東工業(yè)大學(xué),2015.
[14] 韓 陸.Java RESTful Web Service實戰(zhàn)[M].北京:機械工業(yè)出版社,2014.
[15] David Hows.MongoDB大數(shù)據(jù)處理權(quán)威指南[M].2版.王肖峰.北京:清華大學(xué)出版社,2015.
[16] 黃驍飛.異構(gòu)云平臺性能監(jiān)控與分析研究[J].計算機科學(xué),2013,40(11):147-152.
【責(zé)任編輯:蔣亞儒】
Designandimplementationofhistoricaldataserviceforinternetofthingssystem
ZHANG Yu-jie, ZHANG Ting-ting
(College of Electrical and Information Engineering, Shaanxi University of Science & Technology, Xi′an 710021, China)
2017-07-28
陜西省科技廳科技計劃項目(2014K07-17); 西安市科技計劃項目(CXY1436(1))
張玉杰(1966-),男,陜西武功人,教授,碩士生導(dǎo)師,研究方向:信息采集與處理、模式識別、嵌入式系統(tǒng)開發(fā)
2096-398X(2017)05-0178-06
TP311.11
A