Google Summer of Code 2011

From OpenNMS
Jump to navigation Jump to search

Introduction

What Is OpenNMS

OpenNMS is an enterprise grade network management framework developed under the open source model. It consists of a community supported open-source project sponsored by a commercial services, training and support organization, The OpenNMS Group, Inc.

The goal is for OpenNMS to be a truly distributed, scalable platform supporting all aspects of the FCAPS network management model as well as a framework for implementation of NGOSS components making OpenNMS a platform available to both open source and commercial applications.

All code associated with the project is available under the GNU General Public License (GPL).

Information

General details on SoC are available at the the SoC FAQ.

Contacting Us

If you want to contact the folks involved in mentoring GSoC 2011, you can get ahold of us in a number of ways:

Note: Be sure to subscribe to the mailing list first, or your post will be rejected as spam.

Further Reading

Ideas List

Common to all ideas

Skill set

  • Java
  • git (or another DVCS)
  • Eclipse (or another IDE)


Create a maven archetype for creating GWT based XML configuration management and implement three of them

Summary

The archetype should create a basic process for how to manage the XML for different parts of the applications. It should provide an easy mechanism for the different type of XML files used for configuration.

Difficulty

Medium

Additional skills

  • Maven 2
  • GWT

Help Us Clean Up the WebUI

Summary

The OpenNMS webUI is based on Java Server Pages and underlying Java servlets running on Jetty. While functional, it could use a lot of cleanup. If you really would like to use GSoC to make your mark on a project, this would be a place to start.

This is not a rewrite, but instead we need someone to take a hard look at our current user interface and add some usability improvements, such as:

  • Insure tables have alternating (say white and grey) bars to make large tables easy to read.
  • General stylesheet improvements to make the webUI look cleaner, for example the Dashboard or when you look at an existing user's information.
  • Using AJAX or some other technology to help with pages that auto-refresh, like the alarms page, so that the whole page doesn't reload.
  • Creating "wizards" so that tasks like creating destination paths or notifications are easier to manage (i.e. when editing an existing notification, be able to jump to the last page to edit the text without having to go through the intermediate pages)
  • Rewrite the process for creating KSC reports.

Difficulty

Easy to impossible

Additional skills

  • Javascript and AJAX
  • GWT

Finish converting OpenNMS to use Hibernate

Summary

Many years ago the OpenNMS project started a migration to using Hibernate as an ORM for the application. The process of converting the legacy code to Hibernate is not complete (although all new code has been written to use DAOs). This project would be to continue the work to get OpenNMS to use Hibernate wherever possible. This will be divided into to parts. One is integration into the webui and the other is into the daemons(the rest of OpenNMS). The two students with these projects will have to coordinate if any dao's are needed.

Difficulty

Medium

Additional skills

  • Hibernate
  • SQL

Refactor opennms-services

Summary

OpenNMS used to have many of its components in one single project, opennms-services. In order to complete the move to Spring, some of the utility classes need to be moved out to corelib. Identifying, creating unit tests and moving these classes is key to this.

Difficulty

Medium

Additional skills

  • Spring
  • Common object-oriented patterns
  • Refactoring

Manage OpenNMS Service Daemons: 1

Summary

Configure and control the Init, Start, Pause, Stop behavior of OpenNMS Daemons via WebUI. Also create flags in service configuration for auto initiation and startup of each daemon. Create a configuration meta-type for configuration behavior: SLA daemons, Performance Management Daemons, Alarm Management Daemons, Web-UI services.

Difficulty

Medium

Additional skills

  • Spring

Manage OpenNMS Services Daemons: 2

Summary

Create informational attributes that can be exposed via JMX for each of the OpenNMS service daemons. Information about schedules, queues, and statistical information. This will be helpful for OpenNMS admins to be able to inspect the daemons to learn what is scheduled and how well the schedule is performing.

Difficulty

Medium

Additional skills

  • Spring

Android Based Client

Summary

Create an OpenNMS Client application on the Android platform. Use of and possible extensions to the ReST API may be necessary.

Difficulty

Medium

Additional skills

  • Spring
  • J2ME


Proposals

Please link to the wiki page with your proposal below.