Custom SNMP Solutions: Case Studies
Learn more about Dart Consulting Services and Custom Development >
Case Study: Create an SNMP Manager that demonstrates synergies when Cisco Partner Support Services data is combined with traditional statistics.
Client offers Partner Support Services to customers and partners, where inventory and maintenance contract data is available via a centralized Web Service. Client hired Dart to build an application that would demonstrate the synergistic potential of integrating this data with traditional SNMP management software.
PowerSNMP for .NET demonstrates the use of SNMP management software on the .NET platform, so client wanted to leverage the code and techniques already developed. Customer established the following requirements:
- A map background would provide visual context.
- Standard .NET controls would be used in dynamic ways.
- Communications would be indicated visually.
- SOAP/XML technology would be used to import Partner Support Services data.
Dart interpreted these customer requirements into a set of internal requirements that drove the project design:
- A single pane on the left side would control the views on the right side.
- Each right side view would be isolated from others, would be dynamically instantiated by user selection, and would persist while not being viewed (so trend data can be captured while other views are shown).
- The left pane is a TreeView with a context menu that makes it intuitive to manage devices.
- 5 user controls were created, one for each view. This design isolates the business logic for each view.
- A worker thread for each user control isolates the retrieval of data (from the SNMP agent, Partner Support Services Web Service, and Google static map service) from the UI display of that data.
- Progress bars are used to indicate data retrieval as well as visualizing changing values.
The following graphics show the main map (that provides a relationship visual) and a device view (that provides device overview visuals). Inventory, Contract and Alert Service panes are not shown.
Case Study: Capture SNMP traps and forward a sub-set to a centralized service for resolution
Client provides a network management service for customers world-wide, and needs SNMP v1/2 traps collected at each client site and forwarded to a central service for resolution. Business logic at each client site filters received traps based upon contents, and only forwards traps of interest. Some traps are resent to local SNMP manager endpoints. All activity is logged into a SQL database.
Previous system forwarded all traps from clients to the central service, which did not scale well as clients were added. Customer needed to decode all received traps and selectively forward them to configured destinations.
Customer chose PowerSNMP for .NET product to decode the SNMP v1/2 traps, and contracted with Dart to provide the complete solution.
The SNMP Forwarding Service was written using VB.NET, .NET Framework 2.0 and SQL Express. Very high performance was achieved using 3 concurrent worker threads:
- Receiving worker thread performs a blocking read on the datagram socket and stores each encoded packet in a queue (in memory). This technique ensures packets are not dropped by quickly copying them from system buffers.
- First processing worker thread accesses the queue, decodes each trap and adds it to the database with a next-action field based upon business logic.
- Second processing worker thread reads the database for new traps and performs the specified next-action. For traps destined for the central service, an SNMP Inform message is constructed that includes the trap as a variable, and it is encoded and sent. The reply from the Inform message provides an acknowledgement, and the Inform message is resent until an acknowledgement is received.
Case Study: Expose a secure medical network via a custom SNMP Agent and an enterprise Management Information Base (MIB)
Client provides a secure clinical network to medical establishments world-wide. Customers would like to monitor internal network diagnostic data using standards-based technology.
Because the network carries patient data, access must be controlled to comply with privacy regulations. An SNMP Agent that functions as a gateway is the solution being developed by Dart.
Dart defined a private enterprise MIB sub-tree that models the network logical topology, patient monitoring devices, and associated performance statistics. Based upon this MIB, a custom SNMP Agent was created using the PowerSNMP for .NET product. As SNMP get, get-next, or get-bulk requests arrive, the appropriate response message is constructed using data from the internal network. Traps are dynamically generated as alertable events occur.
This solution was created using C#, .NET Framework 4.0 and SQL and installed as a service.
Case Study: Working with the customer to quickly develop a superior prototype for demonstration
Client must demonstrate a working prototype of an SNMP Windows service application in order to obtain more funding and continue work on a project. The service must retrieve data from network agents and feed the data to an established application.
The solution must run continuously as a service on the system. It must retrieve SNMP object variables and tables from discovered network systems. The retrieved data must be parsed and presented in a format expected by existing software.
Dart was chosen for its experience in developing services in SNMP, and for its ability to put together a solid working prototype with alacrity.
Dart provided two applications--a Windows Service that would periodically discover agents on the network and perform the poll, and a Windows Forms application to configure the service and create the poll. The service would retrieve data from the network agents over a specified interval, and record it for consumption by the existing application.
The solution was created using C# Framework 4.0.
Case Study: Develop a robust SNMP v2 Agent application with Query-Response and Notification (Trap) capabilities, including a MIB to support it
Client must provide data to network management software for a system in its organization. The system must respond to queries from the management software, as well as send unsolicited alerts concerning its status.
The solution must include data unique to the system in question. The system must collect this data from an existing database and respond when SNMP queries are received from the management software. The system must alert the management software when changes have been made to the database. In addition, the management software must know what to query, and how to interpret what it receives from the agent.
Dart was chosen for its overall expertise in the SNMP protocol.
Dart provided an agent application that handled all SNMP v2 queries--including Get, Set, Get-Next and Get-Bulk requests. The application also sent alerts in the form of Notification messages (traps) when events occurred on the system. A MIB was constructed and provided to the management software which defined the objects, tables and notifications supported by the agent.
The solution was created using VB6.
Learn more about Dart Consulting Services and Custom Development >