Method and system for network management data collection

Methods and systems for network management data collection have been provided. Underutilized computers in the network are allocated as a Network Management Data Collection Client (NMDCC) to collect network management data. The NMDCC receives program files from the network management server. The received program files are downloaded by the NMDCC in a compressed manner via a web service. The downloaded program files are executed for collecting the Network Management Data (NMD). The collected NMD is updated back on the network management server. The downloaded program files are discarded when the NMDCC is not collecting the network management data.

BACKGROUND OF THE INVENTION

1. Field of Invention

Embodiments of the present invention relate in general to network management data collection and more specifically to methods and systems for distributed network management data collection.

2. Description of the Background Art

Network management is a process for monitoring and controlling networks. A network administrator uses a variety of tools, application, and devices for network management. These applications, such as Network Management Application (NMA), and devices, such as a Network Management (NM) server, collect the Network Management Data (NMD). NMD includes, for example, configuration management, fault management, performance management, security management and accounting management. NMD is required by a network administrator, to measure and check various aspects of the functioning of the network, such as the network performance. For example, configuration management data is required to monitor network and system configuration information. This information helps in tracking and managing the operation of various hardware and software elements in the network.

The collection of NMD requires high usage of processing capacity and memory of the NM server that facilitates this collection. Therefore, collection of NMD is considered as resource intensive. For this purpose, users have to invest in high-end servers to be used as NM servers. Further, users may require upgrading their hardware to achieve scalability and performance, if the network is upgraded or modified.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

Embodiments of the present invention provide for distributed Network Management Data (NMD) collection. In the description herein for embodiments of the present invention, numerous specific details are provided, such as examples of components and/or methods, to present a thorough understanding of embodiments of the present invention. One skilled in the relevant art will recognize, however, that an embodiment of the present invention can be practiced without one or more of the specific details, or with other apparatus, systems, assemblies, methods, components, materials, parts, and/or the like. In other instances, well-known structures, materials, or operations are not specifically shown or described in detail to avoid obscuring aspects of embodiments of the present invention.

A preferred embodiment of the invention allows the task of Network Management Data (NMD) collection to be facilitated by using compressed program files. The program files are distributed to underutilized computers in the network for processing. This type of “grid” computing approach can allow a network to perform effective Network Management (NM) by using Network Management Applications (NMAs) that would otherwise be idle or have underutilization to process the program files and obtain the needed Network Management Data (NMD).

A network administrator uses NMD collected by the NM server to monitor and control a network. NMD includes, for example, inventory, configuration, syslog, security, accounting, fault and performance related information, etc. NMD is required by the network administrator, for example, to measure and check various aspects of the functioning of the network, such as the network performance. For example, configuration management data is used to monitor network and system configuration information. The collection of NMD requires high usage of processing capacity and memory of the NM server that facilitates this collection. Therefore, collection of NMD is a resource intensive task.

Embodiments of the present invention provide a way to help the NM server to collect the NMD with the help of underutilized or idle computers present in the network. In a preferred embodiment, an underutilized computer in the network is allocated the task of collecting NMD by an end user or a network administrator. A computer, which is connected in the network and is not being used by an end user, or is being underutilized in one or more ways, is considered an idle computer. Further, an end user can allocate the task of NMD collection to a computer that has idle capacity, or unutilized resources that may be sufficient to collect NMD. As the task of collecting the NMD is assigned to the underutilized computer, the resources of the underutilized computer are utilized for NMD collection. Such a computer that has been assigned the task of collecting NMD is hereinafter referred as a Network Management Data Collection Client (NMDCC).

The NM server that runs the NMA selects a set of program files from the NMA that are required to collect NMD by the NMDCC. Accordingly, the NM server makes the selected set of program files available in a compressed format. The NMDCC then polls the NM server for the required program files and downloads the required program files, via a web service. Consequently, the selected program files are executed and are invoked to collect the NMD from network devices in the network. Finally, the NMDCC sends the collected NMD to the NM server. This collected NMD is saved on the NM server and is used to update the NMD previously saved on the NM server.

Accordingly, the program files required for collecting the NMD need not be installed on all computers in the network at all times. The NM server dynamically allocates the program files, as and when required, to the underutilized computers that have been allocated the task of NMD collection. Further, embodiments of the present invention facilitate automatic installation of the program files required for NMD collection. Therefore, the time of the end user is not wasted in installing the program files each time an underutilized computer is allocated as an NMDCC. Further, if the NMDCC is allocated another task or is no longer assigned the task of collecting the NMD, it stops collecting NMD. In such a case, it no longer requires the program files downloaded for collecting the NMD. It then discards the downloaded program files from memory. Therefore, the memory of the computers that were allocated as NMDCCs is not wasted in saving programs that are no longer needed.

FIG. 1illustrates network environment100for NMD collection, in accordance with an embodiment of the present invention. Network environment100includes network102, a plurality of network devices104, a plurality of NMDCCs106, and NM server108. Network devices104, NMDCCs106, and NM server108are all connected through network102. Network devices104include computers, peripherals, routers, communication equipment, etc. NMD is collected from network devices104.

In an embodiment of the present invention, the NMD is collected by computers among network devices104that are allocated to act as NMDCCs106. In an embodiment of the present invention, underutilized computers among network devices104are allocated to act as NMDCCs106either by the end users of these computers or by the network administrator. Once an underutilized computer is allocated as an NMDCC, NM server108selects a set of program files required for collecting the NMD.

NM server108is a server that runs the NMA in network102. NM server108stores the NMD and facilitates the network administrator to access the NMD. In an embodiment of the present invention, NM server108includes software that facilitates providing the NMD to the network administrator. NM server108selects program files required for collecting NMD from a library. The library is created for each NM application such as inventory, configuration, image management and performance. This library can be further fine tuned for network devices104. The program files are picked up from the library based on the Network Management task and the network device. NM server108then provides NMDCCs106with the selected set of program files required to collect NMD from network devices104. The set of program files are provided to NMDCCs106in a compressed file such as Java Archive (JAR) file via a web service.

NMDCCs106then poll NM server for the program files. NMDCCs106download program files from the provided set of program files. NMDCCs106then execute the downloaded program files to collect the NMD. Further, NMDCCs106sends the collected NMD to NM server108. NM server108uses the received NMD to update the previously stored NMD.

FIG. 2illustrates an NMDCC from NMDCCs106, in accordance with an embodiment of the present invention. Each NMDCC from NMDCCs106includes a Remote Procedure Call (RPC)202, and a Customer Program Loader (CPL)204. RPC202is a protocol that allows a program running on one computer to be executed on another computer, without the programmer explicitly selecting a program file.

An example of RPC202is a Simple Object Access Protocol (SOAP). SOAP is a lightweight, XML-based protocol for exchange of information in a decentralized, distributed environment. SOAP includes three parts: an envelope, a set of encoding rules and a convention for representing remote procedure calls and responses. The envelope defines a framework for describing the contents of a message and the method of processing the message. The set of encoding rules provide definition for expressing instances of application-defined data types. NMDCC invokes RPC202to poll NM server108for program files required to collect NMD. Further, the required program files are downloaded via RPC202.

In an embodiment of the present invention, the program files are received in a compressed JAR file format via a web service as a byte stream. A JAR file includes various files, such as class, image, and sound files gathered into a single file and compressed for faster downloading to a web browser.

CPL204receives the set of program files via RPC202. Further, CPL204selects the program files required to be executed from the received set of program files. The program files are selected by reading the manifest file of the JAR file. CPL204then loads the selected program files specified in the manifest file and calls its run method. The program files loaded by CPL204will use other program files specified in the JAR file to collect NMD. When the NMD is collected CPL204sends the NMD to NM server108, which is updated with the collected NMD.

When the computer allocated as an NMDCC is no longer assigned the task of NMD collection, CPL204discards the downloaded program files from the memory of the computer.

FIG. 3is a flowchart illustrating a method for NMD collection, in accordance with an embodiment of the present invention. At step302, an underutilized computer in network102is identified. As described earlier, the underutilized computer can be identified by an end user or by the network administrator. The identified underutilized computer is then allocated as a NMDCC and is assigned the task of collecting the NMD from network devices104. Once a computer is allocated as an NMDCC, at step304, NM server108selects a set of program files required to collect the NMD from network devices104. In accordance with an embodiment of the present invention, NM server108selects the set of program files from a library in the NMA. Subsequently, at step306the selected set of program files are provided to the NMDCC in a compressed format via a web service. At step308, CPL204downloads the selected set of program files. The program files are downloaded in a compressed format via a web service. In an embodiment of the present invention, the program files are downloaded in a compressed JAR file format via RPC as a byte stream. In another embodiment of the present invention, the program files are downloaded in a compressed JAR file format via SOAP as a byte stream. Subsequently at step310, CPL204selects a program file from the set of downloaded files by reading the manifest of the JAR file. At step312, CPL204invokes the selected program file from the downloaded program files. The program file selected by CPL204can invoke other program files method specified in the manifest of the JAR file. At step314, the NMDCC collects the NMD from network devices104with the help of the invoked program files. Once the NMD is collected, it is sent to NM server108. At step316, NM server108updates the previously stored NMD on the basis of the collected NMD.

The NMDCC continues to collect the NMD till it is assigned another task by the end user or the network administrator. Once the computer allocated as the NMDCC is assigned another task or it is no longer allocated as the NMDCC, the computer stops collecting NMD. It therefore, no longer requires the downloaded program files that are were required for collecting the NMD. Accordingly, at step318, the downloaded program files are discarded from the memory of the computer when it is no longer allocated as the NMDCC.

FIG. 4is a flow chart illustrating a method for NMD collection, in accordance with an embodiment of the present invention. In an embodiment CPL204included in the NMDCC is a custom class loader used for loading Java files. The NMDCC polls NM server108for program files to collect NMD. At step402, NM server108selects a set of classes required by an NMDCC for collecting the NMD. Classes can be, for example, JAVA based software code. In an embodiment of the present invention, NM server108uses a lookup mechanism to identify the set of classes required for a given set of network devices104. Subsequently at step404, NM server108provides the selected set of classes in a JAR file format. At step406, the custom class loader is invoked in the NMDCC. In an embodiment of the present invention, the custom class loader, when invoked, gets the JAR file using the web service via a byte stream. The custom class loader further reads the manifest of the received JAR file. Subsequently at step408, based on the manifest of the JAR file, custom class loader selects and loads the class specified in the manifest of the JAR file. Further the run method of the loaded class is invoked. At step410, the selected class refers to other classes mentioned in the JAR file. Subsequently at step412, the classes are executed by invoking the methods required to collect the NM data. At step414, the NMDCC collects the NMD from network devices104by the execution of the selected classes. Once the NMD is collected from network devices104the NMD is sent to NM server108. At step416, NM server108updates the previously stored NMD on the basis of the collected NMD.

As described earlier, the computer allocated as the NMDCC does not need the loaded classes once it has been assigned another task or is no longer allocated as the NMDCC. Accordingly, at step418, the loaded classes are discarded from the memory of the NMDCC, if the computer is no longer allocated as the NMDCC.

In accordance with an embodiment of the present invention, the use of underutilized computers present for the purpose of NMD collection increases the scalability of the NMD collection network. Further, it also reduces the need for users to make use of multiple high-end servers for the collection of NMD. Therefore, the users do not require license for multiple installations of the entire NMA. Since only some program files from the entire NMA are used by the NMDCCs to collect the NMD, any computer on the network can act as an NMDCC. Therefore, multiple high-end servers are not required for NMD collection.

In accordance with an embodiment of the present invention, program files or classes required to collect the NMD are determined in runtime and are dynamically allocated by the NM server. Therefore, the end user or administrator does not need to spend time in determining and installing the program files required to collect the NMD.

In accordance with an embodiment of the present invention, the program files used for NMD collection are kept in the memory of the computer allocated as an NMDCC only as long as they are required. Once the computer stops collecting and transmitting the NMD, the program files are discarded from its memory. Hence, the memory of the computers allocated as the NMDCCs is not wasted.

In accordance with an embodiment of the present invention, underutilized computers in the network are determined by the end users or the network administrator. Such underutilized computers are allocated as NMDCCs and assigned the task of collecting the NMD. Once a computer is allocated as an NMDCC, the NM server, that runs the NMA, selects the program files for collecting the NMD. The NMDCC polls the NM server and receives the program files in a compressed format. The program files are downloaded on the NMDCC and executed to collect the NMD. The NMD thus collected by the NMDCC is sent to the NM server. Further, the NMD saved on the NM server is updated based on the sent NMD. The updates to the NM server can be made on a per network device basis or after a set of network devices based on the critical nature of data collected. If it is done on a per device basis then even when the computers are no longer allocated as NMDCCs, only the NMD pertaining to the current network device may be lost. For non-critical data collection the NMD collection from that network device can be repeated using another underutilized computer.

According to embodiments of the present invention, a method for network management data collection is provided. The network is coupled to an underutilized computer, a network device, and a network management server, wherein the network management data is collected from the network device, the network management server includes program files to be used for collection of network management data collection, the underutilized computer is assigned the task of collecting network management data. The method comprises downloading a program file to the underutilized computer from the network management server; executing the downloaded program file with the underutilized computer to obtain network management data; collecting network management data from the network device; and sending the network management data to the network management server.

In another embodiment of the present invention, a method for network management data collection is provided. The network is coupled to an underutilized computer, a network device, and a network management server, wherein the network management data is collected from the network device, the network management server includes program files to be used for collection of network management data collection, the underutilized computer is assigned the task of collecting network management data and includes a custom class loader. The method comprises invoking the custom class loader; polling the network management server for Java Archive (JAR) files, wherein the network management server is polled by the invoked custom class loader; receiving a JAR file; reading the manifest of the received JAR file; determining a class to be executed based on the manifest of the JAR file; loading the determined class; executing the determined class by invoking a run method of the determined class; collecting the network management data by the execution of the determined class; and sending the collected network management data to the network management server.

In yet another embodiment of the present invention, a system for network management data collection is provided. The system comprises a network device in a network; an underutilized computer, wherein the underutilized computer is assigned the task to collect network management data from the network device and send the collected network management data; and a network management server, wherein the network management server is adapted to select and provide a program file for collecting the network management data from the network device, and receive the network management data sent by the computer.

Although specific protocols have been used to describe embodiments, other embodiments can use other transmission protocols or standards. Use of the terms ‘peer’, ‘client’, and ‘server’ can include any type of device, operation, or other process. The present invention can operate between any two processes or entities including users, devices, functional systems, or combinations of hardware and software. Peer-to-peer networks and any other networks or systems where the roles of client and server are switched, change dynamically, or are not even present, are within the scope of the invention.

Any suitable programming language can be used to implement the routines of the present invention including C++, Java etc. Different programming techniques such as procedural or object oriented can be employed. The routines can execute on a single processing device or multiple processors. Although the steps, operations, or computations may be presented in a specific order, this order may be changed in different embodiments. In some embodiments, multiple steps shown sequentially in this specification can be performed at the same time. The sequence of operations described herein can be interrupted, suspended, or otherwise controlled by another process, such as an operating system, kernel, etc. The routines can operate in an operating system environment or as stand-alone routines occupying all, or a substantial part, of the system processing.

Also in the description herein for embodiments of the present invention, a portion of the disclosure recited in the specification contains material, which is subject to copyright protection. Computer program source code, object code, instructions, text or other functional information that is executable by a machine may be included in an appendix, tables, figures or in other forms. The copyright owner has no objection to the facsimile reproduction of the specification as filed in the Patent and Trademark Office. Otherwise all copyright rights are reserved.

A ‘computer’ for purposes of embodiments of the present invention may include any processor-containing device, such as a mainframe computer, personal computer, laptop, notebook, microcomputer, server, personal data manager or ‘PIM’ (also referred to as a personal information manager), smart cellular or other phone, so-called smart card, set-top box, or any of the like. A ‘computer program’ may include any suitable locally or remotely executable program or sequence of coded instructions, which are to be inserted into a computer, well known to those skilled in the art. Stated more specifically, a computer program includes an organized list of instructions that, when executed, causes the computer to behave in a predetermined manner. A computer program contains a list of ingredients (called variables) and a list of directions (called statements) that tell the computer what to do with the variables. The variables may represent numeric data, text, audio or graphical images. If a computer is employed for presenting media via a suitable directly or indirectly coupled input/output (I/O) device, the computer would have suitable instructions for allowing a user to input or output (e.g., present) program code and/or data information respectively in accordance with the embodiments of the present invention.

A ‘computer-readable medium’ for purposes of embodiments of the present invention may be any medium that can contain and store the program for use by or in connection with the instruction execution system, apparatus, system or device. The computer-readable medium can be, by way of example only but not by limitation, a semiconductor system, apparatus, system, device, or computer memory.

Further, at least some of the components of an embodiment of the invention may be implemented by using a programmed general-purpose digital computer, by using application specific integrated circuits, programmable logic devices, or field programmable gate arrays, or by using a network of interconnected components and circuits. Connections may be wired, wireless, by modem, and the like.

Additionally, any signal arrows in the drawings/Figures should be considered only as exemplary, and not limiting, unless otherwise specifically noted. Combinations of components or steps will also be considered as being noted, where terminology is foreseen as rendering the ability to separate or combine is unclear.