Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: #

MX 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)
#
Wiki Markup
MOSGi enables the remote management of OSGi-compatible service gateways, using JMX. The framework is a reference architecture for end-to-end gateway management. It provides the following features:

...


* relies on JMX management infrastructure (IP-based 	management),

...


* provides two JMX agents: the standard Java 1.5 agent and a 	specific Java 1.4 lightweight embedded agent (MX4J agent deviation),

...


* provides a way to deploy various probes on remote gateways,

...


* provides a management console,

...


* the graphical part of a probe (management console part) can 	be dynamically plugged in the management console and is dynamically 	downloaded.

h1.

...

 Very fast QuickStart Guide

...



Go into $FELIX_HOME/trunk/mosgi.doc and read Readme.txt.

...



h1. General architecture

...



The overall architecture is presented in the following picture

...

Image Removed

How it works

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

The management console (running in a standard OSGi framework) is connected to each gateway through the JMX remoting protocol. When it connects for the first time to a managed gateway, it asks for probes that are installed (i.e. all MBeans registered in the TabUI JMX domain). Then, for each MBean found, the management console asks for its graphical representation through a call to our standard API (component getUI() call). This call redirects to a bundle in the GUI probe repository that is installed by the management console. So the management console discovers at run-time the user interface it should use to
supervise a specific remote gateway.

Here is a description of different bundles that should be installed on both parts of the infrastructure (managed OSGi gateway and Management console).

A managed OSGi gateway must host the following bundles :

  • JMX-MX4J Agent Service: provides a JMX agent. Either through a wrapper to jdk1.5 standard agent or through using a specific lightweight inner agent1 (originate from mx4j project). This agent service also declares a standard MBeanServer service interface..
  • JMX rmiregistry: wraps RMI registry life cycle. It's used by the JMX remoting infrastructure to register
  • JMX RMI connector: wraps a standard JMX remoting RMI connector

...

 :

!MOSGiArchitecture.png!

h1. How it works

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

The management console (running in a standard OSGi framework) is connected to each gateway through the JMX remoting protocol. When it connects for the first time to a managed gateway, it asks for probes that are installed (i.e. all MBeans registered in the TabUI JMX domain). Then, for each MBean found, the management console asks for its graphical representation through a call to our standard API (component getUI() call). This call redirects to a bundle in the GUI probe repository that is installed by the management console. So the management console discovers at run-time the user interface it should use to
supervise a specific remote gateway.

Here is a description of different bundles that should be installed on both parts of the infrastructure (managed OSGi gateway and Management console).

A managed OSGi gateway must host the following bundles :
* JMX-MX4J Agent Service: provides a JMX agent. Either through a wrapper to jdk1.5 standard agent or through using a specific lightweight inner agent1 (originate from mx4j project). This agent service also declares a standard MBeanServer service interface..

* JMX rmiregistry: wraps RMI registry life cycle. It's used by the JMX remoting infrastructure to register

* JMX RMI connector: wraps a standard JMX remoting RMI connector

* Remote Logger: notifies log informations<\!-\- 		@page
{ size: 21cm 29.7cm; margin: 2cm }
 P
{ margin-bottom: 0.21cm }
 \-->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)

h1. 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 a MBean to the agent through the standard service interface : *javax.management.MBeanServer*

For instance :
{code}
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"); 
{code}