Chapter 1. Red Hat JBoss Fuse Overview

Abstract

Red Hat JBoss Fuse is a flexible container that allows you to deploy applications in a range of different package types (WAR or OSGi bundle) and has support for both synchronous and asynchronous communication.

1.1. Red Hat JBoss Fuse Container Architecture

Overview

Figure 1.1, “Red Hat JBoss Fuse Container Architecture” shows a high-level overview of the Red Hat JBoss Fuse container architecture, showing the variety of deployment models that are supported.

Figure 1.1. Red Hat JBoss Fuse Container Architecture

Deployment models

Red Hat JBoss Fuse is a multi-faceted container that supports a variety of deployment models. You can deploy any of the following kinds of deployment unit:
OSGi bundle
An OSGi bundle is a JAR file augmented with metadata in the JAR's META-INF/MANIFEST.MF file. Because the Red Hat JBoss Fuse container is fundamentally an OSGi container, the OSGi bundle is also the native format for the container. Ultimately, after deployment, all of the other deployment unit types are converted into OSGi bundles.
WAR
A Web application ARchive (WAR) is the standard archive format for applications that run inside a Web server. As originally conceived by the Java servlet specification, a WAR packages Web pages, JSP pages, Java classes, servlet code, and so on, as required for a typical Web application. More generally, however, a WAR can be any deployment unit that obeys the basic WAR packaging rules (which, in particular, require the presence of a Web application deployment descriptor, web.xml).

Spring framework

The Spring framework is a popular dependency injection framework, which is fully integrated into the JBoss Fuse container. In other words, Spring enables you to create instances of Java objects and wire them together by defining a file in XML format. In addition, you can also access a wide variety of utilities and services (such as security, persistence, and transactions) through the Spring framework.

Blueprint framework

The blueprint framework is a dependency injection framework defined by the OSGi Alliance. It is similar to Spring (in fact, it was originally sponsored by SpringSource), but is a more lightweight framework that is optimized for the OSGi environment.

OSGi core framework

At its heart, Red Hat JBoss Fuse is an OSGi container, based on Apache Karaf, whose architecture is defined by the OSGi Service Platform Core Specification (available from http://www.osgi.org/Release4/Download). OSGi is a flexible and dynamic container, whose particular strengths include: sophisticated management of version dependencies; sharing libraries between applications; and support for dynamically updating libraries at run time (hot fixes).
For more details about the OSGi framework, see Chapter 5, Introduction to OSGi.

Red Hat JBoss Fuse kernel

The JBoss Fuse kernel extends the core framework of OSGi, adding features such as the runtime console, administration, logging, deployment, provisioning, management, and so on. For more details, see Section 5.1, “Red Hat JBoss Fuse”.