复杂事件处理(Complex Event Processing——CEP)是对传统事件驱动架构(Event Driven Architecture)的扩展。 Wikipedia 解释说:“ CEP 使用了如众多事件复杂格式的侦测、事件相关性和提取、事件层级、以及事件间的关系(如因果关系、成员关系)、定时和事件驱动处理等技术”。BEA 最近出版了基于其新的 WebLogic 事件服务器构建复杂事件处理应用的一个指南,该WebLogic 事件服务器是一个“事件驱动的SOA 实时Java 容器” 。该指南旨在帮助读者“理解实时事件驱动架构的设计原理”,指南一开始就指出 OSGi 及 Spring Framework 支撑了应用的配置:
WebLogic 事件服务器所支持的事件驱动编程范式是基于 Spring 的声明性装配和配置。
在基于 CEP 的应用中,规则用来过滤和关联输入事件流。BEA 引入了他们自己的事件处理语言(EPL):
EPL 是一种强大的语言,可使开发者实现对事件的全程查询(从输入数据中“提取”事件并调用你的业务逻辑(POJO))。真正酷的地方是,EPL 定义在应用编程方面之外,这便于提高开发者的生产效率和灵活性。实际上,你可以动态修改查询,无需重新编译、构建并重新发布相关应用即可使你的解决方案实时对修改条件或环境产生反应。
WebLogic 事件服务器设计时考虑了实时需求,它使用了 BEA 的 msA(微服务架构——micro-services Architecture):
其设计的核心是,一个提供确定性、在预期工作量峰值有极低应用响应时间(高性能实时应用的基本需求)的基础架构。
BEA 为构建 WebLogic 事件服务器应用提供了一个 Eclipse 插件,并提供了一个 HelloWorld 例子使其易于上手。在该例提供了一个简单应用所有必须的文件,包括 Java 源文件、一个 ENP(Spring 配置)文件和一些 EPL 定义文件。在 Java 源文件中包含了 HelloWorldBean(实现 WebLogic EventSink 接口)用于侦听事件处理器(processor)产生的事件。HelloWorldAdapter 用于产生事件,它是对 ActiveAdapter 框架类的扩展。该指南最后总结:使用 IDE 特性“我们给开发者提供了简化动态创建和部署(发布)新 WebLogic 事件服务器应用的能力 ”。
更多关于 WebLogic 事件服务器和 WebLogic 实时产品的信息可以从这里 获得。
查看英文原文: Building Complex Event Processing applications in Java with WebLogic Event Server
评论