SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
Integra6on	
  with	
  	
  
    Apache	
  ServiceMix	
  and	
  Camel	
  

    BeJUG,	
  
    Louvain-­‐La-­‐Neuve,	
  9th	
  June	
  2011	
  



    Charles	
  Moulliard	
  
    Sr.	
  Principal	
  Solu6on	
  Architect	
  
    Apache	
  CommiOer	
  
                                                                                                                                                                  A	
  Progress	
  So3ware	
  Company	
  
1	
       Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                  A	
  Progress	
  So3ware	
  Company	
  
Speaker	
  background	
  


      Charles	
  Moulliard	
  
        •  Engineer	
  in	
  Agronomy	
  &	
  Master	
  in	
  Zoology	
  
        •  17	
  years	
  of	
  experience	
  in	
  IT	
  world	
  development	
  (J2EE,	
  .NET)	
  
        •  Specialised	
  in	
  new	
  technologies	
  web/Internet	
  &	
  integra6on	
  
        •  Project	
  manager	
  in	
  bank,	
  financial,	
  telco,	
  insurance	
  and	
  transport	
  
           world	
  
        •  Solu6on	
  Architect	
  at	
  FuseSource	
  	
  	
  
        •  CommiOer	
  on	
  projects	
  :	
  
            – Apache	
  ServiceMix,	
  	
  
            – Apache	
  Karaf	
  (PMC)	
  &	
  	
  
            – Apache	
  Camel	
  
        •  Author	
  of	
  book	
  :	
  "ServiceMix	
  and	
  Karaf	
  in	
  Ac6on	
  –	
  Mannings"	
  



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


        «	
  Introduce	
  some	
  projects	
  of	
  the	
  Apache	
  founda6on	
  Integra6on	
  
                             oriented	
  like	
  Camel,	
  ServiceMix	
  	
  
                                                                                                                  and	
  	
  
                                                                Present	
  target	
  Architectures	
  »	
  	
  




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


          Integra6on	
  with	
  Camel	
  and	
  ServiceMix	
  
            •            Demys6fy	
  ESB	
  
            •            ServiceMix	
  -­‐	
  mul6-­‐containers	
  plaform	
  
            •            Presenta6on	
  of	
  projects	
  -­‐	
  Camel,	
  CXF,	
  Karaf	
  et	
  Ac6veMq	
  
            •            Descrip6on	
  of	
  architectures	
  
                       –             Messaging	
  
                       –             Osgi	
  
                       –             Messaging	
  +	
  osgi	
  
                       –             web	
  
            •            High	
  availability,	
  scalibility	
  and	
  clustering	
  
                       –             Ac6veMQ,	
  ServiceMix	
  
                       –             Ac6veMQ	
  and	
  ServiceMix	
  
            •            Cloud	
  and	
  provisioning	
  



4	
        Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
«	
  Demis6fy	
  the	
  ESB	
  and	
  present	
  Apache	
  ServiceMix	
  plaform	
  »	
  




5	
        Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
ESB	
  -­‐	
  ServiceMix	
  


        	
  	
  Demys6fy	
  the	
  concept	
  -­‐	
  
                Enterprise	
  Service	
  Bus	
  
          	
  This	
  is	
  not	
  
                →
          	
  Nor	
  a	
  
                →

        	
  	
  	
  But	
  an	
  exchanging	
  plaform	
  
        	
  	
  	
  of	
  messages,	
  objects	
  
        	
  	
  	
  moving	
  within	
  a	
  transport	
  
                  layer	
  




6	
          Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
ESB	
  -­‐	
  ServiceMix	
  (1)	
  


  llow	
  to	
  separate	
  the	
  
 A
 business	
  layer	
  from	
  those	
  
 which	
  will	
  transport	
  the	
  
 informa6on	
  and	
  transform	
  it	
  

  rovide	
  connectors	
  
 P
 (=endpoints)	
  to	
  collect	
  
 informa6on	
  and	
  send	
  it	
  on	
  
 the	
  bus	
  as	
  messages	
  

  essages	
  are	
  transformed	
  
 M
 using	
  marshallers	
  


7	
         Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
ServiceMix	
  -­‐	
  Container	
  ship	
  


          erviceMix	
  –	
  Project	
  of	
  the	
  Apache	
  Founda6on	
  
         S
          tarted	
  in	
  2005	
  to	
  implement	
  the	
  Java	
  Business	
  Integra6on	
  
         S
         specifica6on	
  
          ecoupling	
  of	
  the	
  components	
  (business,	
  technical)	
  by	
  using	
  
         D
         XML	
  messages	
  
          efine	
  a	
  model	
  to	
  package/deploy	
  applica6ons	
  (SU/SA)	
  	
  
         D
          ayer	
  transport	
  is	
  called	
  	
  Normalised	
  Messaging	
  Router	
  	
  	
  
         L




8	
         Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
ServiceMix	
  -­‐	
  Container	
  ship	
  (2)	
  

                                       Message is
                                       ACK or ERR




Routing is
defined into                                                                              Normalized
the SU                                                                                    = XML
                                                                                          exchanges


9	
         Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
ServiceMix	
  -­‐	
  Container	
  ship	
  (3)	
  


      JBI	
  approach	
  is	
  interes6ng	
  but	
  restric6ve	
  
      	
  
          • XML	
  format	
  
          • Encapsula6on	
  of	
  the	
  rou6ng	
  
          • Components	
  dvlpt	
  (25	
  vs	
  more	
  than	
  100	
  for	
  camel)	
  
          • Few	
  support	
  from	
  IT	
  actors	
  (IBM,	
  Oracle,	
  …)	
  to	
  improve	
  exis6ng	
  spec	
  1.0	
  
            	
  2.0	
  
          • We	
  can	
  make	
  the	
  parellism	
  with	
  EJB	
  story	
  ….	
  


       ecision	
  has	
  been	
  taken	
  3	
  years	
  ago	
  by	
  members	
  of	
  project	
  to	
  
      D
          • Become	
  independent	
  of	
  JBI	
  spec	
  (we	
  support	
  it	
  but	
  op6onal)	
  
          • Adopt	
  Camel	
  as	
  the	
  new	
  rou6ng	
  bus	
  
          • Propose	
  a	
  new	
  kernel	
  (=	
  meaning	
  a	
  new	
  Architecture	
  design)	
  
          • Extend	
  the	
  idea	
  of	
  the	
  project,	
  plaform	
  to	
  become	
  a	
  mul6-­‐container	
  or	
  
            container	
  ship	
  

10	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
SMX	
  -­‐	
  Container	
  ship	
  (4)	
  


       erviceMix	
  4	
  
      S
       ased	
  on	
  an	
  OSGI	
  kernel	
  
      B
          • Apache	
  Felix	
  
          • Eclipse	
  Equinox	
  
       hy	
  →	
  offers	
  modularity,	
  jars	
  
      W
      management	
  and	
  versioning	
  
       erviceMix	
  becomes	
  an	
  
      S
      Integra6on	
  Plaform	
  for	
  
      opensource	
  projects	
  
          • Camel	
  
          • CXF	
  
          • Ac6veMQ,	
  
          • Aries	
  (JPA,	
  Transac6on,	
  JNDI)	
  
          • 	
  ….	
  	
  	
  
11	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Karaf	
  –	
  Heart	
  of	
  ServiceMix	
  


       irthdate	
  -­‐	
  16th	
  of	
  June	
  2010	
  
      B
       un6me	
  using	
  an	
  OSGI	
  server	
  :	
  
      R
          • Apache	
  Felix	
  
          • Eclipse	
  Equinox	
  
       rovide	
  a	
  lightweight	
  container	
  where	
  
      P
          Applica6ons	
  
          Composants	
  
          Routes	
  
          	
  ...	
  
     	
  	
  can	
  be	
  deployed	
  




12	
      Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Karaf	
  –	
  Heart	
  of	
  ServiceMix	
  (1)	
  	
  



                                                                                                    <<jvm>>
                                                                                                  :ServiceMix4




         Container                        Container                         Container                                        Container                           Container   Container




                                                                    Lightweight container (Apache Karaf)



                                                         OSGI Kernel (Apache Felix / Eclipse Equinox)


                                                               Java Boot (Register as service - Wrapper)




13	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                       A	
  Progress	
  So3ware	
  Company	
  
Karaf	
  –	
  heart	
  of	
  ServiceMix	
  (2)	
  	
  


       aracteris6cs	
  :	
  
      C

          Administra6on	
  console	
  (locale,	
  remote,	
  ssh,	
  web,	
  jmx)	
  
          	
  
          Provisioning	
  system	
  (features)	
  
          	
  
          Hot	
  deployment	
  and	
  configura6on	
  management	
  
          	
  
          Instances	
  management	
  
          	
  
          Security	
  integra6on	
  (JAAS	
  →	
  ldap,	
  jdbc,	
  file)	
  
          	
  
          Logging	
  management	
  (log4j,	
  logger,	
  commons	
  logging,	
  ….)	
  
          	
  

         …	
  let’s	
  have	
  a	
  look	
  with	
  a	
  demo	
  …	
  	
  	
  	
  



14	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Which	
  container	
  (s)	
  


      The	
  plaform	
  is	
  «	
  modular	
  »	
  because	
  we	
  can	
  select	
  the	
  
      	
  
      librairies,	
  containers	
  that	
  we	
  would	
  like	
  to	
  use	
  
                                                                                                                                                                  Jetty, Pax Web
                                                Camel, JBI



                                                            Integration                                                                                Web
                  CXF                                                                                                                                                  Spring, Blueprint


                                                      Web Services                                                                                       IoC
         ActiveMQ

                                                           Middelware                                                                                  Java




15	
      Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
               A	
  Progress	
  So3ware	
  Company	
  
«	
  Camel	
  the	
  Integra6on	
  Framework	
  of	
  the	
  Enterprise	
  PaOerns	
  -­‐	
  
                          EIP	
  rou6ng	
  messages	
  through	
  the	
  bus	
  »	
  




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


  Birthdate	
  -­‐	
  March	
  2007	
  
  OpenSource	
  Integra6on	
  Framework	
  implemen6ng	
  	
  
	
  	
  	
  	
  	
  	
  	
  EIP	
  paOerns	
  (book	
  published	
  in	
  2005	
  by	
  Gregor	
  Hohpe)	
  
  Why	
  EIP	
  	
  To	
  provide	
  word	
  defini6on,	
  grammar	
  and	
  language	
  
                           when	
  designing	
  integra6on	
  projects	
  
  Camel	
  uses	
  a	
  Domain	
  Specific	
  Language	
  transposing	
  the	
  EIP	
  
                           paOerns	
  into	
  Java,	
  XML	
  
  It	
  supports:	
  
         •  In	
  memory	
  bus	
  	
  	
  Alterna6ve	
  to	
  JBI	
  using	
  NMR	
  
         •  Route	
  objects	
  	
  can	
  be	
  XML,	
  File,	
  Stream,	
  Bytes,…	
  	
  
         •  Transac6onal	
  architecture,	
  
         •  Sync/Async	
  exchanges,	
  
         •  Threads	
  Management,	
  	
  
17	
  
         • Copyright	
  ©	
  2010	
  Progress	
  Sexcep6on	
  nd/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  
                Error	
  and	
   o3ware	
  Corpora6on	
  a handling	
                                                                                 A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (1)	
  


       More	
  than	
  50	
  paOerns	
  are	
  implemented	
  




  hOp://camel.apache.org/enterprise-­‐integra6on-­‐paOerns.html	
  

18	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (2)	
  


  More	
  than	
  100	
  components	
  




         hOp://camel.apache.org/components.html	
  

19	
       Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (3)	
  


  18	
  data	
  formaters	
  to	
  simplify	
  
   data	
  exchange	
  between	
  layers,	
  
   applica6ons	
  connected	
  
  Example	
  :	
  JAXB,	
  Bindy,	
  SOAP	
  
  Uses	
  marshaler	
  (xml	
  	
  object)	
  
   and	
  unmarsharler	
  (object	
  	
  
   xml)	
  
  Will	
  be	
  typically	
  use	
  in	
  IN,	
  OUT	
  
   flows	
  	
  


         hOp://camel.apache.org/data-­‐format.html	
  

20	
       Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (4)	
  

         The	
  model	
  –>	
  Content	
  Based	
  Router	
  




              and	
  its	
  DSL	
  language	
  




21	
        Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (5)	
  




22	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (6)	
  




23	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (7)	
  




24	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (8)	
  


                               URI	
  =	
  «	
  	
  component	
  name	
  »	
  and	
  proper6es	
  




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


  Java	
  DSL	
  




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


  Route	
  Camel	
  +	
  Java	
  DSL	
  




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


  	
  Endpoints	
  and	
  predicate	
  can	
  be	
  provided	
  into	
  the	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
   camel	
  route	
  directly	
  




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


  Integra6on	
  with	
  IntelliJ,	
  Eclipse,	
  NetBeans	
  




29	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (9)	
  


  Instead	
  of	
  Java,	
  use	
  Spring	
  /	
  XML	
  DSL	
  




30	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Camel	
  (10)	
  


  IDE	
  assistance	
  




31	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
«	
  CXF	
  –	
  The	
  tool	
  to	
  generate	
  Web	
  Services	
  »	
  




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


       Merge	
  of	
  2	
  projects(Cel6c	
  and	
  Xfire)	
  
       Simplify	
  the	
  crea6on	
  and	
  deployment	
  of	
  webservices	
  	
  	
  
     	
  	
  	
  	
  	
  	
  2	
  approaches	
  :	
  java	
  to	
  wsdl	
  or	
  wsdl	
  to	
  java.	
  
       Support	
  the	
  following	
  standards	
  :	
  
          •              JAX-­‐WS	
  :	
  Web	
  Services	
  (XML/SOAP)	
  
          •              JAX-­‐RS	
  :	
  RESTfull	
  service	
  (JSON)	
  
          •              SOAP	
  1.1,	
  1.2,	
  WSDL	
  1.1	
  	
  
          •              WS-­‐Security	
  :	
  securise	
  the	
  connexion	
  client/server	
  or	
  vice	
  versa	
  
          •              WS-­‐Addressing	
  :	
  standardize	
  the	
  data	
  exchange	
  in	
  the	
  SOAP	
  Header	
  
                         for	
  the	
  rou6ng	
  
          •              WS-­‐RM	
  :	
   message	
  delivery	
  guaranty	
  	
  




33	
      Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
CXF	
  (1)	
  
                                                                                                    To	
  use	
  it,	
  simply	
  add	
  cxf	
  maven	
  plugin	
  into	
  the	
  
                                                                                                                            pom	
  of	
  the	
  project	
  
          <plugin>
                                <groupId>org.apache.cxf</groupId>
                                <artifactId>cxf-codegen-plugin</artifactId>
                                <version>${cxf-version}</version>
                                <executions>
                                    <execution>
                                        <id>generate-sources</id>
                                        <phase>generate-sources</phase>
                                        <configuration>
                                             <sourceRoot>
                                                   ${basedir}/target/generated/src/main/java
                                             </sourceRoot>
                                             <wsdlOptions>
                                              <wsdlOption>
                                                 <wsdl>
                                                    ${basedir}/src/main/resources/report.wsdl
                                                 </wsdl>
                                               </wsdlOption>
                                             </wsdlOptions>
                                        </configuration>
                                        <goals>
                                             <goal>wsdl2java</goal>
                                        </goals>
                                    </execution>
                                </executions>
                            </plugin>
34	
      Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
        A	
  Progress	
  So3ware	
  Company	
  
CXF	
  (2)	
  


                    	
  …	
  and	
  configure	
  a	
  spring	
  file	
  
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cxf="http://camel.apache.org/schema/cxf"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/
schema/beans/spring-beans.xsd
       http://camel.apache.org/schema/cxf
http://camel.apache.org/schema/cxf/camel-cxf.xsd">

       <import resource="classpath:META-INF/cxf/cxf.xml"/>
       <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
       <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"/>

       ….

   <cxf:cxfEndpoint
        id="reportIncident"
        address="http://localhost:9080/incident"
        wsdlURL="etc/report_incident.wsdl"
        serviceClass="org.apache.camel.example.ReportIncidentEndpoint">
    </cxf:cxfEndpoint>

   …
</beans>

  35	
      Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
«	
  Ac6veMQ	
  –	
  broker	
  and	
  messaging	
  factory	
  »	
  




36	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Ac6veMQ	
  -­‐	
  MoM	
  layer	
  


     A	
  high	
  performance,	
  reliable	
  messaging	
  fabric,	
  suppor6ng	
  JMS,	
  C,	
  .Net,	
  and	
  
      other	
  frameworks	
  
     Offers	
  persistance	
  for	
  messages	
  and	
  bridge	
  between	
  ServiceMix	
  instances	
  
Clients connect to the                                                                                                                                               Network
broker using                                                                                                                                                         connectors control
connectors with                                                                                                                                                      how the broker
simple URIs                                                                                                                                                          interacts with other
                                                                                                                                                                     brokers for
                                                                                                                                                                     discovery,
                                                                                                                                                                     replication,
  Topics and queues
  created                                                                                                                                                            failover, clustering
                                                                                                                                                                     and store &
  dynamically.
                                                                                                                                                                     forward.




                                                                                                                                                                 … all based on a
                                                                                                                                                                 flexible Spring-
                                                                                           File & JDBC-based                                                     based core.
                                                                                           message stores
                                                                                           supported.
37	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
           A	
  Progress	
  So3ware	
  Company	
  
FUSE	
  Message	
  Broker	
  (Apache	
  Ac6veMQ)	
  


     Point	
  to	
  Point	
  
         •        Sender/producer	
  sends	
  messages	
  to	
  a	
  queue.	
  
         •        Receiver/consumer	
  listens	
  for	
  messages	
  from	
  the	
  queue	
  
         •        Messages	
  are	
  stored	
  un6l	
  read	
  (or	
  expired)	
  
         •        Messages	
  can	
  be	
  persisted	
  on	
  disk	
  
         •        Messages	
  are	
  read	
  only	
  once.	
  

                                                                                                <<jvm>>
                                                                                            frodo:ActiveMQ


          p:Producer                                                                              Foo:File                                                           c1:Consumer
                                                         m                                                                                                       m


                                   1: Producer sends a                                                                                        2: Consumer reads
                                   message to the broker                                                                                      the message



38	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                A	
  Progress	
  So3ware	
  Company	
  
FUSE	
  Message	
  Broker	
  (Apache	
  Ac6veMQ)	
  

     Publish	
  to	
  subscribe	
  
         •  A	
  JMS	
  client	
  sends	
  message	
  to	
  the	
  topic.	
  
         •  The	
  JMS	
  broker	
  sends	
  message	
  to	
  all	
  subscribers	
  that	
  are	
  currently	
  
            alive.	
  
                       –  Alterna6vely,	
  durable	
  subscrip-ons	
  can	
  be	
  used	
  so	
  that	
  all	
  
                          subscribers	
  will	
  receive	
  message	
  even	
  if	
  not	
  alive	
  at	
  6me	
  of	
  sending	
  
         •  Messages	
  are	
  read	
  several	
  6mes	
  (rela6on	
  1	
  to	
  many)	
  



                                                                                                   <<jvm>>                                                       m
                                                                                               frodo:ActiveMQ                                                        s1:Subscriber


             p:Producer                                                                           Foo:Topic
                                                           m


                                                                                                                                                                 m    s2:Subscriber


39	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                 A	
  Progress	
  So3ware	
  Company	
  
How	
  the	
  Apache	
  products	
  relate	
  to	
  each	
  other…	
  



                                                                                                                                                                     <<supports transport>>
         <<supports transport>>
                                                                                               ActiveMQ                                                              <<implements flow with>>




                                                                                                                                                                         ServiceMix
                   CXF
                                                                <<deploy into>>

                                                                                                                         <<supports activemq endpoints>>
                                                                                                                         <<deploy into>>



     <<supports cxf endpoints>>
                                                                                                      Camel                                                      <<supports jbi endpoints>>
                                                                                                                                                                 <<deploy into>>



40	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                      A	
  Progress	
  So3ware	
  Company	
  
«	
  What	
  are	
  the	
  Architectures	
  that	
  we	
  can	
  design	
  with	
  
                               ServiceMix,	
  Camel,	
  Ac>veMq	
  »	
  




41	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Architecture	
  -­‐	
  Messaging	
  


  The	
  bus	
  operates	
  the	
  exchanges	
  between	
  the	
  endpoints	
  
   using	
  Camel,	
  NMR,	
  JBI	
  

                                                                                                          <<jvm>>	
  
                                     FTP	
                                                              ServiceMix4	
                                            Web	
  Service	
  




                                                                                                              BUS	
  




                                                                                                                                           Bean<<MyBean>>	
  

               from(FTP)	
                                                                           from(«	
  cxf:bean:myWS	
  »)	
  
               .beanRef(«	
  myBean	
  »);	
                                                         .beanRef(«	
  myBean	
  »)	
  ;	
  

42	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                          A	
  Progress	
  So3ware	
  Company	
  
Architecture	
  -­‐	
  Java	
  


    The	
  OSGI	
  plaform	
  proposes	
  a	
  Service	
  Registry	
  (comparable	
  
     to	
  JNDI)	
  where	
  "interfaces"	
  are	
  registered	
  
    	
  Clients	
  access	
  to	
  the	
  service	
  using	
  lookup	
  mechanism	
  
                                                                                                     <<jvm>>	
  
                                                                      A                            ServiceMix4	
  

                                «	
  Interface	
  »	
                                                   Service	
  
                                       DAO	
                                                             PoJo	
                                           Hibernate/JPA	
  
                                                                                        C
                                              B
                                                                 OSGI	
  registry	
  

<bean	
  id="incidentServiceTarget"	
  class="org.apache.camel.service.impl.IncidentServiceImpl">	
  
	
          <property	
  name="incidentDAO">	
  
	
          	
          <osgi:reference	
  interface="org.apache.camel.dao.IncidentDAO"/>	
  
	
          	
  </property>	
  
</bean>	
  

  43	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                A	
  Progress	
  So3ware	
  Company	
  
Architecture	
  –	
  Messaging	
  +	
  Java	
  


  Decoupling	
  of	
  the	
  "services"	
  from	
  integra6on	
  layer	
  

                                                                                                             <<jvm>>	
  
                                                                                                           ServiceMix4	
  


                                                                                                                                                                 C
          	
  «	
  Interface	
  »	
                                                 Service	
  
                       DAO	
                                                         PoJo	
                                                Hibernate/JPA	
  


                                             OSGI	
  Registry	
                                                                from(«	
  cxf:bean:myWS	
  »)	
  
                                                                                                                               .to(«	
  bean:validate	
  »)	
  
                                                                                                           B                   .beanRef(«org.bejug.jpaService»);	
  
                                                          A
                     Bean	
  	
                                     Web	
  Service	
  
                     Validate	
  
44	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
         A	
  Progress	
  So3ware	
  Company	
  
Architecture	
  –	
  	
  Java	
  +	
  Web	
  

   ServiceMix	
  is	
  a	
  web	
  plaform,	
  it	
  uses	
  	
  JeOy	
  Web	
  Applica6on	
  
    Server,	
  Pax	
  Web	
  –	
  a	
  tooling	
  for	
  war	
  and	
  OSGI	
  HTTP	
  Service	
  to	
  
    register	
  Servlet,	
  …	
  

                                                                                              <<jvm>>	
  
                                                                     A
                                                                                            ServiceMix4	
  

                               «	
  Interface	
  »	
                                                   Service	
                                         Hibernate/JPA	
  
                                      DAO	
                                                             PoJo	
  

                                                                                       C                                                               Web	
  
                                             B
                                                                                                                                                    Applica-on	
  
                                                                OSGI	
  registry	
                                                                                    Bundle	
  
                                                                                OSGI	
  Run-me	
  

                                                                                                                                B
                                                                               A
 45	
                                     Bean	
  	
                                      Web	
  Service	
  
          Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
                  A	
  Progress	
  So3ware	
  Company	
  


                                          Validate	
  
Only	
  one	
  ServiceMix	
  instance	
  

  Deployment	
  unit	
  	
  bundle	
  (=	
  jar	
  with	
  addi6onal	
  data	
  in	
  
   MANIFEST.mf	
  file	
  
  Several	
  camel	
  routes	
  can	
  be	
  deployed	
  in	
  different	
  bundles,	
  
   cross-­‐communica6on	
  via	
  NMR	
  bus	
  (name	
  is	
  the	
  same	
  but	
  
   different	
  from	
  JBI)	
  




                                                                                                            NMR	
  


46	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
What	
  can	
  I	
  do	
  when	
  x	
  instances	
  are	
  required	
  

   When	
  we	
  need	
  asymetric	
  deployment	
  because	
  CPU,	
  memory	
  is	
  
    not	
  sufficient	
  then	
  	
  we	
  use	
  Ac6veMQ	
  to	
  interconnect	
  the	
  
    instances	
  and	
  persist	
  messages	
  




 47	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
«	
  High	
  availability,	
  scalability	
  and	
  clustering	
  »	
  




48	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
High-­‐availability	
  -­‐	
  Ac6veMQ	
  

  2	
  mechanisms	
  :	
  pure	
  Master/Slave	
  et	
  Shared	
  message	
  store	
  	
  



              <<jvm>>                                                                                                                                          <<jvm>>
          frodo:ActiveMQ                                                                                                                                   frodo:ActiveMQ




                                                                      Master state                                                                                          The brokers
                                                                      replicated                                                                                            compete to
                                                                      with the slave                                                                                        acquire lock on the
                                                                                                                                                                            shared system (file
                                                                                                                                                                            or DB)



             <<jvm>>                                                                                                                                       <<jvm>>
         samwise:ActiveMQ                                                                                                                              samwise:ActiveMQ




49	
        Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
             A	
  Progress	
  So3ware	
  Company	
  
High	
  Availability	
  -­‐	
  ServiceMix	
  

   Only	
  one	
  mechanism	
  is	
  available	
  –	
  Lock	
  based	
  (File,	
  DB)	
  
   Bundles	
  can	
  be	
  deployed	
  in	
  ac6ve	
  or	
  passive	
  mode	
  




50	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
High-­‐Availability	
  –	
  Amq	
  and	
  Smx	
  

   Combine	
  Ac6veMQ	
  (shared	
  store)	
  anf	
  ServiceMix	
  (shared	
  lock)	
  
   Network	
  of	
  brokers	
  
                                                                                                                                                                         Camel - FTP

                                              SMX4 Actif (Master)                                                                                                        BUS
Headquarter                                                                                                                                        queue:order

                                                                                                                                                                   from(ftp)
  bean://order                                                                                                                                                     .to(amq:queue:order)
                                                           queue:order
                                                           queue:order                                    NetWork of
               BUS                                            Master
  from
                                                                                                          Broker                                                      Regional office
  (amq:queue:order)
  .bean://order


   bean://order                                                                                                                                                           Camel - WS
                                                          queue:order
                                                                                                                                                                          BUS
               BUS                                                  Slave                                                                            queue:order
    from
    (amq:queue:order)                                                                                                                                              from(ftp)
    .bean://order                                                                                                                                                  .to(amq:queue:order)


                                                         SMX4 Passive (Slave)
 51	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
           A	
  Progress	
  So3ware	
  Company	
  
Cloud,	
  Provisioning	
  

  FuseSource	
  Fabric	
  based	
  on	
  Apache	
  Zookeeper	
  
  Distributed	
  coordina6on	
  service	
  highly	
  available	
  using	
  a	
  
   repository	
  for	
  cluster	
  configs	
  and	
  the	
  node	
  (run6me)	
  	
  




                                                                                                                                                                       ACLs	
  
                                                                                      Data
                                                                                      exchange




         <<Zookeeper:toto>>	
                                                             Sync	
                           <<Zookeeper:nestor>>	
  
52	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Cloud,	
  Provisioning	
  (2)	
  




53	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Provisioning	
  –	
  local	
  and	
  remote	
  

  Solu6on	
  to	
  deploy	
  locally	
  or	
  remotelly	
  
  Idea	
  :	
  we	
  have	
  a	
  profile	
  defining	
  what	
  we	
  would	
  like	
  to	
  deploy	
  
   and	
  configure	
  and	
  link	
  it	
  to	
  an	
  agent	
  =	
  instance	
  of	
  ServiceMix	
  
         karaf@root> fabric:create-profile --parents default webserver



         karaf@root> zk:create -r /fabric/configs/versions/base/profiles/webserver/
         org.fusesource.fabric.agent/repository.karaf
         mvn:org.apache.karaf.assemblies.features/standard/2.2.1-SNAPSHOT/xml/features
         karaf@root> zk:create -r /fabric/configs/versions/base/profiles/webserver/
         org.fusesource.fabric.agent/feature.war war




         karaf@root> fabric:create-agent --profile webserver --parent root test




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

   Fabric	
  allows	
  to	
  register	
  camel	
  HTTP	
  endpoints	
  with	
  a	
  logical	
  
    name	
  (we	
  don't	
  need	
  to	
  know	
  Ip/Hostname)	
  
   Provide	
  a	
  new	
  strategy	
  for	
  Web/HOp/	
  WebServices	
  architecture	
  
    with	
  loadbalancing	
  between	
  the	
  instances	
  of	
  the	
  cloud	
  

                                                                                                                                            <from uri="fabric:BeJug:
                                                                                                                                            jetty:http://10.0.0.1:9090/"/>

<from uri="direct:A/>
<to uri="fabric:BeJug"/>                                                                                                                                          <<Zookeeper:2>>

                                                                                                                                            <from uri="fabric:BeJug:
                              <<Zookeeper:1>>                                                                                               jetty:http://10.0.0.2:9090/"/>



                                                                                                                                                                  <<Zookeeper:3>>
                                          Discovery	
  mechanism	
  

 55	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
               A	
  Progress	
  So3ware	
  Company	
  
«	
  End	
  of	
  the	
  first	
  part	
  »	
  




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



           rom	
  theory	
  to	
  «	
  pra6que	
  »	
  
          F
           ransposi6on	
  of	
  the	
  EIP	
  into	
  camel	
  DSL	
  
          T
           evelopment	
  of	
  the	
  Camel	
  routes	
  
          D
           esign	
  of	
  the	
  mul6-­‐6ers	
  architecture	
  (service,	
  DAO,	
  web	
  
          D
          services,	
  …)	
  
           mplementa6on	
  of	
  the	
  web	
  services,	
  web	
  site	
  
          I
           ackaging	
  and	
  deployment	
  
          P




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




         hOp://camel.apache.org/tutorial-­‐osgi-­‐camel-­‐part2.html	
  
58	
        Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Code	
  Source	
  


       emo	
  1	
  –	
  Integrate	
  camel,	
  web	
  services,	
  web	
  technologies	
  in	
  a	
  
      D
      Java	
  project	
  with	
  Service,	
  DAO	
  and	
  persistence	
  layer	
  

     hOps://github.com/cmoulliard/camel-­‐osgi-­‐servicemix-­‐tutorial	
  

       emo	
  2	
  –	
  Use	
  FuseSource	
  Fabric	
  to	
  deploy	
  a	
  project	
  in	
  a	
  cloud	
  
      D
      architecture	
  and	
  use	
  camel-­‐fabric	
  to	
  loadbalance	
  requests	
  
      between	
  nodes	
  of	
  the	
  cloud	
  space	
  

     hOps://github.com/fusesource/fabric/tree/master/fabric-­‐
          examples/fabric-­‐camel-­‐cluster-­‐loadbalancing	
  
      	
  
           	
  
59	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Links	
  


       ntegra6on	
  -­‐	
  Camel	
  :	
  hOp://camel.apache.org	
  
      I
       SB	
  -­‐	
  ServiceMix	
  :	
  hOp://servicemix.apache.org	
  
      E
       un6me	
  -­‐	
  Karaf	
  :	
  hOp://karaf.apache.org	
  
      R
       ebService	
  -­‐	
  CXF	
  :	
  hOp://cxf.apache.org	
  
      W
       roker	
  -­‐	
  Ac6veMQ	
  :	
  hOp://ac6vemq.apache.org	
  
      B
       SGI	
  EE	
  -­‐	
  Aries	
  :	
  hOp://aries.apache.org	
  
      O
       useSource	
  :	
  hOp://fusesource.com/documenta6on/	
  
      F
       IP	
  :	
  hOp://www.enterpriseintegra6onpaOerns.com	
  
      E
       abric	
  :	
  hOp://fabric.fusesource.org/	
  
      F




60	
     Copyright	
  ©	
  2010	
  Progress	
  So3ware	
  Corpora6on	
  and/or	
  its	
  subsidiaries	
  or	
  affiliates.	
  All	
  rights	
  reserved.	
  	
     A	
  Progress	
  So3ware	
  Company	
  
Questions ?


More info  http://fusesource.com/products/


Follow me on
                Twitter : http://twitter.com/cmoulliard
                LinkedIn : http://www.linkedin.com/in/charlesmoulliard
                My blog : http://cmoulliard.blogspot.com



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

Contenu connexe

En vedette (7)

ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXFApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
 
Devoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemqDevoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemq
 
Apache Camel workshop at BarcelonaJUG in January 2014
Apache Camel workshop at BarcelonaJUG in January 2014Apache Camel workshop at BarcelonaJUG in January 2014
Apache Camel workshop at BarcelonaJUG in January 2014
 
Layer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTLayer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & REST
 
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
 
Restful Integration with WSO2 ESB
Restful Integration with WSO2 ESB Restful Integration with WSO2 ESB
Restful Integration with WSO2 ESB
 
IJTC ServiceMix 4
IJTC   ServiceMix 4IJTC   ServiceMix 4
IJTC ServiceMix 4
 

Similaire à Be jug 090611_apacheservicemix

Enterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache CamelEnterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache Camel
Dmitry Buzdin
 
What Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for youWhat Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for you
Claus Ibsen
 
Camels in Berlin
Camels in BerlinCamels in Berlin
Camels in Berlin
Claus Ibsen
 

Similaire à Be jug 090611_apacheservicemix (20)

Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Introducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template EngineIntroducing Scalate, the Scala Template Engine
Introducing Scalate, the Scala Template Engine
 
Enterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache CamelEnterprise Integration Patterns and DSL with Apache Camel
Enterprise Integration Patterns and DSL with Apache Camel
 
CI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and JenkinsCI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and Jenkins
 
What Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for youWhat Riding the Camel can do to make integration easier for you
What Riding the Camel can do to make integration easier for you
 
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
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
 
Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011Apache Camel - JEEConf May 2011
Apache Camel - JEEConf May 2011
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
Apache camel community day - october 2010
Apache camel   community day - october 2010Apache camel   community day - october 2010
Apache camel community day - october 2010
 
Making Apache Camel work for you
Making Apache Camel work for you Making Apache Camel work for you
Making Apache Camel work for you
 
Enterprise Ready OpenStack, Wiekus Beukes, Oracle
Enterprise Ready OpenStack,  Wiekus Beukes, OracleEnterprise Ready OpenStack,  Wiekus Beukes, Oracle
Enterprise Ready OpenStack, Wiekus Beukes, Oracle
 
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQ
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
 
Camels in Berlin
Camels in BerlinCamels in Berlin
Camels in Berlin
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
Using ScaleIO in an OpenStack Environment
Using ScaleIO in an OpenStack EnvironmentUsing ScaleIO in an OpenStack Environment
Using ScaleIO in an OpenStack Environment
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 

Plus de Charles Moulliard

Fuse source parisjug-10052011
Fuse source parisjug-10052011Fuse source parisjug-10052011
Fuse source parisjug-10052011
Charles Moulliard
 

Plus de Charles Moulliard (16)

Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
 
Develop a Mobile Application coonected to a REST backend
Develop a Mobile Application coonected to a REST backendDevelop a Mobile Application coonected to a REST backend
Develop a Mobile Application coonected to a REST backend
 
Security enforcement of Microservices with API Management
Security enforcement of Microservices with API ManagementSecurity enforcement of Microservices with API Management
Security enforcement of Microservices with API Management
 
MicroService and MicroContainer with Apache Camel
MicroService and MicroContainer with Apache CamelMicroService and MicroContainer with Apache Camel
MicroService and MicroContainer with Apache Camel
 
Design a Mobil Hybrid Application connected to a REST Backend
Design a Mobil Hybrid Application connected to a REST BackendDesign a Mobil Hybrid Application connected to a REST Backend
Design a Mobil Hybrid Application connected to a REST Backend
 
Fuse technology-2015
Fuse technology-2015Fuse technology-2015
Fuse technology-2015
 
Continuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on OpenshiftContinuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on Openshift
 
Development of social media projects with Apache Camel, Fabric8 & Hawtio
Development of social media projects with Apache Camel, Fabric8 & HawtioDevelopment of social media projects with Apache Camel, Fabric8 & Hawtio
Development of social media projects with Apache Camel, Fabric8 & Hawtio
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric Technology
 
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
 
Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012
 
Cloud fuse-apachecon eu-2012
Cloud fuse-apachecon eu-2012Cloud fuse-apachecon eu-2012
Cloud fuse-apachecon eu-2012
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
 
Fuse source parisjug-10052011
Fuse source parisjug-10052011Fuse source parisjug-10052011
Fuse source parisjug-10052011
 
Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Be jug 090611_apacheservicemix

  • 1. Integra6on  with     Apache  ServiceMix  and  Camel   BeJUG,   Louvain-­‐La-­‐Neuve,  9th  June  2011   Charles  Moulliard   Sr.  Principal  Solu6on  Architect   Apache  CommiOer   A  Progress  So3ware  Company   1   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 2. Speaker  background     Charles  Moulliard   •  Engineer  in  Agronomy  &  Master  in  Zoology   •  17  years  of  experience  in  IT  world  development  (J2EE,  .NET)   •  Specialised  in  new  technologies  web/Internet  &  integra6on   •  Project  manager  in  bank,  financial,  telco,  insurance  and  transport   world   •  Solu6on  Architect  at  FuseSource       •  CommiOer  on  projects  :   – Apache  ServiceMix,     – Apache  Karaf  (PMC)  &     – Apache  Camel   •  Author  of  book  :  "ServiceMix  and  Karaf  in  Ac6on  –  Mannings"   2   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 3. Goal   «  Introduce  some  projects  of  the  Apache  founda6on  Integra6on   oriented  like  Camel,  ServiceMix     and     Present  target  Architectures  »     3   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 4. Agenda     Integra6on  with  Camel  and  ServiceMix   •  Demys6fy  ESB   •  ServiceMix  -­‐  mul6-­‐containers  plaform   •  Presenta6on  of  projects  -­‐  Camel,  CXF,  Karaf  et  Ac6veMq   •  Descrip6on  of  architectures   –  Messaging   –  Osgi   –  Messaging  +  osgi   –  web   •  High  availability,  scalibility  and  clustering   –  Ac6veMQ,  ServiceMix   –  Ac6veMQ  and  ServiceMix   •  Cloud  and  provisioning   4   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 5. «  Demis6fy  the  ESB  and  present  Apache  ServiceMix  plaform  »   5   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 6. ESB  -­‐  ServiceMix      Demys6fy  the  concept  -­‐   Enterprise  Service  Bus      This  is  not   →    Nor  a   →      But  an  exchanging  plaform        of  messages,  objects        moving  within  a  transport   layer   6   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 7. ESB  -­‐  ServiceMix  (1)     llow  to  separate  the   A business  layer  from  those   which  will  transport  the   informa6on  and  transform  it     rovide  connectors   P (=endpoints)  to  collect   informa6on  and  send  it  on   the  bus  as  messages     essages  are  transformed   M using  marshallers   7   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 8. ServiceMix  -­‐  Container  ship     erviceMix  –  Project  of  the  Apache  Founda6on   S   tarted  in  2005  to  implement  the  Java  Business  Integra6on   S specifica6on     ecoupling  of  the  components  (business,  technical)  by  using   D XML  messages     efine  a  model  to  package/deploy  applica6ons  (SU/SA)     D   ayer  transport  is  called    Normalised  Messaging  Router       L 8   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 9. ServiceMix  -­‐  Container  ship  (2)   Message is ACK or ERR Routing is defined into Normalized the SU = XML exchanges 9   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 10. ServiceMix  -­‐  Container  ship  (3)    JBI  approach  is  interes6ng  but  restric6ve     • XML  format   • Encapsula6on  of  the  rou6ng   • Components  dvlpt  (25  vs  more  than  100  for  camel)   • Few  support  from  IT  actors  (IBM,  Oracle,  …)  to  improve  exis6ng  spec  1.0     2.0   • We  can  make  the  parellism  with  EJB  story  ….     ecision  has  been  taken  3  years  ago  by  members  of  project  to   D • Become  independent  of  JBI  spec  (we  support  it  but  op6onal)   • Adopt  Camel  as  the  new  rou6ng  bus   • Propose  a  new  kernel  (=  meaning  a  new  Architecture  design)   • Extend  the  idea  of  the  project,  plaform  to  become  a  mul6-­‐container  or   container  ship   10   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 11. SMX  -­‐  Container  ship  (4)     erviceMix  4   S   ased  on  an  OSGI  kernel   B • Apache  Felix   • Eclipse  Equinox     hy  →  offers  modularity,  jars   W management  and  versioning     erviceMix  becomes  an   S Integra6on  Plaform  for   opensource  projects   • Camel   • CXF   • Ac6veMQ,   • Aries  (JPA,  Transac6on,  JNDI)   •   ….       11   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 12. Karaf  –  Heart  of  ServiceMix     irthdate  -­‐  16th  of  June  2010   B   un6me  using  an  OSGI  server  :   R • Apache  Felix   • Eclipse  Equinox     rovide  a  lightweight  container  where   P  Applica6ons    Composants    Routes      ...      can  be  deployed   12   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 13. Karaf  –  Heart  of  ServiceMix  (1)     <<jvm>> :ServiceMix4 Container Container Container Container Container Container Lightweight container (Apache Karaf) OSGI Kernel (Apache Felix / Eclipse Equinox) Java Boot (Register as service - Wrapper) 13   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 14. Karaf  –  heart  of  ServiceMix  (2)       aracteris6cs  :   C  Administra6on  console  (locale,  remote,  ssh,  web,  jmx)      Provisioning  system  (features)      Hot  deployment  and  configura6on  management      Instances  management      Security  integra6on  (JAAS  →  ldap,  jdbc,  file)      Logging  management  (log4j,  logger,  commons  logging,  ….)     …  let’s  have  a  look  with  a  demo  …         14   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 15. Which  container  (s)    The  plaform  is  «  modular  »  because  we  can  select  the     librairies,  containers  that  we  would  like  to  use   Jetty, Pax Web Camel, JBI Integration Web CXF Spring, Blueprint Web Services IoC ActiveMQ Middelware Java 15   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 16. «  Camel  the  Integra6on  Framework  of  the  Enterprise  PaOerns  -­‐   EIP  rou6ng  messages  through  the  bus  »   16   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 17. Camel     Birthdate  -­‐  March  2007     OpenSource  Integra6on  Framework  implemen6ng                  EIP  paOerns  (book  published  in  2005  by  Gregor  Hohpe)     Why  EIP    To  provide  word  defini6on,  grammar  and  language   when  designing  integra6on  projects     Camel  uses  a  Domain  Specific  Language  transposing  the  EIP   paOerns  into  Java,  XML     It  supports:   •  In  memory  bus      Alterna6ve  to  JBI  using  NMR   •  Route  objects    can  be  XML,  File,  Stream,  Bytes,…     •  Transac6onal  architecture,   •  Sync/Async  exchanges,   •  Threads  Management,     17   • Copyright  ©  2010  Progress  Sexcep6on  nd/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     Error  and   o3ware  Corpora6on  a handling   A  Progress  So3ware  Company  
  • 18. Camel  (1)     More  than  50  paOerns  are  implemented   hOp://camel.apache.org/enterprise-­‐integra6on-­‐paOerns.html   18   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 19. Camel  (2)     More  than  100  components   hOp://camel.apache.org/components.html   19   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 20. Camel  (3)     18  data  formaters  to  simplify   data  exchange  between  layers,   applica6ons  connected     Example  :  JAXB,  Bindy,  SOAP     Uses  marshaler  (xml    object)   and  unmarsharler  (object     xml)     Will  be  typically  use  in  IN,  OUT   flows     hOp://camel.apache.org/data-­‐format.html   20   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 21. Camel  (4)   The  model  –>  Content  Based  Router   and  its  DSL  language   21   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 22. Camel  (5)   22   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 23. Camel  (6)   23   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 24. Camel  (7)   24   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 25. Camel  (8)   URI  =  «    component  name  »  and  proper6es   25   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 26. Camel     Java  DSL   26   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 27. Camel     Route  Camel  +  Java  DSL   27   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 28. Camel      Endpoints  and  predicate  can  be  provided  into  the                                   camel  route  directly   28   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 29. Camel     Integra6on  with  IntelliJ,  Eclipse,  NetBeans   29   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 30. Camel  (9)     Instead  of  Java,  use  Spring  /  XML  DSL   30   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 31. Camel  (10)     IDE  assistance   31   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 32. «  CXF  –  The  tool  to  generate  Web  Services  »   32   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 33. CXF     Merge  of  2  projects(Cel6c  and  Xfire)     Simplify  the  crea6on  and  deployment  of  webservices                  2  approaches  :  java  to  wsdl  or  wsdl  to  java.     Support  the  following  standards  :   •  JAX-­‐WS  :  Web  Services  (XML/SOAP)   •  JAX-­‐RS  :  RESTfull  service  (JSON)   •  SOAP  1.1,  1.2,  WSDL  1.1     •  WS-­‐Security  :  securise  the  connexion  client/server  or  vice  versa   •  WS-­‐Addressing  :  standardize  the  data  exchange  in  the  SOAP  Header   for  the  rou6ng   •  WS-­‐RM  :   message  delivery  guaranty     33   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 34. CXF  (1)   To  use  it,  simply  add  cxf  maven  plugin  into  the   pom  of  the  project   <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>${cxf-version}</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <sourceRoot> ${basedir}/target/generated/src/main/java </sourceRoot> <wsdlOptions> <wsdlOption> <wsdl> ${basedir}/src/main/resources/report.wsdl </wsdl> </wsdlOption> </wsdlOptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> 34   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 35. CXF  (2)      …  and  configure  a  spring  file   <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://camel.apache.org/schema/cxf" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/ schema/beans/spring-beans.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"/> …. <cxf:cxfEndpoint id="reportIncident" address="http://localhost:9080/incident" wsdlURL="etc/report_incident.wsdl" serviceClass="org.apache.camel.example.ReportIncidentEndpoint"> </cxf:cxfEndpoint> … </beans> 35   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 36. «  Ac6veMQ  –  broker  and  messaging  factory  »   36   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 37. Ac6veMQ  -­‐  MoM  layer     A  high  performance,  reliable  messaging  fabric,  suppor6ng  JMS,  C,  .Net,  and   other  frameworks     Offers  persistance  for  messages  and  bridge  between  ServiceMix  instances   Clients connect to the Network broker using connectors control connectors with how the broker simple URIs interacts with other brokers for discovery, replication, Topics and queues created failover, clustering and store & dynamically. forward. … all based on a flexible Spring- File & JDBC-based based core. message stores supported. 37   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 38. FUSE  Message  Broker  (Apache  Ac6veMQ)     Point  to  Point   •  Sender/producer  sends  messages  to  a  queue.   •  Receiver/consumer  listens  for  messages  from  the  queue   •  Messages  are  stored  un6l  read  (or  expired)   •  Messages  can  be  persisted  on  disk   •  Messages  are  read  only  once.   <<jvm>> frodo:ActiveMQ p:Producer Foo:File c1:Consumer m m 1: Producer sends a 2: Consumer reads message to the broker the message 38   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 39. FUSE  Message  Broker  (Apache  Ac6veMQ)     Publish  to  subscribe   •  A  JMS  client  sends  message  to  the  topic.   •  The  JMS  broker  sends  message  to  all  subscribers  that  are  currently   alive.   –  Alterna6vely,  durable  subscrip-ons  can  be  used  so  that  all   subscribers  will  receive  message  even  if  not  alive  at  6me  of  sending   •  Messages  are  read  several  6mes  (rela6on  1  to  many)   <<jvm>> m frodo:ActiveMQ s1:Subscriber p:Producer Foo:Topic m m s2:Subscriber 39   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 40. How  the  Apache  products  relate  to  each  other…   <<supports transport>> <<supports transport>> ActiveMQ <<implements flow with>> ServiceMix CXF <<deploy into>> <<supports activemq endpoints>> <<deploy into>> <<supports cxf endpoints>> Camel <<supports jbi endpoints>> <<deploy into>> 40   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 41. «  What  are  the  Architectures  that  we  can  design  with   ServiceMix,  Camel,  Ac>veMq  »   41   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 42. Architecture  -­‐  Messaging     The  bus  operates  the  exchanges  between  the  endpoints   using  Camel,  NMR,  JBI   <<jvm>>   FTP   ServiceMix4   Web  Service   BUS   Bean<<MyBean>>   from(FTP)   from(«  cxf:bean:myWS  »)   .beanRef(«  myBean  »);   .beanRef(«  myBean  »)  ;   42   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 43. Architecture  -­‐  Java     The  OSGI  plaform  proposes  a  Service  Registry  (comparable   to  JNDI)  where  "interfaces"  are  registered      Clients  access  to  the  service  using  lookup  mechanism   <<jvm>>   A ServiceMix4   «  Interface  »   Service   DAO   PoJo   Hibernate/JPA   C B OSGI  registry   <bean  id="incidentServiceTarget"  class="org.apache.camel.service.impl.IncidentServiceImpl">     <property  name="incidentDAO">       <osgi:reference  interface="org.apache.camel.dao.IncidentDAO"/>      </property>   </bean>   43   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 44. Architecture  –  Messaging  +  Java     Decoupling  of  the  "services"  from  integra6on  layer   <<jvm>>   ServiceMix4   C  «  Interface  »   Service   DAO   PoJo   Hibernate/JPA   OSGI  Registry   from(«  cxf:bean:myWS  »)   .to(«  bean:validate  »)   B .beanRef(«org.bejug.jpaService»);   A Bean     Web  Service   Validate   44   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 45. Architecture  –    Java  +  Web     ServiceMix  is  a  web  plaform,  it  uses    JeOy  Web  Applica6on   Server,  Pax  Web  –  a  tooling  for  war  and  OSGI  HTTP  Service  to   register  Servlet,  …   <<jvm>>   A ServiceMix4   «  Interface  »   Service   Hibernate/JPA   DAO   PoJo   C Web   B Applica-on   OSGI  registry   Bundle   OSGI  Run-me   B A 45   Bean     Web  Service   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company   Validate  
  • 46. Only  one  ServiceMix  instance     Deployment  unit    bundle  (=  jar  with  addi6onal  data  in   MANIFEST.mf  file     Several  camel  routes  can  be  deployed  in  different  bundles,   cross-­‐communica6on  via  NMR  bus  (name  is  the  same  but   different  from  JBI)   NMR   46   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 47. What  can  I  do  when  x  instances  are  required     When  we  need  asymetric  deployment  because  CPU,  memory  is   not  sufficient  then    we  use  Ac6veMQ  to  interconnect  the   instances  and  persist  messages   47   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 48. «  High  availability,  scalability  and  clustering  »   48   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 49. High-­‐availability  -­‐  Ac6veMQ     2  mechanisms  :  pure  Master/Slave  et  Shared  message  store     <<jvm>> <<jvm>> frodo:ActiveMQ frodo:ActiveMQ Master state The brokers replicated compete to with the slave acquire lock on the shared system (file or DB) <<jvm>> <<jvm>> samwise:ActiveMQ samwise:ActiveMQ 49   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 50. High  Availability  -­‐  ServiceMix     Only  one  mechanism  is  available  –  Lock  based  (File,  DB)     Bundles  can  be  deployed  in  ac6ve  or  passive  mode   50   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 51. High-­‐Availability  –  Amq  and  Smx     Combine  Ac6veMQ  (shared  store)  anf  ServiceMix  (shared  lock)     Network  of  brokers   Camel - FTP SMX4 Actif (Master) BUS Headquarter queue:order from(ftp) bean://order .to(amq:queue:order) queue:order queue:order NetWork of BUS Master from Broker Regional office (amq:queue:order) .bean://order bean://order Camel - WS queue:order BUS BUS Slave queue:order from (amq:queue:order) from(ftp) .bean://order .to(amq:queue:order) SMX4 Passive (Slave) 51   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 52. Cloud,  Provisioning     FuseSource  Fabric  based  on  Apache  Zookeeper     Distributed  coordina6on  service  highly  available  using  a   repository  for  cluster  configs  and  the  node  (run6me)     ACLs   Data exchange <<Zookeeper:toto>>   Sync   <<Zookeeper:nestor>>   52   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 53. Cloud,  Provisioning  (2)   53   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 54. Provisioning  –  local  and  remote     Solu6on  to  deploy  locally  or  remotelly     Idea  :  we  have  a  profile  defining  what  we  would  like  to  deploy   and  configure  and  link  it  to  an  agent  =  instance  of  ServiceMix   karaf@root> fabric:create-profile --parents default webserver karaf@root> zk:create -r /fabric/configs/versions/base/profiles/webserver/ org.fusesource.fabric.agent/repository.karaf mvn:org.apache.karaf.assemblies.features/standard/2.2.1-SNAPSHOT/xml/features karaf@root> zk:create -r /fabric/configs/versions/base/profiles/webserver/ org.fusesource.fabric.agent/feature.war war karaf@root> fabric:create-agent --profile webserver --parent root test 54   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 55. Cloud     Fabric  allows  to  register  camel  HTTP  endpoints  with  a  logical   name  (we  don't  need  to  know  Ip/Hostname)     Provide  a  new  strategy  for  Web/HOp/  WebServices  architecture   with  loadbalancing  between  the  instances  of  the  cloud   <from uri="fabric:BeJug: jetty:http://10.0.0.1:9090/"/> <from uri="direct:A/> <to uri="fabric:BeJug"/> <<Zookeeper:2>> <from uri="fabric:BeJug: <<Zookeeper:1>> jetty:http://10.0.0.2:9090/"/> <<Zookeeper:3>> Discovery  mechanism   55   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 56. «  End  of  the  first  part  »   56   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 57. Demo     rom  theory  to  «  pra6que  »   F   ransposi6on  of  the  EIP  into  camel  DSL   T   evelopment  of  the  Camel  routes   D   esign  of  the  mul6-­‐6ers  architecture  (service,  DAO,  web   D services,  …)     mplementa6on  of  the  web  services,  web  site   I   ackaging  and  deployment   P 57   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 58. Context   hOp://camel.apache.org/tutorial-­‐osgi-­‐camel-­‐part2.html   58   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 59. Code  Source     emo  1  –  Integrate  camel,  web  services,  web  technologies  in  a   D Java  project  with  Service,  DAO  and  persistence  layer   hOps://github.com/cmoulliard/camel-­‐osgi-­‐servicemix-­‐tutorial     emo  2  –  Use  FuseSource  Fabric  to  deploy  a  project  in  a  cloud   D architecture  and  use  camel-­‐fabric  to  loadbalance  requests   between  nodes  of  the  cloud  space   hOps://github.com/fusesource/fabric/tree/master/fabric-­‐ examples/fabric-­‐camel-­‐cluster-­‐loadbalancing       59   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 60. Links     ntegra6on  -­‐  Camel  :  hOp://camel.apache.org   I   SB  -­‐  ServiceMix  :  hOp://servicemix.apache.org   E   un6me  -­‐  Karaf  :  hOp://karaf.apache.org   R   ebService  -­‐  CXF  :  hOp://cxf.apache.org   W   roker  -­‐  Ac6veMQ  :  hOp://ac6vemq.apache.org   B   SGI  EE  -­‐  Aries  :  hOp://aries.apache.org   O   useSource  :  hOp://fusesource.com/documenta6on/   F   IP  :  hOp://www.enterpriseintegra6onpaOerns.com   E   abric  :  hOp://fabric.fusesource.org/   F 60   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company  
  • 61. Questions ? More info  http://fusesource.com/products/ Follow me on Twitter : http://twitter.com/cmoulliard LinkedIn : http://www.linkedin.com/in/charlesmoulliard My blog : http://cmoulliard.blogspot.com 61   Copyright  ©  2010  Progress  So3ware  Corpora6on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  So3ware  Company