JMood OSGI Management System JMood

Welcome to JMood

JMood: JMX for Managing OSGi On Demand

JMood is a tool designed for managing OSGi-enabled home gateways. It is a JMX-based management agent for OSGi service platforms which enables:

  1. The monitoring and control of the OSGi framework and management-related OSGi R3 standard services.
  2. The deployment of management policies.
  3. On demand definition of management information in an easy way - hence its name.

JMood has been developed at the Departamento de Ingeniería Telemática (DIT) of the Universidad Politécnica de Madrid (UPM), Spain.

License

JMood is distributed under the GNU Lesser General Public License, LGPL, for detailed information visit LGPL

Overview

JMood uses JMX to provide a management view of OSGi enabled devices. JMood is in fact a management bundle, which starts an JMX MBeanServer.

It contains a set of modules which register MBeans for controlling the platform. Modules are also used to deploy management policies inside the management agent, so that they can be enforced by it. We have implemented a sample policy for practively controlling the memory occupied by the applications and uninstalling the least important ones when needed.

MBeans offered by the management agent

The management agent provides mbeans for:

  • The OSGi framework: these permit the operator to remotely control the applications' life cycle. They also enable the monitoring of the registered services, and viewing the main attributes of both bundles and services. As an exception, the functionality for controlling the package admin service is included here for simplicity.

  • The OSGi standard services: Each of the management related services has its corresponding set of one or more mbeans that enable the operator to remotely interact with them. We understand that management related services are: the log service, the user admin, the permission admin, the config admin and the start level service. It also provides a certain level of monitoring of the device access specification.

  • Controlling the management agent communications, which consist of an HTTP adaptor (MX4J's one), a JMX RMI connector and its associated embedded RMIRegistry.

  • Controlling the management agent's configuration. The agent supports the loading and unloading the different modules that contain its functionality, thus providing more flexibility.

  • As the agent is Java 5.0 based, it includes the Java Virtual Machine management and monitoring capabilities.

OSGi management services

The goal of JMood is to enable the on demand management of the service platforms. This means that applications must be able to define on demand their own management model.

To achieve this, there are two alternatives. The first one consists of applications registering their own MBeans in the MBeanServer. To do this, we simply have to provide a reference to the MBeanServer. The problem of this path is that it requires programmers to gain knowlegde of JMX. Moreover, if -at least in some scenarios- JMX is not the most suitable management technology, applications would need to be reimplemented to readapt themselves to the new management technology.

To avoid these problems, we have decided to implement the second option, that is, to provide some management services to enable bundles to define their own management models.

In this way, at start up time, the management agent registers three different services in the OSGi service registry: an OSGiMgmtService, a NotificationService and a NotificationBroadcasterService. The first one permits applications to define their management interface and the other two enable them to receive and to send notifications respectively.

OSGi

The Open Services Gateway initiative (OSGi) is an independent consortium launched, in 1998, by more than fifty companies in the area of embedded systems, with the aim to develop a series of open specifications for a Java based service platform, able to act as a gateway between Internet and the local area networks that can be found at home, at a car, and other types of constrained environments.

The third release of this specification defines a service platform (an instantiation of a Java virtual machine, an OSGi framework and a set of running services) that includes a minimal component model and a small framework for managing components, including a packaging and delivery format.


JMX

JMX stands for Java Management eXtensions and is the management standard for Java in its desktop (J2SE) and server (J2EE) versions.

JMX provides a framework for building management applications in an easy way. Thanks to its flexible design, JMX can be used to merge low level management information, such as SNMP with new component oriented architectures, thus providing a global view of the system.


Usage

To use the management agent we need:

  • An OSGi service platform. For the moment, the management agent has only been tested against OSCAR an open source implementation of the specification. However, it should be compliant with other implementations. Particularly it also works on Knopflerfish open source implementation.
  • A Java 5.0 runtime environment. Please note that the OSGi service platform must be launched using this JRE for the management agent to run correctly. You can download a 1.4 compliant version from the CVS repository.
  • In the OSCAR implementation, we need to install the following bundles:
    • OSGi Service, which contains the definition of OSGi standard services.
    • OSGi Utils, which contains some standard classes needed by the agent.
  • With the above elements, you can already connect to the agent using the HTTP adaptor which exposes a web interface at port 8083 of the external interface of your machine (that is, not the loopback one). However, in order to have a much more suitable management console, we recommend you to use MC4J's console. To use it you need to create a JSR160 connection to the URL service:jmx:rmi:///jndi/rmi://localhost:1099/server where localhost should be changed to the actual name of the machine where the service platform is running.

Installing the management bundle

In order to successfully deploy the management agent inside OSGi, you only need to have the dependencies installed, and deploy the bundle.

Download

The full source code and binary distribution of JMood can be downloaded at OS4OS.

The complete documentation, in Spanish, of the Master's Thesis this project was attached to can be downloaded here in PDF format.

Roadmap

To be provided.


Contact

Please send any comment, suggestion or problem report related to JMood using the mailing lists at Os4os.


Team

JMood has been developed in the context of the participation of the Departamento de Ingeniería Telemática (DIT) and of the Universidad Politécnica de Madrid (UPM) in the ITEA-OSMOSE project. JMood programs and documentation have been created by Manuel Santillan, Jose Luis Ruiz and Juan C. Dueñas. JMood has been the Master's Thesis of Manuel Santillan in his studies of Telecommunication Engineering at the ETSIT-UPM, (Escuela Técnica Superior de Ingenieros de Telecomunicación).

Links

OSGi related

  • The OSGi alliance home page
  • OSCAR An open source implementation of the OSGi R3 platform
  • KNOPFLERFISH An alternative open source implementation of the OSGi R3 platform
  • JBONES An OSGi (and more) deployment engine and dependencies resolution framework developed at the DIT-UPM
  • BarkIDS An OSGi home security application, based on video surveillance, also developed at the DIT-UPM

JMX related

  • JMX Sun Microsystems' JMX homepage
  • MX4J An open source implementation of the JMX API, which also includes very interesting tools.
  • MC4J An open source management console based on the NetBeans platform.

Other useful links

  • DIT Department of Telematics Engineering (Departamento de Ingeniería Telemática) at the UPM, where JMood has been developed.
  • UPM Universidad Politécnica de Madrid, the university to which the DIT belongs.


Last update: .    Accesses since February 10th, 2004:   counter  

Valid HTML 4.01!