Thursday, May 21, 2009

On EPN and N-Tier Architecture

This week I have watched a theater play, called: The Boys Next Door (in Hebrew, of course), which deal with the life of four retarded young persons who share an apartment (well - Wikipedia calls them mentally disabled, so I realize that retarded is not a politically correct word these days, however, it is a matter of culture, in Hebrew we don't do word laundering for political correctness, so I am quite ignorant in politically correct words). The play itself is very good and thought provoking.

Anyway, I have realized that I have not written for a while, this week has been quite busy, and next week I am travelling again for a few days, this time to Europe. I also had to do some catch up in the community Blogs, and found an interesting one by Paul Vincent about N+1 Tier Architecture describing a multi-tier architecture starting with a tier for the messaging tier, moving through filtering, preprocessing tier, then to distribution tier (data grid, caching), then to event processing agents which by itself is a multi-tier, then to process tier, and then to a persistence tier.

To me it seems somewhat complicated way to look at the universe, actually I view two different architectures here: infrastructure and event processing platform. I view data grid, messaging, communication, caches - as part of a general infrastructure that is not specific to event processing, it is being used for other purposes as well, so I view various functions of the event processing network implemented using those infrastructure parts, which in turn is implemented on top of operating systems etc... Thus, the architecture of this infrastructure is really not part of the event processing architecture at all. Getting to the event processing architecture -- this includes the tiers mentioned as: filtering, preprocessing and event processing agents. Actually, I prefer to look at it as a "network" not as "hierarchy", where each node in the network may be exploded to another network, the reason is that there is really going back and forth. Let's take an example : A producer produce event, the events are filtered, and then the filtered events go through EPA1, the events derived by this EPA1 can then go to EPA2, and then they need to be filtered again, and the result of this filtering is consumed by a consumer who applies some non event processing service, which is by itself an event producer which emits events that go into the same EPA2 in the same EPN as additional input. So if we adopt the layered approach, our quite modest application has already gone back and forth through four of five layers, while there is nothing conceptually wrong in that, it seems to be somewhat complex way to think about it, but may be I am too simple-minded... More -Later.