RSS Feed Subscribe to RSS Feed


TSS2009: EAI and Spring Integration

Enterprise Application Integration, and Spring
Speaker: Josh Long

Josh is currently a Senior Software Engineer with Wells Fargo


Josh started by giving an overview of what EAI is:

  • Integration of Services and/or data
  • EAI platforms are now known as ESBs

Types of EAI:

  • File Transfer
  • Shared Database
  • RPC
  • Messaging

Common ESB Capabilities

  • Location Transparency – the client doesn’t need to know where the service is deployed, for example, what the IP address is, instead the client just talks to the bus.
  • Transparency Conversion – hiding from the client what the transmission protocol is
  • Message Transformation / Routing / Enhancement
  • Security (Spring Security, formerly Acegi.) The idea that you can lock down method invocations using rules, so that they cant be invoked by anyone.
  • Monitoring and Management – you might use JMX for Spring Integration
  • process Management, such as BPM (e.g. jBPM)

Applicability of an ESB

•    As the foundation of all SOA architectures
•    They encourage the creation of centralized silos of info and services – which is anti-SOA
•    Use for exposing hidden applications and services
•    Not the fastest solution since, by definition, they are a level of indirection
•    To integrate applications/data that don’t naturally fit well together
•    Reduce architecture spaghetti

Think of an ESB like a Babel Fish (nice Hitchhikers guide to the galaxy reference!)

Spring Integration & The ESB Landscape

Created by Mark Fisher at Spring Source
A new addition to the Spring Portfolio
Provides support for SOA, EDA and EAI

The ESB Landscape

  • Tradition EAI soutions, e.g. from TIBCO, Axway, WebMethods
  • openSource solutions e.g. ServiceMix, PEtALS, OpenESB, JBossESB, Mule (and now Spring Integration)
  • The alternative is lesser solution strung in an unstructured format

Case Study

Josh then talked through a case study – a central user authorization and management hub. I found this a little hard to follow (but then I think case studies are often hard to follow in presentations, especially when there’s lot of XML!). However he did a good job of talking through the main parts, such as the Spring Application (ClassPathXml) Context as well as mentioning the 3 components that most integration solutions involve, including Spring Integration, namely

  • Channels
  • Endpoints
  • Adapters


I really enjoyed Josh’s presentation. Although I’m familiar with a lot of the Spring Framework, the Spring Integration project hadn’t made it on to my radar yet, so it was good to get an overview of it from someone who has clearly used it in the field, so to speak.

The main takeaway points I had were that Spring Integration is effectively an ESB, but implemented as a thin layer on top of the existing Spring Framework meaning that you don’t need to deploy “into” it (as you would with a normal ESB). Instead you simply integrate it with you application.

I’d like to do some more reading on it and maybe get some more input from people like Josh who have used it, and perhaps get a better understanding of when you would want to go the ‘full hog’ and use a full blown ESB.


Leave a Reply