Integration Frameworks

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.

Responsibilities of an Integration Framework

Aside from the implementation of the major integration patterns, frameworks provide the following core responsibilities:

  • Orchestration: Organizing and arranging finely grained components into logical process flows.
  • Manipulation and Transformation: Converting data between formats or enriching data in its existing format.
  • Transportation: Providing communication in a multitude of formats including HTTP, FTP, SMTP, JDBC, and JMS. They may also provide implementations of proprietary formats like Tibco, Vitria, CICS, SAP, SalesForce, and PayPal.
  • Mediation: Decoupling of objects by providing a communication layer through which they interact. See mediator pattern for more info.

When to Use an Integration Framework

Consider an integration framework when:

  • Integrating applications with multiple communication protocols or technologies.
  • Building applications or application platforms that require loosely coupled, fine-grained process orchestration.
  • The project requires message routing, forking, aggregation, transformation, or enrichment.
  • And you don't want to write it all yourself.

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.

Java Integration Frameworks

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.

MORE ABOUT Integration Frameworks

     »  Apache Camel

     »  Mule ESB