SlideShare a Scribd company logo
1 of 66
Download to read offline
Enterprise	
  Integra6on	
  PaDerns	
  and	
  DSL
with	
  Apache	
  Camel
by	
  Claus	
  Ibsen
Principal	
  So3ware	
  Engineer,	
  FuseSource




                                                                                                                                                        A	
  Progress	
  So3ware	
  Company
1   Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
           A	
  Progress	
  So3ware	
  Company
Agenda


   Who	
  is	
  Claus	
  Ibsen?
   What	
  is	
  Apache	
  Camel?
   Camel	
  Architecture
   Whats	
  included	
  in	
  the	
  box?
   Running	
  Camel
   Live	
  Demos
   Apache	
  ServiceMix
   Apache	
  Camel	
  Roadmap
   Q	
  and	
  A




2      Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Who	
  is	
  Claus	
  Ibsen?


 Principal	
  So3ware	
  Engineer	
  at	
  FuseSource
    • 	
  Full	
  6me	
  Apache	
  Camel	
  hacker
 Apache	
  Camel	
  commiDer
    • Camel	
  Top	
  Contributor
    • 	
  4	
  years	
  working	
  with	
  Camel
 Author	
  of	
  Camel	
  in	
  Ac6on	
  book
 Contact
    • 	
  TwiDer:	
  @davsclaus
    • 	
  Blog:	
  hDp://davsclaus.blogspot.com
    • 	
  Email:	
  cibsen@fusesource.com



                                                                                                                                                        hDp://www.manning.com/ibsen

3       Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
                  A	
  Progress	
  So3ware	
  Company
My	
  Employer


 FuseSource	
  -­‐	
  hDp://fusesource.com	
  
  	
  




4     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


   Who	
  is	
  Claus	
  Ibsen?
   What	
  is	
  Apache	
  Camel?
   Camel	
  Architecture
   Whats	
  included	
  in	
  the	
  box?
   Running	
  Camel
   Live	
  Demos
   Apache	
  ServiceMix
   Apache	
  Camel	
  Roadmap
   Q	
  and	
  A




5      Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Quote	
  from	
  the	
  web	
  site	
  
    • 	
  hDp://camel.apache.org


                                     Apache	
  Camel	
  is	
  a
                                  powerful	
  Open	
  Source
                                  Integra6on	
  Framework
                                      based	
  on	
  known
                              Enterprise	
  Integra6on	
  PaDerns


6      Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Why	
  do	
  we	
  need	
  integra6on?
    • 	
  Your	
  apps	
  are	
  build	
  using	
  different	
  tech	
  stacks
    • 	
  Cri6cal	
  for	
  your	
  business	
  to	
  integrate
 Why	
  Integra6on	
  Framework?
    • 	
  Framework	
  do	
  the	
  heavy	
  li3ing
    • 	
  Focus	
  on	
  business	
  problem	
  
    • 	
  Not	
  "reinven6ng	
  the	
  wheel"




7       Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel

 What	
  is	
  Enterprise	
  Integra6on	
  PaDerns?




        System	
  A                                                                                                                                       System	
  B




8     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
          A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel

 What	
  is	
  Enterprise	
  Integra6on	
  PaDerns?




                                                                                                    Its	
  a	
  book
 9     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel

 Camel	
  and	
  EIP




       Apache                                                                                                                                             WebSphereMQ
      Ac6veMQ




10    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
          A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel

 Camel	
  and	
  EIP




 11    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Camel	
  and	
  EIP




         from                                                                         filter                                                               send	
  to
           A                                                                         message                                                                 B




12    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
          A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Camel	
  and	
  EIP




     from(A)                                                         filter(predicate)                                                                     to(B)




13    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
       A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Camel	
  and	
  EIP




     from(A)                                                         .filter(isWidget)                                                                     .to(B)




14    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
        A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Camel	
  and	
  EIP




                                     from(A).filter(isWidget).to(B);




15    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Camel	
  and	
  EIP




     isWidget	
  =	
  xpath("/quote/product	
  =	
  ‘widget’");

     from(A).filter(isWidget).to(B);


16    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


  Camel	
  and	
  EIP


Endpoint	
  A	
  =	
  endpoint("ac6vemq:queue:quote");
Endpoint	
  B	
  =	
  endpoint("mq:quote");
Predicate	
  isWidget	
  =	
  xpath("/quote/product	
  =	
  ‘widget’");

from(A).filter(isWidget).to(B);




17    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Filter	
  Route



public void configure() throws Exception {
    Endpoint A = endpoint("activemq:queue:quote");
    Endpoint B = endpoint("mq:quote");
    Predicate isWidget = xpath("/quote/product = ‘widget’");

      from(A).filter(isWidget).to(B);
}




18    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Filter	
  Route	
  -­‐	
  Java	
  DSL

  import org.apache.camel.builder.RouteBuilder;

  public class FilterRoute extends RouteBuilder {

      public void configure() throws Exception {
        Endpoint A = endpoint("activemq:queue:quote");
        Endpoint B = endpoint("mq:quote");
        Predicate isWidget = xpath("/quote/product = ‘widget’");

            from(A).filter(isWidget).to(B);
      }
  }


 19     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Filter	
  Route	
  -­‐	
  Java	
  DSL

      import org.apache.camel.builder.RouteBuilder;

      public class FilterRoute extends RouteBuilder {

          public void configure() throws Exception {
            from("activemq:queue:quote")
              .filter().xpath("/quote/product =‘widget’")
                .to("mq:quote");
          }
      }




 20       Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Lets	
  look	
  at	
  the	
  most	
  famous	
  paDern




21     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Content	
  Based	
  Router




22    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


  Content	
  Based	
  Router	
  -­‐	
  XML	
  DSL
  <camelContext>
    <route>
      <from uri="activemq:NewOrders"/>
      <choice>
        <when>
          <xpath>/order/product = 'widget'</xpath>
          <to uri="activemq:Orders.Widgets"/>
        </when>
        <otherwise>
          <to uri="activemq:Orders.Gadgets"/>
        </otherwise>
      </choice>
    </route>
  </camelContext>
23     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


  Content	
  Based	
  Router	
  -­‐	
  Java	
  DSL



     from("activemq:NewOrders")
       .choice()
         .when().xpath("/order/product = 'widget'")
           .to("activemq:Orders.Widget")
         .otherwise()
           .to("activemq:Orders.Gadget");




24     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


  Endpoints	
  as	
  URIs
                                                            use file instead

     from("file:inbox/orders")
       .choice()
         .when().xpath("/order/product = 'widget'")
           .to("activemq:Orders.Widget")
         .otherwise()
           .to("activemq:Orders.Gadget");




25    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


  Endpoints	
  as	
  URIs
                                                                                                                                                   parameters


     from("file:inbox/orders?delete=true")
       .choice()
         .when().xpath("/order/product = 'widget'")
           .to("activemq:Orders.Widget")
         .otherwise()
           .to("activemq:Orders.Gadget");




26    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
           A	
  Progress	
  So3ware	
  Company
What	
  is	
  Apache	
  Camel


 Summary
   • 	
  Integra6on	
  framework
   • 	
  Enterprise	
  Integra6on	
  PaDerns	
  (EIP)	
  
   • 	
  Rou6ng	
  (using	
  DSL)
   • 	
  Easy	
  configura6on	
  (endpoints	
  as	
  URIs)
   • 	
  No	
  heavy	
  specifica6on
   • 	
  No	
  container	
  dependency
   • 	
  Payload	
  agnos6c
   • 	
  A	
  lot	
  of	
  components




27    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra6on	
  PaDerns
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




28     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Camel	
  Architecture


 Message	
  PaDern




29   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Camel	
  Architecture


 Message




30   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Camel	
  Architecture


 Camel	
  Exchange




31   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Camel	
  Architecture


 Camel	
  Architecture




32   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Camel	
  Architecture


 Camel	
  DSL	
  -­‐	
  Highest	
  Level	
  
     from("file:inbox/orders?delete=true")
       .choice()
         .when().xpath("/order/product = 'widget'")
           .to("activemq:Orders.Widget")
         .otherwise()
           .to("activemq:Orders.Gadget");




33    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Camel	
  Architecture


 Camel	
  DSL	
  	
  -­‐	
  Lowest	
  Level
     • Rou6ng	
  Engine

                Iterator<Processor> it = ...
                while (it.hasNext()) {
                  Processor processor = it.next();
                  processor.process(exchange);
                }
     • Processor	
  API

        process(Exchange exchange) throws Exception;




34      Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra9on	
  Pa;erns
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




35     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 50	
  Enterprise	
  Integra6on	
  PaDerns




                                                             http://camel.apache.org/eip
36    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Pipes	
  and	
  Filters	
  EIP




      from("file:inbox")
        .pipeline()
        .to("bean:decrypt")
        .to("bean:authenticate")
        .to("bean:deDup");




37     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Pipes	
  and	
  Filters	
  EIP




      from("file:inbox")
        .to("bean:decrypt")
        .to("bean:authenticate")
        .to("bean:deDup");



             pipeline()	
  is	
  default	
  mode	
  in	
  Camel	
  and	
  can	
  usually	
  be	
  omi5ed

38     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 SpliDer	
  EIP



        File                                                                Splitter                                                          Custom
                                                                                                                                                          ActiveMQ
                                                                                                                                              -> XML




     from("file:inbox")
       .split(body().tokenize("n")
         .marshal(customToXml)
         .to("activemq:line");




39    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
      A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Recipient	
  List	
  EIP
                                                                                                                                                                 stock.APPL
                                                                                                                                                                 stock.ORCL
                                                                                                                                                                 stock.XXXX
                                                         REST Service                                                                                 ActiveMQ




40     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
                   A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Recipient	
  List	
  EIP
                                                                                                                                                                 stock.APPL
                                                                                                                                                                 stock.ORCL
                                                                                                                                                                 stock.XXXX
                                                         REST Service                                                                                 ActiveMQ




                            	
  curl	
  -­‐X	
  	
  POST	
  -­‐d	
  "120"	
  "hDp://localhost:9080/stock/ORCL"


41     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
                   A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Bean	
  as	
  Message	
  Translator




42    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Bean	
  as	
  Message	
  Translator
     from("activemq:Incoming”).
            beanRef("myBeanName", "someMethod").
                 to("activemq:Outgoing");


     public class Foo {

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



43       Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Bean	
  Parameter	
  Binding	
  w/	
  Annota6ons
     from("activemq:Incoming").
           beanRef("myBeanName", "someMethod").
              to("activemq:Outgoing");

     public class Foo {

           public String someMethod(String name,
                     @Header(”JMSCorrelationID”) String cid) {
                     ...
           }
     }                                          Annota6ons



44       Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Enterprise	
  Integra6on	
  PaDerns


 Bean	
  Parameter	
  Binding	
  w/	
  Method	
  Name	
  (new	
  in	
  Camel	
  2.9)
 from("activemq:Incoming").
   beanRef("myBeanName",
           "someMethod(${body}, ${header.JMSCorrelationID})").
     to("activemq:Outgoing");

 public class Foo {

     public String someMethod(String name,
                                                                                                                                    String cid) {
            ...
     }
 }



45    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra6on	
  PaDerns
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




46     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Running	
  Camel


 Deployment	
  Strategy
  • 	
  No	
  container	
  dependency                                                                                                                    Known	
  Containers
  • 	
  Lightweight                                                                                                                                      Fuse	
  ESB
                                                                                                                                                         Apache	
  ServiceMix
  • 	
  Embedable	
                                                                                                                                      Apache	
  Ac6veMQ
 Deployment	
  Op6ons                                                                                                                                   Apache	
  Tomcat
                                                                                                                                                         JeDy
  • Standalone                                                                                                                                           JBoss
  • Spring                                                                                                                                               IBM	
  WebSphere
                                                                                                                                                         Oracle	
  WebLogic
  • WAR                                                                                                                                                  Glassfish
  • JEE                                                                                                                                                  Google	
  App	
  Engine
                                                                                                                                                         Amazon	
  EC2
  • OSGi                                                                                                                                                 ...	
  others
  • Cloud

47   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
                        A	
  Progress	
  So3ware	
  Company
Running	
  Camel


 Java	
  Applica6on
     CamelContext context = new DefaultCamelContext();
     context.addRoutes(new MyRouteBuilder());
     context.start();




48      Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Running	
  Camel


 Spring	
  Applica6on
 <beans xmlns="http://www.springframework.org/schema/beans">

     <camelContext xmlns="http://camel.apache.org/schema/spring">
       <route>
         <from uri="file:/orders"/>
         ...
       </route>
     </camelContext>

 </beans>




49     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Running	
  Camel


 Java	
  Client	
  Applica6on
 CamelContext context = new DefaultCamelContext();
 context.start();

 ProducerTemplate template = context.newProducerTemplate();

 Object data = ...
 String filename = "mydata.csv";
 String uri = "ftp:myftpserver?username=me&password=secret";

 template.sendBodyAndHeader(uri, data, "CamelFileName", filename);




50    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra6on	
  PaDerns	
  
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




51     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Live	
  Demo	
  1


 Groovy	
  Script




                        HTTP Service                                                                                                                      Transform




                                     groovy	
  mycamel.groovy
                                     curl	
  hDp://localhost:8080

52    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
                 A	
  Progress	
  So3ware	
  Company
Live	
  Demo	
  1


 Groovy	
  Script	
  (mycamel.groovy)




53    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Live	
  Demo	
  1


 Groovy	
  Script	
  (mycamel.groovy	
  -­‐	
  cont.)




54    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Live	
  Demo	
  2


 Create	
  new	
  Project	
  using	
  Maven

                                                                                                                                                          UK messages




                                                 File                                                         Content
                                                                                                              Based
                                                                                                              Router
                                                                                                                                                            Other
                                                                                                                                                           messages




                                              mvn	
  archetype:generate
                                              (camel-­‐archetype-­‐spring)
                                              mvn	
  eclipse:eclipse
                                              mvn	
  camel:run
55    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
                   A	
  Progress	
  So3ware	
  Company
Live	
  Demo	
  2


 Create	
  new	
  Project	
  using	
  Maven




56    Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra6on	
  PaDerns
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




57     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Apache	
  ServiceMix


 Architecture




58   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Apache	
  ServiceMix


 Modular




59   Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Apache	
  ServiceMix


 ServiceMix	
  and	
  Camel	
  Demo




 SSH	
  access	
  to	
  shell
                                                               	
  ssh	
  smx@localhost	
  -­‐p	
  8101


60     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra6on	
  PaDerns
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




61     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Apache	
  Camel	
  Roadmap


 Apache	
  Camel	
  2.9.0	
  -­‐	
  Highlights
     •   Reduced	
  Spring	
  JAR	
  dependency
     •   Reworked	
  Simple	
  Expression	
  Language
     •   Splisng	
  big	
  XML	
  files	
  in	
  streaming	
  mode
     •   Improved	
  Bean	
  Parameter	
  Binding
     •   Improved	
  JMX
     •   Improved	
  JMS	
  request/reply
     •   Addi6onal	
  Camel	
  shell	
  commands
     •   JClouds	
  Component




                                              hDp://camel.apache.org/camel-­‐290-­‐release.html
                                                      hDp://davsclaus.blogspot.com

62        Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Apache	
  Camel	
  Roadmap


 Apache	
  Camel	
  2.10	
  -­‐	
  Roadmap
     •   Blueprint	
  not	
  6ed	
  to	
  Apache	
  Aries
     •   Transac6on	
  API	
  not	
  6ed	
  to	
  Spring	
  TX	
  API
     •   Make	
  it	
  easier	
  to	
  use	
  Bindy
     •   Persistent	
  Dead	
  LeDer	
  Channel
     •   CDI	
  support
     •   camel-­‐mina2	
  component




63        Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Apache	
  Camel	
  Roadmap


 Apache	
  Camel	
  3.0	
  -­‐	
  Roadmap
   •   Split	
  camel-­‐core	
  into	
  mul6ple	
  JARs
   •   Support	
  async	
  transac6ons
   •   Internal	
  rou6ng	
  engine	
  cleanup
   •   Dynamic	
  add/remove	
  interceptors	
  to	
  running	
  routes
   •   Unify	
  JMX/REST	
  API	
  for	
  management




                                            hDp://camel.apache.org/camel-­‐30-­‐roadmap.html

  64     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Agenda


    Who	
  is	
  Claus	
  Ibsen?
    What	
  is	
  Apache	
  Camel?
    Camel	
  Architecture
    Enterprise	
  Integra6on	
  PaDerns
    Running	
  Camel
    Live	
  Demos
    Apache	
  ServiceMix
    Apache	
  Camel	
  Roadmap
    Q	
  and	
  A




65     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company
Q	
  and	
  A




  Contact
                                                                                            ?
     • 	
  TwiDer:	
  @davsclaus
     • 	
  Blog:	
  hDp://davsclaus.blogspot.com
     • 	
  Email:	
  cibsen@fusesource.com

66     Copyright	
  ©	
  2011	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
     A	
  Progress	
  So3ware	
  Company

More Related Content

Viewers also liked

Taking Apache Camel For A Ride
Taking Apache Camel For A RideTaking Apache Camel For A Ride
Taking Apache Camel For A RideBruce Snyder
 
Jazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache CamelJazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache CamelKai Wähner
 
Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Claus Ibsen
 
Essential Camel Components
Essential Camel ComponentsEssential Camel Components
Essential Camel ComponentsChristian Posta
 
Xml to xml transformation in mule
Xml to xml transformation in muleXml to xml transformation in mule
Xml to xml transformation in muleRajkattamuri
 
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache CamelJazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache CamelKai Wähner
 
Application Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftApplication Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftBui Kiet
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-finalChristian Posta
 
Smart Enterprise Application Integration with Apache Camel
Smart Enterprise Application Integration with Apache Camel Smart Enterprise Application Integration with Apache Camel
Smart Enterprise Application Integration with Apache Camel Kai Wähner
 
Apache Camel Lifecycle
Apache Camel LifecycleApache Camel Lifecycle
Apache Camel LifecycleIlya Lapitan
 
Mule exception strategies - Catch exception strategy
Mule exception strategies - Catch exception strategyMule exception strategies - Catch exception strategy
Mule exception strategies - Catch exception strategyAnkush Sharma
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelChristian Posta
 
SaaS Metrics That Matter | MuleSoft
SaaS Metrics That Matter | MuleSoftSaaS Metrics That Matter | MuleSoft
SaaS Metrics That Matter | MuleSoftMuleSoft
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelIoan Eugen Stan
 
Apache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the boxApache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the boxClaus Ibsen
 
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...Kai Wähner
 

Viewers also liked (20)

Taking Apache Camel For A Ride
Taking Apache Camel For A RideTaking Apache Camel For A Ride
Taking Apache Camel For A Ride
 
Jazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache CamelJazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache Camel
 
Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014Getting Started with Apache Camel at DevNation 2014
Getting Started with Apache Camel at DevNation 2014
 
Essential Camel Components
Essential Camel ComponentsEssential Camel Components
Essential Camel Components
 
JISC Digging into Data
JISC Digging into DataJISC Digging into Data
JISC Digging into Data
 
Xml to xml transformation in mule
Xml to xml transformation in muleXml to xml transformation in mule
Xml to xml transformation in mule
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
 
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache CamelJazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
 
Application Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftApplication Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoft
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
 
Smart Enterprise Application Integration with Apache Camel
Smart Enterprise Application Integration with Apache Camel Smart Enterprise Application Integration with Apache Camel
Smart Enterprise Application Integration with Apache Camel
 
Apache Camel Lifecycle
Apache Camel LifecycleApache Camel Lifecycle
Apache Camel Lifecycle
 
Mule exception strategies - Catch exception strategy
Mule exception strategies - Catch exception strategyMule exception strategies - Catch exception strategy
Mule exception strategies - Catch exception strategy
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache Camel
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
SaaS Metrics That Matter | MuleSoft
SaaS Metrics That Matter | MuleSoftSaaS Metrics That Matter | MuleSoft
SaaS Metrics That Matter | MuleSoft
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
Apache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the boxApache Camel Introduction & What's in the box
Apache Camel Introduction & What's in the box
 
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
Next Generation – Systems Integration in the Cloud Era with Apache Camel - Ja...
 

Similar to Apache Camel Integration Framework Guide for Enterprise Application Integration

Apache camel community day - october 2010
Apache camel   community day - october 2010Apache camel   community day - october 2010
Apache camel community day - october 2010Claus Ibsen
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollodejanb
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemixCharles Moulliard
 
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardFusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardCharles Moulliard
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevOracle Developers
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011Marcelo Jabali
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationClaus Ibsen
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevOracle Developers
 
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...vasuballa
 
Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_aioughydchapter
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesPavel Bucek
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Marco Antonio Maciel
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle CloudJuan Carlos Ruiz Rico
 
Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camelgnanagurus
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 
2 Guide MySQL Cloud Service Provisioning.
2 Guide MySQL Cloud Service Provisioning.2 Guide MySQL Cloud Service Provisioning.
2 Guide MySQL Cloud Service Provisioning.Virve Kettunen
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereJ On The Beach
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěJaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěDevelcz
 
Java @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle CloudJava @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle CloudPaulo Alberto Simoes ∴
 

Similar to Apache Camel Integration Framework Guide for Enterprise Application Integration (20)

Apache camel community day - october 2010
Apache camel   community day - october 2010Apache camel   community day - october 2010
Apache camel community day - october 2010
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix
 
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardFusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliard
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
 
Apache camel overview dec 2011
Apache camel overview dec 2011Apache camel overview dec 2011
Apache camel overview dec 2011
 
Apache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentationApache Camel - FUSE community day London 2010 presentation
Apache Camel - FUSE community day London 2010 presentation
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajev
 
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
OOW16 - Leverage Oracle Integration Cloud Service for Oracle E-Business Suite...
 
Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle Cloud
 
Are you new to Apache Camel
Are you new to Apache CamelAre you new to Apache Camel
Are you new to Apache Camel
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
2 Guide MySQL Cloud Service Provisioning.
2 Guide MySQL Cloud Service Provisioning.2 Guide MySQL Cloud Service Provisioning.
2 Guide MySQL Cloud Service Provisioning.
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
 
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světěJaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
Jaroslav Tulach: GraalVM - z vývoje nejrychlejšího virtuálního stroje na světě
 
Java @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle CloudJava @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle Cloud
 

More from Dmitry Buzdin

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?Dmitry Buzdin
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?Dmitry Buzdin
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?Dmitry Buzdin
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDmitry Buzdin
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureDmitry Buzdin
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIsDmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахDmitry Buzdin
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fmDmitry Buzdin
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIDmitry Buzdin
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsDmitry Buzdin
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with ClojureDmitry Buzdin
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional ProgrammingDmitry Buzdin
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contestDmitry Buzdin
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery Dmitry Buzdin
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsDmitry Buzdin
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump AnalysisDmitry Buzdin
 

More from Dmitry Buzdin (20)

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
 

Recently uploaded

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 

Recently uploaded (20)

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 

Apache Camel Integration Framework Guide for Enterprise Application Integration

  • 1. Enterprise  Integra6on  PaDerns  and  DSL with  Apache  Camel by  Claus  Ibsen Principal  So3ware  Engineer,  FuseSource A  Progress  So3ware  Company 1 Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 2. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Whats  included  in  the  box?  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 2 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 3. Who  is  Claus  Ibsen?  Principal  So3ware  Engineer  at  FuseSource •  Full  6me  Apache  Camel  hacker  Apache  Camel  commiDer • Camel  Top  Contributor •  4  years  working  with  Camel  Author  of  Camel  in  Ac6on  book  Contact •  TwiDer:  @davsclaus •  Blog:  hDp://davsclaus.blogspot.com •  Email:  cibsen@fusesource.com hDp://www.manning.com/ibsen 3 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 4. My  Employer  FuseSource  -­‐  hDp://fusesource.com     4 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 5. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Whats  included  in  the  box?  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 5 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 6. What  is  Apache  Camel  Quote  from  the  web  site   •  hDp://camel.apache.org Apache  Camel  is  a powerful  Open  Source Integra6on  Framework based  on  known Enterprise  Integra6on  PaDerns 6 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 7. What  is  Apache  Camel  Why  do  we  need  integra6on? •  Your  apps  are  build  using  different  tech  stacks •  Cri6cal  for  your  business  to  integrate  Why  Integra6on  Framework? •  Framework  do  the  heavy  li3ing •  Focus  on  business  problem   •  Not  "reinven6ng  the  wheel" 7 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 8. What  is  Apache  Camel  What  is  Enterprise  Integra6on  PaDerns? System  A System  B 8 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 9. What  is  Apache  Camel  What  is  Enterprise  Integra6on  PaDerns? Its  a  book 9 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 10. What  is  Apache  Camel  Camel  and  EIP Apache WebSphereMQ Ac6veMQ 10 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 11. What  is  Apache  Camel  Camel  and  EIP 11 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 12. What  is  Apache  Camel  Camel  and  EIP from filter send  to A message B 12 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 13. What  is  Apache  Camel  Camel  and  EIP from(A) filter(predicate) to(B) 13 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 14. What  is  Apache  Camel  Camel  and  EIP from(A) .filter(isWidget) .to(B) 14 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 15. What  is  Apache  Camel  Camel  and  EIP from(A).filter(isWidget).to(B); 15 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 16. What  is  Apache  Camel  Camel  and  EIP isWidget  =  xpath("/quote/product  =  ‘widget’"); from(A).filter(isWidget).to(B); 16 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 17. What  is  Apache  Camel  Camel  and  EIP Endpoint  A  =  endpoint("ac6vemq:queue:quote"); Endpoint  B  =  endpoint("mq:quote"); Predicate  isWidget  =  xpath("/quote/product  =  ‘widget’"); from(A).filter(isWidget).to(B); 17 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 18. What  is  Apache  Camel  Filter  Route public void configure() throws Exception { Endpoint A = endpoint("activemq:queue:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } 18 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 19. What  is  Apache  Camel  Filter  Route  -­‐  Java  DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { Endpoint A = endpoint("activemq:queue:quote"); Endpoint B = endpoint("mq:quote"); Predicate isWidget = xpath("/quote/product = ‘widget’"); from(A).filter(isWidget).to(B); } } 19 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 20. What  is  Apache  Camel  Filter  Route  -­‐  Java  DSL import org.apache.camel.builder.RouteBuilder; public class FilterRoute extends RouteBuilder { public void configure() throws Exception { from("activemq:queue:quote") .filter().xpath("/quote/product =‘widget’") .to("mq:quote"); } } 20 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 21. What  is  Apache  Camel  Lets  look  at  the  most  famous  paDern 21 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 22. What  is  Apache  Camel  Content  Based  Router 22 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 23. What  is  Apache  Camel  Content  Based  Router  -­‐  XML  DSL <camelContext> <route> <from uri="activemq:NewOrders"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:Orders.Widgets"/> </when> <otherwise> <to uri="activemq:Orders.Gadgets"/> </otherwise> </choice> </route> </camelContext> 23 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 24. What  is  Apache  Camel  Content  Based  Router  -­‐  Java  DSL from("activemq:NewOrders") .choice() .when().xpath("/order/product = 'widget'") .to("activemq:Orders.Widget") .otherwise() .to("activemq:Orders.Gadget"); 24 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 25. What  is  Apache  Camel  Endpoints  as  URIs use file instead from("file:inbox/orders") .choice() .when().xpath("/order/product = 'widget'") .to("activemq:Orders.Widget") .otherwise() .to("activemq:Orders.Gadget"); 25 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 26. What  is  Apache  Camel  Endpoints  as  URIs parameters from("file:inbox/orders?delete=true") .choice() .when().xpath("/order/product = 'widget'") .to("activemq:Orders.Widget") .otherwise() .to("activemq:Orders.Gadget"); 26 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 27. What  is  Apache  Camel  Summary •  Integra6on  framework •  Enterprise  Integra6on  PaDerns  (EIP)   •  Rou6ng  (using  DSL) •  Easy  configura6on  (endpoints  as  URIs) •  No  heavy  specifica6on •  No  container  dependency •  Payload  agnos6c •  A  lot  of  components 27 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 28. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra6on  PaDerns  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 28 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 29. Camel  Architecture  Message  PaDern 29 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 30. Camel  Architecture  Message 30 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 31. Camel  Architecture  Camel  Exchange 31 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 32. Camel  Architecture  Camel  Architecture 32 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 33. Camel  Architecture  Camel  DSL  -­‐  Highest  Level   from("file:inbox/orders?delete=true") .choice() .when().xpath("/order/product = 'widget'") .to("activemq:Orders.Widget") .otherwise() .to("activemq:Orders.Gadget"); 33 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 34. Camel  Architecture  Camel  DSL    -­‐  Lowest  Level • Rou6ng  Engine Iterator<Processor> it = ... while (it.hasNext()) { Processor processor = it.next(); processor.process(exchange); } • Processor  API process(Exchange exchange) throws Exception; 34 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 35. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra9on  Pa;erns  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 35 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 36. Enterprise  Integra6on  PaDerns  50  Enterprise  Integra6on  PaDerns http://camel.apache.org/eip 36 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 37. Enterprise  Integra6on  PaDerns  Pipes  and  Filters  EIP from("file:inbox") .pipeline() .to("bean:decrypt") .to("bean:authenticate") .to("bean:deDup"); 37 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 38. Enterprise  Integra6on  PaDerns  Pipes  and  Filters  EIP from("file:inbox") .to("bean:decrypt") .to("bean:authenticate") .to("bean:deDup"); pipeline()  is  default  mode  in  Camel  and  can  usually  be  omi5ed 38 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 39. Enterprise  Integra6on  PaDerns  SpliDer  EIP File Splitter Custom ActiveMQ -> XML from("file:inbox") .split(body().tokenize("n") .marshal(customToXml) .to("activemq:line"); 39 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 40. Enterprise  Integra6on  PaDerns  Recipient  List  EIP stock.APPL stock.ORCL stock.XXXX REST Service ActiveMQ 40 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 41. Enterprise  Integra6on  PaDerns  Recipient  List  EIP stock.APPL stock.ORCL stock.XXXX REST Service ActiveMQ  curl  -­‐X    POST  -­‐d  "120"  "hDp://localhost:9080/stock/ORCL" 41 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 42. Enterprise  Integra6on  PaDerns  Bean  as  Message  Translator 42 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 43. Enterprise  Integra6on  PaDerns  Bean  as  Message  Translator from("activemq:Incoming”). beanRef("myBeanName", "someMethod"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name) { return “Hello “ + name; } } 43 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 44. Enterprise  Integra6on  PaDerns  Bean  Parameter  Binding  w/  Annota6ons from("activemq:Incoming"). beanRef("myBeanName", "someMethod"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name, @Header(”JMSCorrelationID”) String cid) { ... } } Annota6ons 44 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 45. Enterprise  Integra6on  PaDerns  Bean  Parameter  Binding  w/  Method  Name  (new  in  Camel  2.9) from("activemq:Incoming"). beanRef("myBeanName", "someMethod(${body}, ${header.JMSCorrelationID})"). to("activemq:Outgoing"); public class Foo { public String someMethod(String name, String cid) { ... } } 45 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 46. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra6on  PaDerns  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 46 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 47. Running  Camel  Deployment  Strategy •  No  container  dependency Known  Containers •  Lightweight Fuse  ESB Apache  ServiceMix •  Embedable   Apache  Ac6veMQ  Deployment  Op6ons Apache  Tomcat JeDy • Standalone JBoss • Spring IBM  WebSphere Oracle  WebLogic • WAR Glassfish • JEE Google  App  Engine Amazon  EC2 • OSGi ...  others • Cloud 47 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 48. Running  Camel  Java  Applica6on CamelContext context = new DefaultCamelContext(); context.addRoutes(new MyRouteBuilder()); context.start(); 48 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 49. Running  Camel  Spring  Applica6on <beans xmlns="http://www.springframework.org/schema/beans"> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="file:/orders"/> ... </route> </camelContext> </beans> 49 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 50. Running  Camel  Java  Client  Applica6on CamelContext context = new DefaultCamelContext(); context.start(); ProducerTemplate template = context.newProducerTemplate(); Object data = ... String filename = "mydata.csv"; String uri = "ftp:myftpserver?username=me&password=secret"; template.sendBodyAndHeader(uri, data, "CamelFileName", filename); 50 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 51. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra6on  PaDerns    Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 51 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 52. Live  Demo  1  Groovy  Script HTTP Service Transform groovy  mycamel.groovy curl  hDp://localhost:8080 52 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 53. Live  Demo  1  Groovy  Script  (mycamel.groovy) 53 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 54. Live  Demo  1  Groovy  Script  (mycamel.groovy  -­‐  cont.) 54 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 55. Live  Demo  2  Create  new  Project  using  Maven UK messages File Content Based Router Other messages mvn  archetype:generate (camel-­‐archetype-­‐spring) mvn  eclipse:eclipse mvn  camel:run 55 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 56. Live  Demo  2  Create  new  Project  using  Maven 56 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 57. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra6on  PaDerns  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 57 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 58. Apache  ServiceMix  Architecture 58 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 59. Apache  ServiceMix  Modular 59 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 60. Apache  ServiceMix  ServiceMix  and  Camel  Demo  SSH  access  to  shell  ssh  smx@localhost  -­‐p  8101 60 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 61. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra6on  PaDerns  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 61 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 62. Apache  Camel  Roadmap  Apache  Camel  2.9.0  -­‐  Highlights • Reduced  Spring  JAR  dependency • Reworked  Simple  Expression  Language • Splisng  big  XML  files  in  streaming  mode • Improved  Bean  Parameter  Binding • Improved  JMX • Improved  JMS  request/reply • Addi6onal  Camel  shell  commands • JClouds  Component hDp://camel.apache.org/camel-­‐290-­‐release.html hDp://davsclaus.blogspot.com 62 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 63. Apache  Camel  Roadmap  Apache  Camel  2.10  -­‐  Roadmap • Blueprint  not  6ed  to  Apache  Aries • Transac6on  API  not  6ed  to  Spring  TX  API • Make  it  easier  to  use  Bindy • Persistent  Dead  LeDer  Channel • CDI  support • camel-­‐mina2  component 63 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 64. Apache  Camel  Roadmap  Apache  Camel  3.0  -­‐  Roadmap • Split  camel-­‐core  into  mul6ple  JARs • Support  async  transac6ons • Internal  rou6ng  engine  cleanup • Dynamic  add/remove  interceptors  to  running  routes • Unify  JMX/REST  API  for  management hDp://camel.apache.org/camel-­‐30-­‐roadmap.html 64 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 65. Agenda  Who  is  Claus  Ibsen?  What  is  Apache  Camel?  Camel  Architecture  Enterprise  Integra6on  PaDerns  Running  Camel  Live  Demos  Apache  ServiceMix  Apache  Camel  Roadmap  Q  and  A 65 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company
  • 66. Q  and  A  Contact ? •  TwiDer:  @davsclaus •  Blog:  hDp://davsclaus.blogspot.com •  Email:  cibsen@fusesource.com 66 Copyright  ©  2011  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.   A  Progress  So3ware  Company