ESB or Spring Integration

With every new language and new frameworks, systems developed today are getting extremely complex to understand. Buzz words like cross cutting concerns, separation of concerns and distributed applications are just adding complexity to the problems. Over past few years, development of large scale applications required development of various subsystems and integrating those systems to achieve common organisational goal.
It is always noticed that big organisations carry out their daily business operations on various systems developed and deployed on heterogeneous platforms and technology. Integration is required not for just, the in-house applications but geographically distributed business requires interfacing with subsystems spread across the globe. While it is not always possible to replace legacy systems, organisations are always looking to build new systems that can interface with old systems and carry out business process.
The problem of making systems communicate with each other is always crucial for growth and to carry out business activities smoothly. Well, that is where Enterprise Integration plays vital role.
A need was felt to have common language that can address enterprise level problem and help to built better software. Enterprise Integration patterns were the step towards building that common vocabulary. The patterns address most of the issues faced while building communication link between various systems.
Though Enterprise Integration patterns provide theoretical solution to the enterprise level problems, there was no readymade software available to address all above concerns.

Enterprise Service Bus
To address the Integration issues, a strong need was felt to have software that can help systems to communicate with each other and abstract the underlying protocol required for communication. Enterprise Service Bus was invented to address this concern and gained popularity within less time. There are many vendors providing their own ESB implementation helping business to integrate the systems.
Though ESB seems to be perfect choice for implementing Enterprise Integration, it has certain drawbacks like efforts required to implement a solution, most of the ESB use XML as data format for communication – require additional overhead to process the message, high hardware configuration requirements etc. On top of all, what If I am interested only in few Integration mechanisms and don’t want to use all nice to have features of ESB. In simple terms, can I get only features I am interested in and not whole ESB?