Lately I gained interest in application integration projects and that led me to read or skim through some topics on EAI in internet and then came across comparisions with SOA and ESB. Overall, I'm confused. So, I would really appreciate if some one could throw some light on these topics, comparing them to each other , when to use what and why. I read at many places about comparing SOA to ESB is like comparing car to road. Well a simple anology, but not tha simple for me to understand. So to put it simple, below are my questions
1) are EAI , SOA and ESB some sort of concepts or software frameworks ?
2) What are the commercial/open source products available, implementing these concepts ?
3) Which one would you weigh in Hub/Spoke or Bus ?
4) What is the difference between the Bus which I referred in my earlier question and ESB?
A Service Oriented Architecture is a business concept used for designing business services with an emphasis on cost efficiency, maintenance and ability to create new business models and products.
An Enterprise Service Bus is a more technical concept that is related to implementing a specific section of a Service Oriented Architecture. It would only be a small part of a much bigger architecture. speco
Neither one of these is a software framework. SOA is a business methodology and ESB is a technical tool used to implement a specific element of a specific SOA implementation.
Service-oriented architecutres are very complex and have many different levels and can be viewed from multiple perspectives. There are many products which can be used to implement various "technical" parts of a SOA. However, the fact that it is a business-oriented methodology is the more important aspect rather than the related technical tools.
To start to build a solid understanding, you should read a complete book rather thatn scattered web page content, e.g. short, unedited articles. And once you read a complete book, then you should read about three or four more books to be able to compare author's viewpoints and experiences. Below is a good starting point.
Aside, "web services" is an integration technology similar to JMS and CORBA which is used to connect distributed applications. This is a different concept than the business services of an SOA implementation. Even though both concepts are using the same term, i.e. "service", they are very different concepts.