A known network discovery solution, for example Hewlett Packard Company's Network Node Manager Extended Topology (NNM/ET) version 1.5, achieves accurate connectivity discovery of a network. However, the discovered data can require analyzation as a whole chunk or body that spans multiple connected devices. In addition, during the discovery process the discovered topology can go through many stages, and may be in a consistent state only in the last stage. The topology in the intermediate stages of the discovery may be inaccurate and inconsistent. Accordingly, as in NNM/ET version 1.5, the topology may not be available or made available during the discovery process. Depending on the complexity of the network undergoing discovery, the discovery process can take hours or even days to complete.
An exemplary method for managing a network using a plurality of databases includes selecting a first one of the plurality of databases that contains a topology of the network, as an active database that is accessible, selecting a second one of the plurality of databases that contains a topology of the network, as a working database for receiving topology updates, discovering a topology of the network, and updating the second database with the discovered topology, and selecting the second database as the active database.
An exemplary method for managing a network using a plurality of databases includes discovering the network, updating a topology representation of the network in a working database based on the discovering, simultaneous with the discovering and the updating, providing access to a topology representation of the network in an active database, and exchanging connections of the working and active databases.
An exemplary method for managing a network using a plurality of databases includes connecting a first one of the plurality of databases that contains a topology of the network, as an active database accessible by clients, connecting a second one of the plurality of databases that contains a topology of the network, as a working database for receiving topology updates, discovering a topology of the network and updating the working database with the discovered topology, connecting the working database as the active database, and connecting one of the plurality of databases as the working database, wherein the database connected as the active database and the database connected as the working database are different databases.
A machine readable medium can include software or a computer program or programs for causing a computing device to perform the exemplary methods.
An exemplary system for managing a network using a plurality of databases includes means for discovering a topology of the network and updating a topology of the network in a database connected to the means for discovering, means for connecting the means for discovering to a first database while at the same time connecting clients to a second database containing a topology of the network, and for connecting the clients to the first database after the means for discovering updates the topology of the network.
The accompanying drawings provide visual representations which will be used to more fully describe the representative embodiments disclosed herein and can be used by those skilled in the art to better understand them and their inherent advantages. In these drawings, like reference numerals identify corresponding elements and:
FIGS. 3A-C show different database connections consistent with exemplary methods.
As shown in
From block 102, control proceeds to block 104, where the network discovery commences. From block 104, control proceeds to block 106, where the network topology in the working database is updated based on results of the discovery process of block 104, while at the same time clients, users and/or other entities are provided with access to the network topology in the active database. From block 106, control proceeds to block 108, where a determination is made whether discovery of the network is complete. If not, then control returns to block 104 and the cycle repeats. If yes, then control proceeds to block 110. In block 110, connections of the working and active databases are exchanged so that the old or formerly active database is the working database, and the old or formerly working database is the active database. Thus the clients, users and/or other entities now can have access to a fresh and accurate topology representation. As shown in
From block 210, control proceeds to block 212, where a determination is made whether discovery of the network is complete. If no, then control returns to block 206. If yes, then control proceeds from block 212 to block 214. If in block 214 a fault such as a network fault is detected, then control proceeds to block 216, where the topologies of the working and active databases are compared. From block 216, control proceeds to block 218, where a source of the fault is determined based on the comparison. From block 218, control proceeds to block 220. If at block 214 no fault is detected, then control proceeds directly from block 214 to block 220. In block 220, the working database is connected or selected as the active database, and control proceeds to block 222. In block 222, one of the plurality of databases is connected or selected as the working database. Upon completion of block 222, the databases selected or connected as the working and active databases can be different databases. The database selected or connected as the working database in block 222 can be, for example, the first one of the plurality of databases, a database that was connected or selected as the active database immediately before being connected or selected as the working database in block 222, or can be a third database that is different from the active and working databases of blocks 208-210. From block 222, control can return to block 206, to begin a new discovery and perform the process of blocks 206-222 again.
Various actions shown in
With respect to the exemplary methods of
An exemplary schema for implementing a database, for example the working database or the active database, can include a table used to store network information about nodes in the network, e.g. a table “NWNode”. The following chart illustrates the schema implementation of this relational database table. Also shown below is how the topology database can be partitioned into two identical databases with the exact same set of tables for NWNode table.
The contents of the two tables after two discoveries can, for example, be:
Note for example the differences in content of NWNode—1 and NWNode—2, which can be summarized in the following Table 1.
Actual switching of the database connections can be implemented, for example, using the following pseudocode:
The means for discovering and updating can be implemented via software operating on the computer connected to the three databases 1, 2, 3 and the network. The computer can include software for discovering the network, for example a topology of the network, and can also include software for maintaining topology representations of the network, for example in the databases 1, 2, 3 consistent with the processes described herein. The means for connecting can also be implemented via software operating on the computer, and/or can include switches or interfaces implemented with hardware and/or software to connect or select the databases as working and active databases, and disconnect or deselect databases.
One of the three databases can be connected as an active database that contains a topology of the network and is accessible, for example accessible, for example to clients or other entities. The active database can be accessed via the computer or via one or more direct connections to the active database or in other ways. Another of the three databases can be connected as the working database, Wherein software on the computer receives information from an ongoing discovery of the network and updates the network topology in the working database with the received information. The discovery software and/or the software for accessing and updating the databases can be software operating on the computer and/or software agents operating on the network using network resources.
The databases 1, 2, 3 can be fileservers external to the computer, can be embodied in separate hard disk drives that are internal or external to the computer, can be embodied as different partitions or portions of a single hard disk drive or other data storage device, or can each be distributed among multiple devices, and so forth.
Software packages, elements or modules for variously providing access or views to the databases, e.g. for connecting clients to an active database and for connecting a discovery process to the working database, for maintaining the network topologies in the databases, and/or for performing other process functions described herein, can be implemented on the computer. For example, the processes such as discovering the network, monitoring a health of the network, detecting malfunctions or faults in the network, comparing topologies from different databases and troubleshooting detected malfunctions or faults, for example based on the topology comparison, can be variously implemented separately or jointly by software or software modules or elements running on the computer. These software processes running on the computer can be additionally or alternatively be implemented in a distributed fashion external to the network using for example distributed computing resources, and/or can be implemented using resources of the network.
Thus, the methods, logics, techniques and pseudocode sequences described above can be implemented in a variety of programming styles (for example Structured Programming, Object-Oriented Programming, and so forth) and in a variety of different programming languages (for example Java, C, C++, C#, Pascal, Ada, and so forth). In addition, those skilled in the art will appreciate that the elements and methods or processes described herein can be implemented using a microprocessor, computer, or any other computing device, and can be implemented in hardware and/or software, in a single physical location or in distributed fashion among various locations or host computing platforms. Agents can be implemented in hardware and/or software or computer program(s) at any desired or appropriate location. Those skilled in the art will also appreciate that software or computer program(s) can be stored on a machine-readable medium, wherein the software or computer program(s) includes instructions for causing a computing device such as a computer, computer system, microprocessor, or other computing device, to perform the methods or processes.
The exemplary processes and systems described herein can provide multiple advantages. A consistent topology can be made accessible at all times, for example to clients, users or other entities. In addition, exemplary embodiments can detect changes that have occurred across two consecutive discovery cycles. This information can be used very effectively to troubleshoot the network problems and diagnose the health of the network.
For example, consider a problem wherein during a first discovery, a certain number of STPs (Spanning Tree Protocols) are discovered. Thereafter some new switches with more STPs are added to the network, and then a second discovery is completed. Now assume that one or more of the new switches or other components of the network is incorrectly configured. Due to the addition of the new switches and due to the incorrect configuration, the network experiences network congestion due to more loops in the network. In accordance with exemplary embodiments and processes, the exact changes in the network can be determined, for example by comparing the network topologies in the working and active databases to discern what new switches have been added, as well as their connectivity information. This information can be analyzed to determine if and how the switches may have been incorrectly configured, so that the problem can be corrected to improve or restore performance of the network.
In addition, exemplary embodiments can enable more accurate information about the topology of the network. For example, Layer 2 connectivity can be detected while the discovery is going on, but the connectivity value can change during discovery. Exemplary embodiments described herein can handle such a change in the connectivity value without causing inconsistency in the database for the clients of the database. This is due to the fact that the clients are accessing the active database, which remains consistent, while changes such as connectivity value changes are made in the working database.
In addition, exemplary embodiments enable the network topology to be backed up at any time, for example during discovery from the active database. This backup or snapshot of the network topology can be used during troubleshooting time.
In exemplary embodiments, connections of the active and working databases are switched or reconfigured as described herein, for example by switching views, instead of copying or swapping contents among the active and working databases. Thus, topology down time can be minimized.
Exemplary embodiments described herein also enable monitoring of devices in the network while discovery of the network is in progress. This allows the health of the network to be monitored and troubleshot during discovery process.
It will also be appreciated by those skilled in the art that the present invention can be embodied in other specific forms without departing from the spirit or essential characteristics thereof, and that the invention is not limited to the specific embodiments described herein. The presently disclosed embodiments are therefore considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended claims rather than the foregoing description, and all changes that come within the meaning and range and equivalents thereof are intended to be embraced therein.