224
95
|
I don't understand what exactly Camel does.
If you could give in 101 words an introduction to Camel:
Please explain what Camel is.
| |||
131
|
If you have 5 to 10 minutes, then I generally recommend people to read this Article by Jonathan Anstey -http://java.dzone.com/articles/open-source-integration-apache. Its a well written piece, which gives a brief introduction, and overview what Camel is, and some of its concepts, and then implements a use-case, with code samples.
There is also a free chapter of the Camel in Action book - http://manning.com/ibsen/, which introduces Camel in the first chapter. Jonathan is a co-author on that book with me.
| ||||||||||||||||
|
174
|
No one wants to spend the rest of the day reading related articles in order to find out what one product does! Yet, this is what most project leaders make us do. For all those people who think it's too complicated to explain then you might get benefit from reading this article on how to create project descriptions.
Wikipedia says:
I say:
See? That wasn't hard was it?
| ||||||||
|
129
|
My take to describe this in a more accessible way...
In order to understand what Apache Camel is, you need to understand what Enterprise Integration Patterns are.
Let's start with what we presumably already know: The Singleton pattern, the Factory pattern, etc; They are merely ways of organizing your solution to the problem, but they are not solutions themselves. These patterns were analyzed and extracted for the rest of us by the Gang of Four, when they published their book: Design Patterns. They saved some of us tremendous effort in thinking of how to best structure our code.
Much like the Gang of Four, Gregor Hohpe and Bobby Woolf authored the book Enterprise Integration Patterns (EIP) in which they propose and document a set of new patterns and blueprints for how we could best design large component-based systems, where components can be running on the same process or in a different machine.
They basically propose that we structure our system to be message oriented -- where components communicate with each others using messages as inputs and outputs and absolutely nothing else. They show us a complete set of patterns that we may choose from and implement in our different components that will together form the whole system.
So what is Apache Camel?
Apache Camel offers you the interfaces for the EIPs, the base objects, commonly needed implementations, debugging tools, a configuration system, and many other helpers which will save you a ton of time when you want to implement your solution to follow the EIPs.
Take MVC. MVC is pretty simple in theory and we could implement it without any framework help. But good MVC frameworks provide us with the structure ready-to-use and have gone the extra mile and thought out all the other "side" things you need when you create a large MVC project and that's why we use them most of the time.
That's exactly what Apache Camel is for EIPs. It's a complete production-ready framework for people who want to implement their solution to follow the EIPs.
| ||||||||
|
17
|
One of the things you need to understand, before you try to understand Apache Camel, are Enterprise Integration Patterns. Not everyone in the field is actually aware of them. While you can certainly read the Enterprise Integration Patterns book, a quicker way to get up to speed on them would be to read something like the Wikipedia article on Enterprise Application Integration.
One you have read and understood the subject area, you would be much more likely to understand the purpose of Apache Camel
HTH
| ||
8
|
In short:
When there is a requirement to connect/integrate systems. You will probably need to connect to some data source and then process this data to match your business requirements.
In order to do that:
1) You could develop custom program that would do it (might be time consuming and hard to understand, maintain for other developer)
2) alternatively you could use Apache Camel to do it in standardised way (it has got most of the connectors already developed for you, you just need to set it up and plug your logic - called Process):
Camel will help you to:
By using Apache Camel you will make it easy to understand/maintain/extend your system to another developer. Apache Camel is developed with Enterprise Integration Patterns. Enterprise Integration Patterns - is standard that tell you how to integrate systems in a good way :-)
| |||
7
|
A definition from another perspective:
Apache Camel is an integration framework. It consists of some Java libraries, which helps you implementing integration problems on the Java platform. What this means and how it differs from APIs on the one side and an Enterprise Service Bus (ESB) on the other side is described in my article "When to use Apache Camel".
|