Blog Articles

JBoss Fuse

Introduction

Enabling SSL/TLS in a Fabric is slightly more complex than securing a jetty in a standalone Karaf container. In the following article, we are providing feedback on the overall process. For clarity and simplification, the article will be divided into two parts.

When I was first introduced to Java Enterprise Integration, the ServiceMix platform was transitioning to OSGi (ServiceMix Version 4.0). From its origins in embedded systems and mobile devices, the OSGi standard promoted many qualities that were advantageous to the Enterprise (flexible, modular, life cycle management, services, security) so under this umbrella the tenants of the stack Apache Camel, Apache ActiveMQ, and Apache CXF flourished.

“Apache ServiceMix is a flexible, open-source integration container that unifies the features and functionality of Apache ActiveMQ, Camel, CXF, and Karaf into a powerful runtime platform you can use to build your own integrations solutions. It provides a complete, enterprise ready ESB exclusively powered by OSGi.”

Fast forward a number of years, and now the Internet of Things (IoT) is proliferating across embedded devices. Small single-board computers such as the Raspberry Pi and BeagleBone have made the entry into building an IoT solution much more accessible because of their low cost, support in the open source community, and growing support for devices and sensors. At the same time, JBoss Fuse (with its ServiceMix and Fabric lineage) has become central to Enterprise Integration.

So now is the time for Enterprise Integration to go full circle and contribute back to these Embedded Systems. Apache Camel, an implementation of the Enterprise Integration Platterns, is a perfect choice to assist a developer in communicating with these devices and sensors. Out of the box, message mediation, routing, transformation, along with a set of patterns (throttling/sync/asynch) to implement on a message endpoint is possible. But to make this a full solution, Camel Components are required to interface with new standards such as Raspberry Pi GPIO, I2C, Tinkerforge, as well as support for gateway frameworks such as Eclipse Kura (OSGi based). And once the device/sensor information is available, this information needs to be communicated via a set of backend services through a protocol of your choice.

This is the premise behind Rhiot, which is now being rolled in Eclipse Kura and Eclipse Kapua.

Microservices are currently enjoying immense popularity. It is rare to find a tech conference without at least a few mentions of them in corridor conversations or titles of talks, and for good reason: microservices can provide a path to better, more maintainable, higher quality software delivered faster. What’s not to love?

Of course there are the “negatives” and details in the implementation of microservices that can trip up even the most seasoned architect-developer, but at the same time we are collectively learning from mistakes and creating or reusing fantastic open source projects and products that can help smooth over those rough bits.

One such project is Apache Camel (and Fuse, its Red Hat-supported distribution.) Created way before the microservices revolution, Apache Camel was born to ease integration of disparate computing systems by implementing well-tested enterprise integration patterns (EIPs) and supplying a developer-friendly interface for writing code to do the integration.

In previous blogs, I talked about the the critical role of the IoT gateway in the enterprise Internet of Things (IoT) as it enables real time decision-making at the edge, secures downstream devices and optimizes network utilization. So how does one go about building this gateway? In this blog, you’ll learn how to build an intelligent IoT gateway in a few simple steps – you can find the code at GitHub.

To automate the gateway provisioning, we’ll using Ansible by Red Hat. Why? Because it is the simplest and best tool out there for this job. Besides, it can also be used for configuration management and application deployment. Once you’re ready to provision and deploy thousands of gateways in a production environment, you can use this same Ansible tool. This is how IT departments provision the systems securely across the network.

The release of the latest JBoss Developer Studio (JBDS) brings with it the questions around how to get started with the various JBoss Integration and BPM product tool sets that are not installed out of the box.

In this series of articles we will outline for you how to install each set of tools and explain which products they are supporting.

This should help you in making an informed decision about what tooling you might want to install before embarking on your next JBoss integration project.

There are four different software packs that offer tooling for various JBoss integration products:

Tooling is available under software updates
with early access enabled.

This article will outline how to get started with the JBoss Fues Development tooling and any of the JBDS 10 series of releases.

Installation

JBDS 10 can be obtained through the Customer Portal or via the early access downloads on jboss.org. After installing JBDS, start it up and you will see a welcoming JBoss Central tab with at the bottom a tab to look at the available tool sets labeled Software/Update.

You will notice at the time of this writing that there are no other JBoss Integration stacks offered to install upon first inspection. This is due to the other integration stacks being early access.

Select JBoss Fuse Development.

Eventually they will be shown by default once testing finished and they release, but for now you can obtain them by checking the Early Access box in the bottom right corner.

This will reveal the integration stack tooling offerings and we will select JBoss Fuse Development. Click on the Install/Update button to start the installation and restart at the end to complete the process.

If you are interested in what is being installed, it can be examined by examining the pop-up listing of components and versions. Note this will change as the early access progresses towards final releases.

Examine components and versions to be installed.

Stay tuned for more articles in this series that will detail the installation of the remaining JBoss Integration Stack tools.

Other options

In the past we have outlined the use of JBoss BPM and rules tooling for other versions of JBDS:

Fuse and A-MQ 6.3 GA have just gone out! And, maybe, you would think, “this is just a minor version release” — “why should I care?”

Hold your thoughts, because there are quite a few improvements and also many new features in this release.

Besides bug fixes, and improving the stability of Fuse Fabric, there are two major changes in this version update:

New Tooling in JBoss Developer Studio (JBDS) 9.1 GA.

Newer Apache Camel version – Camel v2.17.

I was personally impressed by the work put in to make developing Camel applications much simpler. First is the installation of tooling itself — now it has an all-in-one installer, so you don’t need to worry about which plugins you need to check.

See the videos below to check out the new “Getting Started” experience of Fuse 6.3.

Fuse Integration Services (FIS) is a great product bringing routing (Apache Camel), SOAP and Rest services (CXF) and messaging (JMS) to the modern age of containers and PaaS and all its goodies: encapsulation, immutability, scalability and self healing. OpenShift provides the PaaS infrastructure to FIS.

A developer may implement a module in isolation on his own machine, but it often makes sense, especially when we talk about integration services, to have the code being validated in a complex integrated environment — something that OpenShift is great at providing.

It is so easy to spawn an environment including frontend, backend and peer services that you may not want to wait for the integration test phase to see how your code performs and to identify where issues may happen. You want to see it right away, during your dev! This blog entry details a couple of workflows with their pros and cons for just doing that.

In this series of articles, I will present several ways to deploy an application on an EAP Domain. The series consists of four parts. Each one will be a standalone article, but the series as a whole will present a range of useful topics for working with JBoss EAP.

When it comes to interactions with a continuous deployment software factory, however, we need more powerful and flexible tools to organize the build and deployment process — the management console is not a good fit for build automation.

To solve this problem, JBoss EAP provides users with both a CLI tool and a simple REST API to perform complex administration tasks.

In this article, we will use the EAP CLI to deploy the helloworld-html5 Application on the secondary-server-group.

In today’s modern world, the need for enterprise integration has never been greater. Companies are looking for ways to reduce the costs of their application infrastructure and one of the ways they are doing that is by extending the lifespan of older legacy platforms. This introduces a number of problems when there is also a need for the implementation of new modern systems as well. Often times it is difficult if not impossible to make these new and legacy systems communicate directly. To resolve this problem, many companies are considering adopting Red Hat JBoss Fuse to integrate these systems together.

If you are considering implementing JBoss Fuse in your company’s enterprise there are several key pieces of information you need in order to make an informed decision. This starts with what JBoss Fuse really is, and what are the options for deploying it?

In this series of articles, I will present several ways to deploy an application on an EAP Domain. The series consists of four parts. Each one will be a standalone article, but the series as a whole will present a range of useful topics for working with JBoss EAP.