Tuesday Sep 09, 2008

I'm very happy to report that OpenESB has joined ComplexEvents.com as a partner. ComplexEvents.com is hosted by David Luckham from Stanford - considered by some to be the father of modern CEP. You can find us in the Partner section on the site and also soon in the Event Processing Blogs section in the lower right of the main page. Here's a direct link to the OpenESB partner page.

ComplexEvents.com is a source dedicated to Complex Event Processing applications, products, latest research, and developments. The website has many articles written by Professor David Luckham as well as by other well-known CEP authorities like Professor Mani Chandy.

Thursday Aug 14, 2008

An ESB, in short, enables you to create and deploy integration applications typically involving many disparate systems. For example, you can write an application that receives a SOAP message over HTTP, retrieves additional data from a database, does some manipulation of the data and sends a new set of data to a SAP system. Here, the application has two distinct roles, one is to communicate with the external systems (HTTP, database, SAP, etc.) and the other is to do some processing logic such as data manipulation.

An enterprise can have many different applications deployed onto the ESB. These applications are all related to the enterprise's business in one way or the other. They usually are not directly connected with one another and are written only to serve a specific function. There can be a situation where each of these applications seems to be functioning normally, but at the business level something unusual is occurring. Let me illustrate. Suppose one of these applications is a "Password Management" application and another is "Transfer Funds". Each of these applications will have some typical volume in a given time interval. There could be times when they encounter a spike which, let us assume, is normal. Now, lets say, one day, all of a sudden both these activities show spikes. The fact that the spikes happened at or around the same time could mean that some fraudulent activity may be happening. How do you detect that? You can change the two applications to emit events when spikes occur. Then you can collect these events and process them to find out if together they represent an interesting business event. This job is typically that of an event processor.

So, an event processor is capable of receiving a set of events from multiple sources. The set of events is called a cloud of events. The event processor has capability to process these events to detect interesting higher level events.  These "interesting higher level" events are called complex events and this paradigm is called Complex Event Processing (CEP). Note that an ESB is capable of connecting to a variety of external systems, so the events can come from within the ESB as well as from the external systems.

When enterprises architect their applications to take advantage of events from individual applications to detect other higher level events, the architecture is called an Event-Driven Architecture.

Traditionally, event processors have also been used to do processing on a continuous stream of events. This paradigm is called Event Stream Processing (ESP). To process the stream on a continuous basis usually a specialized language is required to specify the instructions. One such language is Continuous Query Language (CQL) invented by the STREAM group at Standford. If the event processor is part of an ESB, then obviously it can receive the stream of events from a variety of external systems. Similarly, it can also send a stream of events to a variety of external systems.

That, in brief, is how Complex Event Processing, Event Stream Processing and Event-Driven Architectures are related to an ESB.

IEP is a open source Complex Event Processing engine and is part of Open ESB. Using these two technologies you can easily achieve all your event processing needs.

If you want to find out more about Complex Event Processing, here are two excellent resources - http://complexevents.com/ and http://pavg.stanford.edu/cep/

I just realized that I haven't properly introduced myself. I have been working at Sun for the last 4 years in the Service Oriented Architecture and Business Integration (SOA/BI) group. Out of these, the first year I worked at SeeBeyond and I came to Sun as result of Sun acquiring SeeBeyond. For the past couple of years, I have been contributing to the Open ESB community. I have contributed significantly to the BPEL Service Engine and now I'm also contributing to the IEP Service Engine, a Complex Event Processing engine.

Tuesday Jul 08, 2008

I recently started contributing to a Complex Event Processing engine - Intelligent Event Processor or IEP for short.

IEP will help you in building applications that use Event-Driven Architectures (EDA). These include applications that do Complex Event Processing (CEP) and Event Stream Processing (ESP). Additionally, IEP is part of Open ESB suite. OpenESB enables you to build SOA based integration solutions, so you get connectivity to many legacy systems that can be the source or target for your events.

If you are interested in building such applications, then please take a look at the IEP wiki which has lots of information to get you started.

Thursday May 29, 2008

JavaOne 2008 was really good this time, at least from my perspective. There was a SOA track and I was very pleased to see a very enthusiastic response to the SOA pods. The attendees seemed to be using this technology, which is what I wanted to really witness. And it was heartening to see that, people were really using this technology.


Anyway, what I want to tell you is that we (me and Kiran) did a hands on lab titled "Orchestration of web services using WS-BPEL". Our primary objective was to "popularize" BPEL. At first, BPEL seems intimidating, especially if you start to read the specification. But, my experience is that once people start creating BPEL processes using some good tool and perhaps using some tutorials, they seem to find it easier. It is not necessary to get bogged down by all the constructs like compensation handlers, event handlers, correlations. You don't need to start with them. You can start with the basic scenarios. As you get to a point where you have more complex scenarios, then you can start looking at how BPEL solves your problem. This will often lead you to the complex features. At that point, it is much easier to understand the purpose of those features, because you already know what problem the construct is supposed to solve. So, if you are even a bit curious about BPEL, but didn't know where to start or found the spec. intimidating, I urge you to try the lab. It should take about 2-3 hours. And I'm sure after that you will love BPEL :). The lab is made available online here.

Wednesday May 14, 2008

I have been wanting to create the blog for some time now and finally, I got around doing it :). Welcome. I'll be posting something interesting soon.

This blog copyright 2009 by Prashant Bhagat