Tuesday, June 24, 2008

Integration Done Right

What does the word "integrate" really mean? Throughout the years I have seen many projects that claim "integration" with other projects, but in many cases such integration is very poorly done and often only goes to an extent of 2 products simply being able to start together and that’s it. So, what are we to expect from “integration” when it is done right? To me, integration done right is when one product "blends-in" into another and it becomes very hard to tell where one ends and another one begins. Here are some examples of good integration:

JProfiler & IDEA
I often need to profile code in search for deadlocks, memory leaks, and bottlenecks. When I downloaded JProfiler and installed IDEA plug in, I was very pleased with the “blend-in” effect. All I had to do is hit JProfiler "Run" button from IDEA and that’s it – all configuration and runtime parameters from IDEA project were automatically reused. I didn’t have to waste time on any JProfiler configuration – it just worked out of the box and I was productive right away.

GridGain & SPIs
GridGain with its SPI-based Architecture is able to provide the same kind of “blend-in” effect when integrating with other middleware products. All a user has to do is configure a different SPI that comes with GridGain. For example, if you already use JGroups as your networking protocol, all you have to do is start GridGain with GridJgroupsDiscoverySpi and GridJgroupsCommunicationSpi and all of your JGroups settings will be reused automatically. There won’t be a single extra port open or a single extra heartbeat sent over network - your network will behave just like before, however now you have GridGain running on top of it as well.

GridGain provides the same kind of "blend-in" integration with many other products, such as JMS, Mule, Coherence Cache, JBoss Cache, JBoss HA, JUnit, Spring, etc… Moreover, by implementing your own SPI (which is a simple Java interface) you can "blend-in" GridGain with any project/application, even if such integration is not provided out of the box.

So, when evaluating how one product integrates with another, look for "blend-in" effect!

0 comments: