Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This document introduces the general concept of an Enterprise Service Bus (ESB) and the Java Business Integration (JBI) specification, followed by a discussion of ServiceMix as , an open source ESB implementation based on the 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 recent 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 issuesproblems, 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 drawbacks 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 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.

...

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

As an integration infrastructure, the ESB does provides a number of thingsfunctions including:

  1. transportation - short explaination
  2. routing - short explaination
  3. transformation - short explaination
  4. visibility - to ??? into messages, for
  5. The ESB transports information.
  6. The ESB routes the information appropriately.
  7. The ESB transforms the information as required.
  8. 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 available 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.

...

JBI is an architecture for integration systems specifying plug-in components that interoperate by exchanging messages, rather than by interacting directly. This decoupling increases flexibility because each component need only needs to know how to interact with the JBI bus only 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 provide 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 communication logic makes the implementation of components much easier.

...

Flexibility results from the fact that any number of third party vendors supply components and bindings that conform to the JBI open standard specification can be supported. These components and bindings not only interoperate with each other and external applications via the ServiceMix ESB, but can easily be replaced with alternate components that provide the same or enhanced services.

Reuse and investment protection also results from the adherence to standards. Not only can developers swap out ESB components, or use components in another JBI-standard ESB, but they can swap out the entire ESB and still use the standard plug-in components.

...

  1. EAI - Enterprise Application Integration is the term given to the software and architectural principles used to integrate applications, legacy application and databases within the enterprise as opposed to between enterprises (see B2B). Commercially, application suites like SAP and Peoplesoft fall into this category, as does custom integration software developed by in-house personnel.
  2. B2B - Business-to-business is the term given to the software and architectural principles used to integrate applications, legacy application and databases between enterprises as opposed to within an enterprise (see EAI). The integration, in this case, is more loosely coupled and typically of a transactional nature, e.g., submitting an electronic purchase order, checking inventory levels or monitoring the status of an order.
  3. SOA - A service-oriented architecture is a software architectural concept where composite web applications are developed as a collection of services that can be independently developed, deployed, discovered and even replaced. The services typically support one aspect of a business requirement or process and while the internals of the service can be implemented in any number of ways, the interface to other components that use the service generally conforms to a standard such as Web Services.
  4. Web Services - Web Services refers to a suite of XML-based standards that allow applications to exchange information in a platform independent way. Early work in Web Services focused on standards for service description (WSDL), deployment and discovery (UDDI). The effort has expanded to include standards for security, reliability and management among others. Web services are typically invoked over the Internet using standard protocols, most often SOAP (Simple Object Access Protocol).
  5. Routing - Intelligent or content-based routing is the process of making appropriate path and/or destination decisions based on the content of the message being transported. The path/route taken will is decided by the ESB after analyzing the message content and metadata.
  6. Data Transformation - Data Transformation is the process of taking data from one representation and translating it into another, while retaining the integrity of the information. This is most often required when applications use semantically similar data in different formats, e.g. application A identifies an "Employee" by driver's license number while application B identifies an employee by social security number. The transformation component offers the flexibility and opportunity to change data to any desired format for any desired reason.
  7. Orchestration - The automated coordination and management of composite applications components that participate in a business process. Orchestration is often most important in long running business processes where the number and type of exception conditions are greatly increased over traditional short lived business transactions. An orchestrated process will often NOT roll back all the work that has occurred at the time of a given business exception. Rather it will follow one or more rules and execute compensating transactions and/or accept the state of the process as satisfactory at the time of the exception.
  8. Transactionality - Traditionally transactionality refers to a grouping of events where ALL events are required to complete successfully. In the event that even one of the events fails, the effect of each event is undone and the system is rolled back to its state before the transaction began. The JBI specification provides for the reliable end-to-end delivery of messages (i.e., message transactionality). Note: the JBI 1.0 Draft specification assumes a single JVM/JBI for transactionality since the standards for distributed transactions are not yet mature. However, the JBI specification does not preclude distributed transactions.