SlideShare a Scribd company logo
Apache Camel Overview
Open Source Integration and Messaging




Marcelo Jabali
Sr. Solutions Consultant
Dec., 2011
                                                                                                                 A Progress Software Company
1   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.            A Progress Software Company
Agenda


       Apache Camel Overview
       Architecture
       Routes, Endpoints, Components
       Deployment Options




2       Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
About Me


                                                                                                     Marcelo Jabali
                                                                                                     Sr. Solutions Consultant

                                                                                                     marcelo@fusesource.com

                                                                                                     marcelojabali.blogspot.com

                                                                                                     mjabali

                                                                                                     linkedin.com/in/jabali


3   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.        A Progress Software Company
Apache Camel


                                                                                            Apache Camel is a
                                                                                             powerful Open
                                                                                             Source Integration
                                                                                             Framework based on
                                                                                             known Enterprise
                                                                                             Integration Patterns




                                                                               http://enterpriseintegrationpatterns.com/

4   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel - Patterns


     50+ Enterprise Integration Patterns




                                            http://camel.apache.org/eip
5      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel – Components, Data Formats and
Languages

     80 Components (activemq, bean, cxf, file, ftp, hibernate, jdbc,
      ibatis, jms, jetty, mina, netty, timer, xslt, etc)
       • http://camel.apache.org/components.html


     19 Data Formats (csv, serialization, zip, hl7, soap, jaxb, etc)
       • http://camel.apache.org/data-format.html


     15 Expression Languages (EL, Simple, XQuery, Xpath,
      JavaScript, Ruby, Python, PHP, etc)
       • http://camel.apache.org/languages.html




6      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel - Architecture




7   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
What is a Camel Route?


     A Route is the step-by-step movement of a message:
       • From a “listening” endpoint in the role of consumer
       • Through a processing component - enterprise integration pattern,
         processor, interceptor, etc. (optional)
       • To a target endpoint in the role of producer
     May involve any number of processing components that
      modify the original message and/or redirect it
     An application developer specifies routes using:
       • Spring configuration files
       • Java Domain Specific Language (DSL)




8      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel – DSL (Domain Specific Language)


     Camel provides an embedded DSL (in Java, Spring or Scala) for
      implementing enterprise integration patterns
       • The DSL uses URIs to define endpoints which are combined to
         generate routes (integration flows)




9      Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel - Components


  A Component is essentially a factory of Endpoint instances
  +80 Components available
            activemq                                    cxf                                  rss                   sql

     mail/imap/pop3                                   cxfrs                               snmp                    timer

                amqp                               dataset                          ftp/ftps/sftp                  jbi
                 atom                                 db4o                              velocity                   jcr
                 bean                                direct                               restlet                 jdbc
                  ldap                                  ejb                           hibernate                   jetty
              browse                                xquery                                   hl7                  jms
                cache                                quartz                                 http                  jmx
                 mock                                 exec                                ibatis                  jpa
                 netty                                  file                                  irc                 xslt

10   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.           A Progress Software Company
Apache Camel - Endpoints


  An Endpoint is an instance of the component that can
   create or receive messages, for example, an FTP server, a
   Web Service, or a JMS broker
  Camel allows you to specifiy endpoints using simple URIs
     • ftp://john@localhost/ftp?password=xxx
     • activemq:queue:MyQueue


                             Camel Route


              FTP                                                                                                            JMS



                             Consumer                                  Processor                                  Producer


11   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.               A Progress Software Company
Apache Camel - Consumers and Producers


  Message Consumers and Producers are created from
   endpoints
     • Some endpoint technologies can create producers and
       consumers, others support the creation of either a producer or a
       consumer
ftp://john@localhost/ftp?password=xxx
                                   Camel Route


                   FTP                                                                                                       JMS



                                  Consumer                                  Processor                             Producer

                                                                                 activemq:queue:MyQueue
12   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.              A Progress Software Company
Apache Camel - Sample Route


  Typical scenario: "read an XML file from an FTP server,
   process it using XSLT, and then send it to a JMS queue”
     • It's natural to consider an FTP consumer that 'consumes' the
       message…
     • … which gets sent to a 'processor' for transformation …
     • … which gets sent to a JMS message producer for placement on
       the queue


                             Camel Route


              FTP                                                                                                            JMS



                             Consumer                                  Processor                                  Producer

13   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.               A Progress Software Company
Apache Camel – Sample Route


  Java DSL
     from("ftp://john@localhost/ftp?password=xxx")
        .to("xslt:MyTransform.xslt")
        .to("activemq:queue:MyQueue")


                              Camel Route


               FTP                                                                                                            JMS



                              Consumer                                  Processor                                  Producer




14    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.               A Progress Software Company
Apache Camel – Sample Route


  Spring XML DSL
 <camelContext id=“camel”
         xmlns=“http://activemq.apache.org/camel/schema/spring”>
         <route>
                 <from uri=“ftp://john@localhost/ftp?password=xxx”/>
                 <to uri=“xslt:MyTransform.xslt”/>
                 <to uri=“activemq:queue:MyQueue”/>
         </route>
 </camelContext>



  Clean Integration with Spring Beans
 <bean id=“activemq”
 class=“org.apache.activemq.camel.component.ActiveMQComponent”>
         <property name=“brokerURL” value=“tcp://localhost:61616”/>
 </bean>


15   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Apache Camel – Spring Bean Integration


  Spring Bean as Message Translator




                   from("activemq:queue:Incoming”).
                     beanRef("myBeanName", "someMethod").
                       to("activemq:Outgoing");


                       public class Foo {
                             public String someMethod(String name) {
                               return “Hello “ + name;
                             }
                       }

16   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Typical Camel Route Development Process


  Use a Maven archetype to generate an outline project

  Edit the POM to include additional dependencies

  Add your Java code into src/main/java, and/or Spring
   configuration to src/main/resources/META-INF/spring

  Add instructions to the Maven Felix plugin, to assist in the generation
   of OSGi manifest information

  Test using the Camel Maven plugin
           mvn camel:run

  Deploy into the Apache ServiceMix OSGi container
     • Drop into deploy/ directory (pre-production testing)
     • Install a bundle/feature from a maven repository (production environment)
17   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Camel Testing Options


  Test Kit
     •     camel-test JAR (JUnit)
     •     camel-testng JAR (TestNG)
     •     Supports Spring
     •     Easy to test
     •     Quick prototyping




18   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
Camel Deployment Options


  Deployment Strategy                                                                                        Common Containers
     • No Container dependency
     • Lightweight                                                                                            Apache ServiceMix
                                                                                                              Apache ActiveMQ
     • Embeddable                                                                                             Apache Tomcat
  Deployment Options                                                                                         Jetty
                                                                                                              JBoss
     •     Standalone                                                                                         IBM WebSphere
     •     WAR                                                                                                Oracle WebLogic
     •     Spring                                                                                             Oracle OC4j
                                                                                                              Glassfish
     •     JEE                                                                                                Google App Engine
     •     OSGi                                                                                               Amazon EC2
     •     Cloud                                                                                              ... others




19   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.                   A Progress Software Company
Thanks!


No vendor lock-in
    Free to redistribute
         Enterprise class                                                                                         A Progress Software Company
20   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.            A Progress Software Company

More Related Content

What's hot

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
 
Service-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMixService-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMixBruce Snyder
 
Simplify your integrations with Apache Camel
Simplify your integrations with Apache CamelSimplify your integrations with Apache Camel
Simplify your integrations with Apache Camel
Kenneth Peeples
 
OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneider
mfrancis
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on InfinispanLance Ball
 
Service Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMixService Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMix
ghessler
 
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
 
Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBoss
JBug Italy
 
When Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of TorqueboxWhen Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of Torquebox
rockyjaiswal
 
Cloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and VaadinCloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and Vaadin
Joshua Long
 
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
ngotogenome
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on Rails
Source Conference
 
Torquebox OSCON Java 2011
Torquebox OSCON Java 2011Torquebox OSCON Java 2011
Torquebox OSCON Java 2011tobiascrawley
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
ejlp12
 
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
Jerry Preissler
 
Crash course to the Apache Camel
Crash course to the Apache CamelCrash course to the Apache Camel
Crash course to the Apache Camel
Henryk Konsek
 
Torquebox @ Raleigh.rb - April 2011
Torquebox @ Raleigh.rb - April 2011Torquebox @ Raleigh.rb - April 2011
Torquebox @ Raleigh.rb - April 2011tobiascrawley
 
TorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyTorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyBruno Oliveira
 
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
Mattias Karlsson
 

What's hot (20)

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...
 
First Day With J Ruby
First Day With J RubyFirst Day With J Ruby
First Day With J Ruby
 
Service-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMixService-Oriented Integration With Apache ServiceMix
Service-Oriented Integration With Apache ServiceMix
 
Simplify your integrations with Apache Camel
Simplify your integrations with Apache CamelSimplify your integrations with Apache Camel
Simplify your integrations with Apache Camel
 
OSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian SchneiderOSGi ecosystems compared on Apache Karaf - Christian Schneider
OSGi ecosystems compared on Apache Karaf - Christian Schneider
 
DataMapper on Infinispan
DataMapper on InfinispanDataMapper on Infinispan
DataMapper on Infinispan
 
Service Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMixService Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMix
 
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
 
Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBoss
 
When Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of TorqueboxWhen Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of Torquebox
 
Cloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and VaadinCloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and Vaadin
 
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
Running Ruby on Solaris (RubyKaigi 2015, 12/Dec/2015)
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on Rails
 
Torquebox OSCON Java 2011
Torquebox OSCON Java 2011Torquebox OSCON Java 2011
Torquebox OSCON Java 2011
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
 
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
 
Crash course to the Apache Camel
Crash course to the Apache CamelCrash course to the Apache Camel
Crash course to the Apache Camel
 
Torquebox @ Raleigh.rb - April 2011
Torquebox @ Raleigh.rb - April 2011Torquebox @ Raleigh.rb - April 2011
Torquebox @ Raleigh.rb - April 2011
 
TorqueBox - When Java meets Ruby
TorqueBox - When Java meets RubyTorqueBox - When Java meets Ruby
TorqueBox - When Java meets Ruby
 
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
 

Viewers also liked

Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Claus Ibsen
 
Microservices: lessons from the trenches
Microservices: lessons from the trenchesMicroservices: lessons from the trenches
Microservices: lessons from the trenches
Mehdi Khalili
 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
prajods
 
Oracle OSB Tutorial 2
Oracle OSB Tutorial 2Oracle OSB Tutorial 2
Oracle OSB Tutorial 2
Rakesh Gujjarlapudi
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket Introduction
Marcelo Jabali
 
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Kai Wähner
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Kai Wähner
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
Slim Baltagi
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
Guido Schmutz
 
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
Kai Wähner
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
Bahaa Farouk
 
Oracle OSB Tutorial 1
Oracle OSB Tutorial 1Oracle OSB Tutorial 1
Oracle OSB Tutorial 1
Rakesh Gujjarlapudi
 

Viewers also liked (12)

Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
Getting started with Apache Camel presentation at BarcelonaJUG, january 2014
 
Microservices: lessons from the trenches
Microservices: lessons from the trenchesMicroservices: lessons from the trenches
Microservices: lessons from the trenches
 
Event Driven Architecture with Apache Camel
Event Driven Architecture with Apache CamelEvent Driven Architecture with Apache Camel
Event Driven Architecture with Apache Camel
 
Oracle OSB Tutorial 2
Oracle OSB Tutorial 2Oracle OSB Tutorial 2
Oracle OSB Tutorial 2
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket Introduction
 
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
 
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
 
Oracle OSB Tutorial 1
Oracle OSB Tutorial 1Oracle OSB Tutorial 1
Oracle OSB Tutorial 1
 

Similar to Apache camel overview dec 2011

Introducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template EngineIntroducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template Engine
James Strachan
 
Fusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardFusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliard
Charles Moulliard
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
François Le Droff
 
(Oleg zhurakousky)spring integration-scala-intro
(Oleg zhurakousky)spring integration-scala-intro(Oleg zhurakousky)spring integration-scala-intro
(Oleg zhurakousky)spring integration-scala-introSkills Matter Talks
 
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and TwitterLeverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and TwitterBruno Borges
 
Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDE
JBUG London
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
David Delabassee
 
The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving Java
Steve Elliott
 
Apache Commons Overview
Apache Commons OverviewApache Commons Overview
Apache Commons Overview
ghessler
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement
Chuong Nguyen
 
Shake Hooves With BeEF - OWASP AppSec APAC 2012
Shake Hooves With BeEF - OWASP AppSec APAC 2012Shake Hooves With BeEF - OWASP AppSec APAC 2012
Shake Hooves With BeEF - OWASP AppSec APAC 2012Christian Frichot
 
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers
jeetendra mandal
 
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
Charles Moulliard
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
Johan Edstrom
 
Introducing JSR-283
Introducing JSR-283Introducing JSR-283
Introducing JSR-283
David Nuescheler
 
Java 8
Java 8Java 8
Java 8
jclingan
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
jclingan
 
Web servicesoverview
Web servicesoverviewWeb servicesoverview
Web servicesoverview
thisismusthafa
 
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsJazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsEdgar Silva
 

Similar to Apache camel overview dec 2011 (20)

Introducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template EngineIntroducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template Engine
 
Fusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardFusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliard
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 
(Oleg zhurakousky)spring integration-scala-intro
(Oleg zhurakousky)spring integration-scala-intro(Oleg zhurakousky)spring integration-scala-intro
(Oleg zhurakousky)spring integration-scala-intro
 
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and TwitterLeverage Enterprise Integration Patterns with Apache Camel and Twitter
Leverage Enterprise Integration Patterns with Apache Camel and Twitter
 
Camel overview
Camel overview Camel overview
Camel overview
 
Easy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDEEasy Integration with Apache Camel and Fuse IDE
Easy Integration with Apache Camel and Fuse IDE
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
The Forces Driving Java
The Forces Driving JavaThe Forces Driving Java
The Forces Driving Java
 
Apache Commons Overview
Apache Commons OverviewApache Commons Overview
Apache Commons Overview
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement
 
Shake Hooves With BeEF - OWASP AppSec APAC 2012
Shake Hooves With BeEF - OWASP AppSec APAC 2012Shake Hooves With BeEF - OWASP AppSec APAC 2012
Shake Hooves With BeEF - OWASP AppSec APAC 2012
 
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers
 
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
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
Introducing JSR-283
Introducing JSR-283Introducing JSR-283
Introducing JSR-283
 
Java 8
Java 8Java 8
Java 8
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
 
Web servicesoverview
Web servicesoverviewWeb servicesoverview
Web servicesoverview
 
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on SteroidsJazoon2010 - Edgar Silva - Open source SOA on Steroids
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
 

Recently uploaded

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 

Recently uploaded (20)

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 

Apache camel overview dec 2011

  • 1. Apache Camel Overview Open Source Integration and Messaging Marcelo Jabali Sr. Solutions Consultant Dec., 2011 A Progress Software Company 1 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 2. Agenda  Apache Camel Overview  Architecture  Routes, Endpoints, Components  Deployment Options 2 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 3. About Me Marcelo Jabali Sr. Solutions Consultant marcelo@fusesource.com marcelojabali.blogspot.com mjabali linkedin.com/in/jabali 3 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 4. Apache Camel  Apache Camel is a powerful Open Source Integration Framework based on known Enterprise Integration Patterns http://enterpriseintegrationpatterns.com/ 4 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 5. Apache Camel - Patterns  50+ Enterprise Integration Patterns http://camel.apache.org/eip 5 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 6. Apache Camel – Components, Data Formats and Languages  80 Components (activemq, bean, cxf, file, ftp, hibernate, jdbc, ibatis, jms, jetty, mina, netty, timer, xslt, etc) • http://camel.apache.org/components.html  19 Data Formats (csv, serialization, zip, hl7, soap, jaxb, etc) • http://camel.apache.org/data-format.html  15 Expression Languages (EL, Simple, XQuery, Xpath, JavaScript, Ruby, Python, PHP, etc) • http://camel.apache.org/languages.html 6 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 7. Apache Camel - Architecture 7 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 8. What is a Camel Route?  A Route is the step-by-step movement of a message: • From a “listening” endpoint in the role of consumer • Through a processing component - enterprise integration pattern, processor, interceptor, etc. (optional) • To a target endpoint in the role of producer  May involve any number of processing components that modify the original message and/or redirect it  An application developer specifies routes using: • Spring configuration files • Java Domain Specific Language (DSL) 8 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 9. Apache Camel – DSL (Domain Specific Language)  Camel provides an embedded DSL (in Java, Spring or Scala) for implementing enterprise integration patterns • The DSL uses URIs to define endpoints which are combined to generate routes (integration flows) 9 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 10. Apache Camel - Components  A Component is essentially a factory of Endpoint instances  +80 Components available activemq cxf rss sql mail/imap/pop3 cxfrs snmp timer amqp dataset ftp/ftps/sftp jbi atom db4o velocity jcr bean direct restlet jdbc ldap ejb hibernate jetty browse xquery hl7 jms cache quartz http jmx mock exec ibatis jpa netty file irc xslt 10 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 11. Apache Camel - Endpoints  An Endpoint is an instance of the component that can create or receive messages, for example, an FTP server, a Web Service, or a JMS broker  Camel allows you to specifiy endpoints using simple URIs • ftp://john@localhost/ftp?password=xxx • activemq:queue:MyQueue Camel Route FTP JMS Consumer Processor Producer 11 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 12. Apache Camel - Consumers and Producers  Message Consumers and Producers are created from endpoints • Some endpoint technologies can create producers and consumers, others support the creation of either a producer or a consumer ftp://john@localhost/ftp?password=xxx Camel Route FTP JMS Consumer Processor Producer activemq:queue:MyQueue 12 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 13. Apache Camel - Sample Route  Typical scenario: "read an XML file from an FTP server, process it using XSLT, and then send it to a JMS queue” • It's natural to consider an FTP consumer that 'consumes' the message… • … which gets sent to a 'processor' for transformation … • … which gets sent to a JMS message producer for placement on the queue Camel Route FTP JMS Consumer Processor Producer 13 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 14. Apache Camel – Sample Route  Java DSL from("ftp://john@localhost/ftp?password=xxx") .to("xslt:MyTransform.xslt") .to("activemq:queue:MyQueue") Camel Route FTP JMS Consumer Processor Producer 14 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 15. Apache Camel – Sample Route  Spring XML DSL <camelContext id=“camel” xmlns=“http://activemq.apache.org/camel/schema/spring”> <route> <from uri=“ftp://john@localhost/ftp?password=xxx”/> <to uri=“xslt:MyTransform.xslt”/> <to uri=“activemq:queue:MyQueue”/> </route> </camelContext>  Clean Integration with Spring Beans <bean id=“activemq” class=“org.apache.activemq.camel.component.ActiveMQComponent”> <property name=“brokerURL” value=“tcp://localhost:61616”/> </bean> 15 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 16. Apache Camel – Spring Bean Integration  Spring Bean as Message Translator from("activemq:queue:Incoming”). beanRef("myBeanName", "someMethod"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name) { return “Hello “ + name; } } 16 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 17. Typical Camel Route Development Process  Use a Maven archetype to generate an outline project  Edit the POM to include additional dependencies  Add your Java code into src/main/java, and/or Spring configuration to src/main/resources/META-INF/spring  Add instructions to the Maven Felix plugin, to assist in the generation of OSGi manifest information  Test using the Camel Maven plugin mvn camel:run  Deploy into the Apache ServiceMix OSGi container • Drop into deploy/ directory (pre-production testing) • Install a bundle/feature from a maven repository (production environment) 17 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 18. Camel Testing Options  Test Kit • camel-test JAR (JUnit) • camel-testng JAR (TestNG) • Supports Spring • Easy to test • Quick prototyping 18 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 19. Camel Deployment Options  Deployment Strategy Common Containers • No Container dependency • Lightweight Apache ServiceMix Apache ActiveMQ • Embeddable Apache Tomcat  Deployment Options Jetty JBoss • Standalone IBM WebSphere • WAR Oracle WebLogic • Spring Oracle OC4j Glassfish • JEE Google App Engine • OSGi Amazon EC2 • Cloud ... others 19 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
  • 20. Thanks! No vendor lock-in Free to redistribute Enterprise class A Progress Software Company 20 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company

Editor's Notes

  1. Very simplified view of Camel’s architectureComponents are the extension point in Camel to add connectivity to other systems. The core of Camel is very small to keep dependencies low, promote embeddability, etc. and as a result contains only 12 essential components. There are over 60 components outside the core. To expose these systems to the rest of Camel, Components provide an Endpoint interface. By using URIs, you can send or receive messages on Endpoints in a uniform way. For instance, to receive messages from a JMS queue aQueue and send them to a file system directory &quot;c:/tmp&quot;, you could use URIs like &quot;jms:aQueue&quot; and &quot;file:c:\\tmp&quot;.Processors are used to manipulate and mediate messages in between Endpoints. All of the EIPs are defined as Processors or sets of Processors. As of writing, Camel supports 41 patterns from the EIP book, 6 other integration patterns, and many other useful Processors.To wire Processors and Endpoints together, Camel defines a Java DSL. The term DSL is used a bit loosely here as it usually implies the involvement of a compiler or interpreter that can process keywords specific to a particular domain. In Camel, DSL means a fluent Java API that contains methods named like terms from the EIP book
  2. To wire processors and endpoints together to form routes, Camel defines a DSL. The term DSL is used a bit loosely here. In Camel, DSL means a fluent Java API that con- tains methods named for EIP terms.
  3. Camel Demo + FUSE IDE Demo