LibraryLink ToToggle FramesPrintFeedback

Chapter 1. Introduction to FUSE ESB

One of the biggest challenges facing modern enterprises is IT system integration. FUSE ESB tackles this problem using a lightweight standards based, loosely coupled approach. By relying on standards, FUSE ESB reduces the chances of vendor lock-in. By advocating loose coupling, FUSE ESB reduces the complexity of integration.

Enterprise networks commonly deploy disparate applications, platforms, and business processes that need to communicate or exchange data with each other. The applications, platforms and processes have non-compatible data formats and non-compatible communications protocols. If an enterprise needs to interface with external systems, the integration problem extends outside of a company and encompasses its business partners' IT systems and processes as well.

In recent years, there have been several technologies attempting to solve these problems such as Enterprise Application Integration (EAI), Business-to-Business (B2B). These solutions addressed some of the integration problems, but were proprietary, expensive, and time-consuming to implement. These solutions range from expensive vendor solutions (high cost, vendor lock-in) to home-grown custom solutions (high maintenance, high cost). The overwhelming disadvantages of these solutions are high cost and low flexibility due to non-standard implementations.

Most recently, Service Oriented Architecture(SOA) has become the hot integration methodology. SOA attempts to address the shortcomings of the other approaches by advocating the use of standards and the use of loosely coupled interfaces. While, SOA, theoretically, improves the solution, it can be difficult to implement because vendors are offering tools using proprietary technologies and attempting to wrap old solutions in SOA clothing.

An Enterprise Service Bus(ESB) is the back bone of a SOA implementation. There is no canonical definition of an ESB. Wikipedia opens its entry on ESBs (http://en.wikipedia.org/wiki/Enterprise_service_bus) by stating:

 

An ESB generally provides an abstraction layer on top of an implementation of an enterprise messaging system, which allows integration architects to exploit the value of messaging without writing code. Contrary to the more classical enterprise application integration (EAI) approach of a monolithic stack in a hub and spoke architecture, the foundation of an enterprise service bus is built of base functions broken up into their constituent parts, with distributed deployment where needed, working in harmony as necessary.

 
 --Wikipedia

LooselyCoupled defines an ESB as follows:

 

An ESB acts as a shared messaging layer for connecting applications and other services throughout an enterprise computing infrastructure. It supplements its core asynchronous messaging backbone with intelligent transformation and routing to ensure messages are passed reliably. Services participate in the ESB using either web services messaging standards or the Java Message System (JMS). Originally defined by analysts at Gartner, ESB is increasingly seen as a core component in a service-oriented infrastructure.

 
 --looselycoupled.com

The most common way of defining an ESB is by listing the services it provides. These services include:

  • transport mediation - not all services that need to be integrated use HTTP or JMS

  • dynamic message transformation - not all services are going to use SOAP and are unlikely to require the same message structures

  • intelligent routing

  • security

An ESB simplifies the complexity of integration by providing a single, standards based infrastructure into which applications can be plugged. Once plugged into the ESB, an application or service has access to all of the infrastructure services provided by the ESB and can access any other applications that are also plugged into the ESB. For example, you could plug a billing system based on JMS into an ESB and use the ESBs transport mediation features to expose the billing system over the Web using SOAP/HTTP. You could also route internal POs directly into the billing system by plugging the your PO system into the ESB.

Most ESB implementations provide all of the services that are used to define an ESB, so it is hard to differentiate ESB implementations based on features. A better way to differentiate between them is to use the following four measures:

Based on Apache ServiceMix, FUSE ESB reduces complexity and eliminates vendor lock in because it is standards based and built using best in breed open source technology. It differentiates itself in the following ways:

In addition, FUSE ESB supports event driven architectures. Services deployed into the FUSE ESB container can be fully decoupled and will simply listen on the bus until an appropriate service request arrives. FUSE ESB also supports events that occur outside of the bus. For example, a JMS service can listen on a topic that is hosted outside of the bus and only act when an appropriate message arrives.