Integration frameworks provide a model for interaction and communication between mutually interacting software applications in service-oriented architecture (SOA). Integration frameworks can help whether you're integrating with an existing application, connecting to a third party web service, or building a complex transaction-processing platform.
Aside from the implementation of the major integration patterns, frameworks provide the following core responsibilities:
Consider an integration framework when:
Using a framework will give you a standardized way to model and implement all of the aforementioned integration patterns and will greatly reduce the amount of boilerplate code you write.
There are several very mature integration frameworks for Java. The most popular Java integration frameworks are Apache Camel, Spring Integration, and Mule ESB (as the name implies, it provides full ESB functionality). All three support the enterprise integration patterns mentioned above and are open source. Each provides slightly different configuration methods, from XML to DSLs, IDE tooling and communication support.