JMX - foundation of JBoss infrastructure

Introduction

JMX technology represents a standard coherent framework for instrumentation and management of Java technology-based resources. JMX defines a management architecture, APIs, and management services all under a single umbrella specification. On top of this specification promises hooks into existing management systems.

JMX core components

MBeanServer is core JMX abstraction, a component which provides services for manipulating MBeans. All management operations performed on MBeans are done through MBeanServer interface. MBeanServer contains the necessary methods for the creation, registration, and deletion of MBeans as well as the access methods for registered MBeans. This is the core component of the JMX infrastructure.

MBean is a "regular" Java component volunteering to be instrumented. Every MBean component which is added to the MBeanServer becomes manageable: its attributes and operations become remotely accessible through the connectors/adaptors connected to that MBeanServer. A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.

JBoss and JMX

MBeanServer in Jboss architecture plays a role of microkernel aggregator component. All other managable MBeans components are plugged into MBeanServer. The kernel in that sense is only an aggregator, and not a source of actual functionality. The functionality is provided by MBeans and infact all major JBoss components, are managable MBeans interconnected through MBeanServer. The managibility is provied by MBeanServer which instuments registered MBeans.

The modular architecture of JBoss , provided by JMX foundation moves all dependency checking from compile time to run-time enviroment. The rigourous runtime depedencies check mechanism, in the form of JBoss' DependencyManager component, enforces dependencies between different resources and services.

It is important to notice that "management dependencies" are something independent of the managed blocks but dependent on the context of a particular deployment/environment. In any case, the dependencies are runtime oriented and the external management of them (JMX) is the way to go.