Implementing enterprise integration solutions with Spring Integration

June 2 20095 Commented

Categorized Under: Java, Software Engineer, Technology

In our last project, we faced 2 challenges of how to build the SaaS platform including various modules; some are developed by ourselves and some are third parties (Forum, Wiki, Mail, etc.). With third-parties, we limit modifying their code base and database schema due to client's requirements. Here are our challenges:

Challenge 1: When a new user is registered, some our modules need to acknowledge and have re-actions. For example:

  • Document Management module creates a personal document workspace for that user.
  • Calendar module creates a personal calendar for that user.
  • Forum and Wiki register that user to their user database because Engroup supports Single Sign On (SSO) mechanism. That means any user registered to Engroup user database can access Forum and Wiki resources without registering their user database.

Since our application follows SaaS model, the modules acknowledging and having re-actions to that registered user are dynamically discovered at runtime. This prohibits us from invoking module API in static manner.

Challenge 2: We want to implement audit trail process. Each module installed into our platform must follow the rules of tracking our user activities. Our goal is to build a common API sending user activities to reporting server but all our modules must loose coupling with the reporting API. This design helps us to configure reporting server in different machines easily.

We found out the solution for 2 application integration problems above - service bus. After evaluating 3 open source enterprise service bus (ESB) frameworks: Spring Integration, Mule, and Service Mix, Spring Integration finally is our choice, based on the criterion we set as follows:

  • Simple - if you already know Spring and Enterprise Integration Patterns, you can quickly use this library.
  • Extensible - Spring Integration does not support many adapters like ServiceMix or Mule does; but it is easy to add new adapters by extending. In the next post, I will write an example of how to extend Spring Integration.
  • Compatible - Our platform is built on Osgi, like Spring Integration and ServiceMix 4. However, ServiceMix 4 is not mature enough as well as it lacks of documentation.
  • Friendly license - ServiceMix has friendly license, too. However, we are afraid that CPAL of Mule may prevent us from developing our commercial project.
  • Lightweight - We can use Spring Integration as a part of our application while ServiceMix and Mule need to be deployed on separate servers.

If you have a need of using a Java ESB, Spring Integration may be a good candidate. I will write some posts about Spring Integration examples and how to extend Spring Integration as we managed in our projects in the near future. Keep reading!

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • blinkbits
  • BlinkList
  • blogmarks
  • BlogMemes
  • BlogMemes Cn
  • BlogMemes Fr
  • BlogMemes Jp
  • BlogMemes Sp
  • Blogosphere News
  • Blogsvine
  • blogtercimlap
  • Book.mark.hu
  • Bumpzee
  • co.mments
  • connotea
  • De.lirio.us
  • Design Float
  • DotNetKicks
  • DZone
  • eKudos
  • email
  • Fark
  • Faves
  • feedmelinks
  • Fleck
  • Furl
  • GeenRedactie
  • Global Grind
  • Gwar
  • Haohao
  • HealthRanker
  • Hemidemi
  • Identi.ca
  • IndianPad
  • Internetmedia
  • kick.ie
  • Kirtsy
  • laaik.it
  • Leonaut
  • LinkaGoGo
  • LinkArena
  • LinkedIn
  • Linkter
  • Live
  • Ma.gnolia
  • Meneame
  • MisterWong
  • MisterWong.DE
  • muti
  • MyShare
  • MySpace
  • N4G
  • Netvibes
  • Netvouz
  • NewsVine
  • NuJIJ
  • Ping.fm
  • PlugIM
  • Pownce
  • ppnow
  • Print
  • Propeller
  • Ratimarks
  • Rec6
  • Reddit
  • SalesMarks
  • Scoopeo
  • scuttle
  • Segnalo
  • Shadows
  • Simpy
  • Slashdot
  • Smarking
  • Socialogs
  • SphereIt
  • Spurl
  • StumbleUpon
  • Symbaloo
  • Taggly
  • TailRank
  • Technorati
  • ThisNext
  • Tipd
  • Tumblr
  • TwitThis
  • Upnews
  • Webnews.de
  • Webride
  • Wikio
  • Wikio FR
  • Wikio IT
  • Wists
  • Wykop
  • Xerpi
  • Yahoo! Buzz
  • YahooMyWeb
  • Yigg

5 Responses to “Implementing enterprise integration solutions with Spring Integration”

  1. JamesD says:

    Thanks for the useful info. It’s so interesting

  2. patsej says:

    Very valuable idea

  3. [...] want to subscribe to the RSS feed for updates on this topic.Powered by WP Greet BoxIn the post http://blog.esofthead.com/implementing-enterprise-integration-solutions-with-spring-integration/, I have outlined several chanllenges that could be solved by using Spring Integration framework. [...]

  4. LLoyd Buster says:

    I bookmarked your site, this is very useful, thank you. Please check mine : crm – customer resource management

  5. Ravi Sachdev says:

    Nice article.

    There is one correction though – your statement:

    “Lightweight – We can use Spring Integration as a part of our application while ServiceMix and Mule need to be deployed on separate servers.”

    is not entirely correct, as far as Mule is concerned (not too sure about ServiceMix). Mule can be downloaded either as a seperate server, or as a single JAR that can be embedded within your application and run within the same JVM.

    Additionally, in case of a separate deployment, it’s also possible to run nultiple instances of Mule on the same machine, with tweaks to the listener ports, etc.

    Please see: http://www.mulesoft.org/download-mule-esb-community-edition

Leave a Reply