Sunday 9 August, 2009

Difference between SCA and JBI

Java Business Integration (JBI) acts as a container (similiar to J2EE container which binds jsps, servlets, EJBs together) providing the deployment environment for service engines (BPEL SE, Java EE etc) and the binding components (SOAP,FTP etc) and facilitates in integrating them together. The interactions between service engines and binding components happens via Normalised message router (NMR) which plays a mediator role.

Service component architecture (SCA) specification helps in building and binding the components together using service oriented approach. SCA enables in writing platform independent components which can be invoked by disparate technologies seamlessly. Key here is that there is no requirement for a coordinator to bind different components together as the components themselves have the capability to communicate seamlessly in platform independent manner.

Thursday 6 August, 2009

Difference between ESB and Hub & Spoke

What is an ESB and how is it different from other Integration patterns like point to point and hub and spoke model?. In recent months this is the question most frequently posed to me by people who are about to start a project involving an ESB or who attended sessions on ESB's but still not sure about what exactly is it.

Let me start by first giving the definition of an ESB. ESB is a decentralised middleware infrstructure which facilitates seamless integration with disparate technologies and fostering reusability.

Now lets talk about other two popular design patterns, Point to Point design pattern establishes tight coupling between source and target systems by directly talking to target API. As the systems are tightly coupled there won't be any question of reusability.

In the Hub and Spoke pattern source and target systems are integrated through a centralised Hub. This centralised hub controls the flow of information between disparate technologies. But the main pitfall here is the centralised nature of the Hub itself. If there is any glitch with the Hub, communication between disparate technologies comes to stand still.

Now the difference between ESB and the other two design patterns is Decentralisation and Reusability. These are the two key factors which makes ESB different from other integartion design patterns. In ESB, along with ESB the services that makes an ESB are themselves reusable and they are decentralised which makes it efficient than other design patterns . Since the services in ESB are decentralised it becomes easy for supporting features like clustering,failover where as in hub and spoke model it is a big challenge to support the same.