Jun 8th, 2008, 11:46 PM
Spring Integration for ESB
How would a real world (enterprise) application be, using Spring Integration ?
Are there any examples ?
My idea of a real world example would be runtime addition of Message Endpoints, Queues into the Message Bus.
Is this possible or is not the way that a Spring Integration application is designed ?
Or is it that an application is built using Spring Integration, deployed. Any changes to the app means a down-time ?
Thanks and Regards
Jun 9th, 2008, 03:05 AM
Important things to get straight before I answer your question:
message bus != esb
ESB's are a pretty lame idea in many cases anyway (http://www.infoq.com/presentations/soa-without-esb)
message endpoints and channels run in the same jvm typically in SI
If you would want to integrate you'd typically have two or more jvm's running (possibly on multiple servers). Depending on your preference you could connect them with some type of protocol (Spring WS, JMS, ...). If you want the benefits of SI on both ends of the wire you would have to put the jar on the classpath of both jvms. You could have a central node that takes some of the responsibilities of an ESB, but it is worth to carefully consider the downsides of the tight coupling you will be doing in there (running off topic).
The other interesting application (and this is not even related to ESB anymore) would be to use SI to integrate different OSGI bundles in an OSGI container (you could but don't have to use Spring DM or even SpringSource Application Platform for this). This would accomplish the dynamic loading of MessageEndpoints you were talking about. This would allow you to chop up your architecture into managable bits without the need to put performance drains like network connections in between. Yummie.
And for the samples of this last idea... sorry I don't have any yet. If you have something in that area I'd be very interested.
Last edited by iwein; Jun 9th, 2008 at 03:06 AM.
Jun 10th, 2008, 03:03 AM
Thank you very much for your reply and the link.
I have been thinking about such an application which is loosely coupled,
where many SI applications are connected via the channels / adapters
and which span platforms/machines.
I will try to write a block diagram of the same and submit it here to know the opinions of such an architecture. Later I will try to port the LoanBroker Example from the EAI book to a SI application based on that block diagram.
Jun 13th, 2008, 04:00 AM
Cool, just post some code if you run into problems. We can help you out.
Jun 13th, 2008, 04:37 AM
Please take a look at the PDF in the attached zip file and post your comments.
Thanks and Regards
Jun 13th, 2008, 02:49 PM
I had a quick look, the sensibility of the system depends mostly on your implementation of the queues than anything else I think.
The drawings are definitely missing the message endpoints, but if you don't need to go in that much detail of course that is fine. To be honest I'd be more interested in actual code than in the diagram you attached , but id is illustrative of course.
Questions I would ask (which are answered partly in this thread):
- why is it a "Custom" queue? can't you just use one of the channels?
- how are the two jvm's going to communicate, don't you need some ws or remoting there too?