SlideShare une entreprise Scribd logo
1  sur  23
Spring	
  Integra,on	
  in	
  Ac,on	
  
Grégory	
  Boissinot	
  
@gboissinot	
  
20	
  septembre	
  2013	
  
Jug	
  SummerCamp	
  
Grégory	
  Boissinot	
  
•  Directeur	
  technique	
  Zenika	
  Paris	
  
•  Formateur	
  cer,fié	
  Springsource	
  
•  CommiGer	
  Jenkins	
  
L'intégra,on	
  avec	
  des	
  systèmes	
  
externes	
  est	
  un	
  challenge	
  
Difficulté	
  d'intégra,on	
  des	
  
données	
  et	
  des	
  services	
  
Spring	
  Integra,on	
  
Une	
  brique	
  de	
  messaging	
  légère	
  
•  "Pipe	
  and	
  Filter"	
  Architecture	
  
– Message	
  (Data)	
  
– Endpoint	
  (Filter)	
  
– Channel	
  (Pipe)	
  
•  Implémenta,on	
  non	
  monolithique,	
  à	
  base	
  de	
  
messages	
  
Channel	
  Endpoint	
  
Message	
   Message	
  
Endpoint	
  
Source	
  
?	
  
Target	
  
?	
  
Endpoint	
  
...	
  
Channel	
  
Entreprise	
  Integra,on	
  PaGerns	
  (EIP)	
  
•  Transformer	
  
•  Router	
  
•  Filter	
  
•  SpliGer	
  
•  Aggregator	
  
•  ServiceAc,vator	
  
•  Poller	
  
•  etc	
  
Spring	
  Integra,on	
  fournit	
  	
  
un	
  support	
  des	
  EIP	
  
External	
  
Business	
  Partener	
  
Un	
  usage	
  intra	
  et	
  inter	
  applica,on	
  
JVM	
   JVM	
  
`	
  
B2B	
   • 	
  Business	
  to	
  Business	
  Integra,on	
  (B2B)	
  
• 	
  Inter	
  Applica,on	
  Integra,on	
  (EAI)	
  
• 	
  Intra	
  Applica,on	
  Integra,on	
  
EAI	
  
Core	
  Messaging	
  
Applica,on	
  Integra,on	
  
Spring	
  Integra,on	
  
Une	
  plateforme	
  d'intégra,on	
  à	
  base	
  
d'adaptateurs	
  
APPLICATION	
  
Adapter	
  
Adapter	
  
Adapter	
  
JMS	
  
Web	
  Services	
  
RMI	
  
XML	
  
.	
  .	
  .	
  Spring	
  Integ.	
  
Adapter	
  
...	
  
	
  hGp://www.springsource.org/extensions/se-­‐sia	
  
Liste	
  des	
  adaptateurs	
  
•  AMQP/RabbitMQ	
  
•  HTTP	
  (REST)	
  
•  Web	
  services	
  SOAP	
  
•  JMS	
  
•  JMX	
  
•  JDBC	
  
•  RMI	
  
•  JPA	
  
•  File/Resource	
  
•  FTP	
  /	
  SFTP	
  
•  MongoDB	
  
•  Redis	
  
•  XPath	
  
•  TwiGer	
  
•  etc	
  
Exemples	
  de	
  cas	
  d'u,lisa,on	
  (1/2)	
  
FILE	
   FILE	
   FILE	
  
JMS	
  Queue	
  
JMS	
  Consumer	
   JMS	
  Consumer	
  
Flow	
  Spring	
  Integ.	
  
JMS	
  
File	
   File	
  Inbound	
  channel	
  
Adpter	
  
Outbound	
  channel	
  
Adpter	
  
Infra.	
  
Exemples	
  de	
  cas	
  d'u,lisa,on	
  (2/2)	
  
REST	
  API	
  
DataStore	
  
request	
  response	
  
Flow	
  Spring	
  Integ.	
  
Bean	
  Spring	
  
Publish-­‐Subscribe	
  
Channel	
  
Synchronous	
  HTTP	
  
Gateway	
  
Endpoint	
  
Outbound	
  channel	
  
Adpter	
  
Response	
  
	
  Channel	
  
Service	
  
Ac,vator	
  
Un	
  modèle	
  de	
  programma,on	
  Spring	
  
<!– Fichier Spring Application Context -->
<!– Inbound Endpoint -->
<int-file:inbound-channel-adapter id="inputChannel"
directory="file:${input.directory}">
<int:poller task-executor="pool" fixed-delay="1000">
<transactional />
</int:poller>
</int-file:ibound-channel-adapteur>
<!– Pool de threads -->
<task:executor id="pool" pool-size="10"/>
<!– Pollable Channel -->
<int:channel id="inputChannel" />
<!– Call Spring Java Bean -->
<int:service-activator
input-channel="pollableChannel"
ref="myServiceBean" />
Dependency	
  Injec,on	
  
Method	
  
Invoca,on	
  
Task	
  Scheduling	
  
Déploiement	
  
•  1	
  simple	
  librairie	
  non	
  invasive	
  
•  Pas	
  de	
  container/serveur	
  (ou	
  de	
  
broker)	
  
•  Aucune	
  installa,on	
  
•  Pas	
  de	
  configura,on	
  logicielle	
  
	
  <dependency>	
  
	
   <groupId>org.springframework.integra,on</groupId>	
  
	
   <ar,factId>spring-­‐integra,on-­‐core</ar,factId>	
  
	
   <version>${spring.integra,on.version}</version>	
  
</dependency>	
  
LIB	
  
APPLICATION	
  
Uses	
  
Spring	
  
Integra,on	
  
Library	
  
Spring	
  Integra,on	
  comme	
  
"Middleware	
  Integra,on	
  plalorm"	
  
AN	
  INETGRATION	
  APPLICATION	
  
(with	
  only	
  Spring	
  Integra,on	
  Jars)	
  
APPLICATION	
  A	
   APPLICATION	
  B	
  
Exis,ng	
  
Vendors	
  
Future	
  
Requirements	
  
Adapter	
   Adapter	
  
Adapter	
  Adapter	
  
Le	
  Channel:	
  l'élément	
  central	
  
•  Découple	
  le	
  producteur	
  et	
  le	
  consommateur	
  
Producer	
   Message	
   Consumer	
  Message	
  
•  En	
  mémoire	
  (Pas	
  de	
  broker	
  &	
  pas	
  de	
  persistance	
  par	
  défaut)	
  
•  Facilite	
  le	
  "buffering"	
  et	
  les	
  mécanismes	
  d'intercep,on	
  
•  Se	
  caractérise	
  par	
  ltype	
  de	
  "delivery"	
  et	
  le	
  type	
  de	
  "handoff"	
  
Synchronous	
  Handoff	
  
Asynchronous	
  Handoff	
  
Producer	
  
Consumer	
  
Consumer	
  
Consumer	
  
Point-­‐to	
  Point	
  Delivery	
  
Producer	
  
Consumer	
  
Consumer	
  
Consumer	
  
Publish-­‐Subscribe	
  Delivery	
  
Spring	
  Integra,on	
  et	
  Spring	
  Batch	
  
File	
  
Spring	
  Batch	
  Admin	
  
Spring	
  Integra,on	
  
Spring	
  Batch	
  
DB	
  
Batch	
  Applica,on	
  
Spring	
  Integra,on	
  en	
  tant	
  que	
  brique	
  addi,onnelle	
  à	
  
Spring	
  Batch	
  
Spring	
  Integra,on	
  et	
  Spring	
  Batch	
  
Modèle	
  de	
  déléga,on	
  
File	
  
ItemReader	
  
ItemProcessor	
  
ItemWriter	
  
Report	
  
A	
  Spring	
  Integra,on	
  Flow	
  
"Chunk-­‐oriented"	
  
Step1	
  
Step2	
  
Spring	
  Batch	
  
Gateway	
  
Spring	
  Batch	
  et	
  Spring	
  Intégra,on	
  
Modèle	
  par	
  "Évènement"	
  
File	
  
SI	
  JobLauncher	
  
Endpoint	
  
File	
   JobLauncherRequest	
  
Spring	
  Batch	
  
JobLauncher	
  
Transformer	
  
Spring	
  Integ.	
  
Spring	
  Batch	
  
Spring	
  integ.	
  
Pollable	
  Inbound	
  
Channel	
  Adapter	
  
Scaling	
  Spring	
  Integra,on	
  Flow	
  
"Claim	
  Check	
  PaGern"	
  
Incoming	
  Claim	
  
Check	
  transformer	
  
Original	
  
Object	
  
UUID	
  
Outgoing	
  Claim	
  
Check	
  transformer	
  
Original	
  
Object	
  
Message	
  
Store	
  
Original	
  
Object	
  
Generated	
  	
  
Key	
  ID	
  
	
  (UUID)	
  
High	
  Availability	
  (HA)	
  Architecture	
  
Inbound	
  	
  Adapter	
  
Inbound	
  	
  Adapter	
  
SI	
  Flow	
  
SI	
  Flow	
  
Compe,,ng	
  Consumers	
  Message	
  Queue	
  
(JMS.,	
  RabbitMQ,	
  
etc)	
  
A	
  ac,ve	
  node	
  	
  for	
  a	
  single	
  	
  
source	
  
Default	
  is	
  round-­‐robin	
  load	
  balancer	
  with	
  failover	
  
Threads	
  
Thread	
  Pool	
  
Dispatching	
  
Message	
  
Quelques	
  mots	
  sur	
  le	
  monitoring	
  
Spring	
  Integra,on	
  Changelog	
  
•  1.0.0:	
  Nov.	
  2008	
  
•  2.0.0:	
  Nov.	
  2010	
  	
  
•  2.1.0:	
  Janv.	
  2012	
  
•  2.2.0:	
  Mai	
  2013	
  
•  ...	
  
•  2.2.5:	
  Sept.	
  2013	
  
•  3.3.0M3:	
  Sept.	
  2013	
  
Deux	
  versions	
  en	
  //	
  
Les	
  livres	
  du	
  marché	
  
Conclusion	
  
•  Brique	
  d'intégra,on	
  légère	
  à	
  base	
  de	
  messages	
  
– Véritable	
  boîte	
  à	
  ou,ls	
  pour	
  la	
  mise	
  en	
  place	
  des	
  EIP	
  
•  Extension	
  du	
  modèle	
  Spring	
  
– Simplifie	
  le	
  développement	
  
– Le	
  code	
  de	
  plomberie	
  de	
  messaging	
  et	
  de	
  threading	
  est	
  
pris	
  en	
  charge	
  
•  Très	
  simple	
  à	
  introduire	
  dans	
  son	
  système	
  
d'informa,on	
  
– Brique	
  logicielle	
  non	
  invasive	
  
– Configura,on	
  déclara,ve	
  des	
  endpoints	
  	
  
•  Solide	
  plateforme	
  d'adaptateurs	
  pour	
  adresser	
  les	
  	
  
différentes	
  complexités	
  d'intégra,on	
  

Contenu connexe

En vedette

En vedette (6)

Gradle
GradleGradle
Gradle
 
Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
 
Gradle_NormandyJUG
Gradle_NormandyJUGGradle_NormandyJUG
Gradle_NormandyJUG
 
gradle_lavajug
gradle_lavajuggradle_lavajug
gradle_lavajug
 
C++11 concurrency
C++11 concurrencyC++11 concurrency
C++11 concurrency
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 

Similaire à Spring Integration JUG SummerCamp 2013

Stream processing avec Apache Pulsar
Stream processing avec Apache PulsarStream processing avec Apache Pulsar
Stream processing avec Apache PulsarBruno Bonnin
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationCellenza
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataMicrosoft
 
Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013Nabil Babaci
 
Workflow et bcs sous SharePoint 2013
Workflow et bcs sous SharePoint 2013Workflow et bcs sous SharePoint 2013
Workflow et bcs sous SharePoint 2013Nabil Babaci
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressourceAntoine Pouch
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
Normes avancées du Web  - GTI780 & MTI780 - ETS - A08Normes avancées du Web  - GTI780 & MTI780 - ETS - A08
Normes avancées du Web - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsVincent Perrin
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Microsoft Technet France
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Microsoft Décideurs IT
 
Bonitasoft - Vue générale de l’architecture de la plateforme Bonita
Bonitasoft  - Vue générale de l’architecture de la plateforme BonitaBonitasoft  - Vue générale de l’architecture de la plateforme Bonita
Bonitasoft - Vue générale de l’architecture de la plateforme BonitaBonitasoft
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiAZUG FR
 

Similaire à Spring Integration JUG SummerCamp 2013 (20)

Stream processing avec Apache Pulsar
Stream processing avec Apache PulsarStream processing avec Apache Pulsar
Stream processing avec Apache Pulsar
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid Integration
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013
 
Workflow et bcs sous SharePoint 2013
Workflow et bcs sous SharePoint 2013Workflow et bcs sous SharePoint 2013
Workflow et bcs sous SharePoint 2013
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
Normes avancées du Web  - GTI780 & MTI780 - ETS - A08Normes avancées du Web  - GTI780 & MTI780 - ETS - A08
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"
 
Bonitasoft - Vue générale de l’architecture de la plateforme Bonita
Bonitasoft  - Vue générale de l’architecture de la plateforme BonitaBonitasoft  - Vue générale de l’architecture de la plateforme Bonita
Bonitasoft - Vue générale de l’architecture de la plateforme Bonita
 
Présentation PFE: SmartAudit
Présentation PFE: SmartAuditPrésentation PFE: SmartAudit
Présentation PFE: SmartAudit
 
Alt.net spring.net
Alt.net spring.netAlt.net spring.net
Alt.net spring.net
 
Alt.net spring.net
Alt.net spring.netAlt.net spring.net
Alt.net spring.net
 
Spring.NET
Spring.NETSpring.NET
Spring.NET
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 

Plus de Gregory Boissinot

Plus de Gregory Boissinot (13)

Practical Software Architecture DDD
Practical Software Architecture DDDPractical Software Architecture DDD
Practical Software Architecture DDD
 
DDD Introduction
DDD IntroductionDDD Introduction
DDD Introduction
 
SOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDDSOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDD
 
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDDDevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
 
Beyond Relational Databases
Beyond Relational DatabasesBeyond Relational Databases
Beyond Relational Databases
 
Jenkins-meetup
Jenkins-meetupJenkins-meetup
Jenkins-meetup
 
JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Gradle_BreizJUG
Gradle_BreizJUGGradle_BreizJUG
Gradle_BreizJUG
 
Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105
 
Gradle_ToursJUG
Gradle_ToursJUGGradle_ToursJUG
Gradle_ToursJUG
 
Gradle_YaJUG
Gradle_YaJUGGradle_YaJUG
Gradle_YaJUG
 

Spring Integration JUG SummerCamp 2013

  • 1. Spring  Integra,on  in  Ac,on   Grégory  Boissinot   @gboissinot   20  septembre  2013   Jug  SummerCamp  
  • 2. Grégory  Boissinot   •  Directeur  technique  Zenika  Paris   •  Formateur  cer,fié  Springsource   •  CommiGer  Jenkins  
  • 3. L'intégra,on  avec  des  systèmes   externes  est  un  challenge   Difficulté  d'intégra,on  des   données  et  des  services  
  • 4. Spring  Integra,on   Une  brique  de  messaging  légère   •  "Pipe  and  Filter"  Architecture   – Message  (Data)   – Endpoint  (Filter)   – Channel  (Pipe)   •  Implémenta,on  non  monolithique,  à  base  de   messages   Channel  Endpoint   Message   Message   Endpoint   Source   ?   Target   ?   Endpoint   ...   Channel  
  • 5. Entreprise  Integra,on  PaGerns  (EIP)   •  Transformer   •  Router   •  Filter   •  SpliGer   •  Aggregator   •  ServiceAc,vator   •  Poller   •  etc   Spring  Integra,on  fournit     un  support  des  EIP  
  • 6. External   Business  Partener   Un  usage  intra  et  inter  applica,on   JVM   JVM   `   B2B   •   Business  to  Business  Integra,on  (B2B)   •   Inter  Applica,on  Integra,on  (EAI)   •   Intra  Applica,on  Integra,on   EAI   Core  Messaging   Applica,on  Integra,on  
  • 7. Spring  Integra,on   Une  plateforme  d'intégra,on  à  base   d'adaptateurs   APPLICATION   Adapter   Adapter   Adapter   JMS   Web  Services   RMI   XML   .  .  .  Spring  Integ.   Adapter   ...    hGp://www.springsource.org/extensions/se-­‐sia  
  • 8. Liste  des  adaptateurs   •  AMQP/RabbitMQ   •  HTTP  (REST)   •  Web  services  SOAP   •  JMS   •  JMX   •  JDBC   •  RMI   •  JPA   •  File/Resource   •  FTP  /  SFTP   •  MongoDB   •  Redis   •  XPath   •  TwiGer   •  etc  
  • 9. Exemples  de  cas  d'u,lisa,on  (1/2)   FILE   FILE   FILE   JMS  Queue   JMS  Consumer   JMS  Consumer   Flow  Spring  Integ.   JMS   File   File  Inbound  channel   Adpter   Outbound  channel   Adpter   Infra.  
  • 10. Exemples  de  cas  d'u,lisa,on  (2/2)   REST  API   DataStore   request  response   Flow  Spring  Integ.   Bean  Spring   Publish-­‐Subscribe   Channel   Synchronous  HTTP   Gateway   Endpoint   Outbound  channel   Adpter   Response    Channel   Service   Ac,vator  
  • 11. Un  modèle  de  programma,on  Spring   <!– Fichier Spring Application Context --> <!– Inbound Endpoint --> <int-file:inbound-channel-adapter id="inputChannel" directory="file:${input.directory}"> <int:poller task-executor="pool" fixed-delay="1000"> <transactional /> </int:poller> </int-file:ibound-channel-adapteur> <!– Pool de threads --> <task:executor id="pool" pool-size="10"/> <!– Pollable Channel --> <int:channel id="inputChannel" /> <!– Call Spring Java Bean --> <int:service-activator input-channel="pollableChannel" ref="myServiceBean" /> Dependency  Injec,on   Method   Invoca,on   Task  Scheduling  
  • 12. Déploiement   •  1  simple  librairie  non  invasive   •  Pas  de  container/serveur  (ou  de   broker)   •  Aucune  installa,on   •  Pas  de  configura,on  logicielle    <dependency>     <groupId>org.springframework.integra,on</groupId>     <ar,factId>spring-­‐integra,on-­‐core</ar,factId>     <version>${spring.integra,on.version}</version>   </dependency>   LIB   APPLICATION   Uses   Spring   Integra,on   Library  
  • 13. Spring  Integra,on  comme   "Middleware  Integra,on  plalorm"   AN  INETGRATION  APPLICATION   (with  only  Spring  Integra,on  Jars)   APPLICATION  A   APPLICATION  B   Exis,ng   Vendors   Future   Requirements   Adapter   Adapter   Adapter  Adapter  
  • 14. Le  Channel:  l'élément  central   •  Découple  le  producteur  et  le  consommateur   Producer   Message   Consumer  Message   •  En  mémoire  (Pas  de  broker  &  pas  de  persistance  par  défaut)   •  Facilite  le  "buffering"  et  les  mécanismes  d'intercep,on   •  Se  caractérise  par  ltype  de  "delivery"  et  le  type  de  "handoff"   Synchronous  Handoff   Asynchronous  Handoff   Producer   Consumer   Consumer   Consumer   Point-­‐to  Point  Delivery   Producer   Consumer   Consumer   Consumer   Publish-­‐Subscribe  Delivery  
  • 15. Spring  Integra,on  et  Spring  Batch   File   Spring  Batch  Admin   Spring  Integra,on   Spring  Batch   DB   Batch  Applica,on   Spring  Integra,on  en  tant  que  brique  addi,onnelle  à   Spring  Batch  
  • 16. Spring  Integra,on  et  Spring  Batch   Modèle  de  déléga,on   File   ItemReader   ItemProcessor   ItemWriter   Report   A  Spring  Integra,on  Flow   "Chunk-­‐oriented"   Step1   Step2   Spring  Batch   Gateway  
  • 17. Spring  Batch  et  Spring  Intégra,on   Modèle  par  "Évènement"   File   SI  JobLauncher   Endpoint   File   JobLauncherRequest   Spring  Batch   JobLauncher   Transformer   Spring  Integ.   Spring  Batch   Spring  integ.   Pollable  Inbound   Channel  Adapter  
  • 18. Scaling  Spring  Integra,on  Flow   "Claim  Check  PaGern"   Incoming  Claim   Check  transformer   Original   Object   UUID   Outgoing  Claim   Check  transformer   Original   Object   Message   Store   Original   Object   Generated     Key  ID    (UUID)  
  • 19. High  Availability  (HA)  Architecture   Inbound    Adapter   Inbound    Adapter   SI  Flow   SI  Flow   Compe,,ng  Consumers  Message  Queue   (JMS.,  RabbitMQ,   etc)   A  ac,ve  node    for  a  single     source   Default  is  round-­‐robin  load  balancer  with  failover   Threads   Thread  Pool   Dispatching   Message  
  • 20. Quelques  mots  sur  le  monitoring  
  • 21. Spring  Integra,on  Changelog   •  1.0.0:  Nov.  2008   •  2.0.0:  Nov.  2010     •  2.1.0:  Janv.  2012   •  2.2.0:  Mai  2013   •  ...   •  2.2.5:  Sept.  2013   •  3.3.0M3:  Sept.  2013   Deux  versions  en  //  
  • 22. Les  livres  du  marché  
  • 23. Conclusion   •  Brique  d'intégra,on  légère  à  base  de  messages   – Véritable  boîte  à  ou,ls  pour  la  mise  en  place  des  EIP   •  Extension  du  modèle  Spring   – Simplifie  le  développement   – Le  code  de  plomberie  de  messaging  et  de  threading  est   pris  en  charge   •  Très  simple  à  introduire  dans  son  système   d'informa,on   – Brique  logicielle  non  invasive   – Configura,on  déclara,ve  des  endpoints     •  Solide  plateforme  d'adaptateurs  pour  adresser  les     différentes  complexités  d'intégra,on