3. Approach - Design Outline

3.1 Design Assumptions and Decisions

There were several design decisions and assumptions which affected the evolution of this project and constrained the implementation of the system that resulted. This section outlines these decisions and assumptions and provides an justifies each one.

Use PMCS for statistic collection
The inspiration for this project came from Ken McDonald, a member of Silicon Graphics' Performance Tools Group. They have developed a set of protocols and tools for the collection of statistics from computers within a network. These tools are called PMCS (Performance Metric Collection System) and PCP (Performance Co-Pilot). Given the source of the original idea for this project it was decided to make use of PMCS for the statistics collection.

Unfortunately the network used during the development of NetSpy contained only one computer capable of running the PMCS software. This restriction was removed only during the latter stages of the project. This difficulty in collecting statistics lead directly to the design and implementation of DPML-MCS (Dave's "Performance Metric"-Like Metric Collection System).

Use Open Inventor for 3D graphics
Open Inventor is a toolkit for the creation and display of 3D graphics on Silicon Graphics workstations. The toolkit presents a C++ class library which greatly simplifies the construction and rendering of 3D graphics within an application. This facilitates the generation of the visualization scenes used by NetSpy to convey information to the user. Open Inventor also includes user interface controls for scene navigation and adjustment.

3.2 Overall Design

NetSpy provides a toolkit which a user, typically a network administrator, can use to create a scene for viewing sets of statistics about the performance of a network and the computers on it that are of interest to them. The statistics that can be monitored are not fixed - any statistic that a collection service can acquire and pass on to NetSpy can be visualized.

The statistics are presented to the user within a scene. The elements that make up a scene are called gadgets, each of which directly or indirectly affects the resulting display. These gadgets are bound together in a tree. There are serveral different kinds of gadgets:

Shape Gadgets
Shape gadgets have some particular shape, for example a rectangle, which is drawn within the scene. A shape gadget will export what are called degrees of freedom - those elements of the shape that can be modified by a statistic's value. This is how a statistic is visualized.

Meta-Gadget
In some cases it is desirable to have gadgets which act upon other gadgets. These are meta-gadgets.

Collection
A collection can be thought of as a group of gadgets. This allows the user to create new gadgets which are then at their disposal when creating a scene. The degrees of freedom exported by a collection are simply the sum of the degrees of freedom exported by each constituent gadget. The resulting collection can be used anywhere a normal shape gadget can.

Collections are also the method in which meta-gadgets may be employed. A member of a collection is allowed to be a meta-gadget, and can gain access to another gadget within the collection.

Arranger
The layout of the gadgets within the scene is very important, as a poor layout can make a scene seem cluttered difficult to interpret. A special kind of meta-gadget is called an arranger and is responsible for specifying the location of other gadgets within the scene. The root gadget of any scene must be an arranger, although it is still possible to place other arrangers within the scene.

There is more than one kind of arranger, each implementing a different layout algorithm. The ability to place these arrangers at various locations within a scene means that it is possible to have a part of the scene arranged in a grid, for example, while each element within the grid is arranged using a circular layout algorithm.

Distributor
The nature of the two statistics collection systems, PMCS and DPML-MCS, are such that there may be more than one instance of a given statistic. For example, if we consider a computer that has four disks, and we are interested in the disk utilisation statistic (the amount of time the disk is in use), the statistic collection system will in fact return four values - one for each disk. For this reason, shape gadgets are not placed directly into a scene. Rather they are controlled by a distributor gadget, which will make a copy of the shape gadget for each instance of the statistic being visualized. A distributor object makes use of an arranger to lay out the shape gadgets it creates.

3.3 Gadget Addition

A design feature of NetSpy enables a programmer to add additional gadgets of any type easily. NetSpy defines the basic behaviour for shape gadgets, arrangers and meta-gadgets. The programmer can easily extend this behaviour to create new gadgets.

3.3 DPML-MCS Design

PMCS must be installed on every computer to be monitored. Unfortunately, the network used during development only had one computer capable of runnning it. Additionally, it is only supported on IRIX, SGI's operating system.

To overcome these restrictions and to provide a reasonable number of statistics for use during NetSpy's development, I created DPML-MCS, which borrows many elements from PMCS. NetSpy itself works with DPML-MCS collected statistics. The fact that the design borrows heavily from PMCS means that it is a simple transformation to convert PMCS data into DPML-MCS format for use in NetSpy.

DPML-MCS collects a basic set of statistics from a computer using standard Unix console based utilities:

netstat
statistics about the network interface and the basic transport protocol layers
iostat
statistics about the I/O (disk) activity and CPU usage
uptime
statistics about the computer's load and number of users

It also defines a simple text based protocol for the addition of new statistics. Any program which outputs using this protocol can extend the set of statistics collected. The result of this is that a user can immediately visualize any new statistics that can be collected.

The following diagram gives a simple picture illustrating the overall design of NetSpy. This is very simplified view intended only to give a basic idea of some of the concepts involved.

Figure 3-1: Simple overview of NetSpy design


[Table of Contents] [Previous Section] [Next Section]


David Sykes / dsykes@cs.monash.edu.au