Building Complex Event Processing applications in Java with WebLogic Event Server
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 configurationIn 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.