Java Business Integration
A good introduction to what JBI is about. However I'm skeptical that this is a better way to build integrations especially based upon the author's comment on the canonical document.
Steve Vinoski, writes "All the messages exchanged through the NMR are normalized messages, which doesnÂt imply that all messages are converted to a canonical format. As I mentioned, EAI systems already proved that translating messages into canonical formats can negatively impact performance, scalability, and the ability to further integrate systems with other integration infrastructures. The NMR avoids these Ânegative impacts by treating message payloads as opaque data that it simply sends along to the receiver."
Steve Vinoski, "Java Business Integration," IEEE Internet Computing, vol. 9, no. 4, 2005, pp. 89-91.
Not only have I not seen this performance issue, the canonical format is one of the bigger benefits from inserting an integration layer. Sure things like persisted messaging, async processing etc are nice but at the end of the day if you have tied all of your integrations together without the canonical, what are you left with? A very robust set of point-to-point integrations. Maybe I'm missing the boat here but it seems to violate the principals of abstraction, de-coupling etc. It seems that we are just moving the translation engine out of the middle layer and letting the application(s) do it. Is that really a good thing?