CorteXpert NDK design is based on the three manager components:
• The manager itself
• The agent(s)
• The user interface(s)
Each component represents a separate process. The processes do not have to be collocated and generally are geographically dispersed. While the communications between the managers and the agents are controlled by the SNMP protocol, the communications between the managers and user interfaces are not defined and any number of techniques (client – server, peer-to-peer, publish – subscribe, etc.) can be used. The communication model as well as an interface between the managers and user interfaces (CLI, CORBA, XML, Java, etc.) should be chosen by the end user based on the requirements and design issues. In this model the Expert 9 represents the manager and does not include the user interface, however providing the hooks for the common interfaces.
CorteXpert NDK is a stand-alone SNMP Manager process designed to run in the embedded system environment. It can be collocated with the agent on the same platform, or multiple agents on the same platform (using different SNMP ports), or monitor and control a variety of agents running elsewhere. The one advantage of CorteXpert NDK running on the same platform with the agent is that any User Interface can talk to the agent seemingly direct without realizing there is a manager in-between interpreting the User Interface requests and converting them into the SNMP requests. The User Interface can be (and should be) totally SNMP ignorant. It is the logic and design of CorteXpert NDK, which hides from the user the details of SNMP. An example could be an Internet appliance, say a ubiquitous Coke machine. A technician may connect to a particular machine via the Web and reset the temperature, or to see if a supply of Diet Coke is low, etc. And one request from a technician to the Manager may evolve into a number of SNMP requests and responses between the manager and the agent. These operations remain hidden from the end user.
CorteXpert NDK process is designed around two multiplexers which are select() statements. One multiplexer handles incoming requests from the User Interface, and traps received from the controlled agents, another is dedicated to servicing user requests, i.e. issuing the requests to and listening to responses from the agents. Though CorteXpert NDK is a true process, and not a collection of atomic SNMP functions, the developer have to supply certain logic pertaining to specifics of the design document. The stub functions are provided for that purpose. The developer, who is not supposed to be SNMP specialist, may build all necessary code inside these stub functions by utilizing supplied API functions.
• Includes a set of simple and straightforward functions capable of retrieving and modifying any number of objects in one or more PDUs, including scalar and tabular objects, selected rows and columns and their intersections
• Contains a core manager design that is based on two multiplexers allowing the coexistence of any number of controlling interfaces and any number of controlled agents
• Has an extremely small footprint allowing it to use the core manager in an embedded device as an efficient smart layer between the remote user interfaces and the agent(s)
• Is totally asynchronous and non-blocking with a tuning sensor allowing throttling of the receiving and transmitting buffer sizes in runtime
• Comes with an automatic toolkit for encoding and decoding outgoing and incoming PDUs containing an unlimited number of variable bindings
• Decodes and delivers trap and notification information to the interfaces in a number of formats
• Allows the inclusion of an unlimited number of MIBs to monitor and control by adding a small number of #define instructions in one header file