SlideShare a Scribd company logo
ENTERPRISE INTEGRATION PATTERNS
WITH
SPRING INTEGRATION
By
Kiran Hegde
https://www.linkedin.com/in/hegdekiran
ENTERPRISE INTEGRATION!
 Enterprise interaction allowed organizations to both share data
and make use of functionality provided by other systems.
 Although enterprise application integration can take many different
forms
 From extract-transform-load jobs run overnight
 To all-encompassing SOA strategies
 All approaches leverage one of four well-known integration styles
 File-based integration
 Shared-database integration
 Remote Procedure Calls
 Message-based integration
4 WELL KNOWN ENTERPRISE INTEGRATION STYLES
 File-based integration –
 Simple interoperable but deals with file read/write complexity
 Shared-database integration
 Atomic & Consistent but doesn’t solve invoking functionality in remote
application
 Remote Procedure Calls
 Method invocation, return value is serialized via Stubs, Proxies & Marshalling
 Therefore serializing arguments and return values harms interoperability
 Message-based integration
 Messaging is an integration style based on exchanging encapsulated data packets
(messages) between components (endpoints) through connections (channels). As
described at www.enterpriseintegrationpatterns.com,
 The packets should be small, and they should be shared frequently, reliably,
immediately, and asynchronously.
 The middleware that can orchestrate reliable communication
between these disparate endpoints, are typically called
as Enterprise Service Bus (ESB).
ENTERPRISE INTEGRATION PATTERNS?
WHAT PRODUCTS USE
ENTERPRISE INTEGRATION PATTERNS?
Open source ESB's like Mule ESB, JBoss Fuse, Open
ESB, WSo2, Spring Integration, or Talend ESB
Message Brokers like ActiveMQ, Apache Kafka,
or RabbitMQ
EAI and SOA platforms, such as IBM WebSphere
MQ, TIBCO, Vitria, Oracle ServiceBus, WebMethods (now
Software AG), Microsoft BizTalk, or Fiorano.
HOW IS AN INTEGRATION FRAMEWORK USEFUL?
We live in an event-driven world. Throughout each day,
we’re continuously bombarded by phone calls, emails,
and instant messages.
Interestingly I heard this somewhere –
 This Talk is also Messaging, perhaps we could see as
 Publish – Subscribe,
 One producer – Many Consumers
 May give immediate a.k.a Synchronous feedback
 May take this message – Transform a bit an give it to teams/friends
 Or leave an Aynchronous feedback – perhaps that this talk was good – jk!! 
Real World example –
 Online travel booking application
DZONE – 2015 GUIDE TO
ENTERPRISE INTEGRATION
SPRING INTEGRATION OVERVIEW
 It enables lightweight messaging within Spring-based applications
 Supports integration with external systems via declarative adapters.
 Those adapters provide a higher-level of abstraction over Spring’s
support for remoting, messaging, and scheduling.
 So essentially lightweight intra-application messaging
 And flexible inter-application integration
PIPES & FILTERS
Anyone familiar with a UNIX-based operating
system can appreciate the pipes-and-filters
style: it provides the foundation of such
operating systems.
Consider a basic example:
You can see that it’s literally the pipe symbol
being used to connect two commands (the
filters)
THE CORE OF SPRING INTEGRATION IS
 End Points ( Filters - similar to a Processor)
 connected through
 Channels (Pipes)
 exchanging
 Messages
MESSAGES & CHANNELS
 Messages
 Channels
 Point-to-Point Channel
 Publish-Subscribe Channel
DEMO
DIFFERENT TYPES OF CHANNELS
 Datatype Channel Configuration
 Priority Channel Configuration
 Scoped Channel Configuration

 Channel Interceptor & Wire Tap Configuration

EVENT DRIVEN ARCHITECTURE &
LOOSE COUPLING
 Achieving an appropriate degree of loose coupling allows you to spend
more time adding new features and delivering business value.
 Event-driven architecture (EDA) is an architectural pattern in which
complex applications are broken down into a set of components or
services that interact via events.
 Where events are communicated via channels that can act as buffers
in periods of high throughput, such a system can be described as
having a staged event-driven architecture (SEDA).
 The question of whether an application built around the Spring
Integration framework is inherently an EDA or SEDA application is open
to debate. Certainly Spring Integration provides the building blocks to
create both EDA and SEDA applications.
MESSAGE ENDPOINTS
 Receivers or senders
 Endpoints can either receive messages from the channel or put messages on the
channel for further processing.
 Polling endpoints or event-driven endpoints
 Endpoints can either pull messages from the channel or can subscribe to it.
Whenever a message is available, a registered callback method is called.
 Unidirectional or bidirectional endpoints
 Unidirectional endpoints send off or receive messages, but do not expect or receive
any acknowledgement. Spring Integration provides channel adapters for such types of
interactions. Bidirectional adapters can send, receive, and acknowledge messages.
Spring Integration provides gateways that are synonymous with synchronous two-way
communication.
 Inbound or outbound endpoints
 Outbound endpoints interact with external systems such as social networks, mail
servers, enterprise JMS, and others, whereas inbound endpoints listen for events
from outside entities such as mail connector, FTP connector, and so on.
MESSAGE PROCESSING USING
SPRING INTEGRATION ENDPOINTS
 Messaging Gateway
 Service Activator
DEMO
FLOW COMPONENTS
 Router
 Splitter
 Aggregator
ROUTER
 Payload type Router
 Header value Router
DOMAIN DRIVEN TRANSFORMATION
Message transformers are implementations of the
Enterprise Integration Pattern (EIP) named Message Translator,
HTTP & OBJECT TO JSON TRANSFORMER
 Demo
SPRING BATCH + SPRING INTEGRATION
WITH RABBIT MQ
 Demo
ENTERPRISE INTEGRATION PATTERNS!!
 Reconciling the EIP slide shared earlier in presentation –
we should not have correlation to one each of the broader level component.
REFERENCES
 Views personal and not of employer’s
 Sharing what I learnt, is not an endorsement!
 Content referenced from few books, blogs & online resources
 Few of them below
 http://www.enterpriseintegrationpatterns.com/
 http://projects.spring.io/spring-integration/
 Spring Integration in Action by Mark Fisher, Jonas Partner, Marius
Bogoevici, and Iwein Fuld
 Spring Integration Essentials By Chandan Pandey
 https://github.com/spring-projects/spring-integration
THANK YOU!!
 Questions??

More Related Content

What's hot

Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Guido Schmutz
 
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Amazon Web Services Korea
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Tin Linn Soe
 
Azure Service Bus
Azure Service BusAzure Service Bus
Azure Service Bus
BizTalk360
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
Kellton Tech Solutions Ltd
 
Aci presentation
Aci presentationAci presentation
Aci presentation
Joe Ryan
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
Cisco Application Centric Infrastructure
Cisco Application Centric InfrastructureCisco Application Centric Infrastructure
Cisco Application Centric Infrastructure
islam Salah
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
Johannes Ridderstedt
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application server
IBM Sverige
 
Introduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matterIntroduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matter
confluent
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
Amazon Web Services
 
10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration
Coforge (Erstwhile WHISHWORKS)
 
Kafka and Avro with Confluent Schema Registry
Kafka and Avro with Confluent Schema RegistryKafka and Avro with Confluent Schema Registry
Kafka and Avro with Confluent Schema Registry
Jean-Paul Azar
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
WSO2
 
Access Denied: Real-World Use Cases for APEX and Real Application Security
Access Denied: Real-World Use Cases for APEX and Real Application SecurityAccess Denied: Real-World Use Cases for APEX and Real Application Security
Access Denied: Real-World Use Cases for APEX and Real Application Security
Jim Czuprynski
 
Netflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & CassandraNetflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & Cassandra
DataStax Academy
 

What's hot (20)

Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & PartitioningApache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
 
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
 
Azure Service Bus
Azure Service BusAzure Service Bus
Azure Service Bus
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
 
Aci presentation
Aci presentationAci presentation
Aci presentation
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Cisco Application Centric Infrastructure
Cisco Application Centric InfrastructureCisco Application Centric Infrastructure
Cisco Application Centric Infrastructure
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
IBM WebSphere application server
IBM WebSphere application serverIBM WebSphere application server
IBM WebSphere application server
 
Introduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matterIntroduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matter
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration
 
Kafka and Avro with Confluent Schema Registry
Kafka and Avro with Confluent Schema RegistryKafka and Avro with Confluent Schema Registry
Kafka and Avro with Confluent Schema Registry
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
 
API Design - 3rd Edition
API Design - 3rd EditionAPI Design - 3rd Edition
API Design - 3rd Edition
 
Access Denied: Real-World Use Cases for APEX and Real Application Security
Access Denied: Real-World Use Cases for APEX and Real Application SecurityAccess Denied: Real-World Use Cases for APEX and Real Application Security
Access Denied: Real-World Use Cases for APEX and Real Application Security
 
Netflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & CassandraNetflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & Cassandra
 

Viewers also liked

Spring integration
Spring integrationSpring integration
Spring integration
Oliver Gierke
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
Gunnar Hillert
 
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
Gunnar Hillert
 
Spring Web Service, Spring Integration and Spring Batch
Spring Web Service, Spring Integration and Spring BatchSpring Web Service, Spring Integration and Spring Batch
Spring Web Service, Spring Integration and Spring Batch
Eberhard Wolff
 
Define enterprise integration strategy by industry leader bhawani nandanprasad
Define enterprise integration strategy by industry leader bhawani nandanprasadDefine enterprise integration strategy by industry leader bhawani nandanprasad
Define enterprise integration strategy by industry leader bhawani nandanprasad
Bhawani N Prasad
 
Camel vs Spring EIP JAVA DSL
Camel vs Spring EIP JAVA DSLCamel vs Spring EIP JAVA DSL
Camel vs Spring EIP JAVA DSL
Jonathan Livingston
 
Integration intervention: Get your apps and data up to speed
Integration intervention: Get your apps and data up to speedIntegration intervention: Get your apps and data up to speed
Integration intervention: Get your apps and data up to speed
Kenneth Peeples
 
Messaging with Spring Integration
Messaging with Spring IntegrationMessaging with Spring Integration
Messaging with Spring Integration
Vadim Mikhnevych
 
Integration strategy for large erp deployments
Integration strategy for large erp deploymentsIntegration strategy for large erp deployments
Integration strategy for large erp deployments
Arup Dutta
 
Spring integration
Spring integrationSpring integration
Spring integration
Dominik Strzyżewski
 
Mba ii u v enterprise application integration
Mba ii u v enterprise application integrationMba ii u v enterprise application integration
Mba ii u v enterprise application integration
Rai University
 
Application integration in the age of APIs
Application integration in the age of APIsApplication integration in the age of APIs
Application integration in the age of APIs
Renat Zubairov
 
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
ColomboArchitectureMeetup
 
Smart first, Phones later (Tin Kadoic)
Smart first, Phones later (Tin Kadoic)Smart first, Phones later (Tin Kadoic)
Smart first, Phones later (Tin Kadoic)
Future Insights
 
Building API Integrations You Can Live With
Building API Integrations You Can Live WithBuilding API Integrations You Can Live With
Building API Integrations You Can Live With
Future Insights
 
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
Kai Wähner
 
AIA 4 Iowa Apps User Group
AIA 4 Iowa Apps User GroupAIA 4 Iowa Apps User Group
AIA 4 Iowa Apps User Group
Jim Basler
 
Enterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) conceptsEnterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) concepts
Shantanu Thakre
 
Debug like a doctor
Debug like a doctorDebug like a doctor
Debug like a doctor
Ouadie LAHDIOUI
 

Viewers also liked (20)

Spring integration
Spring integrationSpring integration
Spring integration
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
 
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 Web Service, Spring Integration and Spring Batch
Spring Web Service, Spring Integration and Spring BatchSpring Web Service, Spring Integration and Spring Batch
Spring Web Service, Spring Integration and Spring Batch
 
Define enterprise integration strategy by industry leader bhawani nandanprasad
Define enterprise integration strategy by industry leader bhawani nandanprasadDefine enterprise integration strategy by industry leader bhawani nandanprasad
Define enterprise integration strategy by industry leader bhawani nandanprasad
 
Camel vs Spring EIP JAVA DSL
Camel vs Spring EIP JAVA DSLCamel vs Spring EIP JAVA DSL
Camel vs Spring EIP JAVA DSL
 
Integration intervention: Get your apps and data up to speed
Integration intervention: Get your apps and data up to speedIntegration intervention: Get your apps and data up to speed
Integration intervention: Get your apps and data up to speed
 
Spring Integration
Spring IntegrationSpring Integration
Spring Integration
 
Messaging with Spring Integration
Messaging with Spring IntegrationMessaging with Spring Integration
Messaging with Spring Integration
 
Integration strategy for large erp deployments
Integration strategy for large erp deploymentsIntegration strategy for large erp deployments
Integration strategy for large erp deployments
 
Spring integration
Spring integrationSpring integration
Spring integration
 
Mba ii u v enterprise application integration
Mba ii u v enterprise application integrationMba ii u v enterprise application integration
Mba ii u v enterprise application integration
 
Application integration in the age of APIs
Application integration in the age of APIsApplication integration in the age of APIs
Application integration in the age of APIs
 
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
Colombo Architecture Meetup - Enterprise Integration Architectural Challenges...
 
Smart first, Phones later (Tin Kadoic)
Smart first, Phones later (Tin Kadoic)Smart first, Phones later (Tin Kadoic)
Smart first, Phones later (Tin Kadoic)
 
Building API Integrations You Can Live With
Building API Integrations You Can Live WithBuilding API Integrations You Can Live With
Building API Integrations You Can Live With
 
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
Scandev / SDC2013 - Spoilt for Choice: Which Integration Framework to use – A...
 
AIA 4 Iowa Apps User Group
AIA 4 Iowa Apps User GroupAIA 4 Iowa Apps User Group
AIA 4 Iowa Apps User Group
 
Enterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) conceptsEnterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) concepts
 
Debug like a doctor
Debug like a doctorDebug like a doctor
Debug like a doctor
 

Similar to Enterprise Integration Patterns with Spring integration!

FME as an ESB at the Township of Langley
FME as an ESB at the Township of LangleyFME as an ESB at the Township of Langley
FME as an ESB at the Township of Langley
Safe Software
 
Spring integration
Spring integrationSpring integration
Spring integration
Zülfikar Karakaya
 
JDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented DesignJDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented DesignHossam Karim
 
The New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRLThe New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRLJorgen Thelin
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)
Tuan Yang
 
Event Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUGEvent Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUG
Chris Patterson
 
Chapter 2 - Enterprise Application Integration.pdf
Chapter 2 - Enterprise Application Integration.pdfChapter 2 - Enterprise Application Integration.pdf
Chapter 2 - Enterprise Application Integration.pdf
Khairul Anwar Sedek
 
Mule getting started
Mule getting startedMule getting started
Mule getting started
Karim Ezzine
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003
Jason Townsend, MBA
 
Internetworking
InternetworkingInternetworking
InternetworkingRaghu nath
 
Telpro Integration
Telpro IntegrationTelpro Integration
Telpro Integration
Rex Sheridan
 
Designing Application over mobile environment
Designing Application over mobile environmentDesigning Application over mobile environment
Designing Application over mobile environment
Maulik Patel
 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architecture
Yisal Khan
 
MUSIC.pptx
MUSIC.pptxMUSIC.pptx
MUSIC.pptx
waqasjavaid26
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
rhaymarck
 
Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)kyroskoh
 
Mule fundamentals muthu guru rathinesh g
Mule fundamentals muthu guru rathinesh gMule fundamentals muthu guru rathinesh g
Mule fundamentals muthu guru rathinesh g
Muthu Guru Rathinesh G
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
Hamid Ghorbani
 

Similar to Enterprise Integration Patterns with Spring integration! (20)

FME as an ESB at the Township of Langley
FME as an ESB at the Township of LangleyFME as an ESB at the Township of Langley
FME as an ESB at the Township of Langley
 
Spring integration
Spring integrationSpring integration
Spring integration
 
JDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented DesignJDC2008 - Enterprise Integration and Service Oriented Design
JDC2008 - Enterprise Integration and Service Oriented Design
 
The New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRLThe New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRL
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)
 
Event Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUGEvent Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUG
 
Chapter 2 - Enterprise Application Integration.pdf
Chapter 2 - Enterprise Application Integration.pdfChapter 2 - Enterprise Application Integration.pdf
Chapter 2 - Enterprise Application Integration.pdf
 
Mule getting started
Mule getting startedMule getting started
Mule getting started
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003
 
Internetworking
InternetworkingInternetworking
Internetworking
 
Telpro Integration
Telpro IntegrationTelpro Integration
Telpro Integration
 
Designing Application over mobile environment
Designing Application over mobile environmentDesigning Application over mobile environment
Designing Application over mobile environment
 
integeration
integerationintegeration
integeration
 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architecture
 
MUSIC.pptx
MUSIC.pptxMUSIC.pptx
MUSIC.pptx
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)Bsit – integration styles (intra + inter)
Bsit – integration styles (intra + inter)
 
Report on intranet
Report on intranetReport on intranet
Report on intranet
 
Mule fundamentals muthu guru rathinesh g
Mule fundamentals muthu guru rathinesh gMule fundamentals muthu guru rathinesh g
Mule fundamentals muthu guru rathinesh g
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
 

Recently uploaded

International Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software TestingInternational Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software Testing
Sebastiano Panichella
 
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Dutch Power
 
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Sebastiano Panichella
 
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXOBitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Matjaž Lipuš
 
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdfSupercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Access Innovations, Inc.
 
Media as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern EraMedia as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern Era
faizulhassanfaiz1670
 
Tom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issueTom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issue
amekonnen
 
Acorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutesAcorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutes
IP ServerOne
 
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
0x01 - Newton's Third Law:  Static vs. Dynamic Abusers0x01 - Newton's Third Law:  Static vs. Dynamic Abusers
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
OWASP Beja
 
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdfBonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
khadija278284
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
gharris9
 
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptxsomanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
Howard Spence
 
Obesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditionsObesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditions
Faculty of Medicine And Health Sciences
 
Burning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdfBurning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdf
kkirkland2
 
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Dutch Power
 
Getting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control TowerGetting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control Tower
Vladimir Samoylov
 
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Sebastiano Panichella
 
María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024
eCommerce Institute
 
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AwangAniqkmals
 

Recently uploaded (20)

International Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software TestingInternational Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software Testing
 
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
 
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...
 
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXOBitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXO
 
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
 
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdfSupercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
 
Media as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern EraMedia as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern Era
 
Tom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issueTom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issue
 
Acorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutesAcorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutes
 
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
0x01 - Newton's Third Law:  Static vs. Dynamic Abusers0x01 - Newton's Third Law:  Static vs. Dynamic Abusers
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
 
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdfBonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
 
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptxsomanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
 
Obesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditionsObesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditions
 
Burning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdfBurning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdf
 
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
 
Getting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control TowerGetting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control Tower
 
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
 
María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024
 
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
 

Enterprise Integration Patterns with Spring integration!

  • 1. ENTERPRISE INTEGRATION PATTERNS WITH SPRING INTEGRATION By Kiran Hegde https://www.linkedin.com/in/hegdekiran
  • 2. ENTERPRISE INTEGRATION!  Enterprise interaction allowed organizations to both share data and make use of functionality provided by other systems.  Although enterprise application integration can take many different forms  From extract-transform-load jobs run overnight  To all-encompassing SOA strategies  All approaches leverage one of four well-known integration styles  File-based integration  Shared-database integration  Remote Procedure Calls  Message-based integration
  • 3. 4 WELL KNOWN ENTERPRISE INTEGRATION STYLES  File-based integration –  Simple interoperable but deals with file read/write complexity  Shared-database integration  Atomic & Consistent but doesn’t solve invoking functionality in remote application  Remote Procedure Calls  Method invocation, return value is serialized via Stubs, Proxies & Marshalling  Therefore serializing arguments and return values harms interoperability  Message-based integration  Messaging is an integration style based on exchanging encapsulated data packets (messages) between components (endpoints) through connections (channels). As described at www.enterpriseintegrationpatterns.com,  The packets should be small, and they should be shared frequently, reliably, immediately, and asynchronously.  The middleware that can orchestrate reliable communication between these disparate endpoints, are typically called as Enterprise Service Bus (ESB).
  • 5. WHAT PRODUCTS USE ENTERPRISE INTEGRATION PATTERNS? Open source ESB's like Mule ESB, JBoss Fuse, Open ESB, WSo2, Spring Integration, or Talend ESB Message Brokers like ActiveMQ, Apache Kafka, or RabbitMQ EAI and SOA platforms, such as IBM WebSphere MQ, TIBCO, Vitria, Oracle ServiceBus, WebMethods (now Software AG), Microsoft BizTalk, or Fiorano.
  • 6. HOW IS AN INTEGRATION FRAMEWORK USEFUL? We live in an event-driven world. Throughout each day, we’re continuously bombarded by phone calls, emails, and instant messages. Interestingly I heard this somewhere –  This Talk is also Messaging, perhaps we could see as  Publish – Subscribe,  One producer – Many Consumers  May give immediate a.k.a Synchronous feedback  May take this message – Transform a bit an give it to teams/friends  Or leave an Aynchronous feedback – perhaps that this talk was good – jk!!  Real World example –  Online travel booking application
  • 7. DZONE – 2015 GUIDE TO ENTERPRISE INTEGRATION
  • 8. SPRING INTEGRATION OVERVIEW  It enables lightweight messaging within Spring-based applications  Supports integration with external systems via declarative adapters.  Those adapters provide a higher-level of abstraction over Spring’s support for remoting, messaging, and scheduling.  So essentially lightweight intra-application messaging  And flexible inter-application integration
  • 9. PIPES & FILTERS Anyone familiar with a UNIX-based operating system can appreciate the pipes-and-filters style: it provides the foundation of such operating systems. Consider a basic example: You can see that it’s literally the pipe symbol being used to connect two commands (the filters)
  • 10. THE CORE OF SPRING INTEGRATION IS  End Points ( Filters - similar to a Processor)  connected through  Channels (Pipes)  exchanging  Messages
  • 11. MESSAGES & CHANNELS  Messages  Channels  Point-to-Point Channel  Publish-Subscribe Channel
  • 12. DEMO
  • 13. DIFFERENT TYPES OF CHANNELS  Datatype Channel Configuration  Priority Channel Configuration  Scoped Channel Configuration   Channel Interceptor & Wire Tap Configuration 
  • 14. EVENT DRIVEN ARCHITECTURE & LOOSE COUPLING  Achieving an appropriate degree of loose coupling allows you to spend more time adding new features and delivering business value.  Event-driven architecture (EDA) is an architectural pattern in which complex applications are broken down into a set of components or services that interact via events.  Where events are communicated via channels that can act as buffers in periods of high throughput, such a system can be described as having a staged event-driven architecture (SEDA).  The question of whether an application built around the Spring Integration framework is inherently an EDA or SEDA application is open to debate. Certainly Spring Integration provides the building blocks to create both EDA and SEDA applications.
  • 15. MESSAGE ENDPOINTS  Receivers or senders  Endpoints can either receive messages from the channel or put messages on the channel for further processing.  Polling endpoints or event-driven endpoints  Endpoints can either pull messages from the channel or can subscribe to it. Whenever a message is available, a registered callback method is called.  Unidirectional or bidirectional endpoints  Unidirectional endpoints send off or receive messages, but do not expect or receive any acknowledgement. Spring Integration provides channel adapters for such types of interactions. Bidirectional adapters can send, receive, and acknowledge messages. Spring Integration provides gateways that are synonymous with synchronous two-way communication.  Inbound or outbound endpoints  Outbound endpoints interact with external systems such as social networks, mail servers, enterprise JMS, and others, whereas inbound endpoints listen for events from outside entities such as mail connector, FTP connector, and so on.
  • 16. MESSAGE PROCESSING USING SPRING INTEGRATION ENDPOINTS  Messaging Gateway  Service Activator
  • 17. DEMO
  • 18. FLOW COMPONENTS  Router  Splitter  Aggregator
  • 19. ROUTER  Payload type Router  Header value Router
  • 20. DOMAIN DRIVEN TRANSFORMATION Message transformers are implementations of the Enterprise Integration Pattern (EIP) named Message Translator,
  • 21. HTTP & OBJECT TO JSON TRANSFORMER  Demo
  • 22. SPRING BATCH + SPRING INTEGRATION WITH RABBIT MQ  Demo
  • 23. ENTERPRISE INTEGRATION PATTERNS!!  Reconciling the EIP slide shared earlier in presentation – we should not have correlation to one each of the broader level component.
  • 24. REFERENCES  Views personal and not of employer’s  Sharing what I learnt, is not an endorsement!  Content referenced from few books, blogs & online resources  Few of them below  http://www.enterpriseintegrationpatterns.com/  http://projects.spring.io/spring-integration/  Spring Integration in Action by Mark Fisher, Jonas Partner, Marius Bogoevici, and Iwein Fuld  Spring Integration Essentials By Chandan Pandey  https://github.com/spring-projects/spring-integration