John Willis mentioned (in a nice way) that I tend to ramble on a bit in my posts and he sometimes misses “the point” so I thought I’d put it right up front. Today Hyperic and OpenNMS are officially announcing an integration between our products. This is exciting, as I am a fan of the Hyperic agent, and this was also a truly cooperative effort on the part of both groups.
But as I am a ramblin’ man …
Back in the early to mid 90s I started to get involved with HP’s OpenView product suite. The main reason was due to an independent users organization called the OpenView Forum (OVForum). The “open” in OpenView didn’t mean “open source” of course, but it did mean that HP focused on having a lot of APIs to make it easy to integrate with their products. For example, the dominant language of administrators at the time was Perl, and these API’s allowed Chip Sutton to create a whole set of Perl libraries to interface with OpenView, totally separate of any official involvement with HP.
This created a whole community around the product and encouraged people to create new functionality, which caused OpenView to become, and some would say remain, the main enterprise management framework.
Unfortunately they couldn’t leave a good thing alone, and HP started to use this community as a sales channel. We were already the best sales channel they had. The Compaq acquisition was the beginning of the end for OpenView as there were several years where it was obvious the OpenView product group was being ignored, and people went on to look for alternatives.
My plan for OpenNMS has always been to replace the OpenView of the 90s with an open source framework that would go beyond what OpenView was able to provide with their proprietary software model. I saw how well it thrived under the OVForum and figured an open source community could be even stronger and more vibrant.
To this end OpenNMS has tried to cover a broad spectrum of management tasks while providing a large number of integration points into the application for other vendors to leverage.
One of the things that differentiates the business model of OpenNMS from a proprietary software company is that quite often the features we choose to develop are driven directly by the end users of the product. We don’t sit around a big conference table wondering what to develop, customers come and tell us. About 40% of the revenue of The OpenNMS Group comes from custom development and 100% of that is put back into the community.
We have done a number of integration projects in the past. The first one that comes to mind was a way to send notifications to Request Tracker (RT). Rather than build RT-specific code, a more generic HTTP notifier was created which allows OpenNMS to interact with any web-based tracking system.
Then a client wanted something more robust, so we developed a Trouble Ticket API class that can allow for integration solely using configuration files. The work was originally done to communicate with CentricCRM (now Concursive), but this was soon extended to work with Jira.
Late last year one of our largest clients approached us about an integration with Hyperic HQ. When Hyperic announced that they were going to open source their code, I wasn’t that thrilled about it. Luckily the people at Hyperic are really cool and we started meeting at various trade shows. I learned that our two products don’t really compete but are very complimentary. The focus of Hyperic has always been to provide a high level of systems and application management. Through the use of their agent, not only can they detect problems but they can perform actions to correct them. OpenNMS, being agent-less, is more passive, although we can aggregate information from a wider range of sources. It’s a really good match.
This required a lot of research into the best way to perform the integration, as well as having Hyperic integrate some code into their product to make things smoother. This they were eager to do and it was fun working with them.
On our IRC channel (#opennms on freenode.net) we often have fun with the topic. In 2006 I declared “2006 – The Year of OpenNMS” and we won an award. In 2007 it was “2007 – The Year of Four Releases” and we managed six. This year we have been hunting around for a new “Year of”.
Perhaps it should be “2008 – The Year of Integration”.