SlideShare a Scribd company logo
Spring Integration 1.0.X
                       and whats coming in 2.0

                         Jonas Partner
                OpenCredo Principle Consultant
                 Spring Integration Committer


                    www.opencredo.com
Tuesday, 20 October 2009
Agenda

      •   Enterprise Integration Patterns
      •   Why Spring Integration
      •   What Spring Integration provides
      •   Whats new in SI 2.0
      •   Questions




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Enterprise Integration Patterns

      • Book by Gregor Hohpe and Bobby Wolf
      • Documents
            – Styles of Integration database, file, messages
              and channels
            – Patterns
                  • Splitter
                  • Router
                  • Transformer



© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Messages
  Generic package for data (the Message payload) that can
  be transported via channels
  Headers provide information to other components that
  consume from channels
  Sequence Number
                                               Headers
  Sequence Size
  ...

                                               Payload




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Channels
   Channels deliver messages from producers
   to consumers



         Producer                    Channel       Consumer




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Why use messaging 1/2

      • Louse coupling
            – Localise impact of changes
            – Improve separation of concerns
      • Easy Interception
            – Mediation
            – Filtering
            – Reroute



© 2009 Open Credo Ltd       www.opencredo.com
Tuesday, 20 October 2009
Why use messaging 2/2

      • Performance
            – Less blocking since async
            – Efficient use of resources
                  • Threads
                  • DB Connections
            – More effective use of multi core processors




© 2009 Open Credo Ltd       www.opencredo.com
Tuesday, 20 October 2009
Agenda

      •   Enterprise Integration Patterns
      •   Why Spring Integration
      •   What Spring Integration provides
      •   Whats new in SI 2.0
      •   Questions




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Why Spring Integration

      • Spring goodness in the integration space
            – Light weight, not a server
            – Non invasive POJO programming model
            – Builds on strong foundation, Spring
      • Reusable Enterprise Integration Pattern
        implementations
      • Message and Channel approach useful for
        non integration applications

© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Light Weight
   • Spring Integration != Spring ESB
   • Simply components in applications context
         – Wiring together through dependency injection
         – Channels beans, adapters beans ...
         – Follows application context lifecycle
   • Simple adoption




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Agenda

      • Why Spring Integration
      • Enterprise Integration Patterns
      • Spring Integration provides
            – Enterprise Integration Patterns
              implementation
            – Message and Channel framework
            – Adapters
      • Whats new

© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Transformer


            @Transformer
            public Document convert(Document doc){
              return convertToNewFormat(doc);
            }




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Splitter

        @Splitter
        public List<Document> orderItems(Document doc){

              return splitOrder(doc);
         }




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Router

 @Router
 public String resolveDrinkChannel(Drink drink) {


      return (drink.isIced()) ? "coldDrinks" :      "hotDrinks";
 }




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Chain

 <chain input-channel="input" output-channel="output">
     <filter ref="someSelector" throw-exception-on-rejection="true"/>
     <header-enricher error-channel="customErrorChannel">
          <header name="foo" value="bar"/>
     </header-enricher>
     <service-activator ref="someService" method="someMethod"/>
 </chain>




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Agenda

      • Why Spring Integration
      • Enterprise Integration Patterns
      • Spring Integration provides
            – Enterprise Integration Patterns
              implementation
            – Message and Channel framework
            – Adapters
      • Whats new

© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Adapter




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Current Adapters

      •   JMS
      •   RMI
      •   Http Invoker
      •   HTTP
      •   File
      •   Spring Web Services
      •   Mail Spring Application Events


© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Agenda

      • Why Spring Integration
      • Enterprise Integration Patterns
      • Spring Integration provides
            – Enterprise Integration Patterns
              implementation
            – Message and Channel framework
            – Adapters
      • Whats new in 2.0

© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Spring Integration 2.0 1/2

      • Due late this year
            – JDBC
            – Twitter??
            – Suggestions/requests/contributions
      • Improved testing framework
      • Spring 3.0 expression language




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Spring Integration 2.0 2/2

      • XQuery
      • JMS Backed channel (not an adapter)
      • Other patterns
            – Claim Check
            – Scatter Gather
            – Process Manager....




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009
Also Spring Extensions

      • Home to FTP adapters and other
        contributions
            – http://www.springsource.org/extensions/
              se-sia
      • Spring Integration .Net
            – http://www.springsource.org/extensions/
              se-springintegration-net
            – Nearly a port of java.util.concurrent
              http://www.springsource.org/extensions/
              se-threading-net
© 2009 Open Credo Ltd       www.opencredo.com
Tuesday, 20 October 2009
Questions and the usual book plug




© 2009 Open Credo Ltd      www.opencredo.com
Tuesday, 20 October 2009

More Related Content

Similar to Spring Integration

Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
VMware Tanzu
 
Cloud Foundry Summit 2014: Introducing Cloud Foundry Integration for Eclipse
Cloud Foundry Summit 2014: Introducing Cloud Foundry Integration for EclipseCloud Foundry Summit 2014: Introducing Cloud Foundry Integration for Eclipse
Cloud Foundry Summit 2014: Introducing Cloud Foundry Integration for Eclipse
dmbtr3
 
Mozilla Weave: Integrating Services into the Browser
Mozilla Weave: Integrating Services into the BrowserMozilla Weave: Integrating Services into the Browser
Mozilla Weave: Integrating Services into the Browser
Anant Narayanan
 
Akamai company profile
Akamai company profileAkamai company profile
Akamai company profile
rahulp9999
 
OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...
OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...
OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...
OrionVM
 
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...
Klaus Bild
 
Lipstick On a Pig (+Audio)
Lipstick On a Pig (+Audio)Lipstick On a Pig (+Audio)
Lipstick On a Pig (+Audio)
Matt Hamilton
 
Enterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerEnterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm Server
Sam Brannen
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
mimmozzo_
 
ICONUK 2015 - Installing Connections Add-Ons Tips and Tricks
ICONUK 2015 - Installing Connections Add-Ons Tips and TricksICONUK 2015 - Installing Connections Add-Ons Tips and Tricks
ICONUK 2015 - Installing Connections Add-Ons Tips and Tricks
Victor Toal
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAnimesh Singh
 
Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...
Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...
Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...
Amazon Web Services
 
Leveraging Multiple Cloud Orchestration
Leveraging Multiple Cloud OrchestrationLeveraging Multiple Cloud Orchestration
Leveraging Multiple Cloud Orchestration
DOCOMO Innovations, Inc.
 
M365 Saturday Sydney 2019 - Dispelling the Office Add-in Stigma
M365 Saturday Sydney 2019 - Dispelling the Office Add-in StigmaM365 Saturday Sydney 2019 - Dispelling the Office Add-in Stigma
M365 Saturday Sydney 2019 - Dispelling the Office Add-in Stigma
Cameron Dwyer
 
mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt
NalamalpuBhakthavats
 
London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18
Phil Wilkins
 
Fusion Applications Bare Metal Provisioning - Lessons Learned
Fusion Applications Bare Metal Provisioning - Lessons LearnedFusion Applications Bare Metal Provisioning - Lessons Learned
Fusion Applications Bare Metal Provisioning - Lessons LearnedAndrejs Karpovs
 
Moscow conference keynote in 2012
Moscow conference keynote in 2012Moscow conference keynote in 2012
Moscow conference keynote in 2012
Dileep Bhandarkar
 

Similar to Spring Integration (20)

Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
Introducing Cloud Foundry Integration for Eclipse (Cloud Foundry Summit 2014)
 
Cloud Foundry Summit 2014: Introducing Cloud Foundry Integration for Eclipse
Cloud Foundry Summit 2014: Introducing Cloud Foundry Integration for EclipseCloud Foundry Summit 2014: Introducing Cloud Foundry Integration for Eclipse
Cloud Foundry Summit 2014: Introducing Cloud Foundry Integration for Eclipse
 
Mozilla Weave: Integrating Services into the Browser
Mozilla Weave: Integrating Services into the BrowserMozilla Weave: Integrating Services into the Browser
Mozilla Weave: Integrating Services into the Browser
 
Akamai company profile
Akamai company profileAkamai company profile
Akamai company profile
 
OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...
OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...
OrionVM Wholesale Cloud Presentation to the Telecom Council August Service Pr...
 
The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...The lazy administrator, how to make your life easier by using tdi to automate...
The lazy administrator, how to make your life easier by using tdi to automate...
 
Lipstick On a Pig (+Audio)
Lipstick On a Pig (+Audio)Lipstick On a Pig (+Audio)
Lipstick On a Pig (+Audio)
 
Enterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerEnterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm Server
 
Getting out of the monolith hell
Getting out of the monolith hellGetting out of the monolith hell
Getting out of the monolith hell
 
ICONUK 2015 - Installing Connections Add-Ons Tips and Tricks
ICONUK 2015 - Installing Connections Add-Ons Tips and TricksICONUK 2015 - Installing Connections Add-Ons Tips and Tricks
ICONUK 2015 - Installing Connections Add-Ons Tips and Tricks
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStack
 
Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...
Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...
Empowering Publishers - Unlocking the power of Amazon Web Services - May-15-2...
 
Bluemix - Quick Intro v3
Bluemix - Quick Intro v3Bluemix - Quick Intro v3
Bluemix - Quick Intro v3
 
Leveraging Multiple Cloud Orchestration
Leveraging Multiple Cloud OrchestrationLeveraging Multiple Cloud Orchestration
Leveraging Multiple Cloud Orchestration
 
M365 Saturday Sydney 2019 - Dispelling the Office Add-in Stigma
M365 Saturday Sydney 2019 - Dispelling the Office Add-in StigmaM365 Saturday Sydney 2019 - Dispelling the Office Add-in Stigma
M365 Saturday Sydney 2019 - Dispelling the Office Add-in Stigma
 
mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt
 
London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18
 
Fusion Applications Bare Metal Provisioning - Lessons Learned
Fusion Applications Bare Metal Provisioning - Lessons LearnedFusion Applications Bare Metal Provisioning - Lessons Learned
Fusion Applications Bare Metal Provisioning - Lessons Learned
 
Session 42 - GridSAM
Session 42 - GridSAMSession 42 - GridSAM
Session 42 - GridSAM
 
Moscow conference keynote in 2012
Moscow conference keynote in 2012Moscow conference keynote in 2012
Moscow conference keynote in 2012
 

More from Andrew Chalkley

Best Practices for Testing Open Source Projects
Best Practices for Testing Open Source ProjectsBest Practices for Testing Open Source Projects
Best Practices for Testing Open Source Projects
Andrew Chalkley
 
Hardware Hacking for Thrify, Modern JavaScript Developers
Hardware Hacking for Thrify, Modern JavaScript DevelopersHardware Hacking for Thrify, Modern JavaScript Developers
Hardware Hacking for Thrify, Modern JavaScript Developers
Andrew Chalkley
 
What I've Learned Developing for iOS
What I've Learned Developing for iOSWhat I've Learned Developing for iOS
What I've Learned Developing for iOS
Andrew Chalkley
 
Ruby On Rails Ecosystem
Ruby On Rails EcosystemRuby On Rails Ecosystem
Ruby On Rails Ecosystem
Andrew Chalkley
 
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails BackendBuilding iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Andrew Chalkley
 
jQuery SUG Group Introduction
jQuery SUG Group IntroductionjQuery SUG Group Introduction
jQuery SUG Group IntroductionAndrew Chalkley
 

More from Andrew Chalkley (6)

Best Practices for Testing Open Source Projects
Best Practices for Testing Open Source ProjectsBest Practices for Testing Open Source Projects
Best Practices for Testing Open Source Projects
 
Hardware Hacking for Thrify, Modern JavaScript Developers
Hardware Hacking for Thrify, Modern JavaScript DevelopersHardware Hacking for Thrify, Modern JavaScript Developers
Hardware Hacking for Thrify, Modern JavaScript Developers
 
What I've Learned Developing for iOS
What I've Learned Developing for iOSWhat I've Learned Developing for iOS
What I've Learned Developing for iOS
 
Ruby On Rails Ecosystem
Ruby On Rails EcosystemRuby On Rails Ecosystem
Ruby On Rails Ecosystem
 
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails BackendBuilding iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
 
jQuery SUG Group Introduction
jQuery SUG Group IntroductionjQuery SUG Group Introduction
jQuery SUG Group Introduction
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Spring Integration

  • 1. Spring Integration 1.0.X and whats coming in 2.0 Jonas Partner OpenCredo Principle Consultant Spring Integration Committer www.opencredo.com Tuesday, 20 October 2009
  • 2. Agenda • Enterprise Integration Patterns • Why Spring Integration • What Spring Integration provides • Whats new in SI 2.0 • Questions © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 3. Enterprise Integration Patterns • Book by Gregor Hohpe and Bobby Wolf • Documents – Styles of Integration database, file, messages and channels – Patterns • Splitter • Router • Transformer © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 4. Messages Generic package for data (the Message payload) that can be transported via channels Headers provide information to other components that consume from channels Sequence Number Headers Sequence Size ... Payload © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 5. Channels Channels deliver messages from producers to consumers Producer Channel Consumer © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 6. Why use messaging 1/2 • Louse coupling – Localise impact of changes – Improve separation of concerns • Easy Interception – Mediation – Filtering – Reroute © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 7. Why use messaging 2/2 • Performance – Less blocking since async – Efficient use of resources • Threads • DB Connections – More effective use of multi core processors © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 8. Agenda • Enterprise Integration Patterns • Why Spring Integration • What Spring Integration provides • Whats new in SI 2.0 • Questions © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 9. Why Spring Integration • Spring goodness in the integration space – Light weight, not a server – Non invasive POJO programming model – Builds on strong foundation, Spring • Reusable Enterprise Integration Pattern implementations • Message and Channel approach useful for non integration applications © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 10. Light Weight • Spring Integration != Spring ESB • Simply components in applications context – Wiring together through dependency injection – Channels beans, adapters beans ... – Follows application context lifecycle • Simple adoption © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 11. Agenda • Why Spring Integration • Enterprise Integration Patterns • Spring Integration provides – Enterprise Integration Patterns implementation – Message and Channel framework – Adapters • Whats new © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 12. Transformer @Transformer public Document convert(Document doc){ return convertToNewFormat(doc); } © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 13. Splitter @Splitter public List<Document> orderItems(Document doc){ return splitOrder(doc); } © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 14. Router @Router public String resolveDrinkChannel(Drink drink) { return (drink.isIced()) ? "coldDrinks" : "hotDrinks"; } © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 15. Chain <chain input-channel="input" output-channel="output"> <filter ref="someSelector" throw-exception-on-rejection="true"/> <header-enricher error-channel="customErrorChannel"> <header name="foo" value="bar"/> </header-enricher> <service-activator ref="someService" method="someMethod"/> </chain> © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 16. Agenda • Why Spring Integration • Enterprise Integration Patterns • Spring Integration provides – Enterprise Integration Patterns implementation – Message and Channel framework – Adapters • Whats new © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 17. Adapter © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 18. Current Adapters • JMS • RMI • Http Invoker • HTTP • File • Spring Web Services • Mail Spring Application Events © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 19. Agenda • Why Spring Integration • Enterprise Integration Patterns • Spring Integration provides – Enterprise Integration Patterns implementation – Message and Channel framework – Adapters • Whats new in 2.0 © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 20. Spring Integration 2.0 1/2 • Due late this year – JDBC – Twitter?? – Suggestions/requests/contributions • Improved testing framework • Spring 3.0 expression language © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 21. Spring Integration 2.0 2/2 • XQuery • JMS Backed channel (not an adapter) • Other patterns – Claim Check – Scatter Gather – Process Manager.... © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 22. Also Spring Extensions • Home to FTP adapters and other contributions – http://www.springsource.org/extensions/ se-sia • Spring Integration .Net – http://www.springsource.org/extensions/ se-springintegration-net – Nearly a port of java.util.concurrent http://www.springsource.org/extensions/ se-threading-net © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009
  • 23. Questions and the usual book plug © 2009 Open Credo Ltd www.opencredo.com Tuesday, 20 October 2009