Home
About NuDesign
Sales
Support
Eval Download
Partners
Testimonials
SNMP Links
Tutorials

Multiprotocol SNMP Agent Code Generation
 - download evals of Visual xAgentBuilder for C++ or Visual Embedded xAgentBuilder for C++ or CLI Code Generation Framework

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, either in standalone executable, or SNMP Master Agent with Extension DLLs or Remote Subagents format (please see NuDesign's SNMP v1/v2c/v3 Master Agent Service for Windows, a "plug & play" SNMPv3 replacement of Microsoft's SNMP v1/v2c Master Agent Service). Please read more on NuDesign's SNMP Agent for MS Windows options.

For MS Windows CE.NET the agent code generator is hosted under Platform Builder / eMbedded Visual C++ 4.x and the developer, upon completion of the object instrumentation phase, simply compiles the project into a fully operational Multiprotocol SNMP Agent (in standalone executable or SNMP Master Agent with Extension DLL or Remote Subagent formats).   Please read more on NuDesign's SNMP Agent for MS Windows CE.NET options.

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 specific embedded RTOS's xAgent Builder SDK is MIB-II subagent library (and Host Resources MIB subagent for Linux SDK’s).  The tool provides support for standalone executable or SNMP Master Agent Service / Local or Remote Subagents formats.  Please read more on NuDesign's PC Linux solution and embedded RTOS solutions.

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.

In fact, 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 (hosted under Windows IE), using "Load Settings" option and re-building 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 Extension or Remote Subagent construct supporting multithreading architecture.  The SNMP Manager C++ classes are supplied 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.

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++

Creating Multiprotocol SNMP Agents with Visual xAgentBuilder for C++ is truly a matter of minutes.  The developer just loads the target MIB(s), selects the root node(s), selects the Access Protocol Agent(s), selects the 'Finish' button and the SNMP/HTTP/CLI Agent project is created. The resulting SNMP Agent project is now ready for build (under Visual Studio for Windows or under native IDE for supported embedded environments).  Finally, the target download and 'test' run can be conducted immediately.

For web access a standard Web Browser can be used. The developer may also 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 CLI access provision makes the Get/Set MIB object facilities available via an easy to use API.

Under MS Windows and PC Linux, the stand-alone agents are standard console applications, that are automatically extended with Get/Set MIB object commands for simple console access to the MIB.  The embedded user, in order to instrument a complete CLI access, is required to provide a serial / telnet interface and a command line driven user application, on top of automatically generated Get/Set MIB objects service layer API.

The CLI’s MIB object access can be easily extended into a full hierarchy of CLI commands that provide full access to the underlying system, expose operational and configuration commands to functions that may not be exposed by SNMP at all.  This functionality is provided by NuDesign’s CLI Code Generation Framework.

This product has been designed to simplify creation of CLI management interfaces that have become industry de-facto standards.  The Framework 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 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.  Finally, the access via console, serial, Telnet or SSH, depending on needs and system capabilities needs to be configured.  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 CLI Code Generation Framework not only the ideal SNMP Agent and / or CLI management interface development environment but also offers a prototyping 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/HTTP Agent has been built by simply using a host based test agent.

Moreover, once a skeleton for the agent has been built using the Visual xAgentBuilder for C++, a developer can simulate the dynamic behavior of the real agent by adding the appropriate instrumentation code in the generated code.

Finally, the developer replaces the stubs with the actual instrumentation of the management information objects and proceeds with the so completed SNMP Agent and / or CLI interface projects to the back-end development phase, using the target environment’s IDE or standalone GNU Make and compile facilities.

Please download evals of Visual xAgentBuilder for C++ or Visual Embedded xAgentBuilder for C++ or CLI Code Generation Framework to conduct experiments using your own product MIB files and CLI management  requirements.


 

<   Previous     Next   >