叶枫
(广东轻工职业技术学院继续教育学院,广东广州 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>
事件输出模块:主要用于事件流的输出,把处理后的数据呈现出来。可以把数据保存到数据库、文件或者以界面形式提供给CEP的使用者。
3.1 系统应用环境
本系统拟采用美国Crossbow Technology公司生产的无线传感器网络套件进行数据测量,包括空气的温度、湿度以及火焰传感器。在Eclipse开发环境下采用Java编程语言实现其他工具。所有工具均在Windows7操作系统下。
3.2 系统情景分析
情景一:电线短路或人为因素着火。火焰传感器把捕捉到的火焰亮度转化为电平信号输入中央处理器,进行无线网络发送和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