PSE logo Physical Science Editing
Scientific and Academic Editing French/English Translation Technical Writing
Home CV Editing Examples Estimate Contact
“The difference between the right word and the almost right word is the difference between lightning and a lightning bug”—Mark Twain

Software User Manual Extract: Final Version

Our SNMP agent builder was designed and implemented using object-oriented methodology and recognized design patterns. One of its design goals was to minimize the effort expended in building SNMP agents. Most of the hard work has therefore already been done in developing the base classes, and is hidden from the users. For example, the developer does not have to worry about complexities such as SNMPv3 engine auto-discovery, encoding and decoding, dynamic row creation and deletion, and inter-table indexing. All this functionality and logic is already built into the core library.

SNMPv1, SNMPv2c, and SNMPv3 (USM and VACM) are all completely supported, so the user does not have to learn the underlying differences between the three versions. A single unified interface is used to build agents for all SNMP protocols.

The agent builder can create three different types of agent: a traditional monolithic agent, a dedicated subagent, and a flexible master/subagent. Master/subagent architecture is based on Agent eXtensibility (AgentX) technology, a standard protocol that allows one to dynamically extend the managed objects in a node. This protocol permits a single SNMP agent and several subagents to connect and register several managed objects simultaneously without interrupting the management service. This makes the whole management system more flexible, as each subagent can be closer to its managed information and the SNMP extensible agent needs to be started only once. For details on the AgentX protocol, please refer to RFC 2741.

Agent builder is built on Java Management Extensions (JMXTM) technology, a standard for instrumenting manageable resources and developing dynamic agents. Each MIB table and group is modeled as a standard MBean. An MBean (Managed Bean) is a Java object that implements a specific interface and conforms to certain design patterns. It encapsulates attributes and operations through their public methods, and exposes them to management applications according to standard design patterns. Standard MBeans specify the public operations accessible to SNMP clients. A GUI-based application automatically generates MBeans for a specified MIB. When the agent starts up, it registers all MBeans with MBeanServer. Upon receiving an SNMP request from a client, it employs a quick search algorithm to find the corresponding MBean and delegates part of the task to it. Developers do not have to learn about JMX in detail, but must be aware that only methods in the MBean interface are accessible from outside the agent. Although MBean implementation classes have additional public methods, some of them are not accessible to SNMP managers.