Can Enterprise Service Bus (ESB) architecture be used for Enterprise Application Integration (EAI) or Service Oriented Architecture (SOA)
In business world, SOA is an acronym for EAI. Present world, EAI has become a key point for business level integration. When companies need to integrate their internal business perspectives as well as from a business to business perspectives (B2B), they need to have a well implemented, trustworthiness, robust, scalable and loosely coupling infrastructure that takes care everything for company. Since a company might contain legacy applications that are developed using various technologies and different platforms in different eras, integrating them in order to build all-in-one business model is a harsh complicated task for naked eye. Not only inside same company variants, but it must also be considered about different companies interaction with each other. One particular company might use .NET framework whereas another company might use JAVA for applications and etc. When requests are coming from one company to another company in different formats in different data types over internet, they must be handled and served well without letting external entities or stakeholders to feel that they are dealing with multiple virtual bodies. What they need is available,fast and reliable service from their vendors, here websites or communication parties.
Why integration is hard to acquire? It is because your company systems are out of dated so that you do not have people who really know how it works or how it was implemented. This is a common issue when working with legacy systems. Only a few staff members possess competence and knowledge regarding legacy applications. The older the application, the fewer possess knowledge. So now you might think this is really a hard thing I have ever seen in software industry. Yes you are right, this is the most difficult task ever facing software development practitioners. But there are many companies those who have successfully plucked fruits using this EAI in appropriate way. it is a weapon that can be used either to kill a innocent man or protect same person. Choice is up to you, and depends on way you use that weapon. If you are an intelligent, you can save your boss or else you can kill him.
EAI is a must in business world to enable heterogeneous applications, in the business or between several business, to communicate and exchange data to achieve business objectives (wiki). It is not enough to have a model that is capable of integrating various implementation into one. It is essential to have a better approach to maintain them easily and govern in a safe and stable way. If you need to communicate with all other different already implemented models, you need to have a infrastructure that enables some rich communication paradigm such as message passing. So EAI in ESB can be stated as a model of message passing between heterogeneous applications where these messages are delivered, accepted, rejected, transformed, translated and routed in accordance with requirements defined in business needs When considering message transportation, it is usually asynchronous but can be implemented in synchronous manner as well. Architectural perspective, there are two type of them, bus and hub. To add this bus architecture to your EAI, there are many open source communities. Main advantage of using bus which is fully decoupling and equipped with separate language bindings such as java to XML from transport and messaging. JAXB is a good example for java architecture for XML binding which is independent from any web service technology. But hub/spoke integration solution suffers from tightly coupling since it is a centralized approach. That is why centralized hub/spoke integration is harder to adapt to the changing SOA. It is costly approach.
Now lets start digging into this. Having a common homogeneous way of data representation for an instance XML, does not mean semantics. Various participating (request sending decoupled systems) systems have many different semantics. To model a common well suited one, we need to introduce one enterprise wide common semantic information model defined with homogeneous canonical information formats [Designing, Building and Deploying Message Solutions] . Suppose we encourage the use of XML for defining canonical formats. it has been founded that using an ESB based approach for integration is very helpful factor in aspect of binding heterogeneous applications. But though XML is powerful, that does not yield that heterogeneous applications need not provide or process XML formatted data
If a company is looking for EAI on top of ESB, better think about open source integration. I will reveal some key points why companies should seek open source ESBs other than propritory. You might think they are not big deals, though these are common things in any open source development model, do we really need to expect them for our enterprise level ESB, this is for our company not for academic project or research, so why we look cheap and open source products as we always did during our academic period. You need to dig into you and ask why I should use propritary implementations first and then think what ever you want. First point is rapid development process of open source products with bug fixing has encouraged early adoption and the growth of a community. Second one is lack of license free encourages the use of open source softwares. Component based integration is massively common feature in open source products, its like a popular car company has a branded car parts all over the world. So you do not need to worry though you car damages severely because you have parts in any where in the world, same as open source ESB products.