Almost every new project contains legacy code, legacy components or systems. Besides the business-logic a lot of boilerplate code has to be created; only to realize the integration of the legacy parts. Additionally at the beginning of a project it is not clear if the chosen approach works to integrate the legacy components. Coding different scenarios to integrate several technologies is not done within a few hours, more likely in a couple of days. I.e an architecture or integration prototype would be helpful to verify the ideas and figuring out possible issues and challenges up front.
Fortunately a lot of best practices and patterns exist to realize the integration of heterogeneous software-components resp. systems.
Gregor Hohpe and Bobby Woolf describe a couple of enterprise integration patterns in their book Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions.
But playing with prototypes should focus on the core high-level integration parts and not on technology depended work. The ASF project Camel is a good choice to stay focused and spend not too much time on low-level code. Approximately hundred components which realize the connection to different technologies and transport protocols are available out of the box. With Camel you are able to route messages between various heterogeneous systems and APIs in a standardized way. Find a short introduction in the free first chapter of Camel in Action
Once familiar with the basics of the framework, sketching prototypes, even complex ones, is quite comfortable and fast.
Your sketch bodies are:
- Camel routes – to sketch one or more message flows
- Camel domain-specific languages – to describe routes
- DI Framework like Spring – to bind components and configure the environment
After you have set up an initial Camel based maven-project save a copy as a template for further sketches. Find a couple more or less complex pre-configured ones in the camel examples collection.