10/05/2011




Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
10/05/2011




Intégration avec Camel et ServiceMix

  Charles Moulliard
  Architecte de Solutions
  Apache Committer




   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Objectif


  « Faire découvrir les projets Apache orientés
Intégration comme Camel ainsi que le conteneur
     ServiceMix et les architectures cibles»




   10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              3
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Intervenant
Charles Moulliard
 Ingénieur Agronome & Licencié en Zoologie
 17 expérience dans le monde du développement IT (J2EE,
 .NET)
 Spécialisé dans le monde des nouvelles technologies
 Web/Internet/Intégration
 Chef de projet dans le monde bancaire, financier, telco,
 assurance, transports
 Architecte de solutions chez FuseSource
 Committeur Apache sur les projets : ServiceMix, Karaf (PMC)
 & Camel
 BIO : « Apache ServiceMix and Karaf in Action » - Manning
 editor
    10/05/2011      Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              4
                       Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Sommaire
Intégration avec Camel et ServiceMix
 Démystifier l' ESB
 ServiceMix - plateforme multi-conteneurs
 Présentation des projets - Camel, CXF, Karaf et
 ActiveMq
 Description des topologies possibles - messaging,
 osgi, messaging + osgi, web
 Haute disponibilité, scalabilité et clustering -
 ActiveMQ, ServiceMix et ActiveMQ - ServiceMix




   10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              5
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« Démystifier l' ESB et présenter la plateforme
            Apache ServiceMix »




   10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              6
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
ESB - ServiceMix
Demystifier le concept - Enterprise Service Bus
→ Ce n'est pas un
→ Ni un


 Mais un plateforme d' échange
 de messages, d'objets
 transitant via une
 couche de transport


    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              7
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
ESB – ServiceMix (1)
Permet de séparer la
couche métier de
celles qui vont
transporter
l'information et
transformer




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              8
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
SMX – porte conteneurs
ServiceMix – projet de la fondation Apache
Créé en 2005 pour implémenter la spécification
Java Business Integration
Découple les composants (métier, technique) via
l'envoi de messages XML
Défini un modèle de packaging/déploiement d'
applications (SU/SA)
Couche transport s'appelle - Normalised
Messaging Router


    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              9
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
SMX – porte conteneurs (2)
Approche JBI est intéressante mais
contraignante
 Format XML
 Routage encapsulé
 Développement des composants
 Peu de support de la part des acteurs (IBM, Oracle,
 …) pour faire évoluer la spécification
 Parallèle avec EJB est intéressante


Positionnement de ServiceMix pour le future

    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              10
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
SMX – porte conteneurs (3)




  10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              11
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
SMX – porte conteneurs (3)
ServiceMix 4
Basé sur un noyau OSGI
Pq → offre modularité, gestion des jars,
versioning
Notre serveur devient un
conteneur d' intégration
opensource des projets
  Camel
  CXF
  ActiveMQ, Aries (JPA, Transaction, JNDI), ….
    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              12
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Karaf – Cœur de ServiceMix
Date de naissance - 16th of June 2010
Runtime utilisant un serveur OSGI :
 Apache Felix
 Eclipse Equinox
Fournit un conteneur léger dans lequel des
  Applications
  Composants
  Routes, ...
peuvent être déployés

    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              13
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Karaf – Cœur de ServiceMix




  10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              14
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Karaf – Cœur de ServiceMix
Caractéristiques :
  Console d'administration (locale, remote, ssh, web,
  jmx)
  Systéme de provisionnement (features)
  Déploiement à chaud et gestion dynamiques des
  configs
  Gestion des instances
  Sécurité intégrée (JAAS → ldap, jdbc, file)
  Gestion centralisée des logs (log4j, logger, commons
  logging, ….)


    10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              15
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Conteneur(s)
 Plateforme est modulable car on sélectionne les
librairies, conteneurs que l'on souhaite utiliser
                                                                                                                          Jetty, Pax Web
Offre un meilleur contrôle du serveur
         Camel, JBI



                   Integration                                                                Web
    CXF                                                                                                                                    Spring, Blueprint

                  Web Services                                                                  IoC

 ActiveMQ

                   Middelware                                                                 Java




     10/05/2011        Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              16
                          Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« ActiveMQ – l'agent d'échange / de persistence
                des messages »




   10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              17
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
ActiveMQ
Une usine de fabrication de messages (PtP, Pub/Sub)
supportant JMS et proposant connecteurs C, C++, .Net,
PhP.




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              18
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« CXF – L'outil de fabrication des Web Services »




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              19
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
CXF
Fusion de 2 projets (Celtic and Xfire)
Simplifie création et déploiement des web services via
  approche code-first ou WSDL-first.
Supporte les standards comme :
 •      JAX-WS : Web Services (XML/SOAP)
 •      JAX-RS : RESTfull service (JSON)
 •      SOAP 1.1, 1.2, WSDL 1.1
 •      WS-Security : sécurise la connexion client serveur et vice versa
 •       WS-Addressing : standardise les données échangées dans les
     entêtes SOAP pour le routage
 •      WS-RM : garantie de livraison du message



      10/05/2011        Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              20
                           Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
CXF (1)
    Se configure trés facilement via plugin maven
            <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_incident.wsdl</wsdl>
                                  </wsdlOption>
                             </wsdlOptions>
                         </configuration>
                         <goals>
                             <goal>wsdl2java</goal>
                         </goals>
                     </execution>
                </executions>
            </plugin>



           10/05/2011          Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              21
                                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
CXF (2)
           Fichier Spring XML
<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>


            10/05/2011         Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              22
                                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« Camel – L'intégrateur opensource des modéles
               entreprises (EIP) »




   10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              23
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Date de naissance Mars 2007
Framework d’intégration opensource
  implémentant les modelés EIP
Utilise un language specifique appelé DSL
Supporte:
 Architecture transactionnelle,
 Echanges Sync/async,
 Gestion des threads,
 Mecanisme de controles des erreurs


    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              24
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Plus de 50 modèles d'intégration




http://camel.apache.org/enterprise-integration-patterns.html

     10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              25
                      Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Plus de 100 composants




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

    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              26
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
18 formateurs de données




http://camel.apache.org/data-format.html

    10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              27
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Le modèle – Content Based Router




       Langage DSL




     10/05/2011         Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              28
                           Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel




 10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              29
                 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel




 10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              30
                 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel




 10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              31
                 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel




 10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              32
                 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Java DSL




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              33
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Route Camel + Java DSL




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              34
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Une route Camel – EIP Filter Pattern




     10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              35
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Integration avec Eclipse, IntelliJ




     10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              36
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Spring DSL




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              37
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Camel
Assistance de l' IDE




     10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              38
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« Quelles sont les architectures possibles –
       messages, java et/ou web »




 10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              39
                 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Architecture - messaging
Le BUS orchestre les échanges entre les
  endpoints

        FTP                                                                                                  Web Service




    from(ftp)
    .beanRef(« myBean »);
                                                                            Bean/PoJo


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

    10/05/2011      Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              40
                       Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Architecture - Java
  La plateforme OSGI sert de registre pour des
    services = “Interface”

                           A


                « Interface »                     Service                                             Hibernate/JPA
                    DAO                            PoJo


                   B               C
                         Registre OSGI


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

           10/05/2011           Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              41
                                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Architecture – Messaging + Java
Decouplage des composants « services » de la
 couche d'intégration


                                                                                                             C
    « Interface »            Service
                                                                                      Hibernate/JPA
        DAO                   PoJo



                                                                       from(« cxf:bean:myWS »)
             Registre OSGI                                             .to(« bean:name=validate »)
                                                                       .beanRef(«org.parisjug.jpaService»);
                                                  B

                    A

    Bean Validate       Web Service


    10/05/2011             Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              42
                              Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Architecture – Java + Web
L' ESB héberge les projets Web (Jetty + Pax
  Web + OSGI HTTP Service)



    « Interface »        Service
                                                                                     Hibernate/JPA
        DAO               PoJo


                                                                                            Web
             Registre OSGI                                                                Application
                                                                                                                                    Bundle

                       OSGI Runtime




     10/05/2011        Intégration avec Camel et ServiceMix                                                                       www.parisjug.org                                              43
                             Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« Haute disponibilité, scalabilité et clustering »




   10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              44
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Une seule instance
Unité de déploiement = bundle
1 seule instance SMX, plusieurs routes, cross-
  communication via NMR, asymétrie




                                                   NMR




             CamelContext A                                                                 CamelContext B



     10/05/2011         Intégration avec Camel et ServiceMix                                                                       www.parisjug.org                                              45
                              Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Plusieurs instances
Bridge assuré par ActiveMQ
“Interconnecte” les différentes instances de SMX




     10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              46
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Haute disponibilité - ActiveMQ
2 mécanismes disponibles : pure Master/Slave et Shared
  message store




      10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              47
                      Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Haute disponibilité - ServiceMix
Seul le mécanisme de (lock) shared store est possible
Bundles peuvent etre deployés mais non activés




      10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              48
                       Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Haute disponibilité - Clustering
Combine ActiveMQ (shared store) et ServiceMix (shared
  lock)
Réseau de brokers




      10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              49
                       Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Cloud, Provisionnement
FuseSource Fabric - basé sur Apache Zookeeper
Service de coordination distribué hautement disponible
  utilisant un registre utilisé pour les configs du cluster et
  les noeuds (runtime)




                                                                                                                                                                  ACLs
                          Data
                          change



   <<Zookeeper:toto>>                                              <<Zookeeper:nestor>>
                             Sync
       10/05/2011       Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              50
                           Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Cloud, Provisionnement
Mécanisme de provisionnement et de déploiement à
 distance
Basé sur un profile associé à un agent
karaf@root> fabric:create-profile --parents default webserver


karaf@root> zk:create -r
/fabric/configs/versions/base/profiles/webserver/org.fusesource.fabric.agent/rep
ository.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/fea
ture.war war



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




       10/05/2011        Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              51
                            Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Cloud, Provisionnement
 La fabric permet d' enregister logiquement un endpoint
   camel dans le registre de Zookeeper (=znode)
 Offre une nouvelle stratégie pour les architectures HTTP,
   CXF pour balancer les requetes

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


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


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


                                                                                                                                                      <<Zookeeper:3>>




         10/05/2011            Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              52
                                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
« Fin de la premiére partie »




10/05/2011         Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              53
                      Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Démonstration



Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Sommaire

 De la théorie à la pratique
 Transposition vers le language camel DSL des EIP
 Codage, déboggage, testing
 Développement des routes Camel
 Packaging et déploiement




   10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              55
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Contexte




http://camel.apache.org/tutorial-osgi-camel-part2.html

        10/05/2011           Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              56
                                Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Conclusion
Questions ?


Suivez-moi sur
 http://twitter.com/cmoulliard
 http://www.linkedin.com/in/charlesmoulliard
Mon blog : http://cmoulliard.blogspot.com




    10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              57
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Bibliographie / liens
Integration - Camel : http://camel.apache.org
ESB - ServiceMix : http://servicemix.apache.org
Runtime - Karaf : http://karaf.apache.org
WebService - CXF : http://cxf.apache.org
Broker - ActiveMQ : http://activemq.apache.org
OSGI EE - Aries : http://aries.apache.org
FuseSource :
http://fusesource.com/documentation/
EIP : http://www.enterpriseintegrationpatterns.com

    10/05/2011    Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              58
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Sponsors




  10/05/2011   Intégration avec Camel et ServiceMix                                                                    www.parisjug.org                                              59
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Fuse source parisjug-10052011

  • 1.
    10/05/2011 Copyright © 2008ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 2.
    10/05/2011 Intégration avec Camelet ServiceMix Charles Moulliard Architecte de Solutions Apache Committer Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 3.
    Objectif «Faire découvrir les projets Apache orientés Intégration comme Camel ainsi que le conteneur ServiceMix et les architectures cibles» 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 3 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 4.
    Intervenant Charles Moulliard IngénieurAgronome & Licencié en Zoologie 17 expérience dans le monde du développement IT (J2EE, .NET) Spécialisé dans le monde des nouvelles technologies Web/Internet/Intégration Chef de projet dans le monde bancaire, financier, telco, assurance, transports Architecte de solutions chez FuseSource Committeur Apache sur les projets : ServiceMix, Karaf (PMC) & Camel BIO : « Apache ServiceMix and Karaf in Action » - Manning editor 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 4 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 5.
    Sommaire Intégration avec Camelet ServiceMix Démystifier l' ESB ServiceMix - plateforme multi-conteneurs Présentation des projets - Camel, CXF, Karaf et ActiveMq Description des topologies possibles - messaging, osgi, messaging + osgi, web Haute disponibilité, scalabilité et clustering - ActiveMQ, ServiceMix et ActiveMQ - ServiceMix 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 5 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 6.
    « Démystifier l'ESB et présenter la plateforme Apache ServiceMix » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 6 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 7.
    ESB - ServiceMix Demystifierle concept - Enterprise Service Bus → Ce n'est pas un → Ni un Mais un plateforme d' échange de messages, d'objets transitant via une couche de transport 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 7 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 8.
    ESB – ServiceMix(1) Permet de séparer la couche métier de celles qui vont transporter l'information et transformer 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 8 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 9.
    SMX – porteconteneurs ServiceMix – projet de la fondation Apache Créé en 2005 pour implémenter la spécification Java Business Integration Découple les composants (métier, technique) via l'envoi de messages XML Défini un modèle de packaging/déploiement d' applications (SU/SA) Couche transport s'appelle - Normalised Messaging Router 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 9 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 10.
    SMX – porteconteneurs (2) Approche JBI est intéressante mais contraignante Format XML Routage encapsulé Développement des composants Peu de support de la part des acteurs (IBM, Oracle, …) pour faire évoluer la spécification Parallèle avec EJB est intéressante Positionnement de ServiceMix pour le future 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 10 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 11.
    SMX – porteconteneurs (3) 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 11 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 12.
    SMX – porteconteneurs (3) ServiceMix 4 Basé sur un noyau OSGI Pq → offre modularité, gestion des jars, versioning Notre serveur devient un conteneur d' intégration opensource des projets Camel CXF ActiveMQ, Aries (JPA, Transaction, JNDI), …. 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 12 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 13.
    Karaf – Cœurde ServiceMix Date de naissance - 16th of June 2010 Runtime utilisant un serveur OSGI : Apache Felix Eclipse Equinox Fournit un conteneur léger dans lequel des Applications Composants Routes, ... peuvent être déployés 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 13 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 14.
    Karaf – Cœurde ServiceMix 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 14 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 15.
    Karaf – Cœurde ServiceMix Caractéristiques : Console d'administration (locale, remote, ssh, web, jmx) Systéme de provisionnement (features) Déploiement à chaud et gestion dynamiques des configs Gestion des instances Sécurité intégrée (JAAS → ldap, jdbc, file) Gestion centralisée des logs (log4j, logger, commons logging, ….) 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 15 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 16.
    Conteneur(s) Plateforme estmodulable car on sélectionne les librairies, conteneurs que l'on souhaite utiliser Jetty, Pax Web Offre un meilleur contrôle du serveur Camel, JBI Integration Web CXF Spring, Blueprint Web Services IoC ActiveMQ Middelware Java 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 16 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 17.
    « ActiveMQ –l'agent d'échange / de persistence des messages » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 17 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 18.
    ActiveMQ Une usine defabrication de messages (PtP, Pub/Sub) supportant JMS et proposant connecteurs C, C++, .Net, PhP. 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 18 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 19.
    « CXF –L'outil de fabrication des Web Services » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 19 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 20.
    CXF Fusion de 2projets (Celtic and Xfire) Simplifie création et déploiement des web services via approche code-first ou WSDL-first. Supporte les standards comme : • JAX-WS : Web Services (XML/SOAP) • JAX-RS : RESTfull service (JSON) • SOAP 1.1, 1.2, WSDL 1.1 • WS-Security : sécurise la connexion client serveur et vice versa • WS-Addressing : standardise les données échangées dans les entêtes SOAP pour le routage • WS-RM : garantie de livraison du message 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 20 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 21.
    CXF (1) Se configure trés facilement via plugin maven <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_incident.wsdl</wsdl> </wsdlOption> </wsdlOptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 21 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 22.
    CXF (2) Fichier Spring XML <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> 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 22 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 23.
    « Camel –L'intégrateur opensource des modéles entreprises (EIP) » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 23 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 24.
    Camel Date de naissanceMars 2007 Framework d’intégration opensource implémentant les modelés EIP Utilise un language specifique appelé DSL Supporte: Architecture transactionnelle, Echanges Sync/async, Gestion des threads, Mecanisme de controles des erreurs 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 24 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 25.
    Camel Plus de 50modèles d'intégration http://camel.apache.org/enterprise-integration-patterns.html 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 25 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 26.
    Camel Plus de 100composants http://camel.apache.org/components.html 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 26 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 27.
    Camel 18 formateurs dedonnées http://camel.apache.org/data-format.html 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 27 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 28.
    Camel Le modèle –Content Based Router Langage DSL 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 28 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 29.
    Camel 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 29 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 30.
    Camel 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 30 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 31.
    Camel 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 31 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 32.
    Camel 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 32 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 33.
    Camel Java DSL 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 33 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 34.
    Camel Route Camel +Java DSL 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 34 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 35.
    Camel Une route Camel– EIP Filter Pattern 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 35 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 36.
    Camel Integration avec Eclipse,IntelliJ 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 36 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 37.
    Camel Spring DSL 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 37 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 38.
    Camel Assistance de l'IDE 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 38 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 39.
    « Quelles sontles architectures possibles – messages, java et/ou web » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 39 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 40.
    Architecture - messaging LeBUS orchestre les échanges entre les endpoints FTP Web Service from(ftp) .beanRef(« myBean »); Bean/PoJo from(« cxf:bean:myWS ») .beanRef(« myBean ») ; 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 40 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 41.
    Architecture - Java La plateforme OSGI sert de registre pour des services = “Interface” A « Interface » Service Hibernate/JPA DAO PoJo B C Registre OSGI <bean id="incidentServiceTarget" class="org.apache.camel.service.impl.IncidentServiceImpl"> <property name="incidentDAO"> <osgi:reference interface="org.apache.camel.dao.IncidentDAO"/> </property> </bean> 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 41 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 42.
    Architecture – Messaging+ Java Decouplage des composants « services » de la couche d'intégration C « Interface » Service Hibernate/JPA DAO PoJo from(« cxf:bean:myWS ») Registre OSGI .to(« bean:name=validate ») .beanRef(«org.parisjug.jpaService»); B A Bean Validate Web Service 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 42 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 43.
    Architecture – Java+ Web L' ESB héberge les projets Web (Jetty + Pax Web + OSGI HTTP Service) « Interface » Service Hibernate/JPA DAO PoJo Web Registre OSGI Application Bundle OSGI Runtime 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 43 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 44.
    « Haute disponibilité,scalabilité et clustering » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 44 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 45.
    Une seule instance Unitéde déploiement = bundle 1 seule instance SMX, plusieurs routes, cross- communication via NMR, asymétrie NMR CamelContext A CamelContext B 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 45 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 46.
    Plusieurs instances Bridge assurépar ActiveMQ “Interconnecte” les différentes instances de SMX 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 46 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 47.
    Haute disponibilité -ActiveMQ 2 mécanismes disponibles : pure Master/Slave et Shared message store 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 47 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 48.
    Haute disponibilité -ServiceMix Seul le mécanisme de (lock) shared store est possible Bundles peuvent etre deployés mais non activés 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 48 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 49.
    Haute disponibilité -Clustering Combine ActiveMQ (shared store) et ServiceMix (shared lock) Réseau de brokers 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 49 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 50.
    Cloud, Provisionnement FuseSource Fabric- basé sur Apache Zookeeper Service de coordination distribué hautement disponible utilisant un registre utilisé pour les configs du cluster et les noeuds (runtime) ACLs Data change <<Zookeeper:toto>> <<Zookeeper:nestor>> Sync 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 50 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 51.
    Cloud, Provisionnement Mécanisme deprovisionnement et de déploiement à distance Basé sur un profile associé à un agent karaf@root> fabric:create-profile --parents default webserver karaf@root> zk:create -r /fabric/configs/versions/base/profiles/webserver/org.fusesource.fabric.agent/rep ository.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/fea ture.war war karaf@root> fabric:create-agent --profile webserver --parent root test 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 51 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 52.
    Cloud, Provisionnement Lafabric permet d' enregister logiquement un endpoint camel dans le registre de Zookeeper (=znode) Offre une nouvelle stratégie pour les architectures HTTP, CXF pour balancer les requetes <from uri="fabric:parisJug: jetty:http://10.0.0.1:9090/"/> <from uri="direct:A/> <<Zookeeper:2>> <to uri="fabric:parisJug"/> <<Zookeeper:1>> <from uri="fabric:parisJug: jetty:http://10.0.0.2:9090/"/> <<Zookeeper:3>> 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 52 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 53.
    « Fin dela premiére partie » 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 53 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 54.
    Démonstration Copyright © 2008ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 55.
    Sommaire De lathéorie à la pratique Transposition vers le language camel DSL des EIP Codage, déboggage, testing Développement des routes Camel Packaging et déploiement 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 55 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 56.
    Contexte http://camel.apache.org/tutorial-osgi-camel-part2.html 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 56 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 57.
    Conclusion Questions ? Suivez-moi sur http://twitter.com/cmoulliard http://www.linkedin.com/in/charlesmoulliard Mon blog : http://cmoulliard.blogspot.com 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 57 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 58.
    Bibliographie / liens Integration- Camel : http://camel.apache.org ESB - ServiceMix : http://servicemix.apache.org Runtime - Karaf : http://karaf.apache.org WebService - CXF : http://cxf.apache.org Broker - ActiveMQ : http://activemq.apache.org OSGI EE - Aries : http://aries.apache.org FuseSource : http://fusesource.com/documentation/ EIP : http://www.enterpriseintegrationpatterns.com 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 58 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 59.
    Sponsors 10/05/2011 Intégration avec Camel et ServiceMix www.parisjug.org 59 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique