JBossKernel

JBoss MicroKernel

 

 

 

The JBoss Kernel provides a lightweight kernel for managing POJOs, their deployment and configuration.

 

 

 

Additional features can be added:

 

  • Configuring a container for the POJO and and adding aspects.

 

  • Writing deployment aspects to add extra configuration steps for a POJO/deployment.

 

 

 

Aims

 

 

 

  • Make the JBoss microkernel available as a supported standalone project.

 

  • Re-implement the kernel inline with our POJO middleware strategy.

 

    • No requirement for JMX (which might not be available in some environments).

 

    • No requirement to extend or reference JBoss classes.

 

    • Allow unit tests "outside" the JBoss server.

 

    • JMX still used by the JBoss server.

 

  • Allow JBoss services to be easily deployed in the other containers.

 

    • Removes any "lock in" associated with using JBoss Services.

 

    • The enclosing container may handle classloading, logging, etc.

 

  • Allow the features to be used in more restrictive environments (e.g. Applets, J2ME, etc.)

 

    • Lightweight and small memory footprint.

 

    • May not be authorized to the MBeanServer, System properties, etc.

 

    • Layered approach - advanced features are optional, e.g. hot-deploy, jmx or cluster support.

 

  • Improved configuration management.

 

    • Notion of manual/on-demand start of a service.

 

    • Versioned configuration profiles.

 

    • Permenant deployment/config changes when using management apis.

 

    • Notion of system/subsystem.

 

    • Notion of service/subservice as opposed to service/dependent service.

 

    • Enhanced bootstrap.

 

  • Introduce an "Aspectized" deployer layer.

 

    • Deployment aspects for classloading, logging, configuration, dependency injection, etc.

 

    • Virtual File System to improve and ease deployment/archive access inside the deployers.

 

  • Use the container defined by the Unified Interceptor project.

 

    • Better integration with JBoss/AOP.

 

    • Allows reuse of interceptors/services from other parts of JBoss.

 

    • Provide kernel aspects - IOC, lifecycle, valve, state, etc.

 

  • Improved support for dependencies.

 

    • Classloading dependencies.

 

    • JNDI/port binding dependencies.

 

    • Better definition of implicit/explicit rules.

 

  • Improved support for clustering.

 

    • Clustered services - config and operations automatically propogated according to metadata rules.

 

    • Transparent access to remote services in the cluster.

 

 

 

Design

 

 

 

 

 

 

 

 

 

Class Diagrams for Evolving JBoss5

 

 

See Also

 

Referenced by: