Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

JVM Languages

Defining the ESB


Do I Need an ESB?

Hopefully, at this point, you've built a basic understanding of what an ESB is, and how it can be used. The next step is learning when (and how) to use an ESB. If you're building an application that consumes web services, communicates with remote software systems or components, requires reliable messaging and transaction services, or integrates with legacy applications, you will benefit greatly from the ESB. If you work with software that relies on particular communication protocols, interfacing techniques, or instrumentation, the ESB helps to abstract your application from these details. This adaptability ensures that as protocols and interfaces change, your application will be insulated from those changes.

Beginning with the material covered in this article, you should see how the ESB can help you, especially if you're developing software that uses any of the following:

  • XML
  • An SOA-based design
  • A component architecture (i.e. JavaBeans, Microsoft COM, CORBA, and so on)
  • Web 2.0 features
  • An event or state-driven design
  • Workflow definition and management

The case studies discussed below intend to show you how other organizations have solved real-world problems with an ESB. You will see not only the problems that were solved, but also the added benefits that an ESB provided, and the factors that led to the decision to use an ESB in the first place. After that, I look at various commercial and open-source ESB offerings, and then explore a "Hello, world!" application that demonstrates how easy it is to get up and running with an ESB.

ESB Case Studies

To add proof to the claims of benefit, let's look at some companies (and their products) that achieved proven success from using an ESB. Below, you will see examples of how an ESB has helped companies large and small, across a wide range of applications, including financial services, partner service integration, order processing, enterprise resource management, and content-based information services.

Travel System Integration. To integrate with its partners, and to provide secure, reliable, transactions to its customers, LibGo Travel turned to the ESB. LibGo's system ties together outside systems and services from airlines, hotels, other travel agencies, with its own internal systems using an ESB and a built-in rules engine for workflow management. Instead of building a specialized interface for each of its partner's systems -- a development process that doesn't scale well -- LibGo decided to use an ESB and standardize on SOA-based technologies such as XML and SOAP. The result is a system that is less costly to integrate with partners and other third-party systems (Figure 14).

Figure 14: The LibGo composite application uses an ESB to integrate with its partners' systems, as well as other third-party software, using SOA-based standards such as XML, WSDL, and SOAP.

The application typically handles over 1 million transactions per day, and can easily scale upward as needed. With the ESB and the standards it implements, it's straightforward for new systems to be integrated, and more servers to be rolled out as needed. Furthermore, not all of the systems that LibGo interfaces with use HTTP web services. Some use FTP, email, even FAX reports. The ESB and its adapter layer normalize all message traffic as XML, and allow the disparate system to communicate in a reliable, secure, manner.

With the ESB, all of the integrated systems interface via XML standards, messages are guaranteed, distributed transactions are centrally coordinated, business processes are managed via a configurable rules engine, and security is implemented end-to-end. LibGo achieved all of this without requiring third-party providers to rewrite their software, or make any large-scale or costly changes.

Bank Account Management. Rabobank, faced with regulatory demands and increasing competition, turned to the ESB to expand its banking infrastructure, and to meet the growing needs of its customers. The ESB solved these problems by providing an infrastructure for a straight-through processing (STP) system that integrated into an existing network with existing software systems. The ESB enabled Rabobank to meet its number one requirement -- use open-standards to avoid vendor lock-in.

The use of standards meant that Rabobank could support diverse platforms and technologies, such as .NET, Java EE, and the various web servers and application servers that its partners and customers may already have rolled out in production. After the initial development effort to rollout the ESB framework, Rabobank and its partners are now able to integrate new applications and services with its core services in a matter of days.

The ESB has allowed Rabobank to focus on its core functionality, and not the technology required to build reliable, globally distributed systems. The needs of both the end users and partners are now the primary focus, and where most of the time and money are spent. Best of all, the ESB allows the core business processes to be easily modified to adapt to changing market conditions and customer needs.

Straight-through Processing/Order Processing. Stratus Technologies provides software, hardware, and services for ATM and credit card vendors, as well as securities and brokerage firms. In the past, Stratus would need develop new software and roll out new servers to integrate with a new partner's software. This process proved costly and troublesome; and with very little similarity between each implementation, there was not much chance for re-use.

Noticing the growing numbers of SOA implementations in the financial industry, Stratus used an ESB to redesign its antiquated order processing system. The ESB provides much needed integration points to systems from its vendors, customers, and shippers, and allows them to orchestrate all of the distributed business processes. Business processes are encoded as XML-based rules, and the ESB provides message transformation services to seamlessly integrate XML and non-XML data into the message flow, as in Figure 15.

Figure 15: Stratus broke its system down into eight core business processes that customers interface with using XML/WSDL. The ESB provides message transformation and business process management services to easily integrate third-party systems via standards.

The ESB helps to enforce interface standards and rules, providing error checking and notification when problems occur. It's estimated that the ESB has cut Status' costs by 60 percent when integrating new customers. Additionally, administrative staff can monitor and manage the system from anywhere on the network using only browser, providing a further savings of 70 percent in overall system maintenance costs.

Business Process Management. Xerox achieved cost savings in its core business processes, as well as time-to-market reduction in new system rollout, because they adopted an ESB. The strengths of the ESB allowed disparate databases across the organization to be integrated with new front-end systems repeatedly, without duplicating effort or costly custom coding.

The ESB implementation replaced a CORBA-based system of ever-increasing complexity and cost. The reliability provided by the ESB, along with its support for SOA standards, allowed Xerox to build and deploy its growing number of business applications efficiently, without sacrificing quality. The use of standards and ESB-provided adapters has decreased the amount of custom coding required for new application integration, and has saved an estimated $720,000 annually in development and maintenance costs.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.