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 gadget
- Meta-gadget
- Collection
- Arranger
- Distributor
- 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