葉楓
(廣東輕工職業技術學院繼續教育學院,廣東廣州 510300)
基于復雜事件處理的圖書館無線網絡監控系統*
葉楓
(廣東輕工職業技術學院繼續教育學院,廣東廣州 510300)
設計了一個基于復雜事件處理(CEP)技術的圖書館無線網絡監控系統,建立了系統的框架流程,使用復雜事件處理(CEP)引擎實時遠程監控和檢測圖書館的復雜環境事件,發出警告并執行相應動作。該系統具有靈活性與實時性,能滿足圖書館復雜多變的應用場景的監控要求。
復雜事件處理;無線傳感器;實時性
隨著我國教育事業的不斷發展,圖書館的規模也越來越大,如何保證圖書館的安全和創造好的藏書環境也成為非常迫切的問題。對圖書館進行實時遠程監控,可及時發現問題并采取有效措施。圖書館的安全主要受火災和漏水威脅;藏書環境主要受庫房空氣的溫濕度的影響較大,過低的空氣濕度會導致圖書發霉或腐爛,降低了圖書品質和收藏時間。目前大部分圖書館的監控系統僅僅局限在視頻監視上,無法及時發現和處理火災、漏水以及調節圖書館內空氣的溫濕度等緊急情況。
復雜事件處理(CEP) 技術被用于從大量低層次事件(原子事件)中按照一定模式在截止期內匹配得出高層次事件(復雜事件)[1-2]。實時CEP技術能滿足圖書館無線網絡監控的需求。主要是由于CEP技術的復雜事件模式描述語言能夠描述復雜情景[3],同時支持重配置復雜事件模式,以及近年來CEP的快速發展,包括高性能的復雜事件處理技術[4]和實時CEP系統框架等。因此,本文擬構建基于CEP的圖書館無線網絡監控系統,以具備實時性和數據查詢能力,使用無線傳感器網絡監控圖書館環境狀態,實時CEP引擎根據預定義的復雜事件模式實時檢測復雜事件,為異常情況作出正確的反饋。
本圖書館網絡監控系統如圖1所示,由無線傳輸網絡、原子事件抽取器、CEP引擎以及動作執行器四個部分構成。
無線傳輸網絡主要是監控圖書館的溫度、濕度等環境狀態以及火焰情況。所有數據均由無線傳感器網絡中間層收集處理,形成數據流并打包輸出到原子事件抽取器中。由于圖書館面積較大,樓層較多,采用無線傳感器發揮了其無布線和易于靈活布置的優點。

圖1 圖書館網絡監控系統框架
原子事件抽取器主要通過對無線傳輸的數據流進行篩選整理,抽取已經發生的原子事件來構成原子事件流,并打包輸送到實時CEP引擎中。
實時CEP引擎主要承擔根據預設值的復雜事件模式從原子事件流中檢測出復雜事件。其中,原子事件存儲內有原子事件流,復雜事件模式庫儲存有以中間語言描述的復雜事件模式,檢測模塊負責檢測復雜事件,檢測到的復雜事件被置于復雜事件存儲中,并打包輸送到動作執行器中。
動作執行器根據檢測到的復雜事件內容,可選擇聲音報警、開啟滅火裝置、開啟空氣調節裝置及開啟排泄裝置。
本系統的復雜事件處理描述語言支持各種邏輯操作符,利用操作符的嵌套,可對復雜情景進行描述;本系統具有較高的靈活性,可進行監控內容的調整和修改。
2.1 復雜事件處理流程
復雜事件處理(CEP)的目標就是從軟件系統應用各個層次的事件流中,獲取其中所包含的信息,理解其對上層管理目標和業務過程的影響,并做出實時的反應。復雜事件處理流程依次為事件生產、事件通道、事件處理以及事件動作的驅動。
事件生成:每一個事件都是由事件源生成的。這個源可能是一個程序、數據存儲、服務、業務過程、發射器、傳感器,或者合作工具(及時消息軟件、電子郵件)。
事件通道:一般是傳輸消息的主干,在事件生成、事件處理和下游的訂閱者間傳輸標準格式化的事件。
事件處理:在事件處理層收到一個事件后,會根據事件處理規則對這個事件進行評估,再觸發相應動作。事件處理的規則和相應動作是根據事件消費者的興趣和需求來制定的,而不是取決于事件生產者。事件由引擎來處理,復雜的事件處理引擎在處理一個事件的發生時,會結合其之前已發生或之后將要發生的事件上下文來處理。
事件驅動的動作:一個事件可能會引起在下游的若干個動作發生。一個動作可能由事件處理引擎來直接觸發(啟動服務、業務過程觸發、通知等等),或者由事件的訂閱者來發起。訂閱者可能是人、應用程序、活動的業務過程等等。事件必須以標準格式發布,而一般由企業集成主干系統負責將事件或動作觸發信息轉換成訂閱者所需要的格式。
2.2 復雜事件處理模塊
CEP工程的EPN(Event Process Network)如圖2所示。該EPN圖包括五個模塊:事件源模塊(hel?loworldAdapter)、事件通道(helloworldInputChannel和helloworldOutputChannel)、事件處理模塊(hello?worldProcessor)、事件輸出模塊(helloworldBean)。待處理的數據被包裝成事件,從事件源出發,經事件處理模塊處理后由事件輸出模塊輸出。

圖2 CEP工程的EPN圖
事件源模塊:事件源模塊主要負責把數據轉換為CEP工程可以理解的格式,然后輸入給事件處理模塊。CEP支持多種多樣的Adapter:JMS Adapter、HTTP Publish-Subscribe Server Adapter、Custom Adapter、High Available Adapter。通過這些Adapter,CEP能夠輕松的讀取數據庫、EXCEL文檔、網絡數據流等多種形式的數據。例如,可以將Adapter配置如下:
<wlevs:adapter id="helloworldAdapter"class="com.bea. wlevs.adapter.example.helloworld.HelloWorldAdapter">
<wlevs:instance-property name="message"value= "HelloWorld-the current time is:"/>
<wlevs:instance-property name="nam"value=""/>
<wlevs:instance-property name="num"value=""/>
<wlevs:instance-property name="sex"value=""/>
<wlevs:instance-property name="age"value=""/>
<wlevs:instance-property name="score"value=""/>
<wlevs:instance-property name="year"value=""/>
<wlevs:instance-property name="month"value=" "/>
</wlevs:adapter>
此時,Adapter就是一個JavaBean文件(com. bea.wlevs.adapter.example.helloworld.HelloWorld?
Adapter),在該Bean文件中,可以通過如下代碼讀取到一個Excel文檔中的數據:
Workbook book=Workbook.getWorkbook(new File("E: \test.xls"));
Sheet sheet=book.getSheet(0);
//j=sheet.getRows();
j=0;
i=1;
System.out.println(sheet.getCell(j, i).getCon?
tents());
String message=this. message + dateFormat.for?mat(new Date());
HelloWorldEvent event=new HelloWorldEvent();
suspended=false;
while(i<sheet.getRows()){//Generate messages for?ever...
event.setMessage(message);
event.setName(sheet.getCell(j++,i).getContents());
event.setNum(sheet.getCell(j++,i).getContents());
event.setSex(sheet.getCell(j++,i).getContents());
event.setAge(sheet.getCell(j++,i).getContents());
event.setScore(sheet.getCell(j++,i).getContents());
event.setYear(sheet.getCell(j++,i).getContents());
event.setMonth(sheet.getCell(j++,i).getContents());
eventSender.sendInsertEvent(event);
//generateHelloMessage(i);
j=0;
i++;
try{
synchronized(this){
wait(SLEEP_MILLIS);
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
通過配置不同的Adapter,可以讀取各種各樣的數據源。
事件通道:它的作用很多,如事件緩沖,并發查詢控制。另外,實際的CEP工程并不會像圖1所示的那樣簡單,更多的CEP工程會相當復雜,有多個事件處理模塊,對事件流進行多步處理,產生多個事件輸出流。事件輸入流經過事件處理模塊處理后可能產生多條事件輸出流,這時候就需要用通道區分相應的事件流。
事件處理模塊:它是CEP的關鍵部分,用于處理事件流,主要用到CQL(Complex Query Lan?guage)語言。CQL語言是一種基于SQL的查詢語言,但是在SQL中加入了用于數據流處理的部分,因此適合用于CEP的事件流處理。通過CQL語言,可以輕松的對一個或多個事件流進行復雜的處理并提供一個或多個事件輸出流。下面的代碼就是一個簡單的事件處理模塊配置代碼:
<processor>
<name>MRQosOfElecLevelProcessor</name>
<rules>
<view id="S"schema="startTimeperoid BSC UtranCell carrierIndex">
<![CDATA[
Rstream(select* from MRQosOfElecLevelIn?putChannel[now])
]]>
</view>
<query id="MRCellElecLevelUpStream2">
<![CDATA[select*from MRQosOfElecLevelIn?putChannel
]]>
</query>
<view id="VMRCellElecLevelUp"schema="startTime BSC UtranCell ElecLevel01 ElecLevel2 ElecLevel34 ElecLev?el56 ElecLevel7">
<![CDATA[select startTime,BSC,UtranCell, from S
]
]>
</view>
<query id="MRCellElecLevelUpQuery">
<![CDATA[
select startTime,BSC from VMRCellElecLevelUp
]]>
</query>
</rules>
</processor>
事件輸出模塊:主要用于事件流的輸出,把處理后的數據呈現出來??梢园褦祿4娴綌祿臁⑽募蛘咭越缑嫘问教峁┙oCEP的使用者。
3.1 系統應用環境
本系統擬采用美國Crossbow Technology公司生產的無線傳感器網絡套件進行數據測量,包括空氣的溫度、濕度以及火焰傳感器。在Eclipse開發環境下采用Java編程語言實現其他工具。所有工具均在Windows7操作系統下。
3.2 系統情景分析
情景一:電線短路或人為因素著火?;鹧鎮鞲衅靼巡蹲降降幕鹧媪炼绒D化為電平信號輸入中央處理器,進行無線網絡發送和CEP引擎處理,發出聲音警報,開啟滅火裝置,并切斷圖書館電源。
情景二:圖書館內漏水。圖書館內漏水主要為水管漏水、樓板頂層漏水和窗戶漏水,當水都一定高度,漏水傳送器將及時發送信號和聲音警報,并開啟排泄裝置,提醒工作人員進行檢修。
情景三:圖書館內濕度過大。在空氣濕度較大的季節里,當庫房內空氣相對含濕量超過a%時,濕度傳感器將信號傳遞給CEP引擎處理,開啟空氣調節設備(主要為抽濕機),當相變含濕量低于b%時,停止空氣調節設備,這里a大于b。
當前我國圖書館的監控系統不能完全市場滿足需求,本文基于復雜事件處理(CEP)技術實現了一個針對圖書館無線網絡監控系統,建立了系統的框架流程,通過無線傳感器網絡監控圖書館環境事件,根據預設置的復雜事件模式實時檢測復雜事件并執行動作。該系統將在圖書館實時監控中得到廣泛的應用,具有很好的應用前景。
[1]李想,范玉順,喬穎,等.基于實時復雜事件處理的智能家居監控系統[J].計算機研究與發展,2012,49(增刊):372-376.
[2]Luckham D.C.The power of events:An introduction to complex event processing in distributed enterprise systems[M].Boston:Addision-Wesley Longman Publishing Co.lnc,2001.
[3]Qiao Ying,Zhong Kang,Wang Hongan,et al.Develop?ing event-condition-action rules in real-time active data?base[A].Proc of ACM Symp on Applied Computing[C].New York:ACM,2007:511-516.
[4]Wu E,Diao Y,Rizvi S.High-performance complex event processing over streams[A].Proc of ACM SIG?MOD 06[C].New York:ACM,2006:407-418.
Library Wireless Network Monitoring System Based on Complex Event Processing
YE Feng
(Guangdong Industry Technical College,School of Continuing Education,Guangzhou510300,China)
This paper designed library wireless network monitoring system based on complex event processing,built the framework of the system process.The complex event processing engine in real-time was used to monitor and detect complex environment event,sound a warning and perform the corresponding action.The system has the flexibility and the real-time performance,which can satisfy the monitoring requirement of the application scenario for the library.
complex event processing;wireless sensor;real-time
TP277
A
1009-9492(2014)05-0077-04
10.3969/j.issn.1009-9492.2014.05.019
葉 楓,男,1983年生,湖北武漢人,碩士,實驗師。研究領域:計算機應用。已發表論文5篇。
(編輯:向 飛)
*廣東省自然科學基金資助項目(編號:S2011010001403)
2014-01-15