Overview of ServiceMix and Fuse ESB Systems

    I present to you a short overview of ESB (Enterprise Service Bus) systems based on Apache Camel : Apache ServiceMix and Red Hat JBoss Fuse . These two systems are built on the same components and have similar capabilities. Moreover, in most cases, they are interchangeable. Apache ServiceMix is developed by the open-source community, Red Hat JBoss Fuse by Red Hat . For the most part, these are the same people.


    To begin with, we will understand what an ESB is and why systems of this class are used in the information infrastructure of enterprises. At modern enterprises, more and more applications of various classes are used: ERP, CRM, BPM, DWH, ECM and many more three-letter abbreviations. All these applications use various protocols and various data formats for integration. In order to connect all these systems with each other, ESB is used.

    So ESB-systems perform the following main functions:

    • connection via various protocols
    • request and message routing
    • data conversion

    Both Apache ServiceMix and Red Hat JBoss Fuse systems are based on the following components:

    Apache Camel directly implements ESB functions based on EIP (Enterprise Integration Patterns) patterns . Apache Camel has its own DSL for integration tasks. There are several implementations of it: Spring DSL, Blueprint DSL, Java DSL, Groovy DSL, Scala DSL. Also, Apache Camel includes more than 100 components responsible for connecting via various protocols and data conversion.

    Apache ActiveMQ- message queuing system. Various messaging functions are implemented: messaging by sender-receiver model, publish-subscribe, synchronous request-response, persistent message, transaction support, including distributed XA- transactions.

    Apache CXF is a library that implements the functions of web services, including SOAP and REST.

    Apache Karaf is a platform for launching OSGi- based applications . OSGiallows you to install, remove and update various modules (bundle) without restarting the entire system and without stopping dependent modules. This is especially important in corporate infrastructure, where component stops are extremely undesirable, as they can lead to direct financial losses. In OSGi- based systems, everything is a bundle: libraries, integration routes, resource connections.

    There is an alternative launch option for Red Hat JBoss Fuse . Instead of Apache Karaf, you can use Red Hat JBoss EAP .

    Both systems support failover configuration according to the master-slave model.

    The reasonable question arises if Apache ServiceMix andRed Hat JBoss Fuse consist of the same components, implement the same functionality, are developed by the same people, then why pay more? In addition to the above components, Red Hat JBoss Fuse includes several additional ones that simplify the work of the administrator and allow you to manage the cluster.

    Hawtio is a graphical management console that allows you to connect various plugins, including for managing Apache Camel , Apache ActiveMQ , Fuse Fabric, etc. ... Despite the fact that Hawtio is not part of Apache ServiceMix , it can be installed on any version of Apache ServiceMix two teams.

    Fuse fabric- Cluster management system based on Fabric8 . Allows you to manage cluster node configurations in groups or individually. Supports configuration versioning. Like Hawtio , Fabric8 can be easily installed on Apache ServiceMix . In addition, for Apache ServiceMix, there is an alternative way to manage a cluster based on Apache Karaf Cellar .

    When you purchase a Red Hat JBoss Fuse subscription, you get support from Red Hat and the ability to use the Red Hat JBoss Operation Network monitoring tool . For Apache ServiceMixYou can use RHQ , an open-source analog of Red Hat JBoss Operation Network . Alternatively, Apache Karaf Decanter can be used to monitor Apache ServiceMix . Apache ServiceMix 'also has something to boast about. The latest versions of Apache ServiceMix include the Activiti business process engine , which allows you to implement persistent integration processes. Apache Camel is not intended to implement time-bound integration interactions. If using Apache Camel without Activiti

    If a failure occurs, then all unsent data will be lost, all transactions will be rolled back. At the same time, using Activiti we can save the state of the process in the database. Red Hat proposes to use Red Hat JBoss BPM Suite to solve such problems .

    The main advantage of Apache ServiceMix over Red Hat JBoss Fuse is that Apache ServiceMix includes newer versions of the components.

    ComponentApache ServiceMixRed Hat JBoss Fuse
    Latest version6.1.26.2.1
    Apache camel2.16.32.15.1
    Apache ActiveMQ5.12.35.11.0
    Apache cxf3.1.53.0.4
    Apache karaf3.0.72.4

    What to choose? There is no universal answer. If you have a team of professionals with experience working with Apache ServiceMix or Red Hat JBoss Fuse , then you can use all the advantages of Apache ServiceMix and pay less. If experience is not available, then support from Red Hat will not be redundant.

    In addition to these systems, based on Apache Camel there is a Talend ESB . But I did not have practical experience with it, so it is not included in the review.

    Also popular now: