SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Spring Integration


                                     Connecting Enterprise Applications




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Topics in this session


          •       Introduction to Spring Integration
          •       Spring Integration Compared
          •       Enterprise Integration Patterns
          •       Examples and demos
          •       Summary and questions




                                                                                                                     2
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
The synchronous breakdown


          • A customer orders a coffee
                   – and waits
          • The waiter walks to the barista and
            passes the order
                   – and waits
          • The barista walks to the coffee machine
                   – and waits
          • How about the next customer?



                                                                                                                     3
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
What is Messaging?


     How can multiple agents work
     together?...

     ...without being in each others way.



     Waiter helps customer and cook to
     collaborate.




                                                                                                                     4
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Characteristics of
   Messaging
     Transport
     The waiter takes an order and moves it to the barista


    Asynchronous
    Different actors do different things in parallel


     Translation
     menu item => number => recipe


    Routing
    Orders arrive back at the proper table



                                                                                                                     5
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Why messaging (1/4)
    Loose coupling




                                                                                                                     6
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Why Messaging? (2/4)
    Performance




                                                                                                                     7
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Why Messaging? (3/4)
     Flexibility




                                                                                                                     8
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Why Messaging? (4/4)
    Interception and filtering




                                                                                                                     9
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Spring Integration




                                                                                                                     10
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Hello world
<service-activator input-channel=quot;inputChannelquot;
          default-output-channel=quot;outputChannelquot;
          ref=quot;helloServicequot;
          method=quot;sayHelloquot;/>

<beans:bean id=quot;helloServicequot; class=quot;...HelloServicequot;/>




                                                      public class HelloService {
                                                        public String sayHello(String name) {
                                                          return quot;Hello quot; + name;
                                                        }
                                                      }


                                                                                                                     11
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Hello world
                   inputChannel =
                     context.getBean(quot;inputChannelquot;);
                   outputChannel =
                     context.getBean(quot;outputChannelquot;);

                   inputChannel.send(new StringMessage(quot;Worldquot;));
                   System.out.println(
                     outputChannel.receive().getPayload());

                                                               $ java HelloWorldDemo
                                                               Hello World




                                                                                                                     12
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Channels

         <channel id=quot;incomingquot;/>

         <channel id=quot;orderedNotificationsquot;>
             <queue capacity=quot;10quot;/>
         </channel>




                                                                                                                     13
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Channels




                                                                                                                     14
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
MessageEndpoints

MessageEndpoints are the knots that tie applications
to the integration solution.


                                                                                   MessageEndpoint




                                                                                                 Channel
                                                Sender                                                                Receiver
                                               Application                                                           Application



                                                                                                                                   15
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Missing link



                                   Invoked by Sender                                                       Who is responsible?




                                                                                       Channel
                                      Sender                                                                          Receiver
                                     Application                                                                     Application




                                                                                                                                   16
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
The Poller

                                                                     A Message Bus enables separate applications
                                                                     to work together, but in a decoupled fashion
                                                                     such that applications can be easily added or
                                                                     removed without affecting the others.




                                                                                                          <poller default=quot;truequot;/>
    In Spring Integration:

    you don't need to worry about it



                                                                                                                             17
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Topics in this session


          •       Introduction to Spring Integration
          •       Comparing Spring Integration to others
          •       Enterprise Integration Patterns
          •       Examples and demos
          •       Summary and questions




                                                                                                                     18
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
What’s different about
   Spring Integration?

          • Can be used from within an existing
            application.
          • Lightweight (like any Spring application):
                    – run from JUnit test
                    – run within webapp
          • Focussed on messaging and integration
          • Not an ESB



                                                                                                                     19
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Others in general


          • Full blown ESB
          • It’s an application, not a framework
                    – You need to install it
                    – You need to run it
          • Typically a lot heavier
          • Focus on the deployment architecture
            not the actual integration.



                                                                                                                     20
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Mule


          • Integrates with Spring
          • Lots of integration options:
                    – REST, SOAP
                    – JMS
          • Embeddable
          • Distribution
                    – 32Mb
                    – 2Mb jar only (for embedding)



                                                                                                                     21
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
ServiceMix


          • Based on JBI
                    – (Mediated Message Exchange Model)


          • Distribution:
                    – 100mb

          • http://servicemix.apache.org/how-to-evaluate-an-esb.html




                                                                                                                     22
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Camel


          • Most direct competition for Spring
            Integration
          • Less consistent with Spring
          • Focus on routing
          • Fluent interface as an alternative to xml




                                                                                                                     23
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Considerations


          • Routing complexity
                    – a bus can be useful for more complex
                      routing problems
          • Comfort zone
                    – what will the developers feel at home with
          • Keep it clean
                    – don’t scatter the routing rules




                                                                                                                     24
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Basic Integration




                                                                                                                     25
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
With a bus




                                                                                                                     26
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Topics in this session


          •       Introduction to Spring Integration
          •       Comparing Spring Integration to others
          •       Enterprise Integration Patterns
          •       Examples and demos
          •       Summary and questions




                                                                                                                     27
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Message Router


          • Takes messages from a channel and
            forwards them to different channels




                                                                                                                     28
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Competing Consumers


          • Multiple consumers take messages from
            the channel
          • First come first serve




                                                                                                                     29
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Competing Consumers




                                                                                                                     30
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Selective Consumer


          • Select only relevant messages
          • Reduces the need for dedicated
            channels




                                                                                                                     31
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Selective Consumer




                                                                                                                     32
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Splitter




                                                                                                                     33
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Detour




                                                                                                                     34
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Topics in this session


          •       Introduction to Spring Integration
          •       Comparing Spring Integration to others
          •       Enterprise Integration Patterns
          •       Examples and demos
          •       Summary and questions




                                                                                                                     35
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Demo Time




                                                                                                                     36
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Topics in this session


          •       Introduction to Spring Integration
          •       Comparing Spring Integration to others
          •       Enterprise Integration Patterns
          •       Examples and demos
          •       Summary and questions




                                                                                                                     37
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Summary


          • Spring Integration
                    – works from existing Spring applications
                    – lightweight
                    – decentralized (if you want)
          • Enterprise Integration Patterns
                    – describe ways of plumbing the enterprise
                      application landscape.




                                                                                                                     38
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Questions and Plugs


          • You can ask questions now while you
            ignore these shameless plugs

          • Thanks to Babiche Israel (cartoons)
                    – http://babicheisrael.blogspot.com/


          • Come to Java meetup May 23
                    – http://tinyurl.com/66hfnt or
                    – Google for ‘java meetup q2 2008’

                                                                                                                     39
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.

Mais conteúdo relacionado

Destaque

Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration PatternsJohan Aludden
 
Spring Madrid User Group - Spring Integration in Action
Spring Madrid User Group - Spring Integration in ActionSpring Madrid User Group - Spring Integration in Action
Spring Madrid User Group - Spring Integration in ActionIván López Martín
 
Enterprise Integration and Batch Processing on Cloud Foundry
Enterprise Integration and Batch Processing on Cloud FoundryEnterprise Integration and Batch Processing on Cloud Foundry
Enterprise Integration and Batch Processing on Cloud FoundryJoshua Long
 
Spring Batch Behind the Scenes
Spring Batch Behind the ScenesSpring Batch Behind the Scenes
Spring Batch Behind the ScenesJoshua Long
 
S2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring BatchS2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring BatchGunnar Hillert
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要kuroiwa
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise ArchitectureWSO2
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
 
Economies of Scaling Software
Economies of Scaling SoftwareEconomies of Scaling Software
Economies of Scaling SoftwareJoshua Long
 
기업 통합 패턴(Enterprise Integration Patterns) 강의
기업 통합 패턴(Enterprise Integration Patterns) 강의기업 통합 패턴(Enterprise Integration Patterns) 강의
기업 통합 패턴(Enterprise Integration Patterns) 강의정호 차
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
 

Destaque (11)

Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Spring Madrid User Group - Spring Integration in Action
Spring Madrid User Group - Spring Integration in ActionSpring Madrid User Group - Spring Integration in Action
Spring Madrid User Group - Spring Integration in Action
 
Enterprise Integration and Batch Processing on Cloud Foundry
Enterprise Integration and Batch Processing on Cloud FoundryEnterprise Integration and Batch Processing on Cloud Foundry
Enterprise Integration and Batch Processing on Cloud Foundry
 
Spring Batch Behind the Scenes
Spring Batch Behind the ScenesSpring Batch Behind the Scenes
Spring Batch Behind the Scenes
 
S2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring BatchS2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring Batch
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise Architecture
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계
 
Economies of Scaling Software
Economies of Scaling SoftwareEconomies of Scaling Software
Economies of Scaling Software
 
기업 통합 패턴(Enterprise Integration Patterns) 강의
기업 통합 패턴(Enterprise Integration Patterns) 강의기업 통합 패턴(Enterprise Integration Patterns) 강의
기업 통합 패턴(Enterprise Integration Patterns) 강의
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 

Semelhante a Spring Integration and EIP Introduction

Os Gi+Spring Integration
Os Gi+Spring IntegrationOs Gi+Spring Integration
Os Gi+Spring IntegrationIwein Fuld
 
Aspects Every Where
Aspects Every WhereAspects Every Where
Aspects Every Whereguest9ff00
 
Confess_2011 - Rapid Rich Client Development with Spring Roo and GWT
Confess_2011 - Rapid Rich Client Development with Spring Roo and GWTConfess_2011 - Rapid Rich Client Development with Spring Roo and GWT
Confess_2011 - Rapid Rich Client Development with Spring Roo and GWTKai Wähner
 
Comet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesComet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesJoe Walker
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reza Rahman
 
Enterprise Security mit Spring Security
Enterprise Security mit Spring SecurityEnterprise Security mit Spring Security
Enterprise Security mit Spring SecurityMike Wiesner
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesSusheel Aroskar
 
David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...NoSQLmatters
 
Sharepoint and SQL Server 2012
Sharepoint and SQL Server 2012Sharepoint and SQL Server 2012
Sharepoint and SQL Server 2012James Tramel
 
SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)
SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)
SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)Dennis Hobmaier
 
Developing SIP Applications
Developing SIP ApplicationsDeveloping SIP Applications
Developing SIP ApplicationsVoxeo Corp
 

Semelhante a Spring Integration and EIP Introduction (15)

BeJUG - Spring 3 talk
BeJUG - Spring 3 talkBeJUG - Spring 3 talk
BeJUG - Spring 3 talk
 
BeJUG - Di With Spring
BeJUG - Di With SpringBeJUG - Di With Spring
BeJUG - Di With Spring
 
Os Gi+Spring Integration
Os Gi+Spring IntegrationOs Gi+Spring Integration
Os Gi+Spring Integration
 
Aspects Every Where
Aspects Every WhereAspects Every Where
Aspects Every Where
 
Confess_2011 - Rapid Rich Client Development with Spring Roo and GWT
Confess_2011 - Rapid Rich Client Development with Spring Roo and GWTConfess_2011 - Rapid Rich Client Development with Spring Roo and GWT
Confess_2011 - Rapid Rich Client Development with Spring Roo and GWT
 
Comet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesComet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive Websites
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 
Building web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend ExpressiveBuilding web APIs in PHP with Zend Expressive
Building web APIs in PHP with Zend Expressive
 
Enterprise Security mit Spring Security
Enterprise Security mit Spring SecurityEnterprise Security mit Spring Security
Enterprise Security mit Spring Security
 
Scaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix DevicesScaling Push Messaging for Millions of Netflix Devices
Scaling Push Messaging for Millions of Netflix Devices
 
David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...
 
The Lean Journey
The Lean JourneyThe Lean Journey
The Lean Journey
 
Sharepoint and SQL Server 2012
Sharepoint and SQL Server 2012Sharepoint and SQL Server 2012
Sharepoint and SQL Server 2012
 
SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)
SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)
SharePoint Governance - Jetzt mit Struktur (6. Alzenauer Innovationstage)
 
Developing SIP Applications
Developing SIP ApplicationsDeveloping SIP Applications
Developing SIP Applications
 

Mais de Iwein Fuld

Iwein fuld-elegant-code-google-queries
Iwein fuld-elegant-code-google-queriesIwein fuld-elegant-code-google-queries
Iwein fuld-elegant-code-google-queriesIwein Fuld
 
Businesscase for-quality
Businesscase for-qualityBusinesscase for-quality
Businesscase for-qualityIwein Fuld
 
Simplicity, elegance, correctness
Simplicity, elegance, correctnessSimplicity, elegance, correctness
Simplicity, elegance, correctnessIwein Fuld
 
Spring integration motivation and history
Spring integration motivation and historySpring integration motivation and history
Spring integration motivation and historyIwein Fuld
 
Mythical Powers Of Oss
Mythical Powers Of OssMythical Powers Of Oss
Mythical Powers Of OssIwein Fuld
 
Defluffing Cloud Computing
Defluffing Cloud ComputingDefluffing Cloud Computing
Defluffing Cloud ComputingIwein Fuld
 
Tc Server Glance Over
Tc Server Glance OverTc Server Glance Over
Tc Server Glance OverIwein Fuld
 
Ams+Dm Server+Ec2
Ams+Dm Server+Ec2Ams+Dm Server+Ec2
Ams+Dm Server+Ec2Iwein Fuld
 

Mais de Iwein Fuld (8)

Iwein fuld-elegant-code-google-queries
Iwein fuld-elegant-code-google-queriesIwein fuld-elegant-code-google-queries
Iwein fuld-elegant-code-google-queries
 
Businesscase for-quality
Businesscase for-qualityBusinesscase for-quality
Businesscase for-quality
 
Simplicity, elegance, correctness
Simplicity, elegance, correctnessSimplicity, elegance, correctness
Simplicity, elegance, correctness
 
Spring integration motivation and history
Spring integration motivation and historySpring integration motivation and history
Spring integration motivation and history
 
Mythical Powers Of Oss
Mythical Powers Of OssMythical Powers Of Oss
Mythical Powers Of Oss
 
Defluffing Cloud Computing
Defluffing Cloud ComputingDefluffing Cloud Computing
Defluffing Cloud Computing
 
Tc Server Glance Over
Tc Server Glance OverTc Server Glance Over
Tc Server Glance Over
 
Ams+Dm Server+Ec2
Ams+Dm Server+Ec2Ams+Dm Server+Ec2
Ams+Dm Server+Ec2
 

Último

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Spring Integration and EIP Introduction

  • 1. Spring Integration Connecting Enterprise Applications Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 2. Topics in this session • Introduction to Spring Integration • Spring Integration Compared • Enterprise Integration Patterns • Examples and demos • Summary and questions 2 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 3. The synchronous breakdown • A customer orders a coffee – and waits • The waiter walks to the barista and passes the order – and waits • The barista walks to the coffee machine – and waits • How about the next customer? 3 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 4. What is Messaging? How can multiple agents work together?... ...without being in each others way. Waiter helps customer and cook to collaborate. 4 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 5. Characteristics of Messaging Transport The waiter takes an order and moves it to the barista Asynchronous Different actors do different things in parallel Translation menu item => number => recipe Routing Orders arrive back at the proper table 5 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 6. Why messaging (1/4) Loose coupling 6 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 7. Why Messaging? (2/4) Performance 7 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 8. Why Messaging? (3/4) Flexibility 8 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 9. Why Messaging? (4/4) Interception and filtering 9 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 10. Spring Integration 10 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 11. Hello world <service-activator input-channel=quot;inputChannelquot; default-output-channel=quot;outputChannelquot; ref=quot;helloServicequot; method=quot;sayHelloquot;/> <beans:bean id=quot;helloServicequot; class=quot;...HelloServicequot;/> public class HelloService { public String sayHello(String name) { return quot;Hello quot; + name; } } 11 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 12. Hello world inputChannel = context.getBean(quot;inputChannelquot;); outputChannel = context.getBean(quot;outputChannelquot;); inputChannel.send(new StringMessage(quot;Worldquot;)); System.out.println( outputChannel.receive().getPayload()); $ java HelloWorldDemo Hello World 12 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 13. Channels <channel id=quot;incomingquot;/> <channel id=quot;orderedNotificationsquot;> <queue capacity=quot;10quot;/> </channel> 13 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 14. Channels 14 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 15. MessageEndpoints MessageEndpoints are the knots that tie applications to the integration solution. MessageEndpoint Channel Sender Receiver Application Application 15 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 16. Missing link Invoked by Sender Who is responsible? Channel Sender Receiver Application Application 16 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 17. The Poller A Message Bus enables separate applications to work together, but in a decoupled fashion such that applications can be easily added or removed without affecting the others. <poller default=quot;truequot;/> In Spring Integration: you don't need to worry about it 17 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 18. Topics in this session • Introduction to Spring Integration • Comparing Spring Integration to others • Enterprise Integration Patterns • Examples and demos • Summary and questions 18 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 19. What’s different about Spring Integration? • Can be used from within an existing application. • Lightweight (like any Spring application): – run from JUnit test – run within webapp • Focussed on messaging and integration • Not an ESB 19 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 20. Others in general • Full blown ESB • It’s an application, not a framework – You need to install it – You need to run it • Typically a lot heavier • Focus on the deployment architecture not the actual integration. 20 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 21. Mule • Integrates with Spring • Lots of integration options: – REST, SOAP – JMS • Embeddable • Distribution – 32Mb – 2Mb jar only (for embedding) 21 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 22. ServiceMix • Based on JBI – (Mediated Message Exchange Model) • Distribution: – 100mb • http://servicemix.apache.org/how-to-evaluate-an-esb.html 22 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 23. Camel • Most direct competition for Spring Integration • Less consistent with Spring • Focus on routing • Fluent interface as an alternative to xml 23 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 24. Considerations • Routing complexity – a bus can be useful for more complex routing problems • Comfort zone – what will the developers feel at home with • Keep it clean – don’t scatter the routing rules 24 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 25. Basic Integration 25 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 26. With a bus 26 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 27. Topics in this session • Introduction to Spring Integration • Comparing Spring Integration to others • Enterprise Integration Patterns • Examples and demos • Summary and questions 27 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 28. Message Router • Takes messages from a channel and forwards them to different channels 28 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 29. Competing Consumers • Multiple consumers take messages from the channel • First come first serve 29 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 30. Competing Consumers 30 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 31. Selective Consumer • Select only relevant messages • Reduces the need for dedicated channels 31 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 32. Selective Consumer 32 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 33. Splitter 33 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 34. Detour 34 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 35. Topics in this session • Introduction to Spring Integration • Comparing Spring Integration to others • Enterprise Integration Patterns • Examples and demos • Summary and questions 35 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 36. Demo Time 36 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 37. Topics in this session • Introduction to Spring Integration • Comparing Spring Integration to others • Enterprise Integration Patterns • Examples and demos • Summary and questions 37 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 38. Summary • Spring Integration – works from existing Spring applications – lightweight – decentralized (if you want) • Enterprise Integration Patterns – describe ways of plumbing the enterprise application landscape. 38 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 39. Questions and Plugs • You can ask questions now while you ignore these shameless plugs • Thanks to Babiche Israel (cartoons) – http://babicheisrael.blogspot.com/ • Come to Java meetup May 23 – http://tinyurl.com/66hfnt or – Google for ‘java meetup q2 2008’ 39 Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.