Thanks for the link. While I am at it, is it under corporate policies and strategic plans to allow integration of third party open source frameworks, such as integration of Camel, in order to provide more advanced routing capabilities?
Can you give me a bit more information on what you are intending?
If allowed by corporate policies, I would like to integrate Camel with JBM 2.0, standalone - enabled version. If not possible I would consider making/forking JBoss equivalent of Camel.
Any thoughts about this?
Also, perhaps this might be wrong place to ask, are there any initiatives in JBoss for CEP/ESP engine? Any thoughts about this as well?
CEP = Complex Event Processing
ESP = Event Stream Processing
Camel is basically framework that defines higher level Domain Specific Language that can be used to define various Enterprise Integration Patterns inside JMS broker.
Well - this is an open source project - so corporate policies are not really relevant as long as you follow the licence terms you can do what you want.
W.r.t. integrating - sounds interesting. It's my understanding that camel integrates via the JMS API so there's not really much integrating to do.. or am I missing something?
I have not looked at Camel source code so cant say at which level of abstraction is the actual integration, ideally of course it would be at JMS API level.
Regarding the CEP/ESP concepts, in case you have not had a chance to look at this technology so Ill try to illustrate:
Lets say we have two streams of real-time messages called A (first stream) and B (second stream). This maps to JMS concepts such as queue or topic aka destination.
No lets say we have 2 business requirements:
1) If message M1 comes in stream A, and message M2 does appear on stream B after maximum 5 seconds, do some action.
2) Provide sliding window facilities that covers messages in last 5 seconds for stream A and B that satisfy condition that field F1 from message in stream A is equal to F2 of messages in stream B.
In technical terms administrator would define these declarative (no compile/restart required) requirements as follows:
1) EVERY m1 FROM a FOLLOWED BY m2 FROM b TIME_WINDOW(5)
2)SELECT a.*, b.* FROM a, a WHERE a.f1=b.f2 and TIME_WINDOW(5)
Basically reversed relational database, SQL like API for managing and correlating messages.
Does JBoss middleware has need for such thing? Any opinions appreciated.
CSP / ESB functionality is being planned for JBoss Drools 5.0. The JBoss ESB project provides the capabilities to define routing rules for ESB messages (where JBoss Messaging is the underlying transport).
Regarding CSP: Is there any official plan/roadmap available regarding this, especially the strategy how it will be implemented, where its exact place will be and so on? Should I perhaps ask this on Drools forums?
Regarding routing rules: I am referring to cases when broker is used outside ESB, standalone, for example when admin needs to schedule job which will purge messages under some conditions, or anything that might be needed in standalone JMS broker usage, and this maps nicely with JBM 2 which supports work in non-managed environment.
These are all directions in which I would like to contribute to JBoss, so any guidelines and comments you have will be more than appreciated.
This is a confusing thread ;)
It seems at least three different things are being discussed:
1) Where is the JBM 2.0 source code (answered)
2) How to "integrate" Camel into JBM. I'm not sure what "integration" really means in that context. AFAIK camel works with any JMS compliant provider without special integration - although it would be great to demonstrate JBM working with Camel. Alternatively Camel could integrate at the JBM core level which would allow more powerful features to be exposed.
3) Event stream processing (ESP). I agree with Jeff - any complex rules based conditional logic is really the area for Drools, and see this working at the drools level with JBM as a transport.