SlideShare a Scribd company logo
1 of 53
Download to read offline
Spring Intégration
Relever les défis de l’intégration d’entreprise
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Les Défis de l’intégration d’entreprise.
● Les Entreprise Integration Patterns (EIP).
● Le Framework Spring Intégration.
Le Plan
Spring Intégration
Relever les défis de l’intégration d’entreprise
Stéphane Goumard
● Expertise environnement Java.
○ Architecte technique
○ Consultant
○ Formateur.
● Une application isolée n’existe pas.
● SI complexe, sous systèmes hétérogènes,
disparates.
● Apparition de nouvelles techno ou
évolutions “IC” <=> “DevOps”
● Défaillance de l’infrastructure (Scalable,
Interopérabilité, “Fail Over”)
.Net
Java
BigData
WS
Les Défis de l’intégration d’entreprise
Spring Intégration
Relever les défis de l’intégration d’entreprise.
● Simplifier les échanges entre applications tout en tenant
compte des différentes contraintes inhérentes à un SI
hétérogène.
● Pour résoudre cette problématique d'intégration
d'environnement, il est nécessaire de mettre en place de la
glu logicielle entre ses systèmes et ses applications.
● Les Entreprise Integration Patterns (EIP) sont des patterns
pour résoudre l'intégration de systèmes hétérogènes et
Spring Intégration en est un frameworks.
Les Défis de l’intégration d’entreprise
Spring Intégration
Relever les défis de l’intégration d’entreprise
Application A
● File Transfert
Les différents Style D’intégration.
Spring Intégration
Relever les défis de l’intégration d’entreprise
E
x
p
o
r
t
I
m
p
o
r
t
Application B
Avantages:
- Simple à mettre en oeuvre
- Découplage (technique,
temporel, physique)
- Toujours utilisé HDFS / Hadoop
Inconvénients :
- Accès concourant.
- Pas de transactions
- Sécurité.
- Intéropérabilité
- Peu fiable.
File
● Shared Database
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
Avantages:
- Transaction simple
- Centralisation
- Sécurité
- Scalable, fail over.
Inconvénients :
- Application lié au schéma.
- Schéma unifié / figé
- Évolution difficile
=> Évolution NoSql Schéma Less.
Application A
Application B
Application C
DBC
DBC
DBC
● RPC (Approche orientée Services SOA)
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
Avantages:
- Simple mise en oeuvre programme
- Découplage technique
- Réutilisation du fonctionnel
- Maintenance
Inconvénients :
- Couplage temporel (Fail Over)
- Pas Scalable
- Interopérabilité.
- Point to Point
Application A Application B
Inerface RPCRequest
Reply
● Point à Point
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
SOA Editque
Datawarehouse
CRM
Batchs Processing
HBase / HDFS
WS Préstataires
● Le Style “Asynchronous Messaging”
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
Application A
(Producteur)
A
d
a
p
t
e
r Messages
A
d
a
p
t
e
r
Application B
( Consommateur )
Messages
Channel
Broker Messaging
● Le Style “Asynchronous Messaging”
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Découplage Temporel, Communication asynchrone
Notion de tampon “Buffer”, Fire and Forget.
● Logique d’intercepteur (Routing, Filtre, Transformation),
Découplage physique.
● Scalable, Fiable :
○ Routing permettre de router le message sur des
conditions.
○ Pipeline, Cadencé (Montée en charge), Claim check
patern.
○ Broadcasting : permettre la diffusion d’un message à
plusieurs, traitement en parallèle.
○ Fail Over via des mécanismes de persistance.
Spring Intégration
Relever les défis de l’intégration d’entreprise
WS PréstatairesHBase / HDFSBatchs Processing
SOA EditqueDatawarehouse CRM
Les différents styles d’intégration
● Le Style “Asynchronous Messaging”
● Le Style “Asynchronous Messaging”
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Pas de contexte transactionnel entre
production et consommation
● Propagation du contexte de sécurité
difficile
● Gestion des erreurs complexes
● Messaging - le besoin de conceptualiser
Les différents styles d’intégration
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Les Messages : les données sont encodées dans un message avec un header
et un body.
● Les Channel : il établit la liaison entre deux applications, c’est un chemin virtuel
par lequel est transmis et reçu les messages.
● End Point : c’est le point d’entrée et sortie du système de messaging.
● Transformer : traitement spécifique destiné à adapter un message au
traitement suivant.
● Pipe, Filter, Router : enchaînement de traitements destinés à orchestrer le
traitement d’un message.
● Introduit un langage sémantique, un ensemble de patterns
et d’idéogrammes permettant de conceptualiser,
architecturer un SI sur le style du messaging.
Entreprise Intégration Patterns (EIP)
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Bible, catalogue de références sur les EIP
● Ecrit en Octobre 2003 par Gregor Hohpe et
Bobby WoolF et toujours d’actualité
● C’est devenu un standard pour tous les
frameworks qui ont implémenté les EIP
comme Spring Intégration ou Apache Camel.
Entreprise Intégration Patterns (EIP)
Spring Intégration
Relever les défis de l’intégration d’entreprise
Entreprise Intégration Patterns (EIP)
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Modéliser les EIP à l’aide de composants techniques
pour permettre une implémentation d’intégration sur le style
du messaging.
Frameworks EIP
Spring Intégration
Relever les défis de l’intégration d’entreprise
Spring Intégration
Apache Camel
● Fournir un modèle simple pour implémenter des solutions
complexes d’EAI
● Une plateforme de Messaging basée sur les principes d’
EDA (Event Driven Architecture)
● Fournir une liste des composants sur étagère pour
permettre la mise en oeuvre des Patterns EIP
● Faciliter la mise en oeuvre d’un modèle d'échanges
asynchrones orientés message dans un environnement
basé sur Spring.
Spring Intégration (Mark Fisher)
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Couplage lâche entre composants pour faciliter la modularité et la testabilité
● Respect de la séparation des préoccupations (separation of concerns) entre la
logique métier et la logique d’intégration.
● Points d’extension abstraits mais clairement définis afin de promouvoir la
réutilisation et la portabilité.
Eco-Système Spring.
Spring Intégration
Relever les défis de l’intégration d’entreprise
Eco-Système Spring.
Spring Intégration
Relever les défis de l’intégration d’entreprise
Pipes-and-Filters
● Le système de messaging proposé par Spring Intégration
suit le modèle pipes-and Filters.
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Conception différente que par l’approche monolithique., itératif.
● Modéliser le système en une suite de sous systèmes relier par des flux
sous lesquelles on peux appliquer des filtres pour modifier les données,
les router….
● Facilite les tests, la maintenance, les évolutions, les cadences…..
Pipes-and-Filters
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Représente le fil de message qui connecte les producteurs
et les consommateurs.
● Relient les filtres entre eux.
● Pour Spring, c’est une structure de données en mémoire
mais qui offre des possibilités de persistance, de haute
disponibilité, de Claim Check, de fail over, Transaction..
Message Channel (Pipe)
Spring Intégration
Relever les défis de l’intégration d’entreprise
Message Channel Point-to-point (P2P)
Spring Intégration
Relever les défis de l’intégration d’entreprise
Producteur
Consommateur
Consommateur
Consommateur
Channel
● Plusieurs consommateurs
possibles.
● Le message n’est consommé que
par un consommateur.
Message Channel Publish-Suscribe.
Spring Intégration
Relever les défis de l’intégration d’entreprise
Producteur
Consommateur
Consommateur
Consommateur
Channel
● Plusieurs consommateurs
possibles.
● Les messages sont consommés par
l”ensemble des consommateurs.
Message Channel HandOff (Sync)
Spring Intégration
Relever les défis de l’intégration d’entreprise
Producteur
Consommateur
Consommateur
Channel
Thread
● La publication et la consommation des messages dans un
seul Thread.
● La consommation est synchrone.
Message Channel HandOff (ASync)
Spring Intégration
Relever les défis de l’intégration d’entreprise
Producteur
Consommateur
Consommateur
Channel
Thread
● La publication et la consommation sont dans des Threads
distincts.
● La consommation est asynchrone.
Thread
● PoolableChannel (P2P, Asynchrone)
○ QueueChannel
■ PriorityChannel
■ RendezvousChannel.
● SubscribableChannel
○ DirectChannel (P2P, sync)
○ PublishSuscribeChannel. (Pub/Sub, Asynchrone)
○ ExecutorChannel (P2P, async)
Message Channel les différents types
Spring Intégration
Relever les défis de l’intégration d’entreprise
Message Channel Exemples
● Intégration fichier de contexte avec Espace de nom
spécifique
Spring Intégration
Relever les défis de l’intégration d’entreprise
<int:channel id="queueChannel">
<queue capacity="25"/>
<int:queue message-store="messageStore">
</int:channel>
<int-jdbc:message-store id="messageStore" data-source="someDataSource"/>
<int:publish-subscribe-channel id="pubsubChannel" task-executor="
someExecutor"/>
<bean id="someExecutor" class="org.springframework.scheduling.concurrent.
ThreadPoolTaskExecutor" />
Déclaration en programmation ou par
annotation possible.
Message
Spring Intégration
Relever les défis de l’intégration d’entreprise
● C'est l'enveloppe générique qui permet de faire transiter les
données au travers des Message Channels.
Headers :
● Stocker des "meta-data" sur le
message
● On peut stocker en programmation
des variables dans le “header” sous
forme de clé/valeur.
PayLod :
● C'est le corps du message ; il peut
encapsuler n'importe quel Objet
Java.
Message
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Les Headers des messages des meta-data sous forme de HashMap
Header Name Header Type
ID Identifiant unique du message
TIMESTAMP Date de publication
CORRELATION_ID Permettre l’agrégation de message
REPLY_CHANNEL Permettre de préciser un channel de retour
ERROR_CHANNEL (DMQ) Permettre de préciser un channel d’erreur
SEQUENCE_NUMBER Permettre l’agrégation de message
SEQUENCE_SIZE Permettre l’agrégation de message
EXPIRATION_DATE Date d’expiration
PRIORITY Prioriser les messages dans un channel
Router
Spring Intégration
Relever les défis de l’intégration d’entreprise
Producteur
● Router un message vers un sous process différent en
fonction des conditions du Message header ou contenu du
PayLoad.
● Le choix des destinations peut être statique ou dynamique.
Router
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Les composants Router statiques de Spring Intégration
HeaderValueRouter Il se base sur la valeur d'une propriété du
header pour définir le "MessageChannel"
de destination.
RecipientListRouter Permet de travailler avec plusieurs
MessageChannel de destination en
fonction de critères.
PayLoadTypeRouter Permet un routage en fonction du type de
PayLoad.
ErrorMessageExceptionTypeRouter Type Exception du PayLoad.
Router Exemples Statique
Spring Intégration
Relever les défis de l’intégration d’entreprise
<int:channel id="inputChannel">
<int:channel id="channel1">
<int:channel id="channel2">
<int:channel id="channel3">
<int:recipient-list-router id="customRouter" input-channel="inputChannel">
<int:recipient channel="channel1"/>
<int:recipient channel="channel2"/>
<int:recipient channel="channel3" selector-expression="headers.
containsKey('bar')" />
</int:recipient-list-router>
SPEL (Spring Expression Language)
BroadCasting
Router Exemples Dynamique
Spring Intégration
Relever les défis de l’intégration d’entreprise
public class DrinkRouter {
public String resolveOrderItemChannel(OrderItem orderItem) {
return (orderItem.isIced()) ? "coldDrinks" : "hotDrinks";
}
}
<int:router input-channel="drinks" ref="drinkRouter"
method="resolveOrderItemChannel"/>
<int:channel id="coldDrinks">
<int:queue capacity="10"/>
</int:channel>
<int:channel id="hotDrinks">
<int:queue capacity="10"/>
</int:channel>
- Cast Auto du PayLoad.
- Retour ref channel dans le contexte
Splitter
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Découper un message en plusieurs sous-messages,
déléguer à une classe tiers.
● Plusieurs propriétés du header sont utilisées pour ensuite
résoudre l’agrégation.
○ CORRELATION_ID
○ SEQUENCE_SIZE
○ SEQUENCE_NUMBER.
Splitter Exemples
Spring Intégration
Relever les défis de l’intégration d’entreprise
public class OrderSplitter {
public List<OrderItem> split(Order order) {
return order.getItems();
}
}
<int:splitter id="splitter"
ref="splitterBean"
method="split"
input-channel="inputChannel"
output-channel="outputChannel"/>
<int:channel id="inputChannel"/>
<int:channel id="outputChannel"/>
Agregator
Spring Intégration
Relever les défis de l’intégration d’entreprise
● C’est le miroir du Splitter, il sert à agréger plusieurs
messages en un seul.
● Il utilise les propriétés spécifiques du header.
○ CORRELATION_ID
○ SEQUENCE_SIZE
○ SEQUENCE_NUMBER.
● “State-Full” problème de mémoire, utilisation du
Claim Check Patern.
Agregator Exemples
Spring Intégration
Relever les défis de l’intégration d’entreprise
public class OrderAgregator {
public Order agregate(List < OrderItem> orders) {
return new Order(orders);
}
}
<int:aggregator input-channel="inputChannel" ref="
orderAgregator"
method="agregate" output-channel="
outputChannel"/>
<int:channel id="inputChannel"/>
<int:channel id="outputChannel"/>
Channel Adaptor
Spring Intégration
Relever les défis de l’intégration d’entreprise
● Permet d'interfacer une application, un middleware, un
transport vers le système de messagerie.
AMQP File FTP/FTPS
HTTP
TCP/UDP
JDBCJPAJMS
MailMongoDbRMI ………..
D’autres composants
Spring Intégration
Relever les défis de l’intégration d’entreprise
Permet de filtrer un message pour un passage d’un channel à un autre.
SPEL sur header ou payload ou via une classe externe.
Permettre de transformer ou enrichir un message, pratique pour
effectuer des étapes de sérialisation/désérialisation d’objets. Spring fourni
un certain nombre de composants : XML ⇔ Object, JSON ⇔ Object...
Service Activator permet de connecter l’entrée et la sortie d’un
service, à des Channels.
Gateway est un proxy qui permet d'interagir avec un channel de manière
découplée (Idem RmiProxyFactoryBean….)
….. Le Livre Entreprise Application Pattern définit plus de 65 Idéogramme
Spring Intégration les implémente tous.
Sping Intégration Inter et Intra Process.
Spring Intégration
Relever les défis de l’intégration d’entreprise
Service Web Le Service.
Transformer
Transformer
Poling
Adapter
Activator
JVM
Le Service.
JVM
Le Service.
Cas d’usage : le comparateur de Prix
Spring Intégration
Relever les défis de l’intégration d’entreprise
Site Web
CB  WS
CC  File
CA 
DataBase
Gateway
Request/Reply
Splitter
1 par Comp
Routing
id Comp dans Header
Transformer
PreparedStatement
Adaptor
JDBC
Transformer
Serialize SOAP
Adaptor
WS
Transformer
java.io.File
Adaptor
File
Poling
DirectoryAgregator
Spring MVC
Spring Intégration
Relever les défis de l’intégration d’entreprise
Cas d’usage : Envois des cartes de Tiers
Payant.
Préstataire
FTP
RPC
RMI
Services
CRM
File
Directory
<int-file:inbound-channel-adapter id="filesChannel"
directory="file:${input.directory}" prevent-duplicates="true">
<int-file:nio-locker />
<int:poller fixed-rate="1000"/>
<int-file:inbound-channel-adapter/>
<int-file:file-to-bytes-transformer input-channel="filesChannel" output-channel="bytesChannel"
delete-files="true"/>
<int:service-activator input-channel="bytesChannel"
ref="serviceEditique"
method="nouvelleCarte">
<int:poller task-executor="pool" fixed-rate="1000"/>
</int:service-activator>
<task:executor id="pool" pool-size="5"/>
<bean id="userService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://localhost:1097/userService"/>
<property name="serviceInterface" value="com.camaris.interfaces.UserService"/>
<property name="refreshStubOnConnectFailure" value="true"/>
</bean>
File Adapter
Poling
Transformer
File ⇔ byte
Service
Activator
File
Bytes[]
Spring Intégration
Relever les défis de l’intégration d’entreprise
Cas d’usage : Gestion des Personnes.
Site Web
Web Services
XML, SOAP
Services Site
Web
Front Office
Sprint MVC
RPC
RMI
Services
CRM
API REST .Net
JSON
Services A
IA
PostgresSql
PostgresSql
Oracle
CRM
Front Office
Sprint MVC
AIA
Front Office
Client Lourd C++
Spring Intégration
Relever les défis de l’intégration d’entreprise
Processus Gestion des Personnes.
Site Web
Web Services
XML, SOAP
Services Site
Web
RPC / Spring Remoting
RMI
API REST .Net
JSON
Services
AIA
PostgresSql
PostgresSql
Oracle
Services
CRM
Messagerie
Transformer
Object ⇔ XML
Transformer
Object ⇔ JSON
Service Activator
Adapter WS
Adapter HTTP
Filter
Seulement Adhérent
CRM
Front Office
Sprint MVC
AIA
Front Office
Client Lourd C++
Front Office
Sprint MVC
Gateway
Router List
Identifaint Source Dans
Header
Filter
ExtId
Adapter JDBC
/Poling
Spring Intégration
Relever les défis de l’intégration d’entreprise
Support dans les IDE
Spring Intégration
Relever les défis de l’intégration d’entreprise
Monitoring.
Channel Interceptor
Wire-Tap
Message History
JMX
Spring Intégration
Relever les défis de l’intégration d’entreprise
Historique du Projet.
● 1.0.0 Nov 2008
● 2.0.0 Nov 2010
● 2.1.0 Janv 2012
● 2.2.0 Mai 2013 Le projet en pleine essor.
accélération des versions tous les 2-3 Mois.
● 2.2.5 Septembre 2013
● 2.3.0M3 Sept 2013
● …...
Beta version en parallèle.
Spring Intégration
Relever les défis de l’intégration d’entreprise
FAQ : Sprint Intégration Vs Apache Camel
● Sa facilité d’intégration et d’utilisation dans un
écosystème Spring.
● Composant sur étagère, pas de différente
version pour un même composant.
● 1:1 EIP, pas de concept supplémentaire.
Spring Intégration
Relever les défis de l’intégration d’entreprise
FAQ : Et les ESB ?
● Un ESB est une offre Middleware complète.
● Spring Intégration est un frameworks une
boite à outils basé sur les EIP.
● Spring Intégration est dis LightWeight.
● Spring Intégration l’ESB Light.
Spring Intégration
Questions ?

More Related Content

What's hot

What's hot (20)

Cours jee 1
Cours jee 1Cours jee 1
Cours jee 1
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
JBoss - chapitre JMX
JBoss - chapitre JMXJBoss - chapitre JMX
JBoss - chapitre JMX
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Spring 3.0
Spring 3.0Spring 3.0
Spring 3.0
 
Maven
MavenMaven
Maven
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
 
J2ee
J2eeJ2ee
J2ee
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
ParisJUG Spring Boot
ParisJUG Spring BootParisJUG Spring Boot
ParisJUG Spring Boot
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Soap
SoapSoap
Soap
 

Viewers also liked

Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...
Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...
Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...MONA
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Stéphane Traumat
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etlhoracio lassey
 
Le Guide du Recruteur Moderne
Le Guide du Recruteur ModerneLe Guide du Recruteur Moderne
Le Guide du Recruteur ModernePierre Bernard
 
Etude Apec - Les cadres séniors : recrutement et intégration en entreprise
Etude Apec - Les cadres séniors : recrutement et intégration en entrepriseEtude Apec - Les cadres séniors : recrutement et intégration en entreprise
Etude Apec - Les cadres séniors : recrutement et intégration en entrepriseApec
 
Le système d’information de l’entreprise
Le système d’information de l’entrepriseLe système d’information de l’entreprise
Le système d’information de l’entrepriseLee Schlenker
 
Comment recruter juste ? (1ère partie)
Comment recruter juste ? (1ère partie)Comment recruter juste ? (1ère partie)
Comment recruter juste ? (1ère partie)CCI LA ROCHELLE
 
Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'hortis
 
Mémoire de licence - recrutement 2.0 et sourcing
Mémoire de licence - recrutement 2.0 et sourcingMémoire de licence - recrutement 2.0 et sourcing
Mémoire de licence - recrutement 2.0 et sourcingBruno SAUVÉ
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 

Viewers also liked (11)

Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...
Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...
Formation MOPA : Manager son équipe - L'outil GPEC (Gestion Prévisionnelle de...
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etl
 
Le Guide du Recruteur Moderne
Le Guide du Recruteur ModerneLe Guide du Recruteur Moderne
Le Guide du Recruteur Moderne
 
Etude Apec - Les cadres séniors : recrutement et intégration en entreprise
Etude Apec - Les cadres séniors : recrutement et intégration en entrepriseEtude Apec - Les cadres séniors : recrutement et intégration en entreprise
Etude Apec - Les cadres séniors : recrutement et intégration en entreprise
 
Le système d’information de l’entreprise
Le système d’information de l’entrepriseLe système d’information de l’entreprise
Le système d’information de l’entreprise
 
Comment recruter juste ? (1ère partie)
Comment recruter juste ? (1ère partie)Comment recruter juste ? (1ère partie)
Comment recruter juste ? (1ère partie)
 
Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'
 
Mémoire de licence - recrutement 2.0 et sourcing
Mémoire de licence - recrutement 2.0 et sourcingMémoire de licence - recrutement 2.0 et sourcing
Mémoire de licence - recrutement 2.0 et sourcing
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 

Similar to Tech Days Spring Intégration

Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323Laurent Broudoux
 
PHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadiennePHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadienneDamien Seguy
 
Introduction à Spring.pdf
Introduction à Spring.pdfIntroduction à Spring.pdf
Introduction à Spring.pdfbadrfathallah2
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUGFabrice Bellingard
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Didier Girard
 
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogèneMise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogèneGrégory Ott
 
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogèneMise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogèneMicrosoft Technet France
 
Kalistick MixIT dev@cloud
Kalistick MixIT dev@cloudKalistick MixIT dev@cloud
Kalistick MixIT dev@cloudkalistick
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008mlefebvre
 
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre quelle est la mei...
Upgrade oracle people soft 9.2   a quoi faut-il s’attendre  quelle est la mei...Upgrade oracle people soft 9.2   a quoi faut-il s’attendre  quelle est la mei...
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre quelle est la mei...Business At Work
 
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre ? quelle est la m...
Upgrade oracle people soft 9.2   a quoi faut-il s’attendre ?  quelle est la m...Upgrade oracle people soft 9.2   a quoi faut-il s’attendre ?  quelle est la m...
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre ? quelle est la m...patrickboisdenghien
 
AFUP Forum PHP 2009 : Oui ! PHP est industriel !
AFUP Forum PHP 2009 : Oui ! PHP est industriel !AFUP Forum PHP 2009 : Oui ! PHP est industriel !
AFUP Forum PHP 2009 : Oui ! PHP est industriel !PHPPRO
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Samuel Metias
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 

Similar to Tech Days Spring Intégration (20)

Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
Talk Red Hat Entreprise Numerique - Eip Designer - 20160323
 
PHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadiennePHP dans la grande entreprise canadienne
PHP dans la grande entreprise canadienne
 
Introduction à Spring.pdf
Introduction à Spring.pdfIntroduction à Spring.pdf
Introduction à Spring.pdf
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010
 
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogèneMise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogène
 
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogèneMise en œuvre de TFS 2010 dans un environnement technologique hétérogène
Mise en œuvre de TFS 2010 dans un environnement technologique hétérogène
 
ModéLisation De Workflow En Uml
ModéLisation De Workflow En UmlModéLisation De Workflow En Uml
ModéLisation De Workflow En Uml
 
Kalistick MixIT dev@cloud
Kalistick MixIT dev@cloudKalistick MixIT dev@cloud
Kalistick MixIT dev@cloud
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
 
Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008Présentation Sollan I-Expo 2008
Présentation Sollan I-Expo 2008
 
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre quelle est la mei...
Upgrade oracle people soft 9.2   a quoi faut-il s’attendre  quelle est la mei...Upgrade oracle people soft 9.2   a quoi faut-il s’attendre  quelle est la mei...
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre quelle est la mei...
 
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre ? quelle est la m...
Upgrade oracle people soft 9.2   a quoi faut-il s’attendre ?  quelle est la m...Upgrade oracle people soft 9.2   a quoi faut-il s’attendre ?  quelle est la m...
Upgrade oracle people soft 9.2 a quoi faut-il s’attendre ? quelle est la m...
 
AFUP Forum PHP 2009 : Oui ! PHP est industriel !
AFUP Forum PHP 2009 : Oui ! PHP est industriel !AFUP Forum PHP 2009 : Oui ! PHP est industriel !
AFUP Forum PHP 2009 : Oui ! PHP est industriel !
 
Dreamforce Global Gathering
Dreamforce Global GatheringDreamforce Global Gathering
Dreamforce Global Gathering
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 

Tech Days Spring Intégration

  • 1. Spring Intégration Relever les défis de l’intégration d’entreprise
  • 2. Spring Intégration Relever les défis de l’intégration d’entreprise ● Les Défis de l’intégration d’entreprise. ● Les Entreprise Integration Patterns (EIP). ● Le Framework Spring Intégration. Le Plan
  • 3. Spring Intégration Relever les défis de l’intégration d’entreprise Stéphane Goumard ● Expertise environnement Java. ○ Architecte technique ○ Consultant ○ Formateur.
  • 4. ● Une application isolée n’existe pas. ● SI complexe, sous systèmes hétérogènes, disparates. ● Apparition de nouvelles techno ou évolutions “IC” <=> “DevOps” ● Défaillance de l’infrastructure (Scalable, Interopérabilité, “Fail Over”) .Net Java BigData WS Les Défis de l’intégration d’entreprise Spring Intégration Relever les défis de l’intégration d’entreprise.
  • 5. ● Simplifier les échanges entre applications tout en tenant compte des différentes contraintes inhérentes à un SI hétérogène. ● Pour résoudre cette problématique d'intégration d'environnement, il est nécessaire de mettre en place de la glu logicielle entre ses systèmes et ses applications. ● Les Entreprise Integration Patterns (EIP) sont des patterns pour résoudre l'intégration de systèmes hétérogènes et Spring Intégration en est un frameworks. Les Défis de l’intégration d’entreprise Spring Intégration Relever les défis de l’intégration d’entreprise
  • 6. Application A ● File Transfert Les différents Style D’intégration. Spring Intégration Relever les défis de l’intégration d’entreprise E x p o r t I m p o r t Application B Avantages: - Simple à mettre en oeuvre - Découplage (technique, temporel, physique) - Toujours utilisé HDFS / Hadoop Inconvénients : - Accès concourant. - Pas de transactions - Sécurité. - Intéropérabilité - Peu fiable. File
  • 7. ● Shared Database Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise Avantages: - Transaction simple - Centralisation - Sécurité - Scalable, fail over. Inconvénients : - Application lié au schéma. - Schéma unifié / figé - Évolution difficile => Évolution NoSql Schéma Less. Application A Application B Application C DBC DBC DBC
  • 8. ● RPC (Approche orientée Services SOA) Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise Avantages: - Simple mise en oeuvre programme - Découplage technique - Réutilisation du fonctionnel - Maintenance Inconvénients : - Couplage temporel (Fail Over) - Pas Scalable - Interopérabilité. - Point to Point Application A Application B Inerface RPCRequest Reply
  • 9. ● Point à Point Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise SOA Editque Datawarehouse CRM Batchs Processing HBase / HDFS WS Préstataires
  • 10. ● Le Style “Asynchronous Messaging” Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise Application A (Producteur) A d a p t e r Messages A d a p t e r Application B ( Consommateur ) Messages Channel Broker Messaging
  • 11. ● Le Style “Asynchronous Messaging” Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise ● Découplage Temporel, Communication asynchrone Notion de tampon “Buffer”, Fire and Forget. ● Logique d’intercepteur (Routing, Filtre, Transformation), Découplage physique. ● Scalable, Fiable : ○ Routing permettre de router le message sur des conditions. ○ Pipeline, Cadencé (Montée en charge), Claim check patern. ○ Broadcasting : permettre la diffusion d’un message à plusieurs, traitement en parallèle. ○ Fail Over via des mécanismes de persistance.
  • 12. Spring Intégration Relever les défis de l’intégration d’entreprise WS PréstatairesHBase / HDFSBatchs Processing SOA EditqueDatawarehouse CRM Les différents styles d’intégration ● Le Style “Asynchronous Messaging”
  • 13. ● Le Style “Asynchronous Messaging” Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise ● Pas de contexte transactionnel entre production et consommation ● Propagation du contexte de sécurité difficile ● Gestion des erreurs complexes
  • 14. ● Messaging - le besoin de conceptualiser Les différents styles d’intégration Spring Intégration Relever les défis de l’intégration d’entreprise ● Les Messages : les données sont encodées dans un message avec un header et un body. ● Les Channel : il établit la liaison entre deux applications, c’est un chemin virtuel par lequel est transmis et reçu les messages. ● End Point : c’est le point d’entrée et sortie du système de messaging. ● Transformer : traitement spécifique destiné à adapter un message au traitement suivant. ● Pipe, Filter, Router : enchaînement de traitements destinés à orchestrer le traitement d’un message.
  • 15. ● Introduit un langage sémantique, un ensemble de patterns et d’idéogrammes permettant de conceptualiser, architecturer un SI sur le style du messaging. Entreprise Intégration Patterns (EIP) Spring Intégration Relever les défis de l’intégration d’entreprise ● Bible, catalogue de références sur les EIP ● Ecrit en Octobre 2003 par Gregor Hohpe et Bobby WoolF et toujours d’actualité ● C’est devenu un standard pour tous les frameworks qui ont implémenté les EIP comme Spring Intégration ou Apache Camel.
  • 16. Entreprise Intégration Patterns (EIP) Spring Intégration Relever les défis de l’intégration d’entreprise
  • 17. Entreprise Intégration Patterns (EIP) Spring Intégration Relever les défis de l’intégration d’entreprise
  • 18. ● Modéliser les EIP à l’aide de composants techniques pour permettre une implémentation d’intégration sur le style du messaging. Frameworks EIP Spring Intégration Relever les défis de l’intégration d’entreprise Spring Intégration Apache Camel
  • 19. ● Fournir un modèle simple pour implémenter des solutions complexes d’EAI ● Une plateforme de Messaging basée sur les principes d’ EDA (Event Driven Architecture) ● Fournir une liste des composants sur étagère pour permettre la mise en oeuvre des Patterns EIP ● Faciliter la mise en oeuvre d’un modèle d'échanges asynchrones orientés message dans un environnement basé sur Spring. Spring Intégration (Mark Fisher) Spring Intégration Relever les défis de l’intégration d’entreprise
  • 20. ● Couplage lâche entre composants pour faciliter la modularité et la testabilité ● Respect de la séparation des préoccupations (separation of concerns) entre la logique métier et la logique d’intégration. ● Points d’extension abstraits mais clairement définis afin de promouvoir la réutilisation et la portabilité. Eco-Système Spring. Spring Intégration Relever les défis de l’intégration d’entreprise
  • 21. Eco-Système Spring. Spring Intégration Relever les défis de l’intégration d’entreprise
  • 22. Pipes-and-Filters ● Le système de messaging proposé par Spring Intégration suit le modèle pipes-and Filters. Spring Intégration Relever les défis de l’intégration d’entreprise ● Conception différente que par l’approche monolithique., itératif. ● Modéliser le système en une suite de sous systèmes relier par des flux sous lesquelles on peux appliquer des filtres pour modifier les données, les router…. ● Facilite les tests, la maintenance, les évolutions, les cadences…..
  • 23. Pipes-and-Filters Spring Intégration Relever les défis de l’intégration d’entreprise
  • 24. ● Représente le fil de message qui connecte les producteurs et les consommateurs. ● Relient les filtres entre eux. ● Pour Spring, c’est une structure de données en mémoire mais qui offre des possibilités de persistance, de haute disponibilité, de Claim Check, de fail over, Transaction.. Message Channel (Pipe) Spring Intégration Relever les défis de l’intégration d’entreprise
  • 25. Message Channel Point-to-point (P2P) Spring Intégration Relever les défis de l’intégration d’entreprise Producteur Consommateur Consommateur Consommateur Channel ● Plusieurs consommateurs possibles. ● Le message n’est consommé que par un consommateur.
  • 26. Message Channel Publish-Suscribe. Spring Intégration Relever les défis de l’intégration d’entreprise Producteur Consommateur Consommateur Consommateur Channel ● Plusieurs consommateurs possibles. ● Les messages sont consommés par l”ensemble des consommateurs.
  • 27. Message Channel HandOff (Sync) Spring Intégration Relever les défis de l’intégration d’entreprise Producteur Consommateur Consommateur Channel Thread ● La publication et la consommation des messages dans un seul Thread. ● La consommation est synchrone.
  • 28. Message Channel HandOff (ASync) Spring Intégration Relever les défis de l’intégration d’entreprise Producteur Consommateur Consommateur Channel Thread ● La publication et la consommation sont dans des Threads distincts. ● La consommation est asynchrone. Thread
  • 29. ● PoolableChannel (P2P, Asynchrone) ○ QueueChannel ■ PriorityChannel ■ RendezvousChannel. ● SubscribableChannel ○ DirectChannel (P2P, sync) ○ PublishSuscribeChannel. (Pub/Sub, Asynchrone) ○ ExecutorChannel (P2P, async) Message Channel les différents types Spring Intégration Relever les défis de l’intégration d’entreprise
  • 30. Message Channel Exemples ● Intégration fichier de contexte avec Espace de nom spécifique Spring Intégration Relever les défis de l’intégration d’entreprise <int:channel id="queueChannel"> <queue capacity="25"/> <int:queue message-store="messageStore"> </int:channel> <int-jdbc:message-store id="messageStore" data-source="someDataSource"/> <int:publish-subscribe-channel id="pubsubChannel" task-executor=" someExecutor"/> <bean id="someExecutor" class="org.springframework.scheduling.concurrent. ThreadPoolTaskExecutor" /> Déclaration en programmation ou par annotation possible.
  • 31. Message Spring Intégration Relever les défis de l’intégration d’entreprise ● C'est l'enveloppe générique qui permet de faire transiter les données au travers des Message Channels. Headers : ● Stocker des "meta-data" sur le message ● On peut stocker en programmation des variables dans le “header” sous forme de clé/valeur. PayLod : ● C'est le corps du message ; il peut encapsuler n'importe quel Objet Java.
  • 32. Message Spring Intégration Relever les défis de l’intégration d’entreprise ● Les Headers des messages des meta-data sous forme de HashMap Header Name Header Type ID Identifiant unique du message TIMESTAMP Date de publication CORRELATION_ID Permettre l’agrégation de message REPLY_CHANNEL Permettre de préciser un channel de retour ERROR_CHANNEL (DMQ) Permettre de préciser un channel d’erreur SEQUENCE_NUMBER Permettre l’agrégation de message SEQUENCE_SIZE Permettre l’agrégation de message EXPIRATION_DATE Date d’expiration PRIORITY Prioriser les messages dans un channel
  • 33. Router Spring Intégration Relever les défis de l’intégration d’entreprise Producteur ● Router un message vers un sous process différent en fonction des conditions du Message header ou contenu du PayLoad. ● Le choix des destinations peut être statique ou dynamique.
  • 34. Router Spring Intégration Relever les défis de l’intégration d’entreprise ● Les composants Router statiques de Spring Intégration HeaderValueRouter Il se base sur la valeur d'une propriété du header pour définir le "MessageChannel" de destination. RecipientListRouter Permet de travailler avec plusieurs MessageChannel de destination en fonction de critères. PayLoadTypeRouter Permet un routage en fonction du type de PayLoad. ErrorMessageExceptionTypeRouter Type Exception du PayLoad.
  • 35. Router Exemples Statique Spring Intégration Relever les défis de l’intégration d’entreprise <int:channel id="inputChannel"> <int:channel id="channel1"> <int:channel id="channel2"> <int:channel id="channel3"> <int:recipient-list-router id="customRouter" input-channel="inputChannel"> <int:recipient channel="channel1"/> <int:recipient channel="channel2"/> <int:recipient channel="channel3" selector-expression="headers. containsKey('bar')" /> </int:recipient-list-router> SPEL (Spring Expression Language) BroadCasting
  • 36. Router Exemples Dynamique Spring Intégration Relever les défis de l’intégration d’entreprise public class DrinkRouter { public String resolveOrderItemChannel(OrderItem orderItem) { return (orderItem.isIced()) ? "coldDrinks" : "hotDrinks"; } } <int:router input-channel="drinks" ref="drinkRouter" method="resolveOrderItemChannel"/> <int:channel id="coldDrinks"> <int:queue capacity="10"/> </int:channel> <int:channel id="hotDrinks"> <int:queue capacity="10"/> </int:channel> - Cast Auto du PayLoad. - Retour ref channel dans le contexte
  • 37. Splitter Spring Intégration Relever les défis de l’intégration d’entreprise ● Découper un message en plusieurs sous-messages, déléguer à une classe tiers. ● Plusieurs propriétés du header sont utilisées pour ensuite résoudre l’agrégation. ○ CORRELATION_ID ○ SEQUENCE_SIZE ○ SEQUENCE_NUMBER.
  • 38. Splitter Exemples Spring Intégration Relever les défis de l’intégration d’entreprise public class OrderSplitter { public List<OrderItem> split(Order order) { return order.getItems(); } } <int:splitter id="splitter" ref="splitterBean" method="split" input-channel="inputChannel" output-channel="outputChannel"/> <int:channel id="inputChannel"/> <int:channel id="outputChannel"/>
  • 39. Agregator Spring Intégration Relever les défis de l’intégration d’entreprise ● C’est le miroir du Splitter, il sert à agréger plusieurs messages en un seul. ● Il utilise les propriétés spécifiques du header. ○ CORRELATION_ID ○ SEQUENCE_SIZE ○ SEQUENCE_NUMBER. ● “State-Full” problème de mémoire, utilisation du Claim Check Patern.
  • 40. Agregator Exemples Spring Intégration Relever les défis de l’intégration d’entreprise public class OrderAgregator { public Order agregate(List < OrderItem> orders) { return new Order(orders); } } <int:aggregator input-channel="inputChannel" ref=" orderAgregator" method="agregate" output-channel=" outputChannel"/> <int:channel id="inputChannel"/> <int:channel id="outputChannel"/>
  • 41. Channel Adaptor Spring Intégration Relever les défis de l’intégration d’entreprise ● Permet d'interfacer une application, un middleware, un transport vers le système de messagerie. AMQP File FTP/FTPS HTTP TCP/UDP JDBCJPAJMS MailMongoDbRMI ………..
  • 42. D’autres composants Spring Intégration Relever les défis de l’intégration d’entreprise Permet de filtrer un message pour un passage d’un channel à un autre. SPEL sur header ou payload ou via une classe externe. Permettre de transformer ou enrichir un message, pratique pour effectuer des étapes de sérialisation/désérialisation d’objets. Spring fourni un certain nombre de composants : XML ⇔ Object, JSON ⇔ Object... Service Activator permet de connecter l’entrée et la sortie d’un service, à des Channels. Gateway est un proxy qui permet d'interagir avec un channel de manière découplée (Idem RmiProxyFactoryBean….) ….. Le Livre Entreprise Application Pattern définit plus de 65 Idéogramme Spring Intégration les implémente tous.
  • 43. Sping Intégration Inter et Intra Process. Spring Intégration Relever les défis de l’intégration d’entreprise Service Web Le Service. Transformer Transformer Poling Adapter Activator JVM Le Service. JVM Le Service.
  • 44. Cas d’usage : le comparateur de Prix Spring Intégration Relever les défis de l’intégration d’entreprise Site Web CB WS CC File CA DataBase Gateway Request/Reply Splitter 1 par Comp Routing id Comp dans Header Transformer PreparedStatement Adaptor JDBC Transformer Serialize SOAP Adaptor WS Transformer java.io.File Adaptor File Poling DirectoryAgregator Spring MVC
  • 45. Spring Intégration Relever les défis de l’intégration d’entreprise Cas d’usage : Envois des cartes de Tiers Payant. Préstataire FTP RPC RMI Services CRM File Directory <int-file:inbound-channel-adapter id="filesChannel" directory="file:${input.directory}" prevent-duplicates="true"> <int-file:nio-locker /> <int:poller fixed-rate="1000"/> <int-file:inbound-channel-adapter/> <int-file:file-to-bytes-transformer input-channel="filesChannel" output-channel="bytesChannel" delete-files="true"/> <int:service-activator input-channel="bytesChannel" ref="serviceEditique" method="nouvelleCarte"> <int:poller task-executor="pool" fixed-rate="1000"/> </int:service-activator> <task:executor id="pool" pool-size="5"/> <bean id="userService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"> <property name="serviceUrl" value="rmi://localhost:1097/userService"/> <property name="serviceInterface" value="com.camaris.interfaces.UserService"/> <property name="refreshStubOnConnectFailure" value="true"/> </bean> File Adapter Poling Transformer File ⇔ byte Service Activator File Bytes[]
  • 46. Spring Intégration Relever les défis de l’intégration d’entreprise Cas d’usage : Gestion des Personnes. Site Web Web Services XML, SOAP Services Site Web Front Office Sprint MVC RPC RMI Services CRM API REST .Net JSON Services A IA PostgresSql PostgresSql Oracle CRM Front Office Sprint MVC AIA Front Office Client Lourd C++
  • 47. Spring Intégration Relever les défis de l’intégration d’entreprise Processus Gestion des Personnes. Site Web Web Services XML, SOAP Services Site Web RPC / Spring Remoting RMI API REST .Net JSON Services AIA PostgresSql PostgresSql Oracle Services CRM Messagerie Transformer Object ⇔ XML Transformer Object ⇔ JSON Service Activator Adapter WS Adapter HTTP Filter Seulement Adhérent CRM Front Office Sprint MVC AIA Front Office Client Lourd C++ Front Office Sprint MVC Gateway Router List Identifaint Source Dans Header Filter ExtId Adapter JDBC /Poling
  • 48. Spring Intégration Relever les défis de l’intégration d’entreprise Support dans les IDE
  • 49. Spring Intégration Relever les défis de l’intégration d’entreprise Monitoring. Channel Interceptor Wire-Tap Message History JMX
  • 50. Spring Intégration Relever les défis de l’intégration d’entreprise Historique du Projet. ● 1.0.0 Nov 2008 ● 2.0.0 Nov 2010 ● 2.1.0 Janv 2012 ● 2.2.0 Mai 2013 Le projet en pleine essor. accélération des versions tous les 2-3 Mois. ● 2.2.5 Septembre 2013 ● 2.3.0M3 Sept 2013 ● …... Beta version en parallèle.
  • 51. Spring Intégration Relever les défis de l’intégration d’entreprise FAQ : Sprint Intégration Vs Apache Camel ● Sa facilité d’intégration et d’utilisation dans un écosystème Spring. ● Composant sur étagère, pas de différente version pour un même composant. ● 1:1 EIP, pas de concept supplémentaire.
  • 52. Spring Intégration Relever les défis de l’intégration d’entreprise FAQ : Et les ESB ? ● Un ESB est une offre Middleware complète. ● Spring Intégration est un frameworks une boite à outils basé sur les EIP. ● Spring Intégration est dis LightWeight. ● Spring Intégration l’ESB Light.