Red Hat
Aug 27, 2013
by Shane K Johnson

Yesterday, I filmed a short video for Red Hat.

I highlighted the core components of JBoss Enterprise Application Platform, the start up process, and the deployment process.

I have to say, it’s a bit harder to talk to a camera than it is to talk to an audience so I decided to follow it up by publishing this post.

What does it mean to say that JBoss EAP is fast?
What does it mean to say that JBoss EAP is lightweight?

There are two components at the core of JBoss EAP: JBoss Modules, JBoss Modular Services Container.

JBoss Modules

JBoss Modules is a modular class loading and execution environment. It is not a container. It is a wrapper.

It is small. It is lightweight. It is efficient.

What? How?

  • Class Loader Graph (Directed), not Hierarchy
    • Peers, No Parents
      • Delegation
      • O(1) Dependency Resolution
      • No Transitive Dependencies
  • Concurrent Class Loading

It is simple. It does one thing, and only one thing: class loading.

Video


 
JBoss Modular Service Container

JBoss MSC is a state machine. The services are up, or the services are down.

It is small. It is lightweight. It is efficient.

What? How?

  • Parallel Dependency Resolution
    Resolve multiple service dependencies at the same time.
  • Concurrent Start
    Start multiple services at the same time.
  • Lazy Loading
    Start services on demand.

It is simple. It does one thing, and only one thing: start / stop services.

more

JBoss EAP – Server Start

  1. Create a modular class loading and execution environment.
  2. Load the server module.
  3. server (module) – Run the application (org.jboss.as.server.Main).
  4. applicationBootstrap the application (org.jboss.as.server.BootstrapImpl).
  5. bootstrap - Create a modular service container.
  6. bootstrap - Install and start the server service (org.jboss.as.server.ServerService).
  7. server (service) – Register the deployment unit processors.
  8. server (service) – Parse the server configuration file.
  9. server (service) – Parse the configuration file: extensions.
  10. server (service) – Load the module for each extension.
  11. server (service) – Register the (subsystem) parser for each extension.
  12. server (service) – Parse the configuration file: subsystems.
  13. msc – Install and start required services concurrently.

Two things happen: load the modules, install and start the services. That’s it.

JBoss EAP – Application Deployment

  1. Create a root deployment unit service and deployment unit.
  2. Create a module for the application.
  3. Link required modules to the application module.
  4. Pass the deployment unit to the deployment unit processors.
  5. Install and start required services concurrently.

Diagrams