Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Managed OSGi gateways can install JMX probes from various repositories. A JMX probe is a standard OSGi bundle that registers a MBean an #MBean component in the managed gateway's JMX agent.

...

  • Remote Logger: notifies log informations

A JMX Console is an OSGi framework also (for simplicity) which should host two bundles :

  • JMX Console: the graphical framework that will host graphical plugins
  • jmxconsole common tabs: tabs that are common to all gateways. For the moment it only concerns a tab that shows remote notification (it works whith remote logger)

OSGi/JMX MBean registration

MOSGi installs JMX-MX4J agent at the gateways level. Any one can register an MBean to the JMX agent. The registration can be made in two ways. The direct code and the white board pattern.

  • In the direct code, one can register an MBean to the agent through the standard service interface : javax.management.MBeanServer

Example:

Code Block

org.osgi.framework.ServiceReference sr = context.getServiceReference(javax.management.MBeanServer.class.getName());
javax.management.MBeanServer mbs=(javax.management.MBeanServer)context.getService(sr);
mbs.registerMBean(new MBeanImpl(), new ObjectName("Foo:FooName");

Exemple of such code is uses in mosgi.managedelements.bundlesprobes code in felix repository

  • In the whiteboard pattern, one can register an MBean through registering its interface to the framework as a service. If the interface name ends with MBean or if the interface is javax.management.DynamicMBean, the agent will automatically register the implementation as a standard MBean. The objectName of the MBean can either be defined at registration time with the org.apache.felix.mosgi.jmx.agent.Constants.OBJECTNAME property name or automatically build through introspection.

Example:

Code Block

java.util.Properties prop=new java.util.Properties();
prop.add( org.apache.felix.mosgi.jmx.agent.Constants.OBJECTNAME, "Foo:FooName");
context.registerService(test.FooMBean.class.getName(), new test.Foo(), prop);

Management Console

The management console is a ad-hoc jmx compatible console. Its aim is not to be a concurrent to general purpose consoles like MX4J or JConsole but provides an ad-hoc user interface depending on the managed gateway. The console is based on a plugin framework. Each time the consol connects to a gateway it gets the list of available MBean. Then for each registered MBean it asks for specific local bundles for managing it. Each graphical bundle is integrated as a graphical tab in the management console.

In the next screenshot, the gateway user has deployed 4 probes on the remote gateway : Remote Obr, Remote Bundle List, GNU/Linux and OSGi Plateform.Image Added

In order to get these tabs, the gateway manager deploys the 4 probe bundles on the remote gateway and GUI tabs are automatically made available to the remote console. These bundles are :

  • ObrProbe : a probe that enables interaction with obr for bundle deployment
  • BundleProbe : a probe that enables the bundle life-cycle management
  • GNU-Linux : a probe that gets status from running host operating system
  • OSGi Platform : a probe that gets information from current running gateway

These plugin are developed as simple examples and are available in felix repository. A ProbeGuide that describes plugin integration is available. Plugin are dynamically removed and reinstalled each time you change your selected gateway.

Anchor
MBean
MBean

MBean Definition

An MBean is a Management Component for the JMX framework. It is made of an MBean interface and an implementation of it. The MBean interface is used to make remote management with the implementation.