Apache Camel: The Swiss Army Knife of Open Source Integration


Published on

The Camel project from Apache(camel.apache.org), is a very popular, light weight, open source integration framework.
This presentation shows some interesting features of Camel and the unique advantages that Camel brings to your integration projects. Some business
use cases are shown to explain how Camel makes open source integration a cakewalk.
Table of contents:
1. An overview of Apache Camel
2. Integration architecture explained
3. Using Camel in different integration architectures
3.a. In the Securities domain
3.b. In the Travel domain
4. High Availability and Load Balancing with Camel

1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Apache Camel: The Swiss Army Knife of Open Source Integration

  1. 1. 1Apache CamelThe Swiss army knife of Open source integrationPrajod Vettiyattil
  2. 2. 2Agenda• Integration Architectures• Camel for Application Integration• Business domain solutions• Scalability features• Summary
  3. 3. 3Integration Architecture Middleware
  4. 4. 4Middleware 1. Synchronous 2. Asynchronous JMS, EJB, JDBC Middleware JMS, EJB, JDBC 1. J2EE Application Servers 2. Message Brokers
  5. 5. 5Middleware 1. Host Services JMS, 2. Validate, Enrich, Route, EJB, JDBC, Transform FTP, 3. Diverse protocol support SNMP, TCP Middleware JMS, EJB, JDBC, FTP, 1. Enterprise Service Bus SNMP, 2. Integration Framework TCP
  6. 6. 6Camel for Application Integration JMS, 1. Host Services EJB, 2. Validate, Enrich, Route, JDBC, FTP, Transform SNMP, TCP Camel Server JMS, 1. No server/container in the EJB, product JDBC, FTP, 2. Supports many servers SNMP, TCP
  7. 7. 7Apache Camel: Feature overview• Integration framework ▫ Lightweight ▫ Set of jar files• Deployment ▫ JVM, Tomcat, JBoss, Websphere, Weblogic• Feature rich ▫ Enterprise Integration Patterns ▫ 50+ technology adapters
  8. 8. 8Apache Camel: Feature overview• Simple programming ▫ Java DSL, Spring XML, Scala• Add ons, data formats ▫ Twitter, FIX, HL7,…• Scalability primitives• Apache License
  9. 9. 9Business domain solutions• Composite Enterprise Integration Patterns• Securities message processing ▫ Splitter -> Aggregator• Travel Portal ▫ Aggregator -> Pipes and Filters
  10. 10. 10 Securities: Post Trade Processing Sources Targets Trading Data Processing Solution AccountingApplications Solution Processing Nodes Node1 Node2 File Splitter + OutputPost Trade Load Aggregator Channels Files Balancer Node3 Node4 Risk Trading Reference Data ManagementApplications Solution
  11. 11. 11 Post Trade processing with Camel Data Processing Solution File Splitter Load Balancer (Smooks) (Hardware/Software)Sources Targets Camel EIP icons from www.eaipatterns.com
  12. 12. 12 Travel portalQuote Provider (Airline 1) Data Processing Solution Quote Order Normalizer Manager Browser Pricing Portal Aggregator Engine ServerQuote Provider (Airline 2)
  13. 13. 13 Travel Portal with Camel Data Processing Solution Camel PortalQuotes Server Caching Order Pricing Framework Database Manager Engine EIP icons from www.eaipatterns.com
  14. 14. 14Why Camel ?• Replaceable container Camel Camel Camel Camel Camel Camel JVM Tomcat JBoss Websphere Oracle Jetty • Unparalleled feature list ▫ Developer friendly DSL ▫ Productivity ▫ Built-in scalability primitives
  15. 15. 15Scaling with Camel• Staged Event Driven Architecture(SEDA)• Asynchronous API• Multi-threaded flows• Load balanced flows
  16. 16. 16SEDA: In memory queues Securities flow without SEDA Securities flow with SEDA Receive Thread 1 Receive Thread 2 SEDA Queue 1 Validate Thread 1 Validate Normalize Normalize Enrich SEDA Queue 2 Split Split Enrich Thread 3 Route Route
  17. 17. 17Asynch APITravel portal flow without Asynch API Travel portal flow with Asynch API Thread 2 Validate Validate Thread 1 Thread 1 Persist Persist Thread 3 Normalize Normalize Send to OM Send to OM Enrich Enrich
  18. 18. 18Multi-threaded flows(routes) Travel portal flow: Instance 1 Travel portal flow: Instance 2 Validate Validate Thread 2 Thread 1 Persist Persist Normalize Normalize Send to OM Send to OM Enrich Enrich
  19. 19. 19Load balanced flows(routes): EIPTravel portal flow without Load balancer Travel portal flow with Load balancer Thread 1 Validate Validate Thread 1 Persist Persist Persist Thread 3 Thread 2 Normalize Normalize Send to OM Send to OM Enrich Enrich
  20. 20. 20Summary• The Swiss Army Knife of Integration ▫ Lightweight ▫ Multiple container support ▫ Developer friendly ▫ Feature rich(50+ technology adapters) ▫ Scalability• Easy adoption in enterprises ▫ Development ▫ Testing ▫ Operations friendly ▫ License