e n t i m O S S Open Community Solutions Standards and OpenNMS Dr Craig Gallen EngD C.Eng MBA entimoss Limited 6 Burnett Close Bitterne Park Southampton Hampshire England SO18 1JD The OpenNMS Group, Inc. 220 Chatham Business Drive Pittsboro NC 27312 United States Email : craig.gallen@entimoss.com : cgallen@opennms.org e-mail sales@opennms.com www.opennms.com Mobile : +44 (0) 7789 938012 Phone: +1 919-533-0160 Fax: +1 503-961-7746 Craig Gallen 2011
Standards Why? Exposes us to research communities Demonstrates mind share Gets us into vendor and service provider labs Marketing? Sets us up as a platform of choice Telcos / Equipment vendors Which Community of end users for our product Access to domain experts Marketing - Possibility to sell solutions New or existing segments Open source and standards Defacto standard through wide adoption E.g. spring = osgi blueprint slide -1
Standards Trainline slide -2
DMTF CIM Common Information Model Management Standards and Models slide -3
Functionality - Problem Management Work Flow Event Collection OpenNMS can record all event occurrences Alarm Correlation OpenNMS uses an Alarm Mechanism to convert configurable 'alarm raising traps' or 'alarm clearing traps' into a manageable alarm cycle. On first receiving a trap, an alarm is raised. subsequent traps are counted against the alarm. A clearing trap clears the alarm ready for a new raise event.. This is the simplest use of the alarm list. However, user configured 'automations' can process the alarm list for more sophisticated analysis. In addition, OpenNMS leverage's the Jboss Rules correlation engine for more sophisticated down stream alarm suppressing. User Notifications and scheduled escalation OpenNMS supports multiple users and an Notification escalation mechanism between users. If a severe event is detected (such as a major alarm), this generates a Notification which is escalated over time through a list of users if it is not acknowledged. The system can also generate external paging, emails or instant messaging messages to attract attention to a notification. Trouble ticket integration If the basic escalation mechanism is not enough, OpenNMS also has a Trouble ticket interface for integrating with a number of trouble ticket systems including open source trouble ticket implementations, RT and OTRS. slide -4
Functionality - Performance & SLA Management Performance Data Collection and Management Like other network management tools such as Nagios or Cricket, OpenNMS stores performance data in RRD files. It can use RRDTool to do the collection, but the preferred library is Jrobin which is a Java implementation of RRD. OpenNMS has MIBS already installed for most large vendors equipment but users can add their own configurations. The user community often share this work and experience of new equipment. However unlike these tools, all of the scheduling of data collection is controlled by a Java process entirely within OpenNMS which makes the solution very scalable. Data can be collected from a variety of sources; SNMP polling and trap management, Ascii Syslog messages, TL1, JMX. there is also an integration with Nagios to allow the use of Nagios plugins. OpenNMS has also been integrated with Snort. Data visualisation OpenNMS presents performance data as graphs. These graphs can also be exported in the form of performance reports. Threshold events. OpenNMS can generate Threshold crossing alarms based on changes in the data. OpenNMS also performs synthetic transactions to test the availability of services on nodes. This can be done centrally or through a distributed collection of remote rollers as described above. Service Quality Management SLA Alarms can be escalated based upon threshold crossing events. Every performance data collection point can be assigned a lo/high threshold with hysteresis to avoid bouncing alarms slide -5
Functionality - Platform Architecture External Integration Interfaces Tomcat or Jetty JSP container JSP s Spring MVC Acegi Security ***Gwt Google Windows Toolkit JfreeChart Java Web Start (distributed Poller) Jrobin (graphs) OpenNMS Web Client External Interfaces Correlation / Workflow *** July 2007 ** Dec 2006 July 2006 Web Client accesses DAO s slide -6 trapd: SNMP Trap Receiver discovery: Discover new nodes collectd: Perf data collection capsd: Node capability scanner linkd: Link Topology discovery syslogd: SYSLOg parsing ***ticketd:trouble Ticket Interface scriptd: Scripts run by events threshd: Perf Threshold Mgr. vacuumd: Database Automations translator: Event Translation notifd: Notifications Manager *Spring Wiring / Data Access Objects (Spring Framework) Castor XML /etc/*.xml config *Hibernate ORM JDBC ORM PostgreSQL Db Jrobin RRD Files Log4J Log Files **qosdrx: OSS/J Client Interface JMX collector **qosd: OSS/J Server interface XML RPC Daemon ***Drools Correlation Manager Controller: OpenNMS Process controller eventd: Event Handler / Registration / Broadcasting Distributed Polling Network Management Interfaces JMX Mbeans Persistence OpenNMS Server
Architectural Direction Platform Become the Linux of network management Embedded and integrated as part of large scale systems Service Orientated Architecture Ecosystem of community and commercial development and support Technology OSGi distributed plugin technology Aligns with Jboss and other app servers Topology Visualisation Integration bus probably leveraging Apache Service Mix Self Managed Cloud deployment model No SQL performance data storage strategy Standards De-facto reference implementation of key industry standards TM Forum, DMTF other? TM Forum Interface Program Founder members Advocated open source program Wrote Resource Alarm Management Reference Implementation (RI) and Compatibility test kit (CTK) Participated in 4 catalysts OSS/J open source Catalyst Cloud Broker Catalyst Resource Alarm Management for Converged Networks NGCOR / RAM Catalyst Orlando 2011 and Nice 2012 slide -7
Key Benefit: Open Source Manages Costs & Risk Failure Risk Opportunity Region non-feasible solution area Area of Incompetence Open Source Catalyst Y COTS OSS Catalyst COTS OSS Trial Commercial COTS OSS Project Risk Efficient Boundary X-Y X Feasible solution area Expected Cost Open source allows all of the participants to share and manage the risks of preproduction verification of specifications slide -8
NGCOR and TIP The TM Forum Interface Program TIP Convergence of OSS/J / MTOSI / IPDR Open source model driven development of interfaces Business Drivers Recent TM Forum Board Paper on Tooling Strategy building interfaces manually, using experts to work collaboratively together has largely failed in the past because many operators had the luxury of high margins to design bespoke approaches today because the interfaces take too long to build and are inflexible. there must be a way of extending or changing the interface without destroying interoperability. This need for field modification of the standard means that interface development tools are not just required by the TM Forum teams generating the base standard, but by many member companies who will be using them for production / commercial purposes. NGCOR Strong cross influence with TIP program Modelling and Tooling Fault Management Inventory Management (performance management) TIP Resource Alarm Management Designed to comply with NGCOR FM Requirements See TR184-A Version 1.3 NGCOR Fault Management Requirements Mapping (Marc Flauw HP) slide -9
Candidate interfaces Fault Management OSS/J Quality of Service OSS/J Trouble ticket TIP Resource Alarm Management TIP Service Problem Management Inventory TIP Inventory Management MTOSI WBEM / CIM Performance Management TIP performance Management slide -10
e n t i m O S S Open Community Solutions Meeting NGCOR Requirements for Modelling and Tooling http://www.ngmn.org/ Craig Gallen 2011
Developing the standards through Model Driven Engineering How do we use the Integration Framework (NGOSS) to design real solutions? NGOSS lifecycle MDA tooling with NGOSS Models Model Driven Architecture Round Trip Engineering Source: The Zachman Framework and the OMG's Model Driven Architecture Business Process Trends Whitepaper September 2003 TM Forum Interface Program delivers Working code and interfaces slide -12
Model Driven Engineering Code Generation with Tigerstripe Tigerstripe Open Source Eclipse incubation project Sponsored by Cisco http://www.eclipse.org /tigerstripe/ Complex model driven engineering under version control Automated Interface Code Generation using Tigerstripe Generators slide -13
Practical Model Driven Engineering Interface model directly derived from the SID SID modelled in Rational RSM Interface Operations added in Tigerstripe Model based interface generation Spec RI CTK Implementation Libraries Interface Implementation Same framework for all interfaces Can be extended to new managed technologies (Modelling: 3G, Ethernet etc) Can be extended to different management technologies (WSDL, JAVA, etc) Can be offered to other standards organisations (ITU-T, 3GPP etc) Can be used internally by SP s, SI s, Equipment vendors Interface Specification Interface API (Like OSS/J) OSS OSS OSS slide -14
Interface Library Structure CTK implementation uses Junit test calls against client service API Plugins implement standardised interfaces using a common service API CTK Implementation Java client plugin Client Service Library WSDL client plugin Mapping To Client OSS Other client plugin Real Client can implement TIP using library API implements Client Library API TIP Interface profiles subject to standardisation in org.tmforum namespace TIP Java Profile API implements TIP WSDL Profile XSD s Other Profile Implementation library API s created by implementation project in org.openoss namespace implements RI implements persistence and interface specific behaviour for tests Java interface plugin RI Implementation WSDL interface plugin Interface Service Library Other interface plugin Mapping To Service OSS implements Interface Library API Real OSS can implement TIP by using library API slide -15
e n t i m O S S Open Community Solutions Meeting NGCOR Requirements for Fault Management Craig Gallen 2011
Resource Alarm Management TIP Resource Alarm Management Designed to comply with NGCOR FM Requirements See TR184-A Version 1.3 NGCOR Fault Management Requirements Mapping (Marc Flauw HP) What Is Addressed Transport Common message exchange patterns Specification; documentation and WSDL RI and CTK for compliance testing Proof points of Interoperability Catalysts show first level of interoperability against simple captive network scenario What is Not addressed Deployment context in production environment Where will the interface be used and between what systems Migration and deployment strategy What profile of the interface Semantics of common alarms Correlation rules Interaction with network inventory Non functional requirements Addressing and naming conventions Failover scenarios, Enterprise integration architecture slide -17
Working Example Catalyst 2012 Alarm Management for Converged Networks Using RAM Interface sponsors Sponsors CTK Implementation Comarch HP IBM SaskTel Resource Alarm Management (RAM) Interface implements TIP WSDL Profile XSD s implements clients servers RI Implementation TEOCO BOCO OpenNMS slide -18
Using Generated Implementation Libraries CTK Implementation Interface Client Library Comarch IBM SaskTel WSDL interface plugin CTK implements RAM by using library API implements TIP WSDL Profile XSD s implements WSDL interface plugin Interface Service Library implements Interface Library API Mapping To Service OSS OpenNMS implements RAM by using library API Simulated network slide -19
Alarm Interface <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <ns2:getresourcealarmsresponse xmlns="http://www.tmforum.org/xml/tip/internal/iterator" <startindex>0</startindex> <endindex>5</endindex> <endofsequence>false</endofsequence> <ns2:objects> <ns2:result> <ns2:item> <ns2:alarmid>37100</ns2:alarmid> <ns2:alarmtype>equipment_alarm</ns2:alarmtype> <ns2:perceivedseverity>warning</ns2:perceivedseverity> <ns2:probablecause>external_alarm:low BATTERY</ns2:probableCause> <ns2:specificproblem>external_alarm:low BATTERY</ns2:specificProblem> <ns2:managedobjectclass>cell</ns2:managedobjectclass> <ns2:alarmraisedtime>2012-05-18t12:55:38.000+01:00</ns2:alarmraisedtime> <ns2:additionaltext>external_alarm:low BATTERY alarm raised on node NK00803</ns2:additionalText> <ns2:managedobjectinstance> <ns6:dn> <ns6:valuepairs> <ns6:namevaluepairs> <ns6:item> <ns6:name>managedobjectinstance</ns6:name> <ns6:value>nk00803</ns6:value> </ns6:item> </ns6:namevaluepairs> </ns6:valuepairs> <ns6:scheme>opennms Resource DN Scheme</ns6:scheme> </ns6:dn> <ns6:entitytype>cell</ns6:entitytype> </ns2:managedobjectinstance> </ns2:item> slide -20
Summary Benefits Model driven design Specification easy to maintain Direct alignment with SID Open Source Tooling No lock in Adaptable to other standards / interface profiles RAM Catalyst Test Suit is freely available RAM Compatibility Test Kit Libraries are available to help with implementation OpenNMS RAM implementation (free) Stand Alone Reference Implementation slide -21
Project Summary / Getting Involved Governance See http://sourceforge.net/apps/mediawiki/openoss/index.php?title=tip_project_governance Project Charter Approved May 2009 Contributors Agreements TM Forum Member and Non Member Signed by HP, Telcordia, Deutsche Telekom, OpenNMS (Others progressing through legal). Liaisons being sought with other standards organizations License Apache 2 http://www.apache.org/licenses/license-2.0.html Business Friendly non viral Public Sourceforge Site: http://openoss.sourceforge.net/ TM Forum Interface program community http://www.tmforum.org/community/groups/interface_program/default.aspx Mail lists: http://sourceforge.net/mail/?group_id=122678 openoss-devel, openoss-announce, openoss-user Technical Getting started: http://sourceforge.net/apps/mediawiki/openoss/index.php?title=getting_started Contribution Participation is open to TM Forum Members, Non Members and Individuals If you want to participate in active code development you must sign the External Contributors agreement or TM Forum Member Contributors agreement http://sourceforge.net/apps/mediawiki/openoss/index.php?title=tip_project_governance For more information contact Craig Gallen cgallen@opennms.org Mobile : +44 (0) 7789 938012 slide -22
e n t i m O S S Open Community Solutions Thank you for listening Any Questions? Craig Gallen 2011
e n t i m O S S Open Community Solutions Backup Craig Gallen 2011
Timeline of Visibility Requirements & Modelling Activities Interface Generation & Packaging Development Stage 1 Write Business Agreement (requirements) Stage 2 Model Interface in SID Add Interface Generation Stereotypes Export to Tigerstripe model Stage 3 Create Open Source Generation Environment and import Tigerstripe Model Stage 4 Package & Release Approved Specification and Documentation Stage 5 Develop RI Develop CTK document Only Visible to TM Forum Members SID modelled in Rational RSM TM Forum Packaged Distribution Specification & Documentation TM Forum Packaged Distribution RI CTK Libraries Open Source Environment UML 2 SID Import Plugin TIP Model Project signed artefacts for TM Forum Distribution signed artefacts for TM Forum Distribution Documentation Plugin zip jar pom.xml WSDL Plugin zip jar pom.xml Java Implementation Projects Java Implementation Plugind zip jar pom.xml Base Classes and Hand Written Code slide -25
TIP Information Modelling Stereotypes slide -26
Infrastructure: Generic Specification Build Process Eclipse Tigerstripe Workspace Maven 2 TIP Model Project TIP_Soap_Generator zip Transitory Jar in local repository jar pom.xml Maven 2 Soap_Package Project jar pom.xml zip Project Maven 2 Public Repo TIP_Doc Generator zip Java JvtSpec_Generator zip jar pom.xml jar pom.xml Maven 2 Doc_Package Project Maven 2 Java_Spec Package Project doc Generated Project website Project Website (Java API not subject to standardisation) slide -27
Infrastructure: Generic Implementation Build Process Standard Models zip Standard Models zip Project Website Eclipse Tigerstripe Workspace Maven 2 TIP Model Project Transitory Jar in local repository Maven 2 Base Classes and Hand Written Code jar pom.xml Project Maven 2 Public Repo Ideally also packaged For automatic download OR as Subversion checkout Project Maven 2 Public Repo Java Implementation Plugin zip jar pom.xml Maven 2 Java Implementation Project jar pom.xml Project Website Java_Spec Maven Jar jar pom.xml CTK, RI, Libraries Generated Project website XML_Spec Maven Jar jar pom.xml slide -28
JOSIF Sourceforge.net Site Project Site news guidebook getting started documentation model to wsdl mappings bug tracker presentations Mail lists openoss-announce openoss-devel openoss-user http://openoss.sourceforge.net/ ( or just Google openoss ) slide -29
The OpenNMS Project OpenNMS is the world's first Enterprise and Carrier grade network management platform developed under the open source model. Technology Written in Java Packaged for Windows, Linux and most Unix distributions Proven scalability 300,000 data points every 5 minutes automatically discover core nodes with 5000+ interfaces Websites www.opennms.org http://sourceforge.net/projects/opennms/ Juniper Networks embed the OpenNMS platform within Junos Space slide -30
Wide variety of commercial users Papa Johns Pizza http://www.papajohns.com/ Minnesota Children's Hospital http://www.childrensmn.org/ Oregon State University http://oregonstate.edu Permanente Medical Group www.permanente.net Myspace www.myspace.com Ocado www.ocado.com FreshDirect http://www.freshdirect.com Fox TV (Australia) http://www.foxtel.com.au BBC Monitoring www.monitor.bbc.co.uk FastSearch http://www.fastsearch.com/ New Edge Networks http://www.newedgenetworks.com/ Rackspace http://www.rackspace.com Swisscom Eurospot http://www.swisscom-eurospot.com Wind Telecomunicazioni SpA (Italy) http://www.wind.it Sophos Antivirus http://www.sophos.com BT www.bt.co.uk And many more - 4000 downloads per week slide -31
Community and Governance User community There are around 1000 people subscribed to the discuss list, but when I (Tarus Balog) teach classes I find that less than 10% of the people in the class actually use the discuss list, so my guess is that the active user community is probable closer to 10,000 people. Developer Community We have 35 developers with commit access to the repository. Assets Licence GPL The IPR is owned by The OpenNMS Group, Inc. OpenNMS Trademark owned by The OpenNMS Group Foundation OpenNMS Europe foundation established this year OpenNMS European user conference http://www.opennms.eu Governance The community is managed by The Order of the Green Polo. All active OGP members have a vote on the direction of the project, but there is no charter and no one restricts what can and can't go into OpenNMS, as long as it is good. For example, the OTRS integration that Jonathin Sartin (Ocado/Truephone) did was pretty much on his own. DEV-JAM Atlanta OpenNMS Developer Conference Google summer of code slide -32