MySnmpCrawler includes the following major components: ========================================================= SnmpAdaptor: An SNMP adaptor server that listens for SNMP requests. When the adaptor receives the SNMP request, it creates the SnmpSession and schedules a thread to handle it. Then it continues listening for the incoming requests. SnmpSession: A new session is created to encapsulate the SNMP request. It is handled by the register session listeners. SnmpSessionListener: The listener handles the newly created session. It uses AccessControl component to verify the access permission. When the authentication is verified, the session is then passed to the appropriate request handler. AccessControl: A component verifies the permission to access the managable resources. SnmpRequestHandler: Handles the different types of SNMP PDU: Get-RequestPDU, Get-NextRequestPDU, Get-Response-PDU, Set-RequestPDU, and Trap-PDU. Currently, it supports Get-RequestPDU, Set-RequestPDU and replies with Get-Response-PDU. SnmpMessage: Encapsulates the SNMP message. The SNMP message is organized as: SnmpMessage | |_______ SnmpMessageHeader | |______ version | |______ community |_______ SnmpPdu |_______ requestID |_______ error-status |_______ error-index |________ SnmpVariable(s) | |_______ SnmpOid |_______ SnmpValue MibDatabase: The virtual database that provides the information of the object variables defined in the MIB file. SnmpMBean: The top-level MBean interface hat allows external components to access the MBean attributes. Each MBean represents a a group of object variables. The MBean attribute represents the object variable in that group. Architecture Diagram: ====================================================================== Manager Level +--------------+ | Snmp Manager | | | +--------------+ ^ | | | SNMP protocol (RFC1157) | | ---------------|------------------------------------------------------ | Agent Level V +---------------+ +-------------+ +---------------------+ | | | | | | | SnmpAdaptor |--->| SnmpSession |--->| SnmpSessionListener | | | | | | | +---------------+ +-------------+ +---------------------+ | | | | +------------+ | +--->| Access | | | Control | | +------------+ | ----------------------------------------------+-------------- | | | | V V +----------------------+ +-----------------------+ | SnmpGetRequestHandler| | SnmpSetRequestHandler | .... (based on RFC1157) +----------------------+ +-----------------------+ | | | | | | +-------------+ +------------------------+--------------------> | SnmpMessage | | | +-------------+ | | | | +-------------+ +------------------------+--------------------> | | | | | MibDatabase | RFC1155 | | | | | | +-------------+ | | +------------------------+ | | | | | | MIB Instrumentation Level V V +--------------+ +----------------+ | System MBean | | Database MBean | .... +--------------+ +----------------+