Thursday, November 19, 2009

On the Fast Flower Delivery example and various programming styles of event processing



As explained in one of the previous postings, we are using a single example in the EPIA book as an example that accompanies the book, this is part of the book's methodology. I'll write more about the methodology more, as we are now writing the preface for this book explaining the methodology (among other things). Actually today I received an additional review of the book from the publisher and the reviewer has criticized the example claiming the since most of the readers are men, example that relates to flower may be considered as too feminine, and realizing that it is too late to change, suggested that we'll select another example in the second edition.

Well, I am thinking what will appeal to the real machos.



Maybe we should go for Poker example -- this is a real macho staff...




On second thought, the real machos are engaged in boxing, so maybe we should have an example around boxing match... go figure...

Getting serious now. The FFD (Fast Flower Delivery) example is explained in the book using our building block approach, it is also demonstrated using several languages. I have approached the entire community earlier this year, and there has been a very good willingness of participating in this game, implementing the FFD example in various languages by the "language owners". We have six languages participating in the game now. Languages implemented by four commercial products:
  • Aleri (actually the CCL language originally Coral8)
  • Apama (owned by Progress Software)
  • Rulecore (a Sweden based company)
  • Streambase
and two open sources:

  • Esper
  • Etalis
The reader will be able to look at the example implemented in these six languages; furthermore, will be able to download a full or demo version of the engine implementing this language. As written before the logistics of constructing this website, validating the solutions etc... are done by students taking my event processing course. Some examples will be brought in-line to the various chapters of the book to provide the readers some glimpse of the different styles.
We should have a "Beta version" of this website within a couple of weeks.

I'll update about this experiment more.


6 comments:

Paul Vincent said...

Hi Opher - good stuff. But why are you not doing an Amit version of the example, as surely your own ECA rule language is just as relevant?
Cheers

Opher Etzion said...

Hello Paul. Thanks for your interest. As mentioned, the rules of the game are not only to do the example in a language, but also to provide a free downloadable version for the public use. I guess that if AMiT was owned by my own start-up I could have done it, alas, it is owned by IBM, and IBM typically does not provide free downloadable, I think this is also true for TIBCO.

cheers,

Opher

Paul Vincent said...

Hi Opher - I suppose that is fair. But it seems a little restrictive to insist you must have downloads in order to understand the language!
Cheers

Opher Etzion said...

Hi Paul. The goal of this exercise is to provide the readers of the EPIA book an opportunity not only to see a solution, but also to have "hands on" experience. This was the result of the first book review, where some of the reviewers made this request.
As for AMiT -- there is some material about this language here http://www.haifa.il.ibm.com/dept/services/soms_ebs_tech.html
and detailed description of the language was published in the VLDB Journal: http://www.springerlink.com/content/nb1qa1d02vvdre00/

cheers,

Opher

flower delivery said...

Fast flower delivery is a better way of sending love and care to your loved ones. It allows sending flower delivery online and booking the same online.

PF said...

Hi Dr. Etzion,
I think the book promises to be very good, and the example and its implementations in various languages stands for a very nice test for CEP.
If the book identifies a common set of standard features and operations of CEP, it could be the bases for a standard representation to define complex events, while the example can be the basis for a benchmark for CEP languages (similar to OpenRuleBench for rule languages).
Regards,
Paul Fodor.