AWS Summit Auckland - Application Delivery Patterns for Developers
JBOSS_Fuse_Course_Training
1. Course Title: Enterprise Service Bus (ESB) Deployment with Red Hat® JBoss Fuse
Course duration: 26 hours
Software required:
The trainer would be providing the below required software for the students to practice the
course assignments
JBOSS Fuse 6.2
JDK 1.7
Apache Maven 3.1
Active MQ 5.9
About the course
The information powering your business is spread across disparate applications and systems.
You need an effective, cost-efficient way to integrate applications, data, and devices within
your enterprise. Red Hat® JBoss® Fuse is a lightweight, flexible enterprise service bus (ESB)
that enables rapid integration across the extended enterprise—on premise or in the cloud.
Enterprise Service Bus (ESB) Deployment with Red Hat® JBoss® Fuse is a hands-on course that
gives Java™ developers, administrators and architects an understanding of Red Hat JBoss Fuse
clustering, auto scaling, broker networks, install applications, applying patches, rollback
patches etc. Increase productivity. Deploy in any environment. Add agility. And scale quickly,
without massive costs.
Who Should Attend?
Red Hat JBoss Fuse administrators and developers who need to learn how to install, configure,
manage and deploy OSGi-compliant applications.
Prerequisites for this course
Knowledge of any Java EE application server
Basic knowledge of tools such as Maven or Ant
Basic knowledge of enterprise integration and messaging concepts
What you will learn?
Attendees will learn the skills required to manage, deploy, and customize Red Hat JBoss Fuse
and develop the core concepts of OSGi-based application using Red Hat JBoss Fuse's features,
including:
Bundle management
Server management
Deployment via Fuse Fabric, Hawt.io and using FMC
Course outline
Session1: Introduction to Red Hat JBOSS Fuse
Understanding of enterprise integration
Overview of ESB
Overview of JBOSS Fuse: How JBOSS Fuse solves traditional J2ee runtime problems
Introduction to JBOSS Fuse ESB: Architecture overview
Quiz: Red Hat JBOSS Fuse
Introduction to OSGI initiative: Purpose of OSGI, OSGI Architecture, OSGI Framework
2. OSGI Bundle life cycle management: understanding bundle states
OSGI bundle activators and manifest
Quiz: OSGI
Introduction to OSGI containers: Apache Felix, Service Mix and Karaf
Introduction to Apache Karaf: overview of karaf components
Quiz: Apache Karaf
Overview of Maven concepts and repositories, install bundles into Maven repository
Understanding bundle packaging structure, plugins and dependencies
Quiz: Maven
Practice:
Understanding bundle packaging
Install sample bundles into a maven repository
Session 2: Installing, running and customizing JBOSS Fuse
Download and Install jboss-fuse-full-6.2.0.redhat-133
Configure fuse: create user and set role
Start and stop Fuse in client mode
Run fuse in server mode and access via client console
Run fuse in server mode and access via admin:connect
Run fuse in server mode and access via ssh client
Overview of Fuse command line interface (CLI) and its’ subsystems
OSGI Bundle lifecycle management via CLI console
OSGI Container management via CLI console
Bundle provisioning: how it works?
Hawtio console overview: Bundles and logs, bundle life cycle management
Quiz: bundle life cycle and CLI subsystems
Customizing Fuse: overview of install directories, allocating ports, data, cache,
features, features boot, add maven repositories, local repositories
Customize ports, HTTP service ports, customize servlet context path
Quiz: customizing fuse
Practice:
Install and run JBOSS Fuse in client mode
Run JBOSS Fuse in server mode and access via client
Run fuse in server mode and access via admin:connect
Run fuse in server mode and access via ssh client
Server management: start and shutdown the server
Install bundle and manage bundle life cycle
Install a bundle via Hot deployer
List and examine OSGI bundles, headers
Customize Fuse configurations: ports, bind address, log paths, data, maven
repositories, web console ports, OSGI http ports, customize context paths
Bundle and server management via hawtio console
Session 3: Deep dive apache Karaf
Introduction to Karaf Features and feature repositories
Customize features boot configuration
Overview of in-built features
3. Create and deploy a feature via feature repositories
Features CLI: list, info, install, uninstall a feature
Demo of creating and installing a feature via CLI console
Quiz: features and feature repositories
Hot deployment of feature repositories
Demo of deploying a feature via hot deployment
Feature dependency management via dependency download
Setting up maven offline folder repository
WAR and FAB overview
Features Vs FABs
Configuring dependencies for a FAB and respecting features
Demo to create and deploy a FAB
Demo of hot deployment of a FAB
Quiz: features, FABs and deployments
Practice:
Create feature repositories and deploy features file into fuse
Create and Deploy a feature via CLI console
Practice features CLI commands: list, info, install, uninstall
Customize features boot configuration and verify
Create and Deploy a feature via hot deployment and verify
Customize maven repositories: local and remote
Build and deploy a FAB via CLI console and familiarize with FAB life cycle
Build and deploy a FAB via hot deployment
Download feature/FAB dependencies for offline use
Session 4: Managing Fuse in Large deployment scenarios
Standalone vs multiple servers
Introduction to Fabric8 in Fuse
Fuse Fabric Architecture: ensemble, servers, containers, registry service and fabric
agents
Benefits of using a fabric
Servers vs containers
Introduction to Zookeeper in Fuse
Zookeeper registry clusters, and Quorum
Quiz: Fabric and zookeeper in Fuse
Creating multiple Fuse standalone servers in Fuse
Familiarize with admin subsystem commands: start, stop, list, connect
Access and verify servers with client console and via SSH client
Creating a fabric ensemble via fabric:join
Familiarize with fabric sub system commands: fabric server management
Fabric Containers overview: child and ssh
Create child and ssh containers via fabric subsystem
Access child/ssh containers via client console
Hawtio console overview
Quiz: Fabric ensemble and containers
Practice:
Customize the ports and other configurations
4. Practice creating multiple Fuse standalone servers in Fuse
Familiarize with admin subsystem commands: start, stop, list, connect
Access and verify servers with client console and via SSH client
Create a 3 node fabric ensemble and manage the fabric: create, start, stop and
delete servers
Practice managing fabric servers via hawtio console
Create one or more child/ssh containers and manage them: create, start, stop,
connect, delete
Shutdown the fabric servers in production scenario
Session 5: Deploying and managing enterprise applications in Fuse
Understanding of fabric profiles
Overview of fuse profiles
Create a profile and assign to a container
Add feature repositories and features to a profile
Demo to show deploying of features via fabric profiles and apply to container
Quiz: Fabric profiles and deployment
Customizing the configurations in profile: customize http port and web context
Profile versioning: handling production releases
Create a new profile version and assign to one or more containers
Applying patches: upgrade and rollback
Configuration management at runtime: edit PID configurations
Quiz: Fabric profile versioning and patches
Practice:
Familiarize with in-built fabric profiles
Practice creating a profile and deploy to one or more containers
Add feature repositories and Install features into fabric profile
Create a new profile version with a new feature/enhancement of the existing
feature and apply to one or more containers
Upgrade and rollback the patches to one or more containers and verify
Edit the application configurations at runtime and verify
Session 6: managing HTTP clustering, load balancing and failover in fuse
Overview of clustering, load balancing and failover
Fabric clustering and gateways
Fabric gateways: HTTP and MQ gateways
Create and configure a fabric HTTP gateway and accessing it
Customize gateway profiles: zookeeper registry, context paths, URI templates
Load balance a web service via HTTP gateway
Quiz: Fabric HTTP gateway and registry
Practice:
Create a fabric container and run HTTP gateway
Start and stop HTTP gateway container
Customize the gateway configurations, ports and context path
Create one or more containers to run HTTP service and access it
Customize http port
5. Access HTTP service and access it via HTTP gateway
Verify the endpoints in zookeeper registry
Session 7: managing MQ clustering, load balancing and failover in fuse
Active MQ clustering: active/active, master/slave and broker networks
Message persistence: kahaDB
Overview and customize active MQ broker configurations in Fuse
Create and run a standalone active MQ broker via fabric in fuse
Send/receive messages from a fabric container running standalone broker
Create and run a master/slave active MQ cluster via fabric in fuse
Discover and send/receive messages to/from a fabric MQ master/slave cluster
Create and run broker networks in fabric fuse
Discover and send/receive messages to/from a fabric MQ broker network cluster
Quiz: Fabric MQ gateway and MQ clusters
Practice:
Create a fabric container and run MQ gateway
Start and stop MQ gateway container
Customize the gateway configurations and ports
Create a container to run MQ standalone broker and verify send/receive messages
Start and stop MQ standalone broker
Create the containers to run MQ master/slave brokers and verify send/receive
messages
Start and stop MQ master/slave broker and verify
Create the containers to run MQ netwrok brokers and verify send/receive messages
Start and stop MQ network brokers and verify
Session 8: securing fuse fabric
Securing fuse runtime using JAAS
Overview of file and key based JAAS
Accessing fuse management console via SSH public key
Quiz: security in fuse
Practice:
Create new users and roles and login to fuse console with different users and verify
access
Generate key pair and access fuse console via ssh public key authentication
Course Title: Develop OSGI complaint enterprise applications with Red Hat JBoss Fuse
Course duration: 32 hours
Software required:
The trainer would be providing the below required software for the students to practice the
course assignments
JBOSS Fuse 6.2
JDK 1.7
Apache Maven 3.1
6. Active MQ 5.9
JBOSS Developer Studio
About the course
Red Hat JBoss Fuse is a robust, flexible, and easy-to-use platform to integrate applications,
data, services, and devices. The integration platform uses popular open source technologies
to provide transformation, routing, and protocol-matching services. Red Hat JBoss Fuse also
includes Red Hat JBoss A-MQ, a high-performance, reliable messaging platform. Integration
eliminates manual touch points, automates processes, and connects enterprise assets for
improved efficiency. Real-time messaging fosters a responsive and agile enterprise. Integrate
everything, everywhere. Connect systems, applications, and information across your entire
infrastructure.
Who Should Attend?
Red Hat JBoss Fuse developers, technical leads and architects who need to learn how to
design, develop, manage and deploy OSGi-compliant applications.
Prerequisites for this course
Basic Knowledge of any Java EE applications and enterprise integration concepts
Basic Knowledge of tools such as Maven or Ant
Basic knowledge of messaging concepts
Basic knowledge of web services
What you will learn?
At the end of this course, you will learn how to design, orchestrate, develop and deploy OSGI
based enterprise level applications that consists of micro services.
Course outline
Session1: Introduction to Red Hat JBOSS Fuse and OSGI
Understanding of enterprise integration
Overview of ESB
Overview of JBOSS Fuse: How JBOSS Fuse solves traditional J2ee runtime problems
Introduction to JBOSS Fuse ESB: Architecture overview
Introduction to OSGI initiative: Purpose of OSGI, OSGI Architecture, OSGI Framework
Examine OSGI bundle manifest attributes
OSGI Bundle life cycle management: understanding bundle states
Quiz: JBOSS Fuse and OSGI
Introduction to OSGI containers: Apache Felix, Service Mix and Karaf
Introduction to Apache Karaf: overview of karaf components
Quiz: Apache Karaf
Overview of Maven concepts and repositories, install bundles into Maven repository
Maven project structure for OSGI bundle
Overview of mostly used Maven project archetypes for OSGI
Understanding bundle packaging structure, plugins and bundle dependencies
Quiz: bundle packaging, structure and dependencies
Practice:
7. Practice creating a simple maven project for a OSGI service: Hello World
Understanding bundle packaging and examine bundle manifest
Install OSGI service bundle into a maven repository
Session 2: installing and Running JBOSS Fuse and managing OSGI bundle
Download and Install jboss-fuse-full-6.2.0.redhat-133
Configure fuse: create user and role
Start and stop Fuse in client mode
Run fuse in server mode and access via client console
Run fuse in server mode and access via admin:connect
Run fuse in server mode and access via ssh client
Overview of Fuse command line interface (CLI) and its’ subsystems
OSGI Bundle lifecycle management via CLI console: Demo with OSGI service bundle
Hot deployment: Demo with OSGI service bundle
Hot deployment: deploying a bundle with spring franework
Explain bundle life cycle: internal working model
OSGI Container management via CLI console
Hawtio console overview: Bundles and logs, bundle life cycle management
Quiz: bundle life cycle and CLI subsystems
Overview of install directories, allocating ports, data, cache, features, features boot,
add maven repositories, local repositories
Customize ports, HTTP service ports, customize servlet context path via CLI
Quiz: customizing fuse
Practice:
Install and run JBOSS Fuse in client mode
Run JBOSS Fuse in server mode and access via client
Run fuse in server mode and access via admin:connect
Run fuse in server mode and access via ssh client
Server management: start and shutdown the server
Install bundle and manage bundle life cycle: install, start,stop, uninstall
Install a bundle via Hot deployer
Install a bundle via spring context
List and examine OSGI bundles and manifest headers
Customize Fuse configurations: ports, bind address, log paths, data, maven
repositories, web console ports, OSGI http ports, customize context paths
Bundle and server management via hawtio console
Practice CLI subsystems for bundle and server management
Session 3: Developing and deploying OSGI services, Apache Karaf
OSGI services: moving towards Micro services
OSGI service registry and discovery
Dependency injection frameworks: Blueprint vs spring DM
JBOSS Fuse: how it promotes micro services?
Creating and deploying an OSGI service: V1 and V2
Invoking an OSGI service from a separate bundle
OSGI tooling
8. Customizing an OSGI bundle with Maven bundle plugin
Quiz: OSGI services, discovery and customize bundles
Introduction to apache Karaf: architecture, components, feature repositories, and
features
Overview of in-built features
Create a feature repository and feature and install in Karaf OSGI via CLI
Familiarize with features subsystem CLI: list, info, install and remove
Hot deployment of features repository file
Features boot configuration
Feature dependency management via dependency download
Setting up maven offline folder repository
Quiz: karaf components, features and repositories
Fuse URI handlers: mvn, file, war, http, fab, wrap, blueprint
Features vs Fuse application bundles (FAB)
Configuring dependencies for a FAB
Building and deploying a FAB and it’s life cycle management
Quiz: FABs
Practice:
Create feature repositories and add features file into fuse
Create and Deploy a feature via CLI console
Practice features CLI commands: list, info, install, uninstall
Customize features boot configuration and verify
Create and Deploy a feature via hot deployment and verify
Customize maven repositories: local and remote
Download feature dependencies for offline use
Build and deploy a FAB via CLI console and familiarize with FAB life cycle
Build and deploy a FAB via hot deployment
Session 4: JBOSS Fuse in production
Standalone vs multiple servers
Introduction to Fabric8 in Fuse
Fuse Fabric Architecture: ensemble, servers, containers, registry service and fabric
agents
Benefits of using a fabric
Servers vs containers
Introduction to Zookeeper in Fuse
Zookeeper registry clusters, and Quorum
Quiz: Fabric and zookeeper in Fuse
Creating a fabric ensemble via fabric:join
Familiarize with fabric sub system commands: fabric server management
Fabric Containers overview: child and ssh
Create child and ssh containers via fabric subsystem
Access child/ssh containers via client console
Hawtio console overview
Quiz: Fabric ensemble and containers
Practice:
Customize the ports and other configurations
9. Practice creating multiple Fuse standalone servers in Fuse
Familiarize with admin subsystem commands: start, stop, list, connect
Access and verify servers with client console and via SSH client
Create a 3 node fabric ensemble and manage the fabric: create, start, stop and
delete servers
Practice managing fabric servers via hawtio console
Create one or more child/ssh containers and manage them: create, start, stop,
connect, delete
Session 5: Deploying and managing OSGI enterprise applications in Fuse
Understanding of fabric profiles
Overview of fuse profiles
Create a profile and assign to a container
Add feature repositories and features to a profile
Demo to show deploying of features via fabric profiles and apply to container
Quiz: Fabric profiles and deployment
Customizing the configurations in profile: customize http port and web context
Profile versioning: handling production releases
Create a new profile version and assign to one or more containers
Applying patches: upgrade and rollback
Configuration management at runtime: edit PID configurations
Quiz: Fabric profile versioning and patches
Deploy data source via blueprint
Create and deploy OSGI service accessing database
Practice:
Familiarize with in-built fabric profiles
Practice creating a profile and deploy to one or more containers
Add feature repositories and Install features into fabric profile
Create a new profile version with a new feature/enhancement of the existing
feature and apply to one or more containers
Upgrade and rollback the patches to one or more containers and verify
Edit the application configurations at runtime and verify
Session 6: Camel development with JBOSS Fuse ESB
Overview of enterprise level applications and integration concerns
How EIP addresses integration problems
Overview of EI patterns
Quiz: EI Patterns
Service orchestration overview
Camel as service orchestrator
Camel overview and applying EI Patterns
Camel exchange overview, build routes using blueprint/spring
Overview of Camel endpoints
Message transformations using camel
Quiz: orchestration, endpoints
Demo creating OSGI camel bundles demonstrating popular EI Patterns: CBR,
Multicasting, Wiretap, Splitter, Aggregator, and Transformation
10. Exception handling in camel
Transaction management
Multithreading and concurrency
Quiz: exception handling, transactions
Demo to illustrate exception handling, concurrency and threading
Practice:
Familiarize with EI patterns
Practice demos popular EI Patterns: CBR, Splitter, Aggregator and Transformation
Practice demos with exception handling, concurrency and threading and deploy to
fuse
Invoking an OSGI service from a camel flow using blueprint framework
Hawtio console: examine camel endpoints and routes
Session 7: Camel MQ and CXF development with JBOSS Fuse ESB
Camel messaging with active MQ overview
Demo to illustrate camel consumer and producer with Active MQ in fuse
Apache CXF architecture overview
Practice creating a SOAP based web service bundles and install in Fuse
Code first web service
Contract first web service
Practice creating REST web service bundles and install in Fuse
Quiz: exception handling, transactions
Demo to illustrate soap and rest web services and deploy to fuse
Practice:
Practice creating a camel soap web service and deploy to JBOSS Fuse
Practice creating a camel rest web service and deploy to JBOSS Fuse
Session 8: managing HTTP clustering, load balancing and failover in fuse
Overview of clustering, load balancing and failover
Fabric clustering and gateways
Fabric gateways: HTTP and MQ gateways
Customize gateway profiles: zookeeper registry, context paths, URI templates
Quiz: Fabric HTTP gateway and registry
Active MQ clustering: active/active, master/slave and broker networks
Message persistence: kahaDB
Overview and customize active MQ broker configurations in Fuse
Create and run a standalone active MQ broker via fabric in fuse
Send/receive messages from a fabric container running standalone broker
Create and run a master/slave active MQ cluster via fabric in fuse
Discover and send/receive messages to/from a fabric MQ master/slave cluster
Create and run broker networks in fabric fuse
Discover and send/receive messages to/from a fabric MQ broker network cluster
Quiz: Fabric MQ gateway and MQ clusters
Practice:
Create a fabric container and run HTTP gateway
Start and stop HTTP gateway container
Create a fabric container and run MQ gateway
11. Start and stop MQ gateway container
Customize the gateway configurations and ports
Create a container to run MQ standalone broker and verify send/receive messages
Start and stop MQ standalone broker
Create the containers to run MQ master/slave brokers and verify send/receive
messages
Start and stop MQ master/slave broker and verify
Create the containers to run MQ netwrok brokers and verify send/receive messages
Start and stop MQ network brokers and verify