Companies can have hundreds of servers, workstations, mobile devices and network devices. Various diagramming tools exist that allow users to model network architectures. Some diagramming tools are able to generate a network architecture diagram automatically from retrieving network inventory information from a database. Diagrams that contain dozens or hundreds of nodes are difficult to read and even harder to maintain.
Traditional tree layouts are frequently used in diagrams. With a tree layout, most of the page is taken up with the lines, as opposed to the data itself. Other diagrams are created in a rectilinear fashion, which can cause line crossing problems and be hard to read. To avoid these line crossing issues, diagrams are often created using a radial tree layout algorithm. Radial tree layouts use what is called a focus plus context (fisheye) technique for visualizing and manipulating large hierarchies. The focused node is placed in the center of the display and all other nodes are rendered on appropriate circular levels around that selected node. The further away a node is from the center, the smaller it is rendered. Very large hierarchies can be displayed using this radial tree layout. However, the problem with the radial tree layout is that you have to work with the diagram electronically to zoom in and zoom out of various parts of the hierarchy in order to review more details about the nodes. Furthermore, you cannot see a big picture view of the entire diagram that includes meaningful details.
Various technologies and techniques are disclosed that improve the creation of diagrams. The user can select an option to create a diagram based on existing inventory, such as a network inventory. Details about the inventory are retrieved from one or more databases and/or files. The diagram is laid out in a snaking S tree to increase the number of attach points for a given diagram size. Each node on the diagram can include a graphic that represents a type, such as a machine type, and a label that summarizes the most important properties. Different graphics are used to represent different types of inventory, such as network equipment. Non-limiting examples of network equipment include servers, blades, appliances, wireless access points, firewalls, routers, and so on. To reduce clutter on the diagram, some inventory is grouped together on a single node to represent multiple pieces of the same type of inventory. As one non-limiting example, a single node can be used to represent all of the client workstations on a particular subnet. The diagram can be submitted to other software programs for further analysis of the data contained therein, such as to a software program that evaluates licensing compliance or a program that analyzes security.
This Summary was provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope is thereby intended. Any alterations and further modifications in the described embodiments, and any further applications of the principles as described herein are contemplated as would normally occur to one skilled in the art.
The system may be described in the general context as an application that improves the creation of diagrams, but the system also serves other purposes in addition to these. One or more of the techniques described herein can be implemented as features within a diagramming software program such as MICROSOFT® Office VISIO®, Autocad, or from any other type of program or service that allows creation of diagrams. As described in further detail herein, in one implementation of the system, diagrams are created in a snaking S tree to increase the number of attach points for a given diagram size. In another implementation, each node on the diagram includes a graphic and corresponding text that describes the equipment represented on the node. In yet another implementation, equipment is aggregated based on processor type, count, memory, installed software, and/or server role to reduce the total number of nodes depicted on the diagram.
As shown in
Additionally, device 100 may also have additional features/functionality. For example, device 100 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
Computing device 110 includes one or more database communication connections that allow computing device 112 to communicate with one or more data stores 115. Alternatively or additionally to database communication connection(s) 112, device 100 may contain other communications connection(s) 113 that allow the device to communicate with other devices. Communications connection(s) 112 and 113 are examples of communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
Device 100 may also have input device(s) 114 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 116 such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here.
Turning now to
Diagramming application 200 includes business logic 204, which is responsible for carrying out some or all of the techniques described herein. Business logic 204 includes logic for retrieving information (e.g. network architecture) from database(s) and/or file(s) (e.g. xml) based on user selection to create a diagram 206, logic for summarizing information and grouping as appropriate 208, logic for creating diagram in snaking s tree fashion (to increase number of attach points) using original information and/or grouped information and displaying to user 210, logic for allowing user to expand summarized groups of information to see additional details 211, logic for sending diagram as input to other systems 212, and other logic for operating diagramming application 214. In one implementation, business logic 204 is operable to be called programmatically from another program, such as using a single call to a procedure in business logic 204.
In
Turning now to
Diagramming application 200 executes business logic 208 to analyze the information retrieved from data store(s) 115 and summarize and group the information appropriately (stage 224). Business logic 210 is executed to create a diagram using the original and/or grouped information in a snaking S tree format (stage 226). The completed diagram is displayed to the user (stage 228). The user is able to interact with the diagram, such as to expand the summarized groups of information to view more details (stage 230). The user can submit the diagram to other systems, such as licensing compliance tools, security analyzers (e.g. MICROSOFT® Baseline Security Analyzer), etc. (stage 232). The actual diagram itself can be submitted to the other software programs, and/or data can be saved from the diagram for submission to the other software programs. When the actual diagram itself is submitted to other software programs, those programs are able to read the data contained in the diagram for performing the further analysis. The process then ends at end point 234.
In another implementation, the network architecture information is retrieved directly by diagramming application 200 from these various original data sources when the user selects the option to create a new diagram. A combination of these two approaches can also be taken, such as to retrieve some information from a central data store containing network architecture information from other sources, and to retrieve other information from some original data sources directly.
The information is then analyzed (stage 242) and summarized to include one or more important properties and is grouped together appropriately to reduce the total number of nodes to be shown on the diagram (stage 244). In one implementation, the information includes one or more pieces of network equipment that are summarized by processor type, count, memory, installed software, server role, and/or other equipment-related settings. To reduce clutter on the diagram, some pieces of equipment are grouped together so just one representation for multiple pieces is shown. As a few non-limiting examples, client workstations, client laptops, client PDAs, and/or wireless access points that have multiple quantities may just be represented on the diagram once for their respective type on that particular node. Other variations are also possible, such as to group servers or other similar pieces of equipment together.
Diagramming application 200 then creates a diagram that includes the original and grouped information as appropriate (stage 246). Some information is displayed on the diagram in a grouped fashion, such as a single node representing multiple pieces of equipment. Other information is displayed as a node on the diagram to represent a single piece of equipment, such as a particular server. In one implementation, the information with one or more important properties is displayed on the diagram with a graphic or icon that represents the type of equipment it is. As a few non-limiting examples, the graphic may be a graphic of a server to represent a server, a graphic of a desktop to represent a desktop, a graphic of multiple desktops to represent multiple desktops, a graphic of a laptop to represent a laptop, a graphic of multiple laptops to represent multiple laptops, and so on. Other non-limiting examples of graphics can include blades, appliances, PDAs, switches, routers, firewalls, wireless access points, printers, file shares, and any other pieces of equipment that can be present on a particular network.
Alternatively or additionally, a text box or label is then displayed to explain the important properties for the respective type of equipment, such as the type of server and/or its IP address, the software installed, etc. In the case of a grouped node, the important properties can include a description that includes the number of the particular grouped item. When a graphic is used, the corresponding label that describes the graphic can be located near the graphic in a fashion so that it is clear they are related to each other. In one implementation, the user can expand a node that contains summarized groups of information to see additional details (stage 248). A non-limiting example of this might be to expand the node summarizing the grouped wireless access points to then see more details about each individual wireless access point. In one implementation, a new diagram showing the expanded details is created when the user selects the node to expand. In another implementation, the additional details are created as part of the initial diagram but are hidden from the user's view until the node to expand is selected by the user. Other ways to view more details about the summarized information can also be used. As one non-limiting example, a new type of diagram, called a pivot diagram, can be created to allow for analysis of data similar to spreadsheet pivot tables. The process then ends at end point 250.
Each item of information in the first set (e.g. piece of equipment in a particular subnet) is added to a node in the diagram in a snaking S tree fashion (stage 266). An example how a snaking S tree diagram can be created includes drawing a line down, drawing a line right, drawing nodes off of the right line, drawing a line down, drawing a line left, drawing nodes off of the left line, and so on. Other directions which use a snaking S tree fashion could also be used, such as starting from right to left, starting with a left line, and so on. Alternatively or additionally, items can have secondary relationships to other items in the diagram, such as to illustrate a printer that is attached to a server, which is then attached to the network.
Turning now to
As shown in
Turning now to
On
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. All equivalents, changes, and modifications that come within the spirit of the implementations as described herein and/or by the following claims are desired to be protected.
For example, a person of ordinary skill in the computer software art will recognize that the client and/or server arrangements, user interface screen content, and/or data layouts as described in the examples discussed herein could be organized differently on one or more computers to include fewer or additional options or features than as portrayed in the examples.