Apache Camel is a Java-based open-source integration framework based on Enterprise Integration Patterns (EIP). Camel uses the established Enterprise Integration Patterns and out-of-the-box adapters with highly expressive Domain Specific Language (DSL) - Java, Spring XML, Scala, and Groovy. Apache Camel is a great implementation of Enterprise Integration Patterns and can be very helpful in integrating huge applications.
2. Lack of etiquette and manners is a huge turn off.
KnolX Etiquettes
Punctuality
Respect Knolx session
timings, you are requested
not to join sessions after a
5 minutes threshold post
the session start time.
Feedback
Make sure to submit a
constructive feedback for
all sessions as it is very
helpful for the presenter.
Silent Mode
Keep your mobile devices
in silent mode, feel free to
move out of session in
case you need to attend
an urgent call.
Avoid Disturbance
Avoid unwanted chit chat
during the session.
4. Enterprise Integration Patterns?
“Interesting applications rarely live in isolation. Whether your sales
application must interface with your inventory application, your
procurement application must connect to an auction site, or your PDA’s
calendar must synchronize with the corporate calendar server, it seems
that any application can be made better by integrating it with other
applications. ”
This is the overarching concept of EIP.
Enterprise integration patterns (EIP) is a catalog of design patterns for developing systems to integrate
new and existing software in a business environment.
This is the basis for Apache Camel, implement and extend the integration patterns
6. Enterprise Application Patterns/Enterprise Integration Pattern
(Example)
The systems mentioned in previous slide, work as individual islands of automation.
Most often theses systems are stand alone and do not communicate with each
other due to incompatibility issues such as -
● Operating systems they are residing on
● Database system used in the system
● Legacy systems not supported anymore
EAI is an integration framework, a middleware, made of a collection of technologies and services
that allows smooth integration of all such systems and applications throughout the enterprise
and enables data sharing and more automation of business processes.
7. Characteristics of EAI
● EAI is defined as "the unrestricted sharing of data and business processes among any connected
applications and data sources in the enterprise."
● EAI, when used effectively allows integration without any major changes to current infrastructure.
● Extends middleware capabilities to cope with application integration.
● Uses application logic layers of different middleware systems as building blocks.
● Keeps track of information related to the operations of the enterprise e.g. Inventory, sales ledger
and execute the core processes that create and manipulate this information.
Need for Enterprise Integration
● Unrestricted sharing of data and business processes across an organization.
● Linkage between customers, suppliers and regulators.
● The linking of data, business processes and applications to automate business processes.
● Ensure consistent qualities of service (security, reliability etc.).
● Reduce the ongoing cost of maintenance and reduce the cost of rolling out new systems.
8. What is Apache Camel?
● Concise Application Message Exchange Language.
● Apache Camel is a Java based open-source integration framework based on Enterprise Integration
Patterns (EIP).
● Apache Camel allows your applications to accomplish -
- Message routing between endpoints
- Message transformation.
- Protocol mediation.
● Camel use the established Enterprise Integration Patterns and out-of-the-box adapters with highly
expressive Domain Specific Language (DSL) - Java, Spring XML, Scala and Groovy.
10. Why do we need to integrate Systems?
Critical for your business to integrate.
Why Integration Framework?
● Framework does the heavy lifting
● You can focus on tackling the Business Problem
● Not on “reinventing the wheel”.
11. Apache Camel - A Little Overview
Camel is a black box that receives messages from some endpoint and sends it to another
one. Within the black box, the messages may be processed or simply redirected
why have a framework for this?
12. Apache Camel - Features
● Apache Camel is an open source Java framework that essentially provides an implementation of
various EIPs
● Camel makes the integration easier by providing connectivity to a very large variety of transports and
APIs. For example, you can easily route JMS to JSON, JSON to JMS, HTTP to JMS, FTP to JMS, even HTTP to
HTTP, and connectivity to Microservices.
● Camel is extensible and thus in future more endpoints can be added easily to the framework.
To wire EIPs and transports together, you use Domain Specific Languages (DSLs) such as Java, Scala, and
Groovy. A typical Java routing rule may look like:
This routing rule loads the files from the order directory, creates a JMS message with the contents of the
file and sends that message to a queue called orderQueue.
15. CamelContext - Code Snippet
The code snippet here will give you a glimpse of how a CamelContext is created in a Camel application:
16. Apache Camel - Routes
The router defines the rule for moving the message from to a to location. You use RouteBuilder to define
a route in Java DSL.
17. Apache Camel - Language Choice
You may create the routes in different languages. Here are a few examples of how the same route is defined
in three different languages:
18. Apache Camel - Filters
You use filter to select a part of input content. To set up a filter, you use any arbitrary Predicate implementation. The
filtered input is then sent to your desired destination Endpoint. In this example, we filter out all orders for the soap so
that those can be collectively sent to a soap supplier.
You may combine multiple predicates in a single routing as here -
19. Apache Camel - pom.xml Dependency
You need to add few dependencies to use Camel. The dependencies are added in pom.xml. So open pom.xml
and add following two dependencies -
20.
21. Conclusion
Camel provides a ready-to-use framework that implements EIPs to ease your
integration projects. It supports coding in domain-specific languages and also the use
of XML.