The development environment for Multiprotocol SNMP Agent is based on NuDesign's SNMP agent code generation technology. The generated subagent code, for the SNMP MIBs of interest, plus specific OS/RTOS SDK agent libraries form the complete Multiprotocol SNMP Agent.
For MS Windows targets, the SNMP agent code generator is called Visual xAgent Builder for C++. It is hosted under the Microsoft Visual Studio IDE and it generates a complete SNMP Agent project for Windows. Please read more on NuDesign's SNMP Agent Studio for MS Windows and on NuDesign's SNMPv3 Master Agent Service for Windows, a "plug & play" SNMPv3 replacement of Microsoft's SNMPv1/v2c Master Agent Service.
For PC Linux, embedded Linux, QNX, OSE, VxWorks and other embedded OSs / RTOSs targets, the agent code generator wizard is called Visual Embedded xAgent Builder for C++. It is hosted under MS Windows Internet Explorer and it generates complete SNMP Agent project, directly loadable into the respective target's IDE. Included in the SNMP SDK's are MIB-II subagent library (and Host Resources MIB subagent for Linux SDK’s). Please read more on NuDesign's SNMP solutions for PC Linux and embedded RTOS.
The MIB objects are stubbed and for initial testing the developer can choose to add default behavior for the implemented MIB objects: random or constant values for INTEGER objects, incrementing value for Counters, etc. By simply checking an option, the developer can even have one row in each table automatically created.
For non-Windows targets a developer can build and pre-test a fully running SNMP Agent under MS Windows' Visual Studio (using our Visual xAgentBuilder for C++ code generation wizard). Once Windows based development is completed a developer moves the SNMP Agent project into Visual Embedded xAgent Builder for C++ wizard, using "Load Settings" option and re-builds the SNMP Agent project for his specific embedded OS/RTOS IDE environment, using specific to the embedded environment SDK library. The other option is to start under Visual Embedded xAgent Builder wizard right away, building the agent project from scratch and loading it into specific OS/RTOS IDE for compilation and linking.
Figure 1. Microsoft Visual Studio IDE with xAgentBuilder installed
Figure 2. Internet Explorer with Visual Embedded xAgentBuilder for C++ installed
The Visual xAgent Builder for C++ (and the Embedded variant) consists of the following main components:
The SNMP Agent built with these tools can be simple, monolithic exe running in one thread or SNMP Master Agent with Local Extensions or Remote Subagents supporting multithreading architecture. Two remote subagent protocols are supported, a lightweight remote subagent based on UDP communications and SNMP BER encoding, or the TCP communications based, IETF Agent Extensibility (AgentX) standard, based on rfc2741.
NuDesign supplies SNMP Manager C++ classes as well, for developers needing to query other SNMP Agents, directly from their agent code (the Middle Layer Management function), or for implementing a companion SNMP management application (see NuDesign's SNMP Manager Studio for Windows or for Embedded RTOS).
The libraries fully support SNMP Proxy Forwarder Application as per rfc3413. Additionally, the SNMP Agent can be bound to multiple IP addresses and a function is provided for retrieving a local IP address that the request was sent to. This thread safe function can be called from OnGet / OnSet methods enabling MIB object instance per IP, useful when simulating multiple SNMP Agents within one box.
The Visual xAgent Builder for C++ also offers full support for generation of SNMP Traps and Informs from the generated agent.
The code generator libraries that are specific to target OS / RTOS platform and C/C++ tools environment are contained in the OS specific xAgent Builder SDK's.
Finally, if you are instrumenting in C (versus full C++ implementation) you can simply call C code (your code) from our C++ framework and link in the libraries without any issues. If you need to call some of our C++ classes (for example Persistent Storage) from your C code then you need to create C callable interface function to wizard generated C++ framework. This code is supplied to you by NuDesign as well.
Development process with Visual xAgent Builder for C++ is depicted in the following diagram:
Figure 3. Agent Development with Visual xAgentBuilder for C++
For web access the developer may opt to enrich the MIB-derived HTML web access pages that the generator automatically produces, with more specific user equipment oriented GUI pages.
Please note, that while the SNMP/HTTP access option generates a full SNMP Agent and immediately opens up MIB management information to standard management applications, the Simple Development Console interface makes the Get/Set MIB object facilities available via an easy to use API.
The console MIB objects access can easily be extended into a full hierarchy CLI system that provides full access to the underlying system resources and services, exposes operational and configuration commands to functions that may not be exposed by SNMP at all. This functionality is provided by NuDesign’s C++ CLI Builder Studio for Embedded RTOS.
This product has been designed to simplify creation of CLI management interfaces that have become industry de-facto standards. The CLI Studio provides command hierarchy navigation, command completion, command line editing, and history. The generated CLI interface can operate as the only management solution for the embedded product or it works in conjunction with SNMP Agent, sharing instrumentation code on common objects.
Extending this CLI with custom commands is what the CLI Studio framework is all about. New hierarchies and new commands can be added via XML definition file, creation of which is a visual “drag and drop” process. Then the CLI code generator produces the project requiring addition of “command handler” and “validator” methods. New commands can quickly be experimented with. The results are fast and reliable, and so designed CLI offers an interface that is familiar to network administrators, thus helping with acceptance of the new embedded product.
Such rapid, multi-target, host based development process makes the Visual xAgent Builder for C++ and Visual Embedded CLI Builder for C++ the ideal development environment of SNMP Agents and CLI interfaces. It also offers a prototyping, experimentation and simulation tool for management application developers and product development planners.
SNMP/CLI/Web management application developers can test their management applications long before a target equipment with the SNMP/CLI/Web Agents have been built by simply using a host based test agent.
Please download evals of Visual xAgentBuilder for C++ or Visual Embedded xAgentBuilder for C++ or Visual Embedded CLI Builder for C++ to conduct experiments using your own product MIB files and CLI management requirements.