APP下载

一种基于事件处理的信息交换方法的研究

2013-08-01蔡鸿明

微型电脑应用 2013年6期
关键词:组件解析定义

许 斌,蔡鸿明

0 引言

目前,随着信息技术和网络的发展以及企业信息化的强烈需求以及物联网[1]的发展,在制造企业中,各种应用系统层出不穷,包括物料管理系统(MMS)、客户关系系统(CRM)、制造执行系统(MES)等,大量信息随之产生,在多变的市场环境以及生产环境中,针对制造企业中信息源多样并离散的特性,以及普遍存在的软硬件信息交换问题,能够提供更灵活、有效的信息交换方式,成为当今研究的一个方向。

目前比较常见的做法是使用基于服务的ESB(Enterprise Service Bus)的方式实现信息交换,ESB 是SOA 架构中的消息传输中介,通过这个中介,每个组件可以通过标准的消息传输方式进行交互[2][3]。使用ESB 进行信息交换的本质是事件驱动的处理方式,在通过复杂事件处理[4]来实现信息系统方面已有一些研究。早期的方式有基于ECA 规则[5]实现的主动数据库,其中,数据库的操作被用作组合事件。目前,该领域的相关研究向集合语义捕获事件的方向转变,SnoopIB 提供对信息处理和交换的上下文支持[6]。除了主动数据库,更多的研究集中在复杂事件处理系统上。NextCEP提出了一种分布式复杂事件处理系统[7],它使用一种语言来实现基于规则的模式检测。

虽然使用ESB进行信息交换的方案是目前研究的主流,但其仅支持对企业中已有的服务进行信息交换,而在制造企业中大量存在的机械设备以及传感器等难以转化为服务。在事件处理方面,虽然上面提到的研究能够解决各自领域的一些问题,但依然存在不足,比如应用领域的限制以及面对多变环境的可扩展性问题。

综上所述,对于制造企业中应用系统中对信息交换实时性和有效性的要求,特别是对软硬件信息交换的支持,已有的信息交换方式并不能满足需求。本文提出一种基于事件处理的信息交换方法。首先,为了异构信息交换以及事件处理的需要,信息需要从异构信息源抽取、解析并转化生成为格式统一的事件;其次,依据基于ECA 设计的规则,事件被筛选和处理,对原始的信息得到处理和加工;最后,通过事件推送的方式,将事件推送的指定的组件中,实现信息交换。

1 基于事件处理的信息交换框架

为了保证信息交换过程的动态性,并提供对多源信息交换的支持变化,本文提出一种基于事件处理的信息交换框架,如图1所示:

图1 基于规则事件驱动的信息交换框架

整个框架的主要模块可以分为两个部分:信息获取以及解析、基于事件处理的信息交换。

⑴信息获取以及解析,通过不同的通信方式获取信息,并定制信息解析模块对异构信息进行解析。

⑵基于事件处理的信息交换阶段,包含基于规则的事件处理过程,其中处理规则的模型定义也包含在本模块内。

对于不同的信息源,通过解析器解析生成事件实例,接着基于规则执行事件处理,最后展现出来达到信息交换的效果。其中事件提醒,可以使用用户自定义的展现方式进行展现,本文案例基于制造企业中生产车间的实际情况使用现场图的方式进行展现。

2 信息抽取与事件生成

2.1 事件模型定义

Luckham 指出事件就是系统中活动的记录[4]。对于单一活动来说,需要描述的包括活动的标示信息,活动包括自发发生的活动,同时也存在因为某些活动的触发而被动产生的活动,即对应于简单事件与复杂事件,针对这两种不同的情况,使用一个表示类型的参数表示不同的类型,对应于由其他活动触发的活动,其执行以其他活动的产生的信息作为参考,即对应于事件的输入,同时将活动所产生的结果作为事件的输出,这个结果必定与活动一一对应。基于以上的分析,本文给出关于事件模型的定义。

定义1 事件模型 EM=<ED,EI,EO,ET,T>

其中ED 表示事件资源的标识,记录每个事件资源特有的标识信息;EI 表示事件的输入,记录复杂事件的输入信息;EO 表示事件的输出,记录复杂事件的输出信息;ET表示事件的类型,有简单事件以及复杂事件两种类型;T 代表时间戳,记录事件发生的时间。

定义2 事件标识ED=<EId,EName,ELocation,EDescription>

其中EId 是事件的唯一标示;EName 表示事件的名称;ELocation 表示事件的位置信息;EDescription 表示事件的描述信息,用文本形式描述其特性。

定义3 事件资源信息体EM=< EId,Attrs,T>

事件资源信息体包含事件资源的主体信息,包括其唯一的标识EId,信息集Attrs,时间戳T,其中信息集Attrs 中包含一系列属性,事件处理过程中的参数都包含于其中。

事件的输入EI 以及事件的输出EO 均以事件资源信息体为主要信息载体。事件的输出EO,即表示该事件资源的一些特性,与该资源的属性相关,另一方面,对于简单事件来说,其事件的输入EI 为空,而对于复杂事件来说,其输入可以包含多个事件,这些输入的事件信息均与那些事件的输出相对应。

ET 代表事件类型,由简单事件和复杂事件两种类型。

T 表示事件的触发时间,为了系统处理的一致性,在系统内使用统一的方式进行时间录入。

2.2 事件实例生成

在生成事件实例之前,需要在系统中注册所需要使用的事件源,即是根据上文中事件资源的定义建立事件资源的过程,针对简单事件和复杂事件存在两种不同的注册方式:

⑴简单事件直接来源于各个不同的事件源,其资源的定义只需要根据能够接受到的信息内容给出信息体的结构以及其资源标识信息。

⑵复杂事件来自于系统中事件处理,并且系统中事件处理是基于规则完成,那么复杂事件资源与规则对应,定义复杂事件资源需要选定对应的规则,并且选择一些事件作为其输入,而其输出则由规则给出,并不需要在事件资源定义时给出。

信息的抽取与解析:事件有多种不同的事件源,即可以来自于企业中应用系统的操作,也可以来自于连入系统的各种设备,对于不同的信息源有不同的信息抽取和解析方式,其抽取和解析过程,如图2所示:

图2 信息解析与转化

在信息解析完成之后,通过事件的唯一标示与定义的事件相关联,并且将产生的实例保存在事件池中,同时将日志记录于系统中。

3 基于事件处理的信息交换

3.1 规则定义与构建

在事件处理领域使用ECA 规则描述事件触发规则以及处理过程。一个ECA 规则包含事件、条件和动作。其主要形式如下:

表示规则的触发情况,condition 是用户自定义函数的布尔集合,action 给出了处理过程。

本文提出了可扩展的规则模型,定义如下:

定义 4 用于事件处理的可扩展规则 XR=<XRId,XRName,OnEvent.,Condition,Action,Priority,Type>

其中XRId 唯一标示一个规则;XRName 表示规则名;OnEvent 表示规则的触发情况,其值为事件标识的集合,集合中的事件发生都可以触发规则;Condition 表示规则触发之后需要验证的条件;Action 表示条件满足后的动作;Priority 代表事件处理的优先级;Type 代表规则类型,主要有两种类型,一种是消耗型规则,即触发的事件需要从事件池中移除,另一种是非消耗型规则,与消耗型相反,不会将事件从事件池中移除。

条件(Condition)主要用于检验事件中属性集合以及执行过程中全局变量的值是否满足一定规则,用于判断条件真假的操作符主要包括两种,如图1所示:

表1 条件操作符

关系操作符(RO)和逻辑操作符(LO),其中关系操作符主要用于比对事件的属性情况,逻辑操作符则用于条件的逻辑拼接,如下给出操作符定义:

动作(Action)表示当规则触发时满足执行条件需要进行的处理,本文中Action 主要用于计算与该规则对应的复杂事件的输出属性集。

3.2 基于规则的事件处理

基于规则的事件处理被设计用于信息交换。事件处理的过程主要包括事件检测和事件处理。过程,如图3所示:

图3 基于规则事件处理流程图

⑴在系统中实时进行事件检测,首先需要确定触发的规则。为了更快速的进行触发规则的筛选,在规则编辑完成进入规则库后,同时维护事件-规则的关系表,即当该事件发生时,可以通过该对应关系表迅速找到以该事件为触发的规则集。

⑵在规则触发之后,需要对规则的条件进行验证,验证的过程基于活动的事件实例以及 全局参数,对规则中定义的条件进行验证。本文基于RETE 算法提出了一个检测算法,用于检测规则的条件是否被满足,该算法伪代码如下:

该算法将触发事件和规则文件作为输入,检验规则是否被触发,如果能够被触发则通过对条件节点的逐个验证,实现对规则的检测,最终获得其条件是否满足的真值或假值。

⑶在规则的条件被验证为真时,该规则即被判定为需要执行。此时,基于该规则的事件处理被推送至执行队列中,该执行队列使用基于优先级的队列表示,当一个新的事件处理需求被推送至执行队列时,系统会基于规则优先级选择合适的位置,插入新的规则等待执行。

3.3 信息展现

通过事件处理,能够对从多个信息源接收的信息以事件的形式进行交换。在本文中,所有的信息都通过事件的形式进行展现,基于事件驱动的方式进行信息推送。

经过事件处理之后,系统中存在包括简单事件以及复杂事件等大量事件,使用事件推送的方式,根据用户定义展现界面进行展现,在展现界面中的各元素,可以通过事件订阅的方式绑定相应的事件,将事件与界面中组件相互映射,一旦事件实例发布时,侦听该事件的元素就会得到相应并更新,主要过程如下:

⑴展现层组件通过事件提醒模块订阅事件,当订阅成功后,组件与其订阅的事件之间的对应关系,通过订阅信息管理模块保存并管理。

⑵同时基于消息中间件的消息传输机制,在与该事件一一对应的消息队列中增加该组件,将该组件与消息队列进行绑定,当有消息到达时随即被推至该组件。

⑶经过事件处理后产生的事件后,事件的输出部分作为消息加入消息中间件中特定的消息队列,并实时的推送至组件,比如通过与界面元素绑定,能够实时地通过界面更新展现交换的信息。

4 实现与验证

本文以某生产车间的监控系统对基于事件的信息交换方法进行验证。在车间中,存在大量的设备,这些设备通过PLC 可以与车间的设备进行信息传输,获取设备运行状态。为了获取车间生产执行的实时状态,主要功能为一个可用于监视的车间执行状态现场图。设计系统架构,如图4所示:

图4 应用系统架构

具体的流程如下:

⑴信息的获取和解析并生成事件实例,如图5所示:

图5 配置及处理过程

信息的获取通过PLC 与平台进行SOCKET 通信获取,事件模型中关于事件标示的定义在下图(图5 第一部分)A区域给出,包括事件名称(EName)、设备代码(EId)等信息息的内容以一串字符标示,B 区域则给出了事件信息体(EM)的定义,并且给出了通信内容与信息体属性的映射关系。完成创建并保存之后,事件将以XML的格式表示并进行保存和管理。

⑵规则的建立与复杂事件的定义(图5 第二部分):针对系统功能的需求,设计负载检测规则,检测设备负载是否超过既定值,当负载过高时,生产监视部分将获取新的状态数据并动态更新,根据如上的规则添加页面编辑规则,完成包括规则名称、优先级、触发事件等的编辑。

⑶复杂事件创建(图5 第三部分):在规则建立完成之后,基于已有的规则,需要建立复杂事件,除了基本信息所要求的事件名事件标示等,还需要指定其生成时所依赖的规则以及输入事件集。

⑷信息交换与展现:事件“清洗机A”(接收到清洗机A的状态信息,I)发生后,该事件所能触发的规则将被检验,若规则的条件满足则产生新的事件“清洗机负载过高”(K),其以I的事件信息体作为输入,其自身的事件信息体即输出由规则的Action 决定。此外,通过完成界面组件与事件的绑定(图5 第四部分)之后,当K 产生时,监控页面就会对该元素进行包括颜色、数据展示等方式进行展现。

当设备的运行超过负载时,在整体现场监视图(图6)上通过不同的颜色进行展现,同时右侧表格给出最新具体的状态信息,如图6所示:

图6 现场监控图

本文提出的基于事件处理的信息交换方法,将多源信息以事件的形式进行事件处理并以消息中间件推送至各组件达到信息交换的目的,从应用范围、扩展性、性能以及质量与安全指标方面与ESB的方式以及常见的基于消息点对点的方式进行比较,如表2所示:

表2 与已有方法的比较

针对以上几点从表中可以看出,使用基于事件处理的方法在应用范围与扩展性上有较大的优势,主要有以下两点点特点:⑴使用事件表示信息,更具通用性;⑵基于规则进行事件处理,能够灵活的应对多变的需求,具有较好的扩展性。

5 小结

综上所述,本文提出的基于事件处理的信息交换框架,首先建立事件模型,提出多源信息向事件转化的方法,以事件描述异构的多源信息,接着建立能够满足事件处理要求的规则模型,同时给出基于规则的事件处理方法,并介绍了信息交换的展现方法,最后通过一个制造企业中生产车间的监控系统作为验证,证明了本文所提出的基于事件处理的信息交换方法是切实可行的。在接下来的工作中,主要针对性能指标与安全指标,对整个方法的研究体系进行完善和改进。

[1]Stephan Haller,Stamatis Karnouskos and Christoph Schroth.The Internet of Things in an Enterprise Context[J].Lecture Notes in Computer Science,2009,5468:14-28.

[2]蔡昭权.基于ESB的异构系统集成实现[J].计算机应用,2005,28(2):538-540.

[3]Gulnoza Ziyaeva,Eunmi Choi,Dugki Min.Content-Based Intelligent Routing and Message Processing in Enterprise Service Bus [C].International Conference on Convergence and Hybrid Information Technology.Daejeon,KOR,2008:245-249.

[4]Luckham David.The Power of Events:An Introduction to Complex Event Processing in Distributed Enterprise Systems [M].Boston,US:Addison-Wesley Educational Publishers Inc,2002.

[5]Jing Zhang.Verification of ECA rule based management and control systems [C].4th IEEE Conference on Automation Science and Engineering.Washington DC,USA,2008:1-7.

[6]Raman Adaikkalavan and Sharma Chakravarthy.Snoopib:interval-based event specification and detection for active databases [J].Data &Knowledge Engineering,2006,59(1):139-165.

[7]NP Schultz-Moeller,M Migliavacca,and P Pietzuch.2009.Distributed complex event processing with query rewriting[C].Proceedings of the Third ACM International Conference on Distributed Event-Based Systems.New York,USA,2009,Article No.4.

猜你喜欢

组件解析定义
无人机智能巡检在光伏电站组件诊断中的应用
三角函数解析式中ω的几种求法
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
睡梦解析仪
电竞初解析
对称巧用解析妙解
成功的定义
风起新一代光伏组件膜层:SSG纳米自清洁膜层
修辞学的重大定义