Abstract:
A method of detecting network information. The method involves generating a polling command and issuing the polling command to a network element. A network element identifier generated by the network element is received in response to the polling command. A database is accessed and it is determined whether the network element identifier is present in the database. A communication protocol is obtained for the network element in response to accessing the database. The communication protocol is used to retrieve network element information from the network element. The network element information is stored in the database.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     The present invention relates generally to network management and in particular to a method, system and storage medium for detecting network elements and maintaining an inventory of network elements.  
         [0002]     Networks such as local area networks (LANs) and wide area networks (WANs) may include a high number of network elements such as personal computers, printers, hubs, routers, switches, etc. Maintaining an inventory of various network elements and the interconnection of the network elements is a daunting task. Existing applications provide network discovery, but only certain types and manufacturers of network devices are supported. Thus, there is a need for a network element detection system that supports all types of network elements.  
       SUMMARY OF THE INVENTION  
       [0003]     Embodiments of the invention include a method of detecting network information. The method involves generating a polling command and issuing the polling command to a network element. A network element identifier generated by the network element is received in response to the polling command. A database is accessed and it is determined whether the network element identifier is present in the database. A communication protocol is obtained for the network element in response to accessing the database. The communication protocol is used to retrieve network element information from the network element. The network element information is stored in the database. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0004]     Referring to the exemplary drawings wherein like elements are numbered alike in the accompanying Figures:  
         [0005]      FIG. 1  depicts an exemplary system for implementing embodiments of the invention;  
         [0006]      FIG. 2  is a flowchart of an exemplary process for detecting network element information;  
         [0007]      FIG. 3  depicts exemplary network documentation. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0008]      FIG. 1  depicts an exemplary system  10  for implementing embodiments of the invention. System  10  includes a network element detection system  12  that implements a polling engine  16  and a documentation engine  18 . The network element detection system  12  may be implemented using a server that executes computer program(s) to implement the polling engine  16  and documentation engine  18 . Network element detection system  12  is coupled to a network  20  which represents the network for which network element discovery is needed. Network  20  may be a LAN, WAN or other type of network, or comprise multiple sub networks and may span across multiple geographically disperse locations. Further, all or part of network  20  may be a wireless network. Various network elements are part of network  20  such as router  22 , switch  24  and hub  26  which serve as network traffic devices. Other network elements are end devices, connected to network traffic devices, such personal computer  27 , printer  28 , etc. It is understood that a variety of network elements may be part of network  20 .  
         [0009]     The network element detection system  12  is also connected to another network  40  that provides a communication medium for network element detection system  12  with server  44  and user system  42 . In an exemplary embodiment, network  40  is the Internet. A user at user system  42  may request network documentation describing network  20 . Further, network element detection system  12  may contact server  44  to obtain a network element communication protocol as described in further detail herein.  
         [0010]     A database  30  is coupled to network element detection system  12  and may be a separate physical device or part of network element detection system  12 . Database  30  may also be remotely located from network element detection system  12 . Database  30  contains data pertaining to a variety of network elements. A network element identifier is stored in database  30  which identifies the type of network element. Associated with each network element identifier is a network element communication protocol that defines how polling engine  16  retrieves network element information from a network element.  
         [0011]      FIG. 2  is flowchart of an exemplary method for detecting network elements and retrieving network element information. The process begins at step  110  where polling engine  16  polls a network element on network  20  to obtain a network identifier. The polling engine  16  may periodically send polling commands on network  20  to monitor network information. Alternatively, step  110  may be initiated upon a certain event, such as detection of installation of a new network element on the network  20 .  
         [0012]     Each network element includes a network identifier that is accessible upon the polling engine issuing a polling command. In an embodiment of the invention, the polling command from polling engine  16  is an SNMP formatted command. Network elements on network  20  are designed to respond to the initial polling command with a network element identifier. For example, a response to a polling command may be a brief message indicating the System Object Identifier (SYSOID) of the network element (e.g., “1.3.6.1.4.1.2272.30”, a Nortel Passport Router model 8600). At step  112 , the network element replies with the network element identifier to the polling engine  16 .  
         [0013]     At step  114 , polling engine  16  determines whether the network identifier returned from the network element is stored in database  30 . For example, network element detection system  12  determines if “1.3.6.1.4.1.2272.30” appears in database  30 . If so, flow proceeds to step  116  where the communication protocol for the network element is retrieved from database  30 . The communication protocol identifies how to retrieve network element information from a network element. The communication protocol may include commands needed to interface with the network element, formats of data within the network element and storage locations of data within the network element.  
         [0014]     If the network element identifier is not present in database  30 , flow proceeds to step  118  where the communication protocol is obtained. This may be performed manually by an operator using reference manuals, contacting the manufacturer of the network element, etc. The network element detection system  12  may automatically notify an operator (e.g., generate an e-mail) when a network element identifier is not found in database  30 . The notification includes the network element identifier.  
         [0015]     Alternatively, network element detection system  12  accesses the communication protocol automatically by contacting a server  44  containing the communication protocol. In this scenario, the network element responds to the polling command by providing a network element identifier that includes a URL where the communication protocol may be accessed. For example, the network element may respond “1.3.6.1.4.1.2272.30; www.cisco.com/xxxx/comm_protocol.html.” This indicates to network element detection system  12  that the communication protocol may be accessed by downloading a file stored at the URL. Thus, network element detection system  12  can automatically retrieve the communication protocol.  
         [0016]     Once the communication protocol is obtained at step  118 , database  30  is updated to include the network element identifier and the corresponding communication protocol at step  120 .  
         [0017]     Whether the communication protocol is obtained from database  30  or obtained at step  118 , flow proceeds to step  122  where the polling engine  16  uses the communication protocol to retrieve network element information from the network element. The network element information includes device-level information such as location of the device, device serial number, circuit identifier, etc. The network element information also includes port-level information such as the IP address of an end device connected to a port (e.g., IP address of printer  28  connected to hub  26 ), status of a port (link, no link, disabled), traffic byte count (if linked), etc.  
         [0018]     Once obtained, the network element information is stored in database  30  at step  124 . The collection of network element information from each network element provides a record of the status of network  20  at any point in time including the various network traffic devices and port connections to end devices.  
         [0019]     The polling engine  16  may be implemented on a single server as shown in  FIG. 1  or may be implemented in a distributed fashion across multiple workstations connected to network  20 . In the distributed polling engine embodiment, each polling engine provides network element information to central database  30  so that a complete representation of the network  20  is developed.  
         [0020]     As network elements are added to or removed from network  20 , database  30  creates a new record of the status of the network thereby preserving past network information. The database  30  contains a history of where network elements have been connected on network  20  and where network elements are currently connected on the network  20 . This history is helpful when troubleshooting duplicate IP type issues. This information is also helpful to network troubleshooters in diagnosing network element and end device issues by tracking connectivity history.  
         [0021]     The documentation engine  18  provides network documentation to requesters. A request for network documentation may originate with a user at personal computer  42  over network  40  or from personal computer  27 . The documentation engine  18  receives the request and retrieves the appropriate information from database  30 . The request may include search terms relating to a particular network aspect such as a geographic portion of network  20  (e.g., all network elements in a facility) or one type of network element (e.g., all routers). The documentation engine  18  generates network documentation in a viewable and downloadable format (e.g., a pdf file) which is viewed and/or retrieved by the requestor.  
         [0022]      FIG. 3  depicts exemplary network documentation including a header  202  and port information  204 . The header  202  provides information concerning the network element such as physical location, various IP address, circuit IDs, etc. Port information  204  includes a port identifier, a text reference to the device connected to the port and an IP address of the device connected to the port.  
         [0023]     Rather than the text format shown in  FIG. 3 , the network documentation may be presented in a graphical format presenting a graphical representation of the network elements and the associated connections to other network elements. A combined graphical and textual format may also be used for the network documentation.  
         [0024]     As described above, the present invention can be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. In an exemplary embodiment, the invention is embodied in computer program code executed by the network element detection system. The present invention may be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.  
         [0025]     While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item.