InfoQ

News

Building Complex Event Processing applications in Java with WebLogic Event Server

Posted by Gavin Terrill on Aug 27, 2007 12:00 PM

Community
Architecture,
Java
Topics
Real Time,
Application Servers,
Messaging
Tags
Esper,
BEA,
Event Stream Processing,
OSGi,
Spring
Complex Event Processing (CEP) is an extension of the traditional Event Driven Architecture. Wikipedia explains that: "CEP employs techniques such as detection of complex patterns of many events, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing, and event-driven processes".

BEA recently published a tutorial on building an Complex Event Processing application based on their new WebLogic Event Server - an "event-driven SOA real-time Java container".  The tutorial is designed to help readers in "understanding the design principles of real-time event-driven architecture", and begins by explaining that OSGi and the Spring Framework underpins the application configuration:
The event-driven programming paradigm supported by the WebLogic Event Server provides for a Spring-based declarative assembly and configuration
In a CEP based application, rules are used to filter and correlate incoming event streams. BEA has introduced their own Event Processing Language (EPL):
EPL is a powerful language that enables you, the developer, to implement a comprehensive range of queries to "extract" the events from the incoming data and invoke your business logic (POJO). What is really cool is that EPL is defined outside the programmatic aspects of the application, which can facilitate high developer productivity and flexibility. In fact, you can dynamically alter queries without recompiling, bundling and republishing the associated application to enable your solution to react to changing conditions or circumstances in real time.
The WebLogic Event Server was designed with real-time requirements in mind using BEA's msA (micro-services Architecture):
At the core of its design is an infrastructure for providing deterministic, extremely low application latencies under predetermined peak workloads — an essential requirement for high-performance real-time applications.
BEA provides an Eclipse plugin for building WebLogic Event Server applications, and have made it easy to get started by providing a HelloWorld example. In the example, all of the neccessary files for a simple application are provided including the Java source, an EPN (Spring cofiugration) file and EPL definitions. The Java source files includes a HelloWorldBean that listens to events generated the the event processor by implementing the WebLogic EventSink interface. The HelloWorldAdapter is used to generate events, and extends the ActiveAdapter framework class.

The tutorial concludes by pointing out that with the IDE features "we are providing developers with capabilities to simplify the dynamic creation and deployment (publishing) of our new WebLogic Event Server applications".

More information on the WebLogic Event Server and WebLogic Real Time products is available here.

No comments

Reply

Exclusive Content

10 Ways to Screw Up with Scrum and XP

Henrik Kniberg talks about 10 possible reasons to fail while doing Scrum and XP. Maybe the team does not have a definition of what Done means to them, or they don't know what their velocity is.

Tips from a Top Sports Team Coach

This article outlines 9 principles Marc Lammers discovered while building the world’s best field hockey team, mapping them to software development practices.

SOA Governance: An Enterprise View

Michael Poulin explains the necessity for SOA governance to ensure an Enterprise SOA's success, relying on concepts from the OASIS SOA Reference Model and Reference Architecture.

Developing Portlets using JSF, Ajax, and Seam (Part 2 of 3)

This article covers setting up a RichFaces portlet using JBoss Portlet Container and JBoss Portlet Bridge, deploying a RichFaces portlet, and RichFaces capabilities.

Scalability Worst Practices

This article discusses scalability worst pratices including The Golden Hammer, Resource Abuse, Big Ball of Mud, Dependency Management, Timeouts, Hero Pattern, Not Automating, and Monitoring.

Do the Hustle

Obie Fernandez shares his experience selling consulting services for both Thoughtworks and Hashrocket and give tips how Ruby developers can work with clients.

Natural Laws of Software Development - Deriving Agile Practices

Jeffries and Hendrickson derive Agile practices from the natural laws of software development. They don't just say "Be Agile!", but they explain why Agile practices make perfect sense.

Jinesh Varia About Amazon Alexa Web Service's Architecture

Jinesh Varia talks about the architecture of one of Amazon's web services called Alexa. Jinesh explains how Amazon has reached scalability, performance and reduced costs for the Alexa service.