999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Watir的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)

2015-06-22 14:40:36孔英會(huì)高育棟
電視技術(shù) 2015年20期
關(guān)鍵詞:頁面系統(tǒng)

孔英會(huì),高育棟

(華北電力大學(xué) 電子與通信工程系,河北 保定 071000)

基于Watir的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)

孔英會(huì),高育棟

(華北電力大學(xué) 電子與通信工程系,河北 保定 071000)

設(shè)計(jì)了一種基于Watir的物聯(lián)網(wǎng)Web事件處理系統(tǒng)框架。首先搭建ZigBee無線傳感器網(wǎng)絡(luò),把終端節(jié)點(diǎn)的屬性描述到網(wǎng)頁并進(jìn)行服務(wù)器部署,其中用微數(shù)據(jù)來描述每一個(gè)實(shí)體的靜態(tài)屬性,用JS文件描述動(dòng)態(tài)屬性。然后采用Web自動(dòng)化測(cè)試框架Watir,通過Css Selector定位技術(shù)實(shí)現(xiàn)對(duì)動(dòng)態(tài)頁面數(shù)據(jù)的實(shí)時(shí)采集,將實(shí)時(shí)采集的數(shù)據(jù)通過預(yù)處理后添加事件處理,提取關(guān)鍵和有效的事件數(shù)據(jù)并保存。最后基于不同的客戶端對(duì)事件條件下不同平臺(tái)和不同結(jié)構(gòu)的物聯(lián)網(wǎng)網(wǎng)頁進(jìn)行測(cè)試,結(jié)果表明基于Watir的物聯(lián)網(wǎng)Web事件處理系統(tǒng)能準(zhǔn)確和高效地獲取事件數(shù)據(jù)。

物聯(lián)網(wǎng);動(dòng)態(tài)網(wǎng)頁;事件; ZigBee網(wǎng)絡(luò)

物聯(lián)網(wǎng)(Internet of Things,IOT)是當(dāng)前各國(guó)政府都寄予很大希望的未來增長(zhǎng)領(lǐng)域。在物聯(lián)網(wǎng)的系統(tǒng)中,對(duì)傳感器的數(shù)據(jù)管理和查詢是十分重要的。在現(xiàn)階段的物聯(lián)網(wǎng)傳感器的數(shù)據(jù)獲取和處理上,基于Web的物聯(lián)網(wǎng)數(shù)據(jù)管理獲得了廣泛應(yīng)用。基于Web的物聯(lián)網(wǎng)系統(tǒng)可以通過嵌入式設(shè)備將各種智能物體相關(guān)的信息全部集成到Web實(shí)現(xiàn)事物的互聯(lián),對(duì)智能物體的訪問,可以通過現(xiàn)有的已經(jīng)被很好地理解和接受的標(biāo)準(zhǔn)來實(shí)現(xiàn),例如URI、HTTP、REST等。

事件是指在一個(gè)流程中,當(dāng)達(dá)到某種狀況或條件而觸發(fā)某種行為的消息或請(qǐng)求,通常可理解為現(xiàn)實(shí)世界中某種狀態(tài)的改變。物聯(lián)網(wǎng)事件處理的主要工作是根據(jù)已知給定的規(guī)則和模式,從基于分散信息系統(tǒng)的大量信息中檢測(cè)并提取被定義好的事件。對(duì)物聯(lián)網(wǎng)海量數(shù)據(jù),找出用戶感興趣的數(shù)據(jù)、過濾掉其他的冗余數(shù)據(jù)尤為關(guān)鍵,用戶不關(guān)心傳感器產(chǎn)生的所有數(shù)據(jù),只關(guān)心對(duì)他們有用的數(shù)據(jù),比如在“所有溫度傳感器產(chǎn)生的溫度數(shù)值中,用戶只對(duì)最高的溫度值產(chǎn)生興趣,看有沒有超過設(shè)定的閾值”。文獻(xiàn)[1]主要是針對(duì)網(wǎng)頁信息定位的數(shù)據(jù)抽取系統(tǒng)的研究,利用樹結(jié)點(diǎn)的Xpath位置路徑定位到待抽取信息的位置,但是沒有實(shí)現(xiàn)按照設(shè)定的目標(biāo)來實(shí)現(xiàn)信息抽取的任務(wù)。文獻(xiàn)[2]介紹了事件技術(shù)在Web中的應(yīng)用,而且應(yīng)用背景主要是靜態(tài)網(wǎng)頁,對(duì)實(shí)時(shí)變化的物聯(lián)網(wǎng)Web網(wǎng)頁并不適用。文獻(xiàn)[3]中的基于JSSh的方案一次HTTP請(qǐng)求僅獲取一次DOM信息,請(qǐng)求和回應(yīng)耗時(shí)長(zhǎng),無法滿足實(shí)時(shí)獲取頁面動(dòng)態(tài)變化的數(shù)據(jù)。文獻(xiàn)[4]提出一種描述物聯(lián)網(wǎng)實(shí)體靜態(tài)屬性的方法并將描述的網(wǎng)頁保存到Apache服務(wù)器上,但是通過鏈接將動(dòng)態(tài)內(nèi)容保存到本地的文檔,這就限制了對(duì)動(dòng)態(tài)內(nèi)容的訪問。

針對(duì)以上問題,本文面向物聯(lián)網(wǎng)Web網(wǎng)頁,設(shè)計(jì)了基于Watir的物聯(lián)網(wǎng)Web事件處理系統(tǒng)框架,首先創(chuàng)建物聯(lián)網(wǎng)頁面,將實(shí)體的靜態(tài)屬性保存到Apache服務(wù)器,動(dòng)態(tài)屬性保存到Jetty服務(wù)器上,采用自動(dòng)化測(cè)試框架Watir方法加載到物聯(lián)網(wǎng)實(shí)時(shí)動(dòng)態(tài)頁面,結(jié)合Web頁面的結(jié)構(gòu)和內(nèi)容對(duì)HTML文檔進(jìn)行解析并添加事件,將某種條件下的事件數(shù)據(jù)保存以滿足應(yīng)用需要。最后針對(duì)不同平臺(tái)多網(wǎng)頁實(shí)時(shí)抓取,結(jié)果表明該系統(tǒng)實(shí)時(shí)性高,響應(yīng)時(shí)間短,可擴(kuò)展性好,能滿足物聯(lián)網(wǎng)網(wǎng)頁實(shí)時(shí)數(shù)據(jù)的需求。

1 總體設(shè)計(jì)

本文系統(tǒng)設(shè)計(jì)工作包括基于Web的物聯(lián)網(wǎng)頁面創(chuàng)建、服務(wù)器部署和Watir加載與事件獲取3個(gè)方面,具體過程為:將物聯(lián)網(wǎng)Web頁面放到服務(wù)器上,對(duì)于任何一個(gè)能連網(wǎng)的客戶端,通過基于Watir的自動(dòng)化測(cè)試框架,獲取事件條件下的物聯(lián)網(wǎng)頁面實(shí)時(shí)信息并存儲(chǔ)。系統(tǒng)的總體框圖如圖1所示。

圖1 系統(tǒng)總體框架

基于Web的物聯(lián)網(wǎng)頁面創(chuàng)建又包括感知層、網(wǎng)絡(luò)層和應(yīng)用層3個(gè)部分。

1.1 感知層和網(wǎng)絡(luò)層

感知層主要實(shí)現(xiàn)對(duì)物理世界的智能感知識(shí)別、信息采集處理和自動(dòng)控制,并由通信模塊將物理實(shí)體連接到網(wǎng)絡(luò)層和應(yīng)用層。其中,ZigBee[5]技術(shù)是常用的一種連接物理實(shí)體的通信技術(shù),它基于IEEE802.15.4無線標(biāo)準(zhǔn)研制開發(fā),用于短距離、低速率無線網(wǎng)絡(luò)通信。其突出優(yōu)點(diǎn)是應(yīng)用簡(jiǎn)單,工作頻段靈活,功耗低,成本低,可靠性高,具有自組網(wǎng)和自恢復(fù)能力等。本文采用TI公司的第二代芯片CC2530,設(shè)計(jì)了基于ZigBee的無線溫度監(jiān)測(cè)系統(tǒng)作為感知層實(shí)現(xiàn)數(shù)據(jù)的讀取,溫度傳感器采用DS18B20[6]。用兩個(gè)溫度傳感器DS18B20與兩個(gè)CC2530模塊相接作為終端節(jié)點(diǎn),另外一個(gè)CC2530模塊充當(dāng)協(xié)調(diào)器,在MSSTATE_LRWPAN協(xié)議棧的基礎(chǔ)上進(jìn)行應(yīng)用開發(fā),組建一個(gè)ZigBee網(wǎng)絡(luò),實(shí)現(xiàn)無線組網(wǎng),終端節(jié)點(diǎn)采集溫度信息,協(xié)調(diào)器接收到信息后將溫度信息通過串口發(fā)送給PC計(jì)算機(jī),然后通過網(wǎng)頁顯示。

1.2 應(yīng)用層

應(yīng)用網(wǎng)絡(luò)層即終端處理層,它是輸入輸出控制終端,包括計(jì)算機(jī)、手機(jī)等服務(wù)器終端,實(shí)現(xiàn)對(duì)傳輸層發(fā)送的信息的分析、存儲(chǔ)、挖掘處理等應(yīng)用。本文將監(jiān)測(cè)的溫度數(shù)據(jù)實(shí)時(shí)顯示到Web網(wǎng)頁,并將動(dòng)態(tài)網(wǎng)頁部署到Jetty服務(wù)器上,發(fā)布到局域網(wǎng)。

2 物聯(lián)網(wǎng)頁面的描述

本文對(duì)實(shí)體的描述分為兩類,對(duì)靜態(tài)屬性的描述和動(dòng)態(tài)屬性的描述。靜態(tài)屬性包括傳感器的自然屬性、空間屬性、時(shí)間屬性,動(dòng)態(tài)屬性包括傳感器的動(dòng)態(tài)數(shù)據(jù)。將兩種屬性描述到Web網(wǎng)頁并部署到服務(wù)器上,靜態(tài)數(shù)據(jù)發(fā)布到Apache服務(wù)器上,動(dòng)態(tài)數(shù)據(jù)發(fā)布到Jetty服務(wù)器上。通過靜態(tài)網(wǎng)頁上的鏈接地址,鏈接到動(dòng)態(tài)頁面。本文用于測(cè)試的兩個(gè)服務(wù)器部署在一臺(tái)計(jì)算機(jī)上,所以兩個(gè)網(wǎng)址的端口號(hào)不同,Jetty服務(wù)器的設(shè)定端口號(hào)為80,Apache服務(wù)器的端口號(hào)為8080,訪問地址均為本地IP。

2.1 靜態(tài)頁面的描述

本文靜態(tài)網(wǎng)頁采用微數(shù)據(jù)描述。微數(shù)據(jù)是標(biāo)記信息內(nèi)容的一種方式。微數(shù)據(jù)表現(xiàn)為可被嵌套的名值對(duì)(Name-Value Pairs)。這些名值對(duì)的組合被稱為條目,每個(gè)名值對(duì)被稱為一個(gè)成員屬性[7]。在本文中,通過微數(shù)據(jù)描述傳感器的靜態(tài)頁面,Itemid描述條目的全局標(biāo)識(shí)符,Itemprop描述條目的對(duì)象屬性定義,Itemref擁有一個(gè)Itemscope屬性,Itemscope屬性主要描述一個(gè)布爾型的屬性,可以創(chuàng)建一組名為條目的名值對(duì)。靜態(tài)屬性包括傳感器的名稱、類型、時(shí)間特性、地理特性。在對(duì)協(xié)調(diào)器地理特性的描述中,本文使用瀏覽器自帶的地理位置獲取方式,由于協(xié)調(diào)器與計(jì)算機(jī)串口相連,使用HTML5的GEolocation API調(diào)用瀏覽器來確定協(xié)調(diào)器的位置信息,從而能確定該ZigBee網(wǎng)絡(luò)的地理位置。本文將微數(shù)據(jù)描述的網(wǎng)頁利用Google的Live Microdata和Testing Tool來確定微數(shù)據(jù)描述的正確性,將編寫的網(wǎng)頁源代碼放入編輯區(qū)間,查看兩者顯示的數(shù)據(jù)結(jié)構(gòu)。Live Microdata通過將數(shù)據(jù)結(jié)構(gòu)變?yōu)镴son格式,將每個(gè)實(shí)體的全部靜態(tài)屬性在Items項(xiàng)中顯示出來,微數(shù)據(jù)將包含在區(qū)間的名值對(duì)屬性全部顯示到一個(gè)Items中。Testing Tool將每個(gè)實(shí)體靜態(tài)屬性按照名值對(duì)顯示出來,根據(jù)以上的兩種方式測(cè)試,證明微數(shù)據(jù)網(wǎng)頁結(jié)構(gòu)的語義性和方便性。

本文使用Apache2.2版本將靜態(tài)網(wǎng)頁部署到服務(wù)器上,通過Serverroot命令設(shè)置保存服務(wù)器文件的目錄,配置文件所在位置為D:Apache Software FoundationApache2.2conf,主要的配置修改如下:1)修改Listen為211.82.237.78:8080,其中211.82.237.78為本地IP地址,服務(wù)端口號(hào)為8080;2)修改默認(rèn)的自動(dòng)運(yùn)行文件名稱,修改dir_module模塊,將微數(shù)據(jù)編寫的靜態(tài)網(wǎng)頁index.html保存到dir_module模塊中。通過對(duì)Apache的部署,實(shí)現(xiàn)對(duì)網(wǎng)頁的訪問。

2.2 動(dòng)態(tài)頁面的描述

本文使用JFinal作為開發(fā)動(dòng)態(tài)頁面的框架,JFinal框架的架構(gòu)由空間建構(gòu)和邏輯架構(gòu)組成。其中,空間架構(gòu)采用微內(nèi)核全方位擴(kuò)展架構(gòu),它由Handler、Interceptor、Controller、Render和Plugin五大部分組成。每個(gè)部分都基于接口實(shí)現(xiàn),支持完整的自定義,擴(kuò)展性強(qiáng),使用靈活,設(shè)計(jì)精巧且使用簡(jiǎn)單[8]。本文使用JFinal框架調(diào)用和啟動(dòng)Jetty服務(wù)器。Jetty是一個(gè)完全由Java實(shí)現(xiàn)的、開源的HTTP服務(wù)器和 Servlet容器,其運(yùn)行速度快。Jetty更靈活,體現(xiàn)在其可插拔性和可擴(kuò)展性,更易于開發(fā)者對(duì)Jetty本身進(jìn)行二次開發(fā),定制一個(gè)適合自身需求的Web Server,并且Jetty可以非常容易地嵌入到Java應(yīng)用程序當(dāng)中。

對(duì)動(dòng)態(tài)頁面的處理使用JSP實(shí)現(xiàn),腳本語言和頁面布局采用的是Extjs進(jìn)行操作,Extjs是一種主要用于創(chuàng)建前端用戶界面。在對(duì)腳本代碼的編寫中,具體內(nèi)容如下:首先設(shè)置頁面的布局,頁面的布局包括Panel,Button和Label等。通過在Items組件中添加Button和Label來顯示傳感器數(shù)據(jù)。其中,Items包含了所有的子組件,若需要再添加傳感器,直接可在Items里邊添加,這個(gè)可以在后續(xù)的擴(kuò)展中方便添加其他的傳感器。在Button按鈕的設(shè)置中,主要是添加Button的點(diǎn)擊事件,用來獲取數(shù)值。在Handler的處理上,添加自定義的Task事件,利用SetText方法將數(shù)據(jù)顯示到Label上。在對(duì)串口數(shù)據(jù)的獲取過程中,通過定義SerialPort類來確定串口設(shè)置,包括數(shù)據(jù)位、校驗(yàn)位和停止位等,通過對(duì)每個(gè)字節(jié)的數(shù)據(jù)處理,顯示出原來的數(shù)值。

在數(shù)值的計(jì)算和處理中,將處理后的數(shù)據(jù)用RenderJson對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,Render系列方法將渲染不同類型的視圖并返回給客戶端,Json是一種將數(shù)據(jù)從服務(wù)器傳遞到客戶端的更為有效的辦法,轉(zhuǎn)換成Json格式的,傳遞給各自的Label標(biāo)簽,變?yōu)橐子贘S文件讀出的數(shù)據(jù)。在JSP文件中,調(diào)用JS文件,將Json變量的數(shù)據(jù)顯示出來。其中,在Task的事件中,時(shí)間的處理用了Interval方法,設(shè)定Interval:3000,每3 s刷新一次數(shù)據(jù)。顯示部分結(jié)果如圖2所示。

圖2 部分顯示效果(截圖)

3 基于Watir的物聯(lián)網(wǎng)Web事件處理

Watir是一個(gè)用于網(wǎng)頁自動(dòng)化測(cè)試的開源工具,主要是通過使用Watir::IE的一個(gè)實(shí)例化對(duì)象@IE來獲得頁面上的各種元素,Watir::IE封裝的是一個(gè)當(dāng)前頁面的DOM Tree,而不是頁面源代碼,比如頁面如果用JS動(dòng)態(tài)產(chǎn)生一個(gè)元素,在Watir中仍然可以訪問。Watir是用Ruby語言實(shí)現(xiàn)的,Ruby語言自然簡(jiǎn)潔,卻依然擁有強(qiáng)大的數(shù)據(jù)分析和處理能力,主要應(yīng)用于網(wǎng)絡(luò)開發(fā)語言、數(shù)據(jù)處理和數(shù)據(jù)挖掘等方面。Ruby的插件Nokogiri是一種HTML、XML、SAX閱讀解析器,Nokogiri的速度比應(yīng)用廣泛的Hpricot要快許多。Ruby的另一種插件Rufus-scheduler 是一種可以定時(shí)的插件,可以讓程序在指定的時(shí)間內(nèi)運(yùn)行。

本文用Watir來加載傳感器頁面并獲取數(shù)值,根據(jù)需要可實(shí)現(xiàn)按一定時(shí)間間隔連續(xù)獲取,如每10 s完成一次獲取。該方法實(shí)時(shí)性高,連續(xù)性好,能滿足各個(gè)領(lǐng)域?qū)ξ锫?lián)網(wǎng)實(shí)時(shí)數(shù)據(jù)的需求。基于Watir的物聯(lián)網(wǎng)Web事件處理的流程圖如圖3所示。

圖3 基于Watir的物聯(lián)網(wǎng)Web事件處理流程

3.1 加載、獲取并解析HTML文檔

本文首先通過“ie = Watir::Browser.new”創(chuàng)建一個(gè)瀏覽器對(duì)象實(shí)例,通過“ie.goto (‘http://211.82.237.78/’)”,采用跳轉(zhuǎn)方式打開預(yù)期的頁面,同時(shí)用Span標(biāo)簽下的Button按鈕利用Click方法來模擬點(diǎn)擊按鈕,讓其顯示動(dòng)態(tài)的數(shù)據(jù),在完成Watir加載定位之后,通過“ie.html”方法獲取框架下的HTML文檔。網(wǎng)頁的部分HTML文檔如圖4所示。

圖4 部分HTML文檔(截圖)

Nokogiri通過“Nokogiri::HTML.parse”方法獲得HTML文檔,并進(jìn)行解析。Nokogiri提供了XPath及CSS Selector方式來定位文檔里的節(jié)點(diǎn),但是CSS locator比XPath locator速度快,并且CSS Selector能非常精準(zhǔn)地定位到測(cè)試的Elements。CSS Selector可以粗略分成幾類基本的類型:ID選擇器(#id)、Class選擇器(.class)、類型(type)選擇器(p)等。這些都是單一的選擇器,可以在應(yīng)用中把它們組合起來,如:div#id,div#p等。本文采用CSS Selector來查找頁面上所需內(nèi)容的節(jié)點(diǎn),用ID選擇器(#id)實(shí)時(shí)定位該時(shí)刻的頁面文本信息。

3.2 基于Watir的事件處理的方法

本文首先將解析后的數(shù)據(jù)進(jìn)行預(yù)處理,利用Ruby的Araay類來創(chuàng)建數(shù)組,以其中一個(gè)網(wǎng)頁內(nèi)容進(jìn)行實(shí)時(shí)解析為例,解析內(nèi)容如表1所示。

表1 實(shí)時(shí)解析網(wǎng)頁

解析時(shí)間解析內(nèi)容處理方法保存方式實(shí)時(shí)解析標(biāo)簽light逐位解析doccss(‘#light’)text[i]保存到數(shù)組shu?zi 實(shí)時(shí)解析標(biāo)簽light1逐位解析doccss(‘#light1’)text[j]保存到數(shù)組shu?zi1實(shí)時(shí)解析標(biāo)簽內(nèi)容doccss(‘#light’)text保存到數(shù)組或者數(shù)據(jù)庫實(shí)時(shí)解析標(biāo)簽數(shù)字wendu[0].split(“:”)[1]保存到數(shù)組或者數(shù)據(jù)庫

最后給預(yù)處理后的數(shù)據(jù)添加事件,事件方法包括閾值的添加,其中閾值添加包括上下限閾值和區(qū)間閾值。本文以其中一個(gè)傳感器為例說明。

在上下限閾值的處理上,本文使用逐位算法與閾值作比較。通過閾值和實(shí)時(shí)解析的逐位判斷。當(dāng)在閾值范圍內(nèi)時(shí),將數(shù)據(jù)實(shí)時(shí)上傳并保存,否則用“超出閾值“來表示,下限的處理過程類似于上限閾值。對(duì)區(qū)間閾值的處理上,通過Ruby的區(qū)間Range方法來添加區(qū)間范圍,使用區(qū)間表示方法表示一個(gè)半閉半開的區(qū)間。當(dāng)數(shù)值在此范圍時(shí)實(shí)時(shí)上傳數(shù)據(jù),不在此范圍時(shí)顯示“超出閾值”字樣。在后續(xù)的擴(kuò)展中,當(dāng)網(wǎng)頁上有多個(gè)傳感器的數(shù)據(jù)時(shí),可以給每個(gè)傳感器都設(shè)定相應(yīng)的閾值,實(shí)時(shí)比較傳感器之間的大小,將最大或者最小值輸出。當(dāng)傳感器有其他的事件時(shí),可以實(shí)時(shí)添加,擴(kuò)展性得到了很大的提高。

3.3 事件結(jié)果數(shù)據(jù)的存儲(chǔ)

本文通過Ruby中的文件操作來存儲(chǔ)數(shù)據(jù),F(xiàn)ile類是IO類的子類,通過File.new(“d.txt”,“w”)方法實(shí)現(xiàn)創(chuàng)建txt文檔,其中“w”意思是表示以寫入的方式打開文件,“d”為文檔名稱。在本文中,文檔名稱為“filewendu”,通過file.puts方法將獲取的數(shù)據(jù)保存到filewendu.txt中。同樣可以創(chuàng)建幾個(gè)文件實(shí)例,經(jīng)過數(shù)據(jù)處理后的數(shù)據(jù),可以分開保存并呈現(xiàn)給用戶。

3.4 事件數(shù)據(jù)的顯示

本文使用JS文件調(diào)用已經(jīng)保存的文本內(nèi)容,通過網(wǎng)頁顯示事件檢測(cè)結(jié)果。首先通過JavaScript的ActiveXObject來創(chuàng)建FileSystemObject對(duì)象實(shí)例,利用OpenTextFile方法通過地址打開文件,通過循環(huán)將讀取的文件內(nèi)容顯示到TxtArea標(biāo)簽內(nèi),將文本內(nèi)容顯示到網(wǎng)頁上。

4 實(shí)驗(yàn)及結(jié)果分析

本文選取幾個(gè)典型的物聯(lián)網(wǎng)系統(tǒng)進(jìn)行實(shí)驗(yàn),選取的3個(gè)物聯(lián)網(wǎng)網(wǎng)頁結(jié)構(gòu)都不一樣。實(shí)驗(yàn)系統(tǒng)包括:1)XX大學(xué)現(xiàn)代無線通信實(shí)驗(yàn)室(物聯(lián)網(wǎng)實(shí)驗(yàn)平臺(tái))的智能家居系統(tǒng);2)XX大學(xué)現(xiàn)代無線通信實(shí)驗(yàn)室(物聯(lián)網(wǎng)實(shí)驗(yàn)平臺(tái))的用電信息采集系統(tǒng);3)本文自行搭建的物聯(lián)網(wǎng)實(shí)驗(yàn)系統(tǒng)。其中系統(tǒng)1)顯示的內(nèi)容包括窗戶和門口兩個(gè)實(shí)體,每個(gè)實(shí)體的監(jiān)測(cè)內(nèi)容包括溫度、濕度和光照,6個(gè)傳感器采用Push的方式將感知到的信息實(shí)時(shí)推送到網(wǎng)頁上,且6個(gè)傳感器異步更新,各個(gè)位置的數(shù)據(jù)更新周期均為5 s,并實(shí)時(shí)動(dòng)態(tài)地顯示每個(gè)實(shí)體的數(shù)據(jù)至網(wǎng)頁上,平臺(tái)鏈接地址為http://211.82.236.83/sh/。系統(tǒng)2)的用電信息采集系統(tǒng)主要匯總各房間的用電數(shù)據(jù)至網(wǎng)頁,包括8個(gè)房間的用電數(shù)據(jù)采集-電壓、電流、功率、電能量采集等,每5 min刷新一次。平臺(tái)的鏈接地址為http://211.82.236.83/dianli/system/。系統(tǒng)3)的內(nèi)容為兩個(gè)溫度傳感器上傳數(shù)據(jù)至網(wǎng)頁,鏈接地址為http://211.82.237.78/。其中系統(tǒng)1)和系統(tǒng)2)在同一個(gè)平臺(tái)的服務(wù)器上,系統(tǒng)3)在另外一個(gè)平臺(tái)的服務(wù)器上。

對(duì)3個(gè)系統(tǒng)處理的內(nèi)容分別為:系統(tǒng)1)處理的內(nèi)容為對(duì)6個(gè)傳感器分別添加上下限閾值和區(qū)間閾值。系統(tǒng)2)處理的內(nèi)容為以其中8個(gè)房間的三相電壓和總電量為例,給每個(gè)房間的電壓和總電量添加區(qū)間閾值,當(dāng)超過閾值時(shí),顯示警告信息。系統(tǒng)3)處理的內(nèi)容為前文介紹的事件處理。

實(shí)驗(yàn)用兩臺(tái)計(jì)算機(jī)作為客戶端遠(yuǎn)程訪問并抓取和解析數(shù)據(jù),研究抓取并解析的準(zhǔn)確度。實(shí)驗(yàn)中使用Ruby的Time類,在程序的開始和結(jié)束加上時(shí)間戳,通過兩個(gè)時(shí)間的差值來確定加載并解析的時(shí)間和響應(yīng)時(shí)間,其中,響應(yīng)時(shí)間為開始加載到進(jìn)入網(wǎng)頁完成所需的時(shí)間。通過Time類的to_f方法,該方法可以精確到毫秒,在數(shù)據(jù)解析前后加上時(shí)間戳,確定解析的時(shí)間。周期模式采用連續(xù)抓取的方法,時(shí)間間隔為10/15/20 s, 本文連續(xù)30次抓取頁面數(shù)據(jù),確定實(shí)驗(yàn)結(jié)果參數(shù)。其中,查準(zhǔn)率是根據(jù)多次的循環(huán)求出的平均數(shù)。實(shí)驗(yàn)中的相關(guān)應(yīng)用軟件如表2所示,實(shí)驗(yàn)結(jié)果如表3所示。

表2 實(shí)驗(yàn)環(huán)境和相關(guān)配置

用途客戶端1客戶端2PC硬件配置IntelICorei5-3210M(250GHz),內(nèi)存4Gbyte,硬盤500GbyteIntel(R)Core(TM)i5-3230M(260GHz),內(nèi)存4Gbyte,硬盤1TbytePC操作系統(tǒng)Windows7旗艦版32位操作系統(tǒng)Windows7旗艦版64位操作系統(tǒng)PC網(wǎng)絡(luò)環(huán)境某大學(xué)校園網(wǎng)某大學(xué)校園網(wǎng)應(yīng)用軟件WatirGemNokogiriRubyWatirGemNokogiriRuby

表3 客戶端的訪問實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)項(xiàng)客戶端1實(shí)時(shí)獲取客戶端2實(shí)時(shí)獲取客戶端1實(shí)時(shí)獲取客戶端2實(shí)時(shí)獲取客戶端1實(shí)時(shí)獲取客戶端2實(shí)時(shí)獲取加載頁面數(shù)1個(gè)1個(gè)2個(gè)2個(gè)3個(gè)3個(gè)循環(huán)時(shí)間/s10/15/2010/15/2010/15/2010/15/2010/15/2010/15/20測(cè)試系統(tǒng)系統(tǒng)1)系統(tǒng)1)系統(tǒng)1),3)系統(tǒng)1),3)系統(tǒng)2)系統(tǒng)2)系統(tǒng)2),3)系統(tǒng)2),3)系統(tǒng)3)系統(tǒng)3)系統(tǒng)1),2)系統(tǒng)1),2)系統(tǒng)1),2),3)系統(tǒng)1),2),3)響應(yīng)時(shí)間/s1/1/11/1/12/2/22/2/31/1/11/1/12/2/32/3/21/1/11/1/11/1/12/1/12/2/33/2/2加載并解析的時(shí)間/s3/2/33/2/23/3/33/2/32/3/33/2/33/3/43/4/32/2/22/2/24/3/33/4/46/7/65/6/6解析的時(shí)間/ms3/2/33/2/24/5/44/5/43/2/23/2/25/5/65/5/62/1/22/1/26/7/66/7/610/10/1210/9/12查準(zhǔn)率/%100100100100100100100100100100100100100100CPU占用(前/后)/%3/325/303/405/343/305/283/425/363/295/263/465/403/525/48

由以上實(shí)驗(yàn)看出,基于Watir的物聯(lián)網(wǎng)事件獲取方法能按照預(yù)先設(shè)定的時(shí)間連續(xù)抓取以保證獲取最新的數(shù)據(jù)。在同一客戶端對(duì)3個(gè)系統(tǒng)的由少到多逐次測(cè)試,隨著同時(shí)加載網(wǎng)頁數(shù)量增加,加載并解析的時(shí)間也會(huì)有小幅上升,但是所需總時(shí)間很短且響應(yīng)時(shí)間快,查準(zhǔn)率一直保持得很穩(wěn)定,可以100%完成。隨著事件數(shù)量的增多,解析的時(shí)間也會(huì)有所上升,但是毫秒級(jí)的時(shí)間就可以完成實(shí)時(shí)解析。不同的循環(huán)時(shí)間對(duì)應(yīng)的結(jié)果對(duì)比差值很小,說明不同的循環(huán)時(shí)間均可以實(shí)時(shí)高效地獲取數(shù)據(jù),可以滿足對(duì)物聯(lián)網(wǎng)Web網(wǎng)頁實(shí)時(shí)性的事件處理。同時(shí)可以看出,當(dāng)Watir處理不同平臺(tái)的網(wǎng)頁時(shí),與處理同一平臺(tái)相同網(wǎng)頁時(shí)間對(duì)比相差不大,隨著網(wǎng)頁數(shù)量的增加,也可以實(shí)時(shí)高效地處理網(wǎng)頁內(nèi)容。

在實(shí)驗(yàn)中,用了不同配置的計(jì)算機(jī)完成對(duì)3個(gè)系統(tǒng)由少到多的逐次測(cè)試,不同循環(huán)時(shí)間CPU的前后占有率幾乎差不多。隨著加載頁面數(shù)量的增多,CPU的占有率會(huì)有所上升,但是不同配置的計(jì)算機(jī)上升的幅度會(huì)有所不同,配置較高的計(jì)算機(jī)在CPU的占有率和網(wǎng)頁加載并解析的時(shí)間稍好于另外一臺(tái)配置較低的計(jì)算機(jī),但是兩臺(tái)計(jì)算機(jī)都能準(zhǔn)確地完成數(shù)據(jù)的加載和解析。

5 結(jié)論

本文利用設(shè)計(jì)的Web自動(dòng)化測(cè)試框架,通過Nokogiri提供的CSS Selector進(jìn)行實(shí)時(shí)定位,結(jié)合Ruby的Araay類預(yù)處理數(shù)據(jù),給預(yù)處理的數(shù)據(jù)添加事件,實(shí)現(xiàn)了針對(duì)物聯(lián)網(wǎng)網(wǎng)頁在滿足某種條件下事件數(shù)據(jù)的實(shí)時(shí)獲取,不同的用戶可以自定義事件來獲取數(shù)據(jù)。通過兩個(gè)客戶端在安裝Watir框架后對(duì)3種系統(tǒng)進(jìn)行不同組合的測(cè)試,結(jié)果表明該方法獲取的速度快,響應(yīng)時(shí)間短,準(zhǔn)確率高,滿足物聯(lián)網(wǎng)的實(shí)時(shí)性應(yīng)用需求。

[1] 侯明燕.基于網(wǎng)頁信息定位的數(shù)據(jù)抽取技術(shù)的研究[D].廣州:暨南大學(xué),2011.

[2] 仲兆滿,李存華,劉宗田,等.面向Web新聞的事件多要素檢索方法[J].軟件學(xué)報(bào),2013,24(10):2366-2378.

[3] 萬久士,李翔,林祥.基于JSSh的動(dòng)態(tài)網(wǎng)頁獲取研究與實(shí)現(xiàn)[J].信息安全與通信密,2010(4):93-95.

[4] 魏欣.基于微數(shù)據(jù)的物聯(lián)網(wǎng)實(shí)體表示與搜索[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.

[5] 高永清,商丹. 基于ZigBee智慧實(shí)驗(yàn)室系統(tǒng)的設(shè)計(jì)[J].電視技術(shù),2015,39(8):17-21.

[6] 趙小峰,張曉東,袁會(huì)靈.一種輪胎內(nèi)部溫度無線監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].中國(guó)農(nóng)機(jī)化學(xué)報(bào),2015(1):279-281.

[7] MAVRODY S. HTML5和CSS3快速參考[M]. 姚皓,淩杰,譯.北京:人民郵電出版社,2013.

[8] 楊寧,劉丹軍.基于JFinal框架的Java Web應(yīng)用開發(fā)研究[J].電腦知識(shí)與技術(shù),2014,10(7):1440-1443.

System Design for Internet of Things Data Processing Based on Watir

KONG Yinghui, GAO Yudong

(Electronics and Communication Engineering, North China Electric Power University, Hebei Baoding 071000, China)

Web event processing system framework for Internet of Things based on Watir is designed. Firstly, a ZigBee wireless sensor networks is set up, the property of terminal nodes are described with the Web page and deployed them to the server, where the static properties of each entity are described by microdata and the dynamic properties are described based on JS. Then the Web automated testing framework Watir is used to acquire the information of dynamic pages by real-time through CSS Selector locating technology, the real-time data acquired will be add an event handler after pretreatment and then the key data is extracted with event to save. Finally,Mutiple Web pages for different platforms and different structure are tested with event condition based on different client, the results show that Internet of Things Web event processing system based on Watir can accurately and efficiently acquire event data.

Internrt of Things; dynamic pages; event; ZigBee network

TP391.1

B

10.16280/j.videoe.2015.20.013

孔英會(huì)(1965— ),博士,教授,主要研究方向?yàn)橹悄苄畔⑻幚怼⑽锫?lián)網(wǎng)技術(shù);

2015-06-05

【本文獻(xiàn)信息】孔英會(huì),高育棟.基于Watir的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2015,39(20).

高育棟(1989— ),碩士生,主研物聯(lián)網(wǎng)技術(shù)。

責(zé)任編輯:許 盈

猜你喜歡
頁面系統(tǒng)
微信群聊總是找不到,打開這個(gè)開關(guān)就好了
大狗熊在睡覺
Smartflower POP 一體式光伏系統(tǒng)
刷新生活的頁面
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 无码aⅴ精品一区二区三区| 色综合成人| 亚洲第一极品精品无码| 中文纯内无码H| 宅男噜噜噜66国产在线观看| av大片在线无码免费| 亚洲天堂啪啪| 国产剧情国内精品原创| 亚洲人成网18禁| 强奷白丝美女在线观看 | 国产极品嫩模在线观看91| 超级碰免费视频91| 粗大猛烈进出高潮视频无码| 日本午夜视频在线观看| 911亚洲精品| 伊在人亚洲香蕉精品播放 | 中文无码日韩精品| 在线国产三级| 草草影院国产第一页| 草草线在成年免费视频2| 日本黄网在线观看| 久久精品欧美一区二区| 国产香蕉97碰碰视频VA碰碰看| A级全黄试看30分钟小视频| 久久久久国产精品嫩草影院| 老司机久久99久久精品播放| 99精品影院| 国产免费网址| 日本国产精品| 国产99视频在线| 99在线观看免费视频| 日韩中文无码av超清| 亚洲综合网在线观看| 欧美日韩v| 在线视频亚洲欧美| 久青草网站| 婷婷色狠狠干| 一级毛片在线播放| 欧美性猛交一区二区三区| 日本爱爱精品一区二区| 亚洲欧洲日韩久久狠狠爱| 91一级片| 国产69精品久久| 欧美亚洲国产精品第一页| 香蕉久久国产超碰青草| 丁香五月婷婷激情基地| 久久特级毛片| 伦伦影院精品一区| 99久久成人国产精品免费| 亚洲精品在线91| 久久香蕉国产线看精品| 精品一区二区三区四区五区| A级毛片无码久久精品免费| 国产一级裸网站| 国产视频一二三区| 国产一级特黄aa级特黄裸毛片| 538精品在线观看| 久久天天躁狠狠躁夜夜2020一| 国产精品第页| 2020精品极品国产色在线观看| 在线欧美日韩国产| 91精品综合| 999国产精品永久免费视频精品久久| 欧美成人精品欧美一级乱黄| 日本免费精品| 中文字幕无码制服中字| 久久久久国产精品嫩草影院| 九九香蕉视频| 国产高清在线观看| 色综合成人| 久久婷婷国产综合尤物精品| 麻豆精品久久久久久久99蜜桃| 天天综合网色| 日韩经典精品无码一区二区| 国产99免费视频| 六月婷婷综合| 熟女视频91| 在线播放91| 五月天综合婷婷| 人妻丝袜无码视频| 国产成人夜色91| 精品日韩亚洲欧美高清a|