This invention relates in general to computer user interfaces and more specifically to a method for automatically routing and displaying connections between nodes in a network topology displayed on a computer user interface.
Computer graphics has become an important application for computer systems. The ability to clearly and effectively display information in a graphical form has spawned many useful computer programs such as for computer-assisted drawing (CAD), electronic and microelectronic circuit layout, network topology display and network management, etc.
Although there are many applications that effectively use computer graphics to provide an efficient user interface, problems arise due to the ever-increasing complexity and density of the information to be displayed. For example, today's networks have many components, or nodes, including servers, disk arrays, routers, hubs, switches, clients, etc. Each node may have several, or many, connections to other nodes. Generally, interfaces for network topology management analysis and configuration allow a human user to specify types of devices (i.e., nodes) to be used in the system; and to designate interconnections between the devices. A human user is usually relieved from routing connections between and among nodes in the interface, as the routing process is automated.
An interface, or automated system, computes a routing for connections so that connections are routed and displayed without intersecting unwanted nodes. However, while it is desirable for a system to automatically perform routing and display of connections in a network topology application it is often difficult to achieve efficient, organized and aesthetically pleasing routing, especially in “real time.” This is especially true where the number of nodes and connections is relatively large. Also, modern systems typically allow a user to “drag and drop” nodes on the screen, add and delete nodes, connections, etc. This, naturally, changes the relative positions of nodes and often requires that routing of many interconnections must be quickly recomputed.
Thus, it is desirable to provide an invention that improves upon one or more of the shortcomings of the prior art.
The present invention provides a systematic automated procedure for routing connections in display applications such as a network topology interface. In one embodiment, the invention first creates an “ideal routing” between two given nodes. The ideal routing includes three segments that join the nodes. If any obstructions exist on the original segments of the ideal routing then the procedure systematically reroutes the appropriate segments to achieve an efficient, visually cohesive and organized routing.
The routing procedure operates at different layers, groups and subgroups of nodes. By using the procedure with a layered design it is possible to achieve fast uniform and effective routing in very complex systems with many nodes and internode connections.
In one embodiment the invention provides a method for displaying connections in a system for displaying a network topology. The method includes displaying horizontal and vertical lines on the display to connect the first and second nodes, wherein the path from the first node to the second node alternates between horizontal and vertical lines, wherein a horizontal and vertical line along the path are connected at a crosspoint; selecting the crosspoint such that no obstructing node is encountered along the path; and ensuring that the crosspoint occurs beyond a predetermined distance along a given line unless this causes the path to cross an obstructing node, in which case the crosspoint is made to be before the obstructing node.
A preferred embodiment of the invention is incorporated into a software product called “SANavigator” produced and distributed by SANavigator, Inc.
In
A group node of a second layer in a multilayer representation can be selectively expanded to display nodes contained in a first layer. A lower layer with respect to a given layer is also referred to as a “sub-layer.” A group of nodes in the first layer (also called a “subgroup”) can be selectively contracted to display the group of nodes as a single “group node” in the second layer. For example, in
In
FIG. 1B-are next discussed to describe the basic steps of the routing approach of the present invention.
In
The routing described in Table I and
As discussed above, line segments other than the node join segments are obtained from a set of grid lines that is computed for each node group. For example,
Naturally, deviations from the ideal routing are often encountered. This occurs when one of the three segments of the ideal routing causes an unwanted intersection with a node.
Thus, the routing that bypasses node U is A-M-N-B.
In
Thus, the basic routing procedure of the present invention has been described with reference to
Next, basic hardware suitable for implementing an automated process for achieving the present invention is presented, followed by a detailed description of steps used for routing, steps for routing in a multi-layered system, and a flowchart depicting basic routing procedure.
In
As with the external physical configuration shown in
A procedure for using a multi-layered hierarchy to achieve routing by using the specific routing of the present invention, or by using any other routing scheme, is described below in the steps of Table II.
Table III, below, recites details of steps to route connections according to an embodiment of the present invention. In Table III, the description refers to items in
Note that the procedures of the present invention work advantageously with the multi-layered design of network topology discussed herein and in the related applications cited above. In
In
At step 206 a test is made to check if the first segment is obstructed by a node. If it is not, execution proceeds to step 212 where a check is made as to whether the third segment is obstructed by a node. If no, the ideal routing path determined at step 204 can be used as the connection and the routine exits at 218.
Returning to step 206, if there is a node obstructing the first segment then step 208 is executed where a new vertical grid line must be chosen in place of the second segment. This new vertical grid line is chosen as far as possible from the first node while still being between the first node and the obstructing node. At step 210, the first segment is made to connect with a segment on the new vertical grid line so that the obstructing node is bypassed and execution returns to step 212. Thus, steps 208 and 210 serve to systematically create a detour around any obstructions encountered by the original first segment of the ideal routing path.
At step 212, assuming there is an obstructing node intersecting the original third segment, execution proceeds to step 214. At step 214, a vertical grid line is found that is between the obstructing node and the second node. At step 216, a horizontal grid line that is closest to the original third segment and that is located between the first and second nodes is chosen. Using the vertical grid line of step 214 and the horizontal grid line of step 216, a detour around the node obstructing the original third segment can be constructed. The third segment is shortened, accordingly, to form a path that ends at the desired second node and the routine is exited at step 218. Thus, steps 214 and 216 serve to provide a systematic way to determine detours around any obstructions on the third segment.
The flowchart descriptions of the methods, routines and systems presented herein are only intended to be a general indication of the basic steps of the routines. Any suitable programming language can be used to implement the routines of the present invention including C, C++, Java, assembly language, etc. Different programming techniques can be employed such as procedural or object oriented. The routines can execute on a single processing device or multiple processors. Although the flowchart format demands that the steps be presented in a specific order, this order may be changed. Multiple steps can be performed at the same time. The flowchart sequence can be interrupted. The routines can operate in an operating system environment or as stand-alone routines occupying all, or a substantial part, of the system processing. Steps can be added to, taken from or modified from the steps in the flowcharts presented in this specification without deviating from the scope of the invention. In general, the flowcharts are only used to indicate one possible sequence of basic operations to achieve a functional aspect of the present invention.
Note that although a preferred embodiment of the invention has discussed the invention with respect to a specific ideal routing, other “ideal” routings can be employed that provide similar advantages. For example, instead of the first segment traversing the horizontal distance between the two nodes, the vertical distance can be traversed, instead. It should be apparent that the routing discussed herein can be symmetrical in either of several dimensions. Although the invention is presented herein with respect to two dimensions, additional dimensions can be employed.
Also, other embodiments may use diagonal line segments, curved line segments, etc. Connections need not only be lines but can be broken lines, groups of lines, bars, way points (e.g., arrows indicating directions to the next way point), etc.
Although the present invention has been discussed with respect to specific embodiments, these embodiments are merely illustrative, and not restrictive, of the invention. The scope of the invention is to be determined solely by the appended claims.
This application claims priority from Provisional Patent Application Ser. No. 60/228,516 (K35A0660) filed Aug. 28, 2000 which is hereby incorporated by reference as if set forth in full in this document. This application is related to the following co-pending patent applications which are each hereby incorporated by reference as if set forth in full in this document for all purposes: U.S. Patent Application entitled “METHOD FOR DISPLAYING NODES OF A NETWORK USING A MULTILAYER REPRESENTATION WHEREIN NODES CAN BE SELECTIVELY COLLAPSED OR EXPANDED,” filed on Mar. 31, 2000; Ser. No. 09/539,350. (K35A0588). U.S. Patent Application entitled “METHOD FOR DISPLAYING SUPERSETS OF NODE GROUPS IN A NETWORK,” filed on Jun. 22, 2001; Ser. No. 09/888,095.
Number | Name | Date | Kind |
---|---|---|---|
4875187 | Smith | Oct 1989 | A |
4970664 | Kaiser et al. | Nov 1990 | A |
5276789 | Besaw et al. | Jan 1994 | A |
5278951 | Camacho et al. | Jan 1994 | A |
5596704 | Geddes et al. | Jan 1997 | A |
5910803 | Grau et al. | Jun 1999 | A |
6014715 | Stoevhase | Jan 2000 | A |
6067093 | Grau et al. | May 2000 | A |
6078324 | Phathayakorn et al. | Jun 2000 | A |
6369819 | Pitkow et al. | Apr 2002 | B1 |
6784902 | Melder et al. | Aug 2004 | B1 |
6801200 | Prakriya et al. | Oct 2004 | B1 |
Number | Date | Country | |
---|---|---|---|
60228516 | Aug 2000 | US |