SlideShare a Scribd company logo
1 of 20
1




Apache Camel
The Swiss army knife of Open source integration
Prajod Vettiyattil
2




Agenda
•   Integration Architectures
•   Camel for Application Integration
•   Business domain solutions
•   Scalability features
•   Summary
3




Integration Architecture



               Middleware
4




Middleware
                                 1. Synchronous
                                 2. Asynchronous
                      JMS,
                      EJB,
                      JDBC




                             Middleware


                                          JMS,
                                          EJB,
                                          JDBC
   1. J2EE Application Servers
   2. Message Brokers
5




Middleware
                                  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




Camel 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




Apache 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




Apache Camel: Feature overview
• Simple programming
  ▫ Java DSL, Spring XML, Scala
• Add ons, data formats
  ▫ Twitter, FIX, HL7,…
• Scalability primitives
• Apache License
9




Business domain solutions
• Composite Enterprise Integration Patterns
• Securities message processing
 ▫ Splitter -> Aggregator
• Travel Portal
 ▫ Aggregator -> Pipes and Filters
10




 Securities: Post Trade Processing
  Sources                                                              Targets
  Trading
               Data Processing Solution                               Accounting
Applications                                                           Solution
                                   Processing Nodes


                                   Node1        Node2


                 File Splitter +                                      Output
Post Trade            Load                               Aggregator
                                                                      Channels
  Files             Balancer

                                   Node3         Node4



                                                                         Risk
  Trading                             Reference Data                  Management
Applications                                                           Solution
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




  Travel portal
Quote Provider
 (Airline 1)

          Data Processing Solution
                            Quote                 Order
                          Normalizer             Manager

                                                                    Browser
                                       Pricing             Portal
             Aggregator                Engine              Server




Quote Provider
 (Airline 2)
13




  Travel Portal with Camel
         Data Processing Solution

                                 Camel
                                                                                   Portal
Quotes
                                                                                   Server




           Caching                   Order       Pricing
          Framework   Database      Manager      Engine




                                              EIP icons from www.eaipatterns.com
14




Why 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




Scaling with Camel
•   Staged Event Driven Architecture(SEDA)
•   Asynchronous API
•   Multi-threaded flows
•   Load balanced flows
16




SEDA: 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




Asynch API
Travel 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




Multi-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




Load balanced flows(routes): EIP
Travel 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




Summary
• 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

More Related Content

What's hot

Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Haim Yadid
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011bobmcwhirter
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxbobmcwhirter
 
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
TorqueBox: The beauty of Ruby with the power of JBoss.  Presented at Devnexus...TorqueBox: The beauty of Ruby with the power of JBoss.  Presented at Devnexus...
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...bobmcwhirter
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on InfinispanLance Ball
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprisebenbrowning
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafJerry Preissler
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Charles Moulliard
 
Why we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.ukWhy we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.ukGraham Tackley
 
CamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF SecurityCamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF SecurityKenneth Peeples
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevMattias Karlsson
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
 
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyTorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyBruno Oliveira
 

What's hot (20)

Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions
 
TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011TorqueBox at DC:JBUG - November 2011
TorqueBox at DC:JBUG - November 2011
 
Devignition 2011
Devignition 2011Devignition 2011
Devignition 2011
 
Java EE 8
Java EE 8Java EE 8
Java EE 8
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
 
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
TorqueBox: The beauty of Ruby with the power of JBoss.  Presented at Devnexus...TorqueBox: The beauty of Ruby with the power of JBoss.  Presented at Devnexus...
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprise
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache Karaf
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013
 
Why we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.ukWhy we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.uk
 
JavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
JavaCro'14 - Building interactive web applications with Vaadin – Peter LehtoJavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
JavaCro'14 - Building interactive web applications with Vaadin – Peter Lehto
 
CamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF SecurityCamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF Security
 
Fuse technology-2015
Fuse technology-2015Fuse technology-2015
Fuse technology-2015
 
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e RubyTorqueBox - Ultrapassando a fronteira entre Java e Ruby
TorqueBox - Ultrapassando a fronteira entre Java e Ruby
 
Wt unit 3 server side technology
Wt unit 3 server side technologyWt unit 3 server side technology
Wt unit 3 server side technology
 

Similar to Apache Camel: The Swiss Army Knife of Open Source Integration

Java Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationIMC Institute
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A GlanceStefan Christoph
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011darach
 
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireVirtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireCarter Shanklin
 
The Art & Sience of Optimization
The Art & Sience of OptimizationThe Art & Sience of Optimization
The Art & Sience of OptimizationHertzel Karbasi
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnValtech
 
JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010David Nuescheler
 
CA Nimsoft xen desktop monitoring
CA Nimsoft xen desktop monitoring CA Nimsoft xen desktop monitoring
CA Nimsoft xen desktop monitoring CA Nimsoft
 
Web Content Management And Agile
Web Content Management And AgileWeb Content Management And Agile
Web Content Management And AgileValtech UK
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)blahap
 
Times Ten in-memory database when time counts - Laszlo Ludas
Times Ten in-memory database when time counts - Laszlo LudasTimes Ten in-memory database when time counts - Laszlo Ludas
Times Ten in-memory database when time counts - Laszlo LudasORACLE USER GROUP ESTONIA
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise ArchitecturesBIOVIA
 
03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training BookChuong Nguyen
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanRack Lin
 

Similar to Apache Camel: The Swiss Army Knife of Open Source Integration (20)

Ta3
Ta3Ta3
Ta3
 
Java Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web Application
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A Glance
 
Xrm xensummit
Xrm xensummitXrm xensummit
Xrm xensummit
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
 
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireVirtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFire
 
The Art & Sience of Optimization
The Art & Sience of OptimizationThe Art & Sience of Optimization
The Art & Sience of Optimization
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management En
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010
 
CA Nimsoft xen desktop monitoring
CA Nimsoft xen desktop monitoring CA Nimsoft xen desktop monitoring
CA Nimsoft xen desktop monitoring
 
Web Content Management And Agile
Web Content Management And AgileWeb Content Management And Agile
Web Content Management And Agile
 
Building Scalable and Robust Solutions with Service Bus in Cloud and Server
Building Scalable and Robust Solutions with Service Bus in Cloud and ServerBuilding Scalable and Robust Solutions with Service Bus in Cloud and Server
Building Scalable and Robust Solutions with Service Bus in Cloud and Server
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)
 
Times Ten in-memory database when time counts - Laszlo Ludas
Times Ten in-memory database when time counts - Laszlo LudasTimes Ten in-memory database when time counts - Laszlo Ludas
Times Ten in-memory database when time counts - Laszlo Ludas
 
Kaazing
KaazingKaazing
Kaazing
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
 
03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
 

More from prajods

Apache Cassandra and Python for Analyzing Streaming Big Data
Apache Cassandra and Python for Analyzing Streaming Big Data Apache Cassandra and Python for Analyzing Streaming Big Data
Apache Cassandra and Python for Analyzing Streaming Big Data prajods
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelinprajods
 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camelprajods
 
RedHat MRG and Infinispan for Large Scale Integration
RedHat MRG and Infinispan for Large Scale IntegrationRedHat MRG and Infinispan for Large Scale Integration
RedHat MRG and Infinispan for Large Scale Integrationprajods
 
Apache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data ProcessingApache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data Processingprajods
 
JUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearJUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearprajods
 
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services PlatformEnabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services Platformprajods
 

More from prajods (7)

Apache Cassandra and Python for Analyzing Streaming Big Data
Apache Cassandra and Python for Analyzing Streaming Big Data Apache Cassandra and Python for Analyzing Streaming Big Data
Apache Cassandra and Python for Analyzing Streaming Big Data
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
 
RedHat MRG and Infinispan for Large Scale Integration
RedHat MRG and Infinispan for Large Scale IntegrationRedHat MRG and Infinispan for Large Scale Integration
RedHat MRG and Infinispan for Large Scale Integration
 
Apache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data ProcessingApache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data Processing
 
JUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGearJUDCon 2014: Gearing up for mobile development with AeroGear
JUDCon 2014: Gearing up for mobile development with AeroGear
 
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services PlatformEnabling Data as a Service with the JBoss Enterprise Data Services Platform
Enabling Data as a Service with the JBoss Enterprise Data Services Platform
 

Apache Camel: The Swiss Army Knife of Open Source Integration

  • 1. 1 Apache Camel The Swiss army knife of Open source integration Prajod Vettiyattil
  • 2. 2 Agenda • Integration Architectures • Camel for Application Integration • Business domain solutions • Scalability features • Summary
  • 4. 4 Middleware 1. Synchronous 2. Asynchronous JMS, EJB, JDBC Middleware JMS, EJB, JDBC 1. J2EE Application Servers 2. Message Brokers
  • 5. 5 Middleware 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 Camel 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 Apache 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 Apache Camel: Feature overview • Simple programming ▫ Java DSL, Spring XML, Scala • Add ons, data formats ▫ Twitter, FIX, HL7,… • Scalability primitives • Apache License
  • 9. 9 Business domain solutions • Composite Enterprise Integration Patterns • Securities message processing ▫ Splitter -> Aggregator • Travel Portal ▫ Aggregator -> Pipes and Filters
  • 10. 10 Securities: Post Trade Processing Sources Targets Trading Data Processing Solution Accounting Applications Solution Processing Nodes Node1 Node2 File Splitter + Output Post Trade Load Aggregator Channels Files Balancer Node3 Node4 Risk Trading Reference Data Management Applications Solution
  • 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 Travel portal Quote Provider (Airline 1) Data Processing Solution Quote Order Normalizer Manager Browser Pricing Portal Aggregator Engine Server Quote Provider (Airline 2)
  • 13. 13 Travel Portal with Camel Data Processing Solution Camel Portal Quotes Server Caching Order Pricing Framework Database Manager Engine EIP icons from www.eaipatterns.com
  • 14. 14 Why 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 Scaling with Camel • Staged Event Driven Architecture(SEDA) • Asynchronous API • Multi-threaded flows • Load balanced flows
  • 16. 16 SEDA: 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 Asynch API Travel 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 Multi-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 Load balanced flows(routes): EIP Travel 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 Summary • 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