Enterprise Service Bus
Definition: An Enterprise Service Bus is software which is
designed to facilitate the interoperation of other heterogeneous software
operating in a networked environment throughout an enterprise. Analogies
may be helpful. An Enterprise Service Bus could almost be considered a
kind of operating system which is active at the enterprise level,
providing the basic framework through which other applications can talk to
one another.
|
|
|
The goal of letting corporate enterprise applications talk to one another
through middleware is one that in the past has proved elusive, although several
major attempts to achieve it have been made. Some were limited to applications
written in the same programming language. For example, Java’s Remote Method
Invocation would fall into this category. Others extended to more than one, but
still a limited range of languages. CORBA, the Common Object Request Brokerage
Architecture, is among the most prominent of these. All of these, ultimately,
seemed too limited in their range of applications to put down deep and permanent
roots in the IT marketplace.
Many previous incarnations of communications middleware were limited to either
messages, services or software objects. The Enterprise Service Bus is the first
serious attempt to go beyond that and integrate all three.
The concept of the Enterprise Service Bus is closely associated with that of a
Services Oriented Architecture. With a
Services Oriented Architecture, the functionality of any participating
applications within the enterprise is wrapped and made available as a service
which can be called on by other applications. The Enterprise Service Bus is the
medium through which the calls are made.
Usually, an application’s functionality can be invoked through passing an XML
(Extensible Markup Language) message in an agreed format. The results of the
operation will also be returned via an XML message. Open, rather than
proprietary, standards, such as SOAP and WDSL form the basis for the vast
majority of Enterprise Service Bus software out there. Using these, the
Enterprise Service Bus is able to abstract the functionality or data of each
member of the enterprise’s software ecosystem and make it available to all of
the other members.
Advocates for the Enterprise Service Bus\Services Oriented Architecture approach
argue that it promotes loose coupling between an enterprise’s applications,
making the IT infrastructure more flexible and more readily adaptable to change.
Over the course of time, they say, this flexibility promotes significant cost
savings, because new IT developments cost significantly less than they would do
otherwise. In many ways then, the adoption of an Enterprise Service Bus and a
Services Oriented architecture could be said to provide the same kind of
benefits at the enterprise level that object-oriented programming offered at the
application level for developers.
Naturally an Enterprise Service Bus must be equipped to deal with many
applications of different types. It is common for the Enterprise Service Bus
software, and its associated applications, to be able to run on more than one
operating system. Versions of Windows, and variants of Unix are, of course, the
options most commonly available. Because of its platform-independent nature, the
Java programming language is a popular choice for developers of Enterprise
Service Bus applications. A typical Enterprise Service Bus will also ship with
drivers for a great variety of
databases.
The advantage of an Enterprise Service Bus is that using it allows a company’s
existing, proven software applications to become part of an evolving software
landscape while remaining substantially unchanged. The alternative to the
Enterprise Service Bus / SOA model, where a viable alternative exists, involves
one application directly referencing another at the code level. This promotes
strict and fragile interdependencies between them, meaning that any future
updates to the applications will be costly in development efforts and prone to
subtle problems. An Enterprise Service Bus allows the work of each application
to be abstracted from the nitty-gritty of the infrastructure, confident that
routing and transactional integrity issues will be dealt with elsewhere.
In addition to providing a communications framework through which one node of
the corporate IT structure can talk to another, an Enterprise Service Bus will
also often provide transactional security. For example, if a software
application running on one computer used the Enterprise Service Bus to send a
message to an application running on another computer and then crashed before
the message could be processed, the Enterprise Service Bus would ensure that the
message was retained and delivered as expected. When the first computer came
online again, it would receive the appropriate response. Many Enterprise Service
Bus implementations also incorporate encryption facilities so that the message
traffic cannot easily be snooped on.
Some enterprise service bus software offer message augmentation capabilities.
Message augmentation is when the bus does not simply transmit a message from one
node to another but enhances the information content of the message along the
way. This could take place, for example, by reading information from the
software registry in which the calling application has been listed, or by
reading data from a database. Once extraneous data has been read it is then
added to the message content before delivery to the recipient.
Sometimes Enterprise Service Bus software is marketed on its own. Often,
however, it comes bundled with other enterprise application products. The
leading Enterprise Service Bus vendors in the marketplace include
Microsoft,
IBM, BEA,
Oracle and Software AG. In addition to the commercial providers, there are some
open source Enterprise Service Bus implementations too. Iona’s Celtix is the
best known of these. Although Iona is a commercial company, it chose to make its
Enterprise Service Bus software available for free. A basic version of Iona’s
Celtix has been integrated into the open source Apache project. Iona also makes
a higher-end, but still free, version of the software available for download.
The company hopes to make money by providing support and integration services
available for a fee.
|