Tuesday, August 25, 2009

Integration without ESB

Because of unstructured / unplanned development over the years, we have problems because of point-to-point integration between software applications, tight coupling at those integration points, lots of code and fewer configurations.

Based on the no. of applications integrating, no. of integration points will increase. If we have point-to-point integration in all these integration points , the we will have problem in the similar magnitude.

Initially to overcome the problems of Point-To-Point integration, we had Hub & Spoke. It means Integration based on Messages. That is , a Message Broker like MSMQ is used. Different applications connect with each other through Message broker by sending messages. The problem that was encountered here was the single point of failure and also the high volume message handling capability of the Queue become a concern.

Then came the services based integration where SOA played a major role. This type of integration becomes significant especially when there is a need to integrate applications across heterogeneous platforms. Because, there interoperability is the key requirement. ESB played a key role in these types of architectures.

ESB is primarily used for :

1. Schema Transformation / Data Transformation : To Transform Data or Schema of the messages that it sends / receives

2. Intelligent Routing: To intelligently route messages to various service end points depending upon the content of those messages.

3. Service Aggregation: To act as a Fa├žade and make a series of web service calls as a single service. This is based on the pattern “Service Aggregation”. It may also include some conditional logic that defines which of the lower-level web services are called and in which order they are invoked.

4. Load Balancing: To load balance the service requests across different service end points. It may have the provision that at the time of registering a business service, we can specify the list of service end points, which can be changed later by adding or removing end points. Here it provides a layer of abstraction between service client & service provider.

5. Enforcing Security: centralized, standardized security management through security policy framework.

6. Service Management / Monitoring / Logging: Proactive / Reactive monitoring of the services performance.

With the platform vendors are maturing towards offering products that are compatible with the industry standards [especially WS-* like WS-ReliableMessaging ], ESB is gradually loosing it's position in the integration arena !

No comments: