ChapterÂ 1.Â Getting Started

The first part of this chapter will focus on giving a brief introduction to the Enterprise Service Bus (ESB) in general, when to use it and when not to. Next, we will see how to deploy WSO2 ESB in a production environment with optimal settings.

The Enterprise Service Bus (ESB) today serves as a key component in most of the enterprise grade deployments.

An ESB is a middleware solution that enables interoperability among heterogeneous environments using a service-oriented model. An ESB models an application endpoint as a service. The ESB may host the service agent locally, or the service may execute remotely. In both cases, the ESB provides an abstraction layer that virtualizes the service and separates it from infrastructure concerns. The ESB makes the service accessible to other applications via one or more middleware protocols. As a general rule, one of the protocols that an ESB supports is Simple Object Access Protocol (SOAP), but it doesn't require all services to communicate via SOAP. The ESB mediates interactions between service endpoints and enables dissimilar systems to interoperate.

That's how Gartner defines the Enterprise Service Bus, as explained in depth at http://www.gartner.com/id=1405237.

In most cases the ESB removes point-to-point dependencies in your system to build a highly-scalable and loosely coupled solution. But that does not necessarily mean that ESB means SOA. ESB is a key ingredient to build an SOA infrastructure, but it's not a must. Even with an ESB, if not followed in industry's best practices and patterns, you will end up with a mess. Take ESB just as a tool to build an SOA in your enterprise and do not try to design an SOA around an ESB. Let your needs ask for an ESB, but do not start from it.

WSO2 ESB is an open source Enterprise Service Bus released under the business friendly Apache 2.0 license. It has support for most of the Enterprise Integration Patterns (EIP) highlighted by Gregor Hohpe and Bobby Woolf in their famous book, which laid the cornerstone for many of the ESBs out there today. You can read more about EIPs from http://www.eaipatterns.com. The complete catalogue of enterprise integration patterns supported by WSO2 ESB can be found at http://docs.wso2.org/wiki/display/IntegrationPatterns/Enterprise+Integration+Patterns+with+WSO2+ESB.

In most of the enterprise grade production deployments, ESB acts as a Service Gateway. The Service Gateway is a centralized access point where heterogeneous service providers meet heterogeneous service clients.

We would expect the following functionalities from a Service Gateway but not limited. In the sections to follow, we'll find out how capable WSO2 ESB is to cater for these requirements: