Enterprise Integration Using Patterns
The Integration Zone is brought to you in partnership with Red Hat. Download the IDC Report: The Business Value of Red Hat Integration Products to learn more about Red hat Integration.
In my first series of articles I will try to smoothly introduce you to
the world of Enterprise Integration using patterns introduced by Gregor
Hophe in his excellent book “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions“. In order not to implement all the patterns from the begging, I will use Apache Camel integration framework, which will also serve the purpose of being the tutorial in how to use Camel.
Each section of this series will address a different issue:
1. Enterprise Integration Patterns (EIP). This article will describe what are EIPs, the reason of they use and also we will examine a few patterns.
2. Mediation routing using Apache Camel. This part will show the use of EIPs with Apache Camel mediation routes. I will present some simple examples of integration.
3. Apache Camel deployment modes. In this article I will try to run examples in several modes. I will introduce you to the Apache Servicemix – open source ESB based on OSGi.
4. EIP in action. This part will show example of integration of three applications which use different transport protocols, data formats and programming platforms.
5. Monitoring Apache Camel using JMX. Last article will show how Camel can be monitored and managed using Java Management Extensions.
Before going to the first section we should ask ourselves why we do we need integration. For example a company A has two applications: CRM and Point of Sale. If a seller sells a product it has to enter the buyers data so that to be stored into CRM and PoS. Does he have to enter the data in two systems separately? Does the seller need to know how to use the CRM system? Obviously not! All he has to do is to enter the data into PoS and then it will send the data to CRM automatically. But how to communicate two systems if they are written in different programming languages, use different data formats, use different protocols? Integration tries to solve such problems.
Now let’s go to the first section (EIP).