📜 ⬆️ ⬇️

Overview of ESB systems ServiceMix and Fuse

I present to your attention a small overview of the systems ESB (Enterprise Service Bus) 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, they are the same people.


For a start, let's look at what an ESB is and why systems of this class are used in the information infrastructure of enterprises. Modern enterprises use more and more applications of various classes: ERP, CRM, BPM, DWH, ECM and many more three-letter abbreviations. All of these applications use different protocols and various data formats for integration. In order to connect all these systems with each other, an ESB is used.

So, ESB systems perform the following main functions:


Both Apache ServiceMix and Red Hat JBoss Fuse 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 models (sender-receiver), publisher-subscriber (publish-subscribe), synchronous exchange (request-response), persistent messages, support of transactions, 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 running OSGi- based applications. OSGi allows 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 stopping components is extremely undesirable, as they can lead to direct financial losses. On OSGi- based systems, everything is a module (bundle): libraries, integration routes, connections to resources.

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

Both systems support a failover configuration using a master-slave model.

A reasonable question arises: if Apache ServiceMix and Red 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, simplifying the work of the administrator and allowing to manage the cluster.

Hawtio is a graphical management console that allows you to connect various plug-ins, including for managing Apache Camel , Apache ActiveMQ , Fuse Fabric, etc ... Although Hawtio is not included in Apache ServiceMix , it can be installed on any version of Apache ServiceMix two teams.

Fuse Fabric - Fabric8 based cluster management system. 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 ServiceMix, you can use RHQ , an open-source counterpart of the Red Hat JBoss Operation Network . Alternatively, Apache Karaf Decanter can be used for monitoring Apache ServiceMix .

Apache ServiceMix 'also has something to brag 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 designed to implement integration interactions separated by time. If using Apache Camel without Activiti fails, 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 for solving such problems suggests using Red Hat JBoss BPM Suite .

The main advantage of Apache ServiceMix over Red Hat JBoss Fuse is that Apache ServiceMix includes newer versions of 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 who have experience with Apache ServiceMix or Red Hat JBoss Fuse , then you can use all the advantages of Apache ServiceMix and pay less. If there is no experience, then support from Red Hat will not be superfluous.

In addition to the systems reviewed, there is a Talend ESB based on Apache Camel . But I didn’t have any practical experience with it, so it’s not included in the review.

Source: https://habr.com/ru/post/311540/


All Articles