You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 88 Next »

Introduction

This document introduces the Enterprise Service Bus (ESB) followed by a discussion of ServiceMix as an ESB implementation based on the Java Business Integration (JBI) standard JSR 208.

The Problem

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.

In the past several years there have been several technologies attempting to solve these problems such as Enterprise Applicaton Integration (EAI) 1, Business-to-Business (B2B) 2, Service Oriented Architecture (SOA) 3, and Web Services 4. These solutions addressed some of the integration issues, 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.

A standards based ESB solves the integration problem without the flaws of the other solutions. The purpose of an ESB is to facilitate application and process integration by providing distributed processing, intelligent routing 5, security, and dynamic data transformation 6. In an ESB these services are infrastructure services so each application does not have to implement these requirements independently and in a proprietary manner.

The ESB Approach

The ESB addresses the disadvantages of existing solutions by creating a standard infrastructure for integration. Point-to-point solutions, where each of n components requires n-1 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.

Attributes of an ESB integration infrastructure are:

  1. distributed - to remove geographical constraints
  2. message-based - to promote loose coupling
  3. based on open standards - to preserve investment and encourage partipicipation
  4. reliable - to meet the requirements of mission-critical business operations

As an integration infrastructure, the ESB does a number of things:

  1. The ESB transports information.
  2. The ESB routes the information appropriately.
  3. The ESB transforms the information as required.
  4. The ESB provides visibility into the message, allowing content-based routing.

An ESB also supports requirements such as security, orchestration 7, and transactionality 8. These exist in "hard-wired" integration methods, but are not automatically available in a service-oriented architecture. One of the key requirements for the ESB is to give loosely coupled service-based integration methods a level of enterprise-class reliability and security.

What is Java Business Integration (JBI)?

There are many vendors that provide ESB solutions, but there is not a consensus on the exact requirements of an ESB. LogicBlaze has implemented the ServiceMix ESB based on the JBI (JSR 208) specification in order to create a standard ESB. So what is the JBI specification?

JBI is an architecture for integration systems specifying plug-in components that interoperate by exchanging messages rather than interacting directly. This decoupling increases flexibility because each component need only know how to interact with the JBI bus and not with n number of other components. JBI components provide services, consume services, or sometimes both. There are two types of components: Service Engines (SE) and Binding Components (BC). The SEs provides business logic and transformation services. The BCs provide connectivity for applications that are external to the JBI. The separation of business and processing logic from communications logic makes the implementation of components much easier.

The mediated message exchange between components is provided by the Normalized Message Router (NMR). The NMR routes normalized messages between service providers and consumers. A normalized message consists of two parts: the message content (payload) and the message metadata. The message metadata contains information such as security information, that can affect the processing of the message as it routes through the JBI. Messages flowing into the JBI, via binding components, are translated into a normalized (neutral) format, then routed to their destination. Prior to final delivery the normalized message is translated into the appropriate format for the recipient. A message can be routed through several JBI components depending on what processing is needed.

The JBI environment also supplies a set of services for self management, including services for component installation and life cycle management of components.

In summary, the JBI specification creates a standards-based technology for enterprise application integration. For more details on the JBI specification please see: JSR 208.

Why ServiceMix

As stated earlier, ServiceMix is an ESB that is based on the Java Business Integration (JBI) standard. The ServiceMix implementation is an open source solution allowing for low entry cost and maximum flexibility. The flexibility is due to the fact that any number of third party vendors supply components and bindings that conform to the JBI specification and, therefore, can interoperate with the ServiceMix ESB.

Please see Background to ServiceMix for the philosophy behind the development of ServiceMix.

Definition of Terms

  1. EAI - Enterprise Application Integration is the use of software and architectural principles to integrate enterprise computer applications, such as legacy applications, databases, etc.
  2. B2B - Business-to-business refers to electronic transactions between two businesses.
  3. SOA - A service-oriented architecture is a software architectural concept. It is a collection of services that can communicate with each other. The services support some business requirement or process.
  4. Web Services - Web Services define a platform-independent standard based on XML to allow applications to exchange information. Web services are invoked over the Internet using standard protocols, most often SOAP (Simple Object Access Protocol).
  5. Routing - Intelligent or content-based routing is routing the message across the network using the most appropriate path. The path/route taken will be decided by the JBI after analyzing the message content and metadata.
  6. Data Transformation - Data Transformation is taking data from one format and translating it into another, while retaining the integrity of the information.
  7. Orchestration - The automated coordination and management of composite applications from a number of software components. A composite application is an application built by combining some number of other services or applications.
  8. Transactionality - Reliable end-to-end delivery of messages. Note: the JBI specification assumes a single JVM/JBI for transactionality as the standards for distributed transactions are not mature at the time of the Final Draft of 1.0 of the JBI specification. However, the JBI specification does not preclude distributed transactions.
  • No labels