Spring Integration to iPaaS aka Cloud Integration
In 2010 I worked on a project which involved Spring integration framework, the framework was introduced by a friend and colleague. Messaging as a programming model in Spring integration was a refreshing way to build applications (I highly recommend reading the linked article by Gregor Hohpe). You have to think about everything as integration & message passing between two components . Fast forward to early 2014 and working on iPaaS platform is next level of integration (iPaaS is well Recognized by Gartner and magic quadrant on iPaaS). iPaaS platform basically provides ability to connect various apps on cloud and on premise with ease. In this post we will briefly see Spring integration’s programming model and jump from there to discussing iPaaS platforms in slightly more detail.
Spring integration – message oriented programming model
In message oriented programming you build components separately and then connect them together. You of course have to agree on what the input and output of each component will be – which is the contract or the “message”. Everything you pass from one component to other is wrapped as “message”. The type of components are many (router, splitter, aggregator) and the way they talk to each other is also configurable (pub-sub, polling based). In addition you can assign more threads to a component which is heavy lifter and assign fewer threads to simpler components thus optimizing thread allocation. And of course you get benefit of being able to develop relatively independently modules and connect them. (I said relatively because in practice there are limits to how much you can really do in parallel vs. the need for collaboration). Similar programming model is followed in Apache Camel, Mulesoft etc. as well.
Cloud integration: The iPaaS problem
With adoption of cloud applications like Salesforce, Twillio, NetSuite etc. the integration now has two aspects:
- Cloud apps to on premise apps integration
- Cloud apps to cloud apps integration
While we have been integrating applications for long, you must be wondering what is so special about iPaaS now? Gartner classifies primary differentiation between a classic integration vs. iPaaS player as the offering over cloud, which enables among other things
- Ubiquitous access to platform – build and access anywhere.
- Elasticity of cloud enables integration process execution agents to scale seamlessly.
- On demand and pay as you go offering of iPaaS enables even SMBs to get started with integration without huge cost involved upfront.
- Emergence of APIs , IoT (Internet of things) among other things – which calls for more and more integration between systems & devices which can scale.
- For platforms such as Salesforce, NetSuite etc. – standard set of connectors are available. This reduces overall development time for any integration and you can build things in drag and drop fashion by configuring.
- Relatively simpler approach enables business to build integration on their own.
iPaaS: the players
Gartner has listed many players in the iPaaS space. I will specifically walk you through “Dell Boomi” and “MuleSoft Cloudhub” very briefly. Head to slides for a quick overview:
The integration space itself is huge with citizen integration (integration meant for end consumers for example Gmail integration with Dropbox etc.) and enterprise integration. iPaaS platforms primarily aimed at enterprise present a powerful and yet simple way to integrate applications. As more devices and more systems start connecting to each other – more we will see the integration between them. Being able to integrate systems easily and scaling the integration meet increased traffic is essential in today’s world. iPaaS players offer this by making integration “drag and drop” simple and providing cloud scalability.