InfoQ

新闻

使用WebLogic事件服务器构建复杂事件处理应用

作者 Gavin Terrill译者 宋玮 发布于 2007年8月29日 下午10时19分

社区
Architecture,
Java
主题
应用服务器,
消息传送,
实时
标签
OSGi,
BEA,
Esper,
Spring框架,
事件流处理
复杂事件处理(Complex Event Processing——CEP)是对传统事件驱动架构(Event Driven Architecture)的扩展。 Wikipedia 解释说:“CEP使用了如众多事件复杂格式的侦测、事件相关性和提取、事件层级、以及事件间的关系(如因果关系、成员关系)、定时和事件驱动处理等技术”。

BEA最近出版了基于其新的WebLogic事件服务器构建复杂事件处理应用的一个指南,该WebLogic事件服务器是一个“事件驱动的SOA实时Java容器” 。该指南旨在帮助读者“理解实时事件驱动架构的设计原理”,指南一开始就指出OSGiSpring 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

没有回复

回复

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。