Wednesday, August 19, 2015

Spring Integration JUG Notes



I recently attended a local Java User's Group on Spring Integration, on June 25, 2015.

Sam Alexander, the Enterprise Architect with Healthesystems was the presenter.  He was a very knowledgable and engaging speaker.  He was also very patient with the numerous questions that I asked. :-)

Although I have worked with multiple projects under the Spring umbrella since 2005 (Spring Core, Spring Data, Spring Security, Spring Web MVC), I had zero exposure to Spring Integration.

My notes from the presentation:

·         Spring Integration is in the same space as Apache Camel.  It is not an Enterprise Integration tool, it is really meant to help you write better code.

·         It uses a Messaging style architecture.  Here are some diagrams I drew during Sam’s presentation, converted from my handwritten notes to Visio.






·         Keys are immutable but values can change. 
·         There are many ways to construct a Message.

Channels

There are 2 types of channels: Pollable, Subscribable
·         Pollable – Point-to-point, buffer/queue capacity
·         Subscribable – No buffer, multiple endpoint receivers

Adapters

Adapters integrate with other systems.  They can talk with Streams, File, JMS, MongoDB, even Twitter.

Filters

Can use SpEL (Spring Integration Language), XPath, XML Schema for validation.

Transformers

Transformers handle serialization/deserialization somewhat differently than JMS.  There are numerous out-of-box Transformers.

Service Activators

Trigger a Service when a message arrives.

Gateway



Conclusion

Spring Integration is not an ESB (Enterprise Service Bus), not a BPM (Business Process Management) product.

Spring Integration is about Data Flow and Data Management, as opposed to ESBs which are for disparate applications.