<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ellison Software Consulting &#187; Software Design</title>
	<atom:link href="http://ellisonsoftware.com/category/software-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://ellisonsoftware.com</link>
	<description>SNMP and MIB Consulting</description>
	<lastBuildDate>Tue, 13 Sep 2011 19:17:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Product Evaluation: DMH Software&#8217;s SNMPv3 SDK</title>
		<link>http://ellisonsoftware.com/2010/01/13/product-evaluation-dmh-softwares-snmpv3-sdk/</link>
		<comments>http://ellisonsoftware.com/2010/01/13/product-evaluation-dmh-softwares-snmpv3-sdk/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:07:15 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software Design]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Project Management]]></category>
		<category><![CDATA[Build or Buy]]></category>
		<category><![CDATA[Managemant Applications]]></category>
		<category><![CDATA[SNMPv3 Agent]]></category>

		<guid isPermaLink="false">http://ellisonsoftware.com/?p=443</guid>
		<description><![CDATA[Every so often I have the opportunity to evaluate a software developers kit (SDK) targeted for use in network and services management applications. I recently evaluated the SNMPv3 Advanced SNMP Agent SDK offered by DMH Software.   A product profile and evaluation synopsis follow. Product Profile DMH Software sells a software developers kit consisting of an [...]]]></description>
			<content:encoded><![CDATA[<p>Every so often I have the opportunity to evaluate a software developers kit (SDK) targeted for use in network and services management applications.</p>
<p>I recently evaluated the SNMPv3 Advanced SNMP Agent SDK offered by DMH Software.   A product profile and evaluation synopsis follow.</p>
<p><span style="text-decoration: underline;"><strong>Product Profile</strong></span></p>
<p><a href="http://dmhsoftware.com/snmp.html" target="_blank">DMH Software</a> sells a software developers kit consisting of an SMIv2 MIB compiler and their portable, SNMPv3 capable Advanced SNMP Agent runtime libraries.</p>
<p><a href="http://www.netburner.com/" target="_blank">NetBurner</a> sells a single board device running uc/OS on a Freescale Coldfire 68K processor that served as the embedded target environment.</p>
<p><span style="text-decoration: underline;"><strong>Evaluation<a href="http://dmhsoftware.com/" target="_blank"> </a>Approach</strong></span></p>
<p>For this evaluation, the ALARM-MIB (<a href="http://www.rfc-editor.org/rfc/rfc3877.txt">RFC 3877</a>) was implemented using the DMH Software SDK for the NetBurner embedded environment.  The ALARM-MIB was selected for reasons that include:<br />
        </p>
<ul>
<li>the OBJECT-TYPE definitions include every possible SMIv2 sytnax type.</li>
<p></p>
<li>the tables have multiple index components using OCTET STRING and INTEGER syntax types.</li>
<p></p>
<li>the two NOTIFICATION-TYPE definitions, alarmActiveState and alarmClearState, enable evaluation of APIs for sending notifications.</li>
<p></p>
<li>the design of the alarmActiveVariableTable allows each row to contain one of the variable bindings sent in a notification. As such, the alarmActiveVariableTable is a &#8216;sparse&#8217; table containing rows with only three accessible object instances out of ten accessible OBJECT TYPE definitions.</li>
</ul>
<p>
To implement the ALARM-MIB, the following steps were taken:<br />
        </p>
<ul>
<li>the host environment was set up on a Windows XP laptop with the NetBurner supplied Eclipse based IDE and cross compiler, linker and debug utilities.  A NetBurner model 5234 board was used as the target environment.</li>
<p></p>
<li>the DMH Software SMIv2 MIB compiler was used to generate code from the ALARM-MIB.</li>
<p></p>
<li>custom code was added to the generated code to complete the functional implementation.</li>
<p></p>
<li>the NetBurner SDK was used to compile the generated and custom code and to link it with the DMH Software SNMPv3 agent and NetBurner runtime libraries.</li>
<p></p>
<li>the resulting executable was flashed onto the NetBurner board and tested using the Net-SNMP command line tools.</li>
</ul>
<p>
<span style="text-decoration: underline;"><strong>Evaluation Results &#8211; MIB compiler<br />
</strong></span></p>
<p>The DMH Software SMIv2 MIB compiler is based upon and extends utilities that are part of the well known open-source libsmi distribution.  Thus, I experienced a familiar and comfortable feel with the DMH MIB compiler utilities.  Version 1.4.5.0.5 of the SMIv2 MIB compiler was used in the evaluation.</p>
<p>The code generated for the ALARM-MIB consisted of three source files, alarm-mib.c, alarm-mib.h and alarm-mib-sys.c.  The generated source code was modular, of good quality and well annotated with information from the ALARM-MIB as well as comments that clearly indicated where custom code was required to complete a functional implementation.</p>
<p>During the evaluation I encountered several minor issues with the source code generated from the DMH Software MIB compiler:<br />
        </p>
<ul>
<li>generated code contained erroneous range checking for the SMIv2 BITS construct.  NOTE: this issue was resolved within three days of reporting it to DMH Software.</li>
<p></p>
<li>some code was not generated for the alarmActiveDateAndTime nor alarmClearDateAndTime index components.  NOTE:  this issue was resolved within three days of reporting it to DMH Software.</li>
<p></p>
<li>generated code for enumerated values would be a welcome addition.</li>
<p></p>
<li>generated code could do a better job handling SMIv2 Textual-Conventions.  Most of the generated code and comments accurately reflect the underlying base syntax type, rather than the restrictions placed upon the base syntax by the Textual-Convention.  NOTE: support for the RowStatus and StorageType Textual-Conventions are built into the SNMPv3 SDK APIs.</li>
</ul>
<p>
<span style="text-decoration: underline;"><strong>Evaluation Results &#8211; SNMPv3 SDK<br />
</strong></span></p>
<p>The DMH Software Advanced SNMP Agent was designed to produce a small executable with embedded and real-time applications in mind.  From tests run, I was pleased to find excellent support for version 3 of the SNMP that included the set of SNMPv3 MIBs for USM, VACM, and Notification targets.  Version 5.0.1.12-2 of the SNMPv3 SDK was used in the evaluation.</p>
<p>The provided developers&#8217; documentation consisted of an integrated set of html pages.  It took a little time to get used to navigating the frames and tabs of the documentation to find the information I needed.  In a handful of instances I found information not available in the documentation by searching through the SNMPv3 SDK include files.</p>
<p>The provided API consisted of a small, concise and well thought out set of functions. From my perspective, a small and concise set of functions is beneficial, serving well the target audience of developers creating management applications.  In general, I found the API provided with the DMH SNMPv3 SDK easy to understand and use.</p>
<p>During the evaluation I encountered a couple of minor issues with the DMH SNMPv3 Agent API:<br />
        </p>
<ul>
<li>the agent cited an error when passed a variable binding tagged with a syntax of Opaque.  NOTE:  This issue was resolved within three days of reporting it to DMH Software.</li>
<p></p>
<li>while there are two API functions for sending notifications, neither provided a mechanism for the caller to provide the value for sysUpTime.0 for an outgoing notification.  While perceived as a hindrance upon implementing the ALARM-MIB for this evaluation, DMH did offer to resolve this issue in a future release.</li>
</ul>
<p>
<span style="text-decoration: underline;"><strong>Evaluation Results &#8211; Summary and Conclusion<br />
</strong></span></p>
<p>Overall, I was pleased with the functionality, features and support offered by DMH Software in their Advanced SNMP Agent SDK product.</p>
<p>Additionaly, I am pleased to report that the SMIv2 MIB compiler generated modular code of good quality and that DMH Software&#8217;s response time on technical issues was superb.</p>
<p>If your software development project involves the NetBurner embedded target environment and has a need for an SNMPv3 agent then I recommend you consider using the DHM Software Advanced SNMP Agent for your software development project.</p>
<p>Please <a href="http://ellisonsoftware.com/company/contact/" target="_self">contact me</a> if you need to identify applicable IETF published MIB modules. need to design a private enterprise MIB module, or require a quick and sure start with the DMH SDK.  Find out how easily my expertise and skills can support your development team and contribute to a successful design and realization of your software project.</p>
]]></content:encoded>
			<wfw:commentRss>http://ellisonsoftware.com/2010/01/13/product-evaluation-dmh-softwares-snmpv3-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commercial or Open-Source Software?  Lowering the Cost of SNMP Applications Development</title>
		<link>http://ellisonsoftware.com/2009/02/09/commercial-or-open-source-software-lowering-the-cost-of-snmp-applications-development/</link>
		<comments>http://ellisonsoftware.com/2009/02/09/commercial-or-open-source-software-lowering-the-cost-of-snmp-applications-development/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 15:54:21 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software Design]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Project Management]]></category>
		<category><![CDATA[Build or Buy]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://agentsv.com/?p=7</guid>
		<description><![CDATA[In a world of commercial and open source software toolkits, how can we best identify and select the option lowering the cost of developing SNMP Agent and SNMP Manager applications? The goal in selecting an SNMP developers&#8217; toolkit is to find the most cost effective means to accelerate development and realize successful project completion. During [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 	 --></p>
<p>In a world of commercial and open source software toolkits, how can we best identify and select the option <strong>lowering the cost </strong>of developing SNMP<strong> </strong>Agent and SNMP Manager applications?</p>
<p>The goal in selecting an SNMP developers&#8217; toolkit is to find the most cost effective means<strong> </strong>to <strong>accelerate development</strong> and realize <strong>successful project completion</strong>.</p>
<p>During the process of SNMP toolkit evaluation, we need to consider factors from both the <strong>technical perspective </strong>and <strong>business perspective</strong>.</p>
<p><span style="text-decoration: underline;">Some examples of business factors:</span></p>
<ul>
<li>What are the terms and obligations of the distribution 	license?</li>
<li>What level of <strong>engineering expertise</strong> do we need on staff to 	effectively use the toolkit?</li>
<li>What is the initial cost for the toolkit?</li>
<li>Are there annual <strong>maintenance and support </strong>costs?</li>
<li>Do we need to track and pay <strong>royalties </strong>on derivative works?</li>
</ul>
<p><span style="text-decoration: underline;">Some examples of technical factors:</span></p>
<ul>
<li>Does the toolkit include <strong>fully compliant implementations </strong>of 	SNMPv1, SNMPv2c and  SNMPv3?</li>
<li>How well does the toolkit scale when handling a <strong>heavy volume </strong>of encrypted SNMPv3 messages?</li>
<li>Is the toolkit <strong>easily portable </strong>to a variety of hardware 	platforms and operating systems?</li>
<li>What useful MIB implementations and utilities are included 	with the toolkit?</li>
<li>How helpful is the developers documentation?</li>
<li>Is the SNMP toolkit API <strong>concise or bloated</strong>?</li>
<li>Is the SNMP and MIB terminology used in the toolkit 	consistent with IETF published RFCs?</li>
</ul>
<ul>
<li>What level of <strong>technical support </strong>exists?  Is there an active 	developer and user community?</li>
<li>Does the SNMP toolkit <strong>integrate well </strong>with other technologies 	(e.g. Corba, WBEM, Syslog, XML, JMX, TL1)?</li>
</ul>
<p>Based upon the relative significance of each factor we can identify and select the SNMP developers&#8217; toolkit offering the best value and most cost effective means to accelerate development and realize successful project completion.  The right SNMP developers&#8217; toolkit is not necessarily the least expensive.  Rather, the right SNMP developers&#8217; toolkit is the one that is capable of providing substantial <strong>engineering efficiencies</strong> during development and facilitates the delivery of a less encumbered, <strong>more profitable</strong> product.</p>
<p>Open-source SNMP software was initially created as a reference implementation for interoperability testing with proprietary implementations of the SNMP protocol.  Over time, the  quality of open-source SNMP developers&#8217; toolkits has improved to a point where there is a suitable match for a variety of OEM development efforts.</p>
<p>Commercial SNMP software often provide a much richer feature set than open-source developers&#8217; toolkits. Also, commercial SNMP software offerings have adjusted to low-end market realities of quality open-source software to a point where there is a low cost or no cost binary commercial version that is often competitive with open-source alternatives.</p>
<p>In either case, open-source or commercial, it is<strong> important to have sufficient development expertise with SNMP</strong> and MIB technologies to make effective use of the selected SNMP developers&#8217; toolkit.  This is the <strong>core value</strong> provided to your project by <strong>the right choice of SNMP consultant</strong>.</p>
<p>The next step to gaining a <strong>better understanding of the alternatives and trade-offs </strong>when identifying and selecting the best choice of commercial or open-source SNMP developers&#8217; toolkit is to <a href="http://ellisonsoftware.com/company/contact/">contact me</a> with your project requirements and questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://ellisonsoftware.com/2009/02/09/commercial-or-open-source-software-lowering-the-cost-of-snmp-applications-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reduced Cost, Reduced Risk:  Information Modeling Before Enterprise MIB Design</title>
		<link>http://ellisonsoftware.com/2008/12/24/reduced-cost-reduced-risk-information-modeling-before-enterprise-mib-design/</link>
		<comments>http://ellisonsoftware.com/2008/12/24/reduced-cost-reduced-risk-information-modeling-before-enterprise-mib-design/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 21:31:29 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Requirements Planning]]></category>
		<category><![CDATA[Software Design]]></category>
		<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[Enterprise MIBs]]></category>
		<category><![CDATA[Information Model]]></category>

		<guid isPermaLink="false">http://agentsv.com/?p=3</guid>
		<description><![CDATA[In our current business economy development schedules are short and project budgets constrained. When a software project involves the design of Enterprise MIB modules, there is a tried and true approach to reducing associated cost and risk factors. This valuable design approach leverages the practical wisdom and lessons-learned from the development of more than 250 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In our current business economy development schedules are short and project budgets constrained.</p>
<p style="text-align: justify;">When a software project involves the design of Enterprise MIB modules, there is a tried and true approach to reducing associated cost and risk factors.  This valuable design approach leverages the practical wisdom and lessons-learned from the development of more than 250 <a href="http://www.ietf.org/" target="_blank">IETF</a> standards-track MIB modules.</p>
<p style="text-align: justify;">The IETF Operations And Management (OAM) Area directorate collected and posted helpful information related to MIB design on the following topics:</p>
<ul>
<li>A <a href="http://ops.ietf.org/mib-boilerplate.html" target="_blank">boilerplate</a> for MIB documents</li>
<li>Suggested <a href="http://ops.ietf.org/mib-security.html" target="_blank">guidelines</a> for MIB security sections</li>
<li>A list of generic and common <a href="http://ops.ietf.org/mib-common-tcs.html" target="_blank">textual conventions</a></li>
<li>Readily available MIB review and validation <a href="http://ops.ietf.org/mib-review-tools.html" target="_blank">tools</a></li>
</ul>
<p style="text-align: justify;">These topics and others are published as a &#8220;Best Current Practice&#8221; in <a href="ftp://ftp.rfc-editor.org/in-notes/rfc4181.txt" target="_blank">RFC 4181</a>, &#8220;Guidelines for MIB Documents&#8221;.   RFC 4181 describe a better approach towards the design of MIB modules, but does not address the single largest cause of rework and redesign.  This critical step, is the creation of an <a href="http://en.wikipedia.org/wiki/Information_model" target="_blank">Information Model</a>, as cited by the Network Management Research Group (<a href="http://irtf.org/charter?gtype=rg&amp;group=nmrg" target="_blank">NMRG</a>).</p>
<p><!-- 	 	 --></p>
<p style="text-align: justify;">Within each IETF standards-track MIB module there exists a tacit, de-facto Information Model. This <a href="http://www.ibr.cs.tu-bs.de/projects/nmrg/infomodel/" target="_blank">NMRG view</a> describes how Information Models can represent different abstraction levels and provides a set of reverse-engineered Information models for IETF published MIB modules.  This NMRG point of view is described in <a href="ftp://ftp.rfc-editor.org/in-notes/rfc3444.txt" target="_blank">RFC 3444</a>, &#8220;On the Difference between Information Models and Data Models&#8221;. Since publication of RFC 3444, IETF working groups now define an Information Model before designing their MIB modules.</p>
<p style="text-align: justify;"><!-- 	 	 --></p>
<p style="text-align: justify;">My consulting clients who choose to first define an Information Model regard this initial step as a great value for reasons that include the following:</p>
<ul>
<li>Efficient knowledge transfer from 	domain subject experts</li>
<li>Easy to understand graphic format</li>
<li>Identifies major system components, their relationships and multiplicity</li>
<li>Effectively specifies the SNMP INDEX for each system component</li>
<li>Provides a means to express and analysis use cases</li>
</ul>
<p>And the best value yielded by the small amount of time and effort spent on first defining an Information Model is the significant reduction in latter development stage risk involving re-design of portions of their Enterprise MIB modules.</p>
<p>It is simply easier to identify and correct logic on a single page or screen image than it is to modify definitions and descriptive text across the hundreds of pages comprising a set of enterprise MIB modules.  The simple fact that the need for re-design is often first detected during the latter phases of implementing MIB modules in an SNMP Agent or SNMP Manager application serves to compound the value provided by the initial definition of an Information Model.</p>
<p>Certainly the design approach of information modeling before Enterprise MIB design reduces cost and reduces risk that can adversely impact project budget and schedule.</p>
<p>The next step in taking advantage of this valuable design approach is to <a href="http://ellisonsoftware.com/company/contact/">contact me</a> with your project requirements and questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://ellisonsoftware.com/2008/12/24/reduced-cost-reduced-risk-information-modeling-before-enterprise-mib-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

