基于Watir的物聯(lián)網(wǎng)Web事件處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及物聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及物聯(lián)網(wǎng)中事件的處理方法。
【背景技術(shù)】
[0002] 物聯(lián)網(wǎng)(InternetOfThings)泛指"物物相連的互聯(lián)網(wǎng)",它的核心和基礎(chǔ)是互聯(lián) 網(wǎng),是在互聯(lián)網(wǎng)基礎(chǔ)上延伸和擴展的網(wǎng)絡(luò),其用戶端延伸和擴展到了任何物品與物品之間。 物聯(lián)網(wǎng)即是把任何物品與互聯(lián)網(wǎng)相連接,進行信息交換和通信。
[0003] 物聯(lián)網(wǎng)的體系架構(gòu)可以分為三層,感知層、網(wǎng)絡(luò)層以及應(yīng)用層。其中,感知層為最 底層,主要實現(xiàn)對物理世界的智能感知識別、信息采集處理和自動控制,并由通信模塊將物 理實體連接到網(wǎng)絡(luò)層和應(yīng)用層。網(wǎng)絡(luò)層為中間層,由各種私有網(wǎng)絡(luò)、互聯(lián)網(wǎng)、有線和無線通 信網(wǎng)、網(wǎng)絡(luò)管理系統(tǒng)和云計算平臺等組成,負責傳遞和處理感知層獲取的信息;各種物聯(lián) 網(wǎng)應(yīng)用借助無線、有線手段接入網(wǎng)絡(luò),在網(wǎng)絡(luò)互聯(lián)支持下提供信息的傳遞、共享和服務(wù)的支 撐。應(yīng)用層為最上層,應(yīng)用層即終端處理層,它是輸入輸出控制終端,包括計算機、手機等 服務(wù)器終端,實現(xiàn)對信息的分析、存儲、挖掘處理等應(yīng)用。
[0004] 物聯(lián)網(wǎng)包含了海量的實體,這些實體每時每刻都會有新的狀態(tài),例如,通過傳感器 感知室內(nèi)各種狀況、溫度、濕度、還有光照程度等,感知道路的實時擁堵信息等。要實現(xiàn)對物 聯(lián)網(wǎng)的智能控制以及擴展對物聯(lián)網(wǎng)的應(yīng)用,就必須對這些海量實體的實時信息進行數(shù)據(jù)分 析,從這些海量實體返回的實時狀態(tài)數(shù)據(jù)中搜尋得到有用的信息。在現(xiàn)階段的物聯(lián)網(wǎng)傳感 器的數(shù)據(jù)獲取和處理上,基于Web的物聯(lián)網(wǎng)數(shù)據(jù)管理獲得廣泛應(yīng)用?;赪eb的物聯(lián)網(wǎng)系 統(tǒng)可以通過嵌入式設(shè)備將日常設(shè)備和裝置上信息全部集成到Web實現(xiàn)事物的互聯(lián),再對智 能物體進行訪問,傳輸協(xié)議可采用現(xiàn)有的已經(jīng)被很好地理解和接受的標準,例如URI、HTTP、 REST等。
[0005] 事件是指在一個流程中,當達到某種狀況或條件而觸發(fā)某種行為的消息或請求, 通??衫斫鉃楝F(xiàn)實世界中某種狀態(tài)的改變。物聯(lián)網(wǎng)事件處理的主要工作是檢測事件,即 根據(jù)已知給定的規(guī)則和模式,從基于分散信息系統(tǒng)的大量信息中檢測并提取被定義好的事 件。對物聯(lián)網(wǎng)海量數(shù)據(jù),找出用戶感興趣的數(shù)據(jù)、過濾掉其他的冗余數(shù)據(jù)尤為關(guān)鍵,用戶不 關(guān)心傳感器產(chǎn)生的所有數(shù)據(jù),只關(guān)心對他們有用的數(shù)據(jù),比如在"所有溫度傳感器產(chǎn)生的溫 度數(shù)值中,用戶只對最高的溫度值產(chǎn)生興趣,看有沒有超過設(shè)定的閾值","在對智能設(shè)備的 傳感器上,傳感器的數(shù)據(jù)包括溫度、濕度和光照,在不同的場合只需要其中的溫度或者其他 數(shù)據(jù)"等。
[0006]目前的網(wǎng)絡(luò)爬蟲或者頁面采集工具無法實現(xiàn)動態(tài)數(shù)據(jù)的實時抓取。在對事件的處 理上,主要是應(yīng)用于靜態(tài)網(wǎng)頁,并且沒有同時加載添加事件條件下的多物聯(lián)網(wǎng)頁面。其缺 點主要表現(xiàn)在以下幾個方面: 1)大多事件處理的數(shù)據(jù)來源都是數(shù)據(jù)庫,沒有從網(wǎng)頁實時地獲取數(shù)據(jù)后添加事件處 理。國外研究中具有代表性的復雜事件處理方法及原型系統(tǒng)有SASE、ESPER、RCEDA等,這些 原型系統(tǒng)可以用于RFID、GPS和傳感器網(wǎng)絡(luò)等數(shù)據(jù)上的復雜事件處理,沒有針對物聯(lián)網(wǎng)Web 網(wǎng)頁的事件處理技術(shù)。
[0007] 2)事件處理在主動數(shù)據(jù)庫中已經(jīng)做了大量的研究,常用的方法都是基于固定的數(shù) 據(jù)結(jié)構(gòu),如樹、圖、自動機或Petri網(wǎng),沒有一種方法是針對半結(jié)構(gòu)化的物聯(lián)網(wǎng)網(wǎng)頁提出的 事件處理,更沒有方法提出對多個物聯(lián)網(wǎng)頁面同時進行實時事件處理。在對動態(tài)頁面的處 理上,沒有方法通過設(shè)定時間來循環(huán)的抓取網(wǎng)頁進行事件條件下的解析。
[0008] 3)對Web網(wǎng)頁的事件研究主要是針對靜態(tài)網(wǎng)頁,研究內(nèi)容主要包括消除冗余、有 效的整合事件信息、提高事件的準確性等。
[0009] 4)現(xiàn)有的動態(tài)網(wǎng)頁的解析機制無法滿足物聯(lián)網(wǎng)頁面數(shù)據(jù)獲取的實時性,客戶端與 服務(wù)器交互的過程中客戶端發(fā)送請求、服務(wù)器端回應(yīng)這個過程耗時長,且不穩(wěn)定,不能實現(xiàn) 動態(tài)實時抓取,同時容易出現(xiàn)數(shù)據(jù)遺漏現(xiàn)象。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種響應(yīng)速度快、能夠?qū)崟r準確抓取物聯(lián)網(wǎng)多 網(wǎng)頁動態(tài)數(shù)據(jù)的物聯(lián)網(wǎng)事件處理方法。
[0011] 為解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案如下。
[0012] 基于Watir的物聯(lián)網(wǎng)Web事件處理方法,首先創(chuàng)建物聯(lián)網(wǎng)頁面,對終端節(jié)點的屬性 描述到網(wǎng)頁上并將網(wǎng)頁部署到服務(wù)器上,采用自動化測試框架Watir方法加載到物聯(lián)網(wǎng)動 態(tài)頁面,結(jié)合Web頁面的結(jié)構(gòu)和內(nèi)容獲取包含終端節(jié)點信息的HTML文檔并對HTML文檔進 行解析,對解析后的數(shù)據(jù)進行預處理后添加事件,將某種條件下的事件數(shù)據(jù)保存,并顯示到 頁面上。
[0013] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,具體包括以下步驟: A. 基于Web的物聯(lián)網(wǎng)頁面創(chuàng)建; A1.創(chuàng)建包含傳感器和無線收發(fā)模塊的Zigbee網(wǎng)絡(luò); A2.Zigbee網(wǎng)絡(luò)中對終端節(jié)點的屬性描述到網(wǎng)頁上并將網(wǎng)頁部署到服務(wù)器上; B. 采用自動化測試框架Watir方法加載到物聯(lián)網(wǎng)動態(tài)頁面; C. 獲取包含終端節(jié)點信息的HTML文檔; D. 解析HTML文檔,獲取頁面文本信息; E. 對解析后的數(shù)據(jù)進行預處理,細化數(shù)據(jù)內(nèi)容; F. 給預處理后的數(shù)據(jù)添加事件; G. 存儲事件結(jié)果數(shù)據(jù); H. 循環(huán)執(zhí)行步驟B~G; I. 將數(shù)據(jù)顯示到頁面上。
[0014] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,步驟A1的具體方法為:采用兩個溫 度傳感器DS18B20與兩個無線收發(fā)模塊CC2530相接作為終端節(jié)點,第三個無線收發(fā)模塊 CC2530作為協(xié)調(diào)器,在MSSTATE_LRWPAN協(xié)議棧的基礎(chǔ)上進行應(yīng)用開發(fā),組建Zigbee網(wǎng)絡(luò)。
[0015] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,步驟A2的具體方法為:將溫度傳感 器描述為靜態(tài)屬性和動態(tài)屬性,并將兩種屬性描述到Web網(wǎng)頁并部署到不同的服務(wù)器上, 其中靜態(tài)數(shù)據(jù)發(fā)布到Apache服務(wù)器上,動態(tài)數(shù)據(jù)發(fā)布到Jetty服務(wù)器上;然后通過鏈接地 址,將兩個服務(wù)器上的網(wǎng)頁連接起來。
[0016] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,步驟D中通過"Nokogiri: :HTML. parse"方法對獲得的HTML文檔進行解析,采用CSSSelector來找頁面上所需內(nèi)容的節(jié) 點,用ID選擇器(#id)取回該時刻的頁面文本信息。
[0017] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,步驟E中通過利用Ruby的Araay類 來創(chuàng)建三個數(shù)組以及Ruby的Split方法進行數(shù)據(jù)的預處理。
[0018] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,步驟F添加事件的方法包括極值的 查找和閾值的添加;其中,極值的查找對象是同種傳感器,找出在同一時刻下的最大值或最 小值;閾值的添加對象為每個傳感器,通過給每個傳感器都添加閾值,找出閾值范圍內(nèi)的數(shù) 據(jù)。
[0019] 上述基于Watir的物聯(lián)網(wǎng)Web事件處理方法,步驟H使用rufus-scheduler模塊 來指定時間執(zhí)行循環(huán)。
[0020] 由于采用了以上技術(shù)方案,本發(fā)明所取得的技術(shù)進步如下。
[0021] 本發(fā)明從客戶端出發(fā),將物聯(lián)網(wǎng)Web頁面放到服務(wù)器上,對于任何一個能連網(wǎng)的 客戶端,通過基于Watir的自動化測試框架,都可以獲取事件條件下的物聯(lián)網(wǎng)頁面實時信 息并存儲,實現(xiàn)了實時抓取事件條件下的物聯(lián)網(wǎng)多網(wǎng)頁動態(tài)數(shù)據(jù)的目的,并且響應(yīng)速度快、 準確率高、可擴展性好,不會出現(xiàn)數(shù)據(jù)遺漏現(xiàn)象。
【附圖說明】
[0022] 圖1為本發(fā)明的總體框架圖; 圖2為本發(fā)明的流程圖。
【具體實施方式】
[0023] 下面將結(jié)合附圖和具體實施例對本發(fā)明進行進一步詳細說明。
[0024] 本發(fā)明針對物聯(lián)網(wǎng)Web應(yīng)用,設(shè)計了基于Watir的物聯(lián)網(wǎng)Web事件處理系統(tǒng)框架, 框架結(jié)構(gòu)如圖1所示,系統(tǒng)框架包括Zigbee網(wǎng)絡(luò)節(jié)點、物聯(lián)網(wǎng)、Apach