简介
事件处理是指对系统中任意发生的一个活动调用有关程序或例程进行处理。主要目的是使系统正常运行。在操作系统,事件处理是经常发生的,因此,事件处理的类型有很多,例如中断是由于系统中某事件引起的,对中断进行处理就是一种事件处理以及进程的调度也是一种事件处理。
事件在计算中,事件有多种定义,在计算机系统中,事件是指系统中任意一个活动的发生,其特点有显着性(发生在系统感兴趣的特定领域),瞬时性(发生在一个特定的时间点)和原子性(发生或不发生)。数据与事件的发生紧密联系在一起,一些数据是所有事件共同的(如发生的时间),而另一些则仅特定于某些事件。与事件相关的数据项被称为属性。事件之间通过时间顺序、因果关系、聚合关系相互联系,事件之间的这些联系被定义成事件模式。
在进程通信中,事件作为一种同步原语,是计算机科学中的一种同步机制,用来指示等待中的进程特定条件已经变为真。事件对象一般具有下述操作:
wait - 执行中的线程被挂起直到事件为真。如果执行wait时事件已为真,则空操作。
set - 设置事件状态为真,所有等待此事件的进程变为可调度。
clear - 设置事件状态为假。
在应用程序中,事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事件,等等。
事件处理架构事件处理架构一般由四个不同的实体组成:
(1) 事件源:产生的事件通常是原子事件,但也有可能是高层次的事件1。
(2) 事件建模器:定义了事件模式。这些事件模式在事件处理媒介中处理。
(3)事件处理媒介:用于处理事件的平台 (可能是分布式的) ,提供通道访问来自事件源的事件数据,并把处理结果输出给事件消费者。事件处理媒介为事件的选择、聚合、层次结构内的分类、更高层次事件的抽象提供技术架构。事件处理媒介可能是单一的 EPA(单独的事件处理组件),也可能是一个包含了一组 EPA 的分布式事件处理网络。
(4) 事件消费者:接收来自事件处理媒介的复杂事件并通过反应规则对其响应。事件消费者可能会产生新的事件而作为事件源。
目前复杂(complexevent process,CEP _解决方案供应商提出了几个具体的 CEP 的参考架构。一些参考架构与具体实施技术关联性不强,而另一些基于具体的解决方案和技术之上。特定领域的参考模型和元模型也已被提出。 实际架构的某些技术选择, 不是由要求本身所决定,而是由当时可选择的技术所决定。
事件处理语言的要求事件处理语言描述事件模式,并由相应的规则引擎来执行事件查询。事件处理语言的要求可以描述成以下四个方面(也称为事件查询的四个维度):
(1) 数据提取:事件包含的数据决定是否及如何对该事件作出响应。提取事件中的数据作为事件对象的属性值,用于查询过程中的条件测试、创建新的事件对象或者触发相应的反应。
(2) 事件合成:从若干低层事件对象中提取属性值,用于聚合成更高层的复杂事件。
(3) 时间(因果)关系:事件查询往往涉及时间约束,即事件的发生必须在一个特定的时间间隔内或按一个特定的顺序。根据 Luckman 提出的因果时间原理,事件间的因果关系暗示了事件间的时间关系,所以复杂事件描述语言满足时间关系就能满足因果关系。
(4) 事件积累:事件查询的非单调特征,如事件否定(事件未发生)和一定时间跨度内的事件数据聚合对无限的事件流是无意义的,因为它们只能在事件流结束时才能确定。因此,这类查询只能针对特定时间窗内的事件。