blob: f711463935f62c7f31d3e6ca36fdeee3bdbc1823 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version
2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the
License.
-->
<chapter id="introductiontoesb" xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://docbook.org/ns/docbook
http://www.docbook.org/xml/5.0/xsd/docbook.xsd"
version="5.0" xml:lang="en">
<title>Introduction to ESB</title>
<section>
<title>The problem</title>
<para>
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, encompassing its business partners' IT systems and processes as well.
</para>
<para>
In recent years, there have been several technologies attempting to solve these problems such as Enterprise Application
Integration (EAI), Buiness-to-Business (B2B), Service Oriented Architecture (SOA) and WebServices. These solutions range from
expansive 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.
</para>
</section>
<section>
<title>The ESB approach</title>
<para>
A standards-based ESB solves the integration problem without the drawbacks of the other solutions. The purpose of an ESB
is to facilitate application and process integration by providing distributed processing, intelligent routing, security, and
dynamic data transformation. In an ESB these services are infrastructure services so each application does not have to implement
these requirements independently and in a proprietary manner.
</para>
<para>
The ESB addresses the disadvantages of existing solutions by creating a standard infrastructure for integration. Point-to-point
solutions, where each of <emphasis>n</emphasis> components requires <emphasis>n-1</emphasis> interfaces for full communication,
are replaced by a bus solution where each component requires a single interface to the bus for global communication. An ESB
provides distributed messaging, routing, business process orchestration, reliability and security. It also provides pluggable
services and, because of the standard bus, these pluggable services can be provided by third parties and still interoperate
reliably with the bus.
</para>
<para>
Attributes of an ESB integration infrastructure are:
<itemizedlist>
<listitem><para>distributed - to remove geographical constraints</para></listitem>
<listitem><para>message-based - to promote loose coupling</para></listitem>
<listitem><para>open standards-based - to preserve investment and encourage contribution</para></listitem>
<listitem><para>reliable - to meet the requirements of mission-critical business operations</para></listitem>
</itemizedlist>
</para>
<para>
As an integration infrastructure, the ESB provides a number of functions including:
<itemizedlist>
<listitem><para>routing</para></listitem>
<listitem><para>transformation</para></listitem>
<listitem><para>visibility - into messages for content-based routing</para></listitem>
</itemizedlist>
</para>
<para>
An ESB also supports requirements such as security, orchestration, and transactionality. These exist in "hard-wired" integration
methods, but are not available automatically in a service-oriented architecture. One of the key requirements for the ESB is to
give loosely coupled, services-based integration methods a level of enterprise-class reliability and security.
</para>
<para>
A newer requirement for ESBs is the ability to allow no only loosely-coupled request found in a service oriented architecture,
but also to provide the infrastructure for an Event Driven Architecture (EDA). SOA and EDA provide complementary functionality.
In EDA an event triggers a message to be sent to other applications that are decoupled from the application that triggered the
event. This is an asynchronous operation as the recipient applications may receive or pick-up their messages at a later time,
whereas the SOA messaging model is typically synchronous in nature.
</para>
</section>
</chapter>