Sunday, September 6, 2015

Introduction to JBoss Fuse

The intent of this blog is to provide its readers with quickest overview of Jboss Fuse. Red hat has immense documentation that is very well written and structured on it, but the problem I faced was if I am new to some of the concepts at times it is too much to handle in that documentation.

So below is a very high level overview on the Jboss Fuse. I encourage people to read through it and i have taken lot of visual aid of images to help put the concepts forward. Hope it helps. Feel free to comment and I would try to answer your questions based on my experience in Jboss Fuse.

What is Jboss Fuse
It is an Enterprise Service Bus. An Enterprise Service Bus is a software architecture model used for designing and implementing communication between mutually interacting software applications in a service-oriented architecture (SOA).


Below diagram shows an Enterprise Service Bus


Jboss Fuse: The Origin
Red Hat acquired FuseSource in June 2012. FuseESB (based on Apache servicemix) product of FuseSource was rebranded to Jboss Fuse.
          
Introduction to JBoss Fuse

 JBoss Fuse is an open source enterprise service bus (ESB) that reduces the pain of connecting disparate applications, services, and devices.

JBoss Fuse combines several technologies like core Enterprise Service Bus capabilities (based on Apache Camel, Apache CXF, Apache ActiveMQ), Apache Karaf and Fabric8 in a single integrated distribution.


Before we delve in Jboss Fuse, it is important to understand other offerings from Red Hat and how they are different from Jboss Fuse. It requires a separate blog to go over those in details, but i will try to quickly summarize it and provide reference links under below section:

Red Hat JBoss Products
Red Hat JBoss Fuse Service Works: Red Hat® JBoss® Fuse Service Works is a service design, development, and integration platform.

SwitchYard is a component-based development framework focused on building structured, maintainable services and applications using the concepts and best practices of SOA.
       Overlord: It is a SOA based governance system.
Red Hat JBoss EAP : The JBoss Enterprise Application Platform (or JBoss EAP) is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services.


With that said, lets  dive into Jboss Fuse. Lets look at its architecture diagram as published by Red Hat.

Jboss Fuse Architecture




On the left hand side of above diagram, there are set of development tools which include your IDE( Fuse Development Studio).
On the right hand side there are monitoring tools that Jboss Fuse goes well with like Jboss Operations Network.
In the middle are the actual Jboss Fuse Components and what Jboss Fuse is really made up of. Starting from bottom, Jboss Fuse has Apache Karaf as its light weight runtime. It has Apache ActiveMQ as its messaging framework. Apache CXF and Apache Camel are its webservices and Integration Frameworks Respectively.

Followin sections are further highlevel definitions of Jboss Fuse Components.

JBoss Fuse Components

Following diagram defines on high level the Jboss Fuse Components.



Each component has a specific responsibility in Jboss Fuse. Below picture depicts details.

Jboss Fuse Component Features


















Lets try to understand each of these components in more details. It is very important to understand on the role of each component.

 Below diagram depicts what the Apache Karaf is made up of:
The most important concept to understand about Karaf is OSGi. I would be publishing a separate blog post on OSGi. For now and In short OSGi is a modularity layer for java platform.It is a set of specifications that define a dynamic component system for Java. 


At a high level, Camel is composed of processors, components, and routes. All of these are contained within the CamelContext.
The routing engine uses routes as specifications for where messages are routed.
Routes are defined using one of Camel’s domain-specific languages (DSLs).
Processors are used to transform and manipulate messages during routing and also to implement all the EIP patterns, which have corresponding keywords in the DSL languages.


Components are the extension points in Camel for adding connectivity to other systems. To expose these systems to the rest of Camel, components provide an endpoint interface.






 The overall CXF architecture is primarily made up of the following parts:
1.Bus: Contains a registry of extensions, interceptors and Properties
2.Front-end: Front-ends provide a programming model to create services.
3.Messaging & Interceptors: These provide the low level message and pipeline layer upon which most functionality is built.
4.Service Model: Services host a Service model which is a WSDL-like model that describes the service.
5.Protocol Bindings: Bindings provide the functionality to interpret the protocol.
6.Transports: Transport factory creates Destinations (Receiving) and Conduits (Sending)


The goal of ActiveMQ is to provide standards-based, message-oriented application integration across as many languages and platforms as possible.



fabric8 (pronounced fabricate) is designed to make it really easy to deploy your Java integration solutions and services on a number of machines, containers, processes, and JVMs.
     Fabric8 Features:
Deployment & Provisioning
Multi-container support
Centralized management
Service discovery
Load balancing and failover

Fabric8 Components:
ZooKeeper for Registry and Coordination
Git for Configuration
Profiles for modeling configuration
Hawtio for managing

1 comment:

  1. Thanks for sharing, it was informative. We play a small role in upskilling people providing the latest tech courses. Join us to upgradeJBOSS FUSE ONLINE TRAINING

    ReplyDelete