The purpose of this project is to enable the user to drill down into a system and see various aspects of the system. These aspects include network connections, users, processes, and file systems. The user will use a multi-dimensional metaphor to view the system. The user will only be able to view the system, not interact with it.II. User Interviews
Plan user interviews are talking to system administrators and database administraters to find out what aspects of a system they would be interested in observing.
The target audience would be system administrators, database administrators, and technicians. Generally anyone interested in understanding how a computer system is laid out, works and what is going on currently. It would also be nice to be able to use this as a tool for teaching people the various aspects of computer systems and how they relate to each other.IV. Functional Description
The application will divide an operating system in to four separate areas. The first area will be the network area. This will include current network connections, listening sockets, bandwidth usage, and available bandwidth. The second area will be the user area. This will include listings of users, listings of currently logged on users, user quotas, user disk usage, user privileges, and device usage. The third area being processes, will include process listing, CPU utilization, device utilization, and network utilization. The fourth area will be the system device area. This will include a listing of devices, device usage, device privileges, and io usage for both network and file system devices.V. Design Specification
The user will load a java applet from a server which will connect to a java server that will be in charge of processing requests for system information as well as connecting and sending requests to other java servers on different host machines. The java server will be in charge of obtaining specifically requested data from a specified source. The client will be in charge of processing the returned data. The client will convert the data in to the visual metaphor and, process user requests for additional data creating a dynamic view of a system.VI. Architectural Style
The architectural style will be a client server model using java servers and a java client. The client will process the data and maintain an open connection to the server. The server will retrieve information from its local system as well as remote systems. The implemented client server model will act as both peer to peer and a master slave model. The master slave aspect will be when the java applet asks for data from the host system. The peer to peer aspect will occur when the java applet asks the host system to fetch information from a remote host.VII. Response to Logged Comments
VIII. User Interface
The user interface will consist of a user window. In the user window there will be three-dimensional, floating objects of various sizes, colors,shapes, and textures. The user will click on a object in order to drill down in to that object. If the user can drill down further, more objects will be displayed along with any relevant information about the system at that level. This information will be displayed in a text format contained within a separate window. The Color of the object will shift from green to red, depending on the health the item that the object represents. The size of the object can also be made to change depending on the amount of usage ie. bandwidth the item can handle. In other words, size will represent the objects potential maximum. The shape of the object will represent the items current usage. All object will start out as spheres, and as their usage increases, they will become more frazeled, by shifting to a starburst like object (or square). In the 3d world, Shape shifting would be replaced by rotation speed, freeing shape to distinguise between various types of underlying items.IX. Functional Specifications
B. Client.
1. The client will handle user requests for data.
2. The client will maintain a connection to the server.
3. The client will create a user window.
4. The client will process data returned from the server.
5. The client will display data in the user window.
6. The client will send requests to the server for data.
Java, Swing, and the Java 3-d API will be used to implement the program. The first aspect of the program to be written will be the server side and the parsing of the /proc directory. Following this, the second aspect will be allowing the server to connect to other servers on different hosts. The third aspect will be implementing a 2 dimensional user interface using Swing along with creating and designing the data model. The fourth aspect will be testing the server, data model, and the user interface. The fifth aspect will be implementing the 3 dimensional user interface. The sixth aspect will be final testing.XI. Testing.
There will be two main areas of testing. One of which will be data integrity. This will involve insuring that what the user sees is an accurate representation of the information contained on the system. The second area will be functional integrity. This will involve insuring that all methods function correctly both internally and with other methods.XII. Developmental Methodology
The system will be designed using an object oriented approach keeping in mind the ability to swap user interfaces as well as different functionality's. For example, user may want to drill down using a different metaphor or a metaphor that uses less processing power. The user may wish to specify what different aspects of the metaphor mean.