Dev-Jam 2008/QoS

From OpenNMS
Jump to navigation Jump to search

Back to Dev-Jam discussion page


To use the Qos Interface see


Experimental work was contributed a few years ago to demonstrate how an OSS/J interface could be supported on OpenNMS. We are now proposing to the TMForum that we should host a project to support their ongoing interface development work. some of the key concepts which we want to encourage in this project are demonstrated in the Qos interface.

The original work leveraged the (then new) Alarms list. The interface functionality does the following;

  • 1. Uses a JMS message bus to pass transfer alarm details between OpenNMS instances using the OSS/J XML systax.
  • 2. Allows one OpenNMS to share changes to it's alarm list with another OpenNMS which is listening on a topic for changes.
  • 3. Provides simple demo clients to listen to the JMS topics and monitor the messages which OpenNMS produces as it's alarm list changes.

OpenNMS has moved on and the Qos interfaces needs modified to work with the latest Hibernate DAO's. I also want to make it much easier to demonstrate the functionality of the interface. Our work in TMforum will be attracting interest and we want to make it easy for any evaluators to quickly understand what has been done and get in working in a demo. The target for these changes is OpenNMS 1.6

The latest contribution will;

  • 1. Bug fix: make minor changes to the qosd and qosdrx code to work with the latest Hibernate daos
  • 2. Provide Easier Datafill: Currently to make the interfaces work, data needs to be injected directly into the database to fill in managedobjectinstance and mannagedobjecttype fields in the Node.assets table. This is messy. The qosdrx code will be modified to allow these fields to be data filled with default data using data supplied by the inventory deamon. (foreignID)
  • 2. Better documentation and demo configuration: Modify the demo configuration scripts in opennms/contrib/qosdaemon to make demonstration of the functionality much simpler for an evaluator. In particular, the demo can now be data filled using an xml script which the inventory daemon uses to populate the OpenNMS databases with demo nodes needs to show alarm management

Stretch objective

As a stretch objective, I want to look experimentally at

  • Using a JMS provider other than JBOSS. This should run natively as an OpenNMS daemon which is reconfigured using Spring
  • Looking at OSGI container for the interface
  • Looking at using OpenEJB to provide an ejb container for the interfaces